如何在AQRecorder中设置比特率

时间:2016-05-31 08:23:19

标签: ios iphone

我正在尝试优化语音留言质量,但我不了解音频。我的问题是,如何在AQRecord中设置比特率?

这是我的代码:

void AQRecorder::SetupAudioFormat(UInt32 inFormatID){
    memset(&mRecordFormat, 0, sizeof(mRecordFormat));
    mRecordFormat.mFormatID = inFormatID;
if (inFormatID == kAudioFormatLinearPCM)
{
    // if we want pcm, default to signed 16-bit little-endian
    mRecordFormat.mSampleRate = 8000.0; // amr 8khz
    mRecordFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
    mRecordFormat.mBitsPerChannel = 16;
    mRecordFormat.mChannelsPerFrame = 1;
    mRecordFormat.mFramesPerPacket = 1;

    mRecordFormat.mBytesPerFrame = (mRecordFormat.mBitsPerChannel/8) * mRecordFormat.mChannelsPerFrame;
    mRecordFormat.mBytesPerPacket =  mRecordFormat.mBytesPerFrame ;
}

}

1 个答案:

答案 0 :(得分:0)

您的比特率目前设置为128kbps。

对于线性PCM,比特率计算为sampleRate * bitDepth * numChannels。在您的情况下,这是8000 * 16 * 1或128000。

编辑:PCM已达到“最佳”质量。在8kHz的采样率下,您可以略微削减人声频率范围。 16kHz覆盖的声音范围优于8kHz采样。语音不需要超出该采样率的任何内容。