源数据是AMR-NB 5.9Kbit/s(AMR_5.90)

我已经尝试了以下设置(以及十几个变体),但我只能获得垃圾音频。有人知道AMR的正确设置吗?

 AudioStreamBasicDescription asbd;
 asbd.mSampleRate = 8000.0;
 asbd.mFormatID = kAudioFormatAMR;
 asbd.mFormatFlags = 0;
 asbd.mBytesPerPacket = 15;  // (118>>3)
 asbd.mFramesPerPacket = 1;
 asbd.mBytesPerFrame = 15;
 asbd.mChannelsPerFrame = 1;
 asbd.mBitsPerChannel = 118;  //tried also 0 and 13
 asbd.mReserved = 0;

根据Wikipedia的信息,AMR:

采样频率8 kHz/13位(20毫秒帧的160个样品)

生成95、103、118、134、148、159、204或244位的框架长度分别为4.75、5.15、5.90、6.70、7.40、7.40、7.95、10.2或12.2 kbit/s

以及此处的数据结构描述:

http://developer.apple.com/iphone/library/documentation/musicaudio/reference/coreaudiodatatypesref/reference/reference/reeference.htmll#/apple_redoc/doc/doc/doc/doc/c_ref/c_ref/audiostreambasicdescription

有帮助吗?

解决方案

iOS删除AMR支持,因此新解决方案是使用OpenCoreamr将数据转换为PCM

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top