我正在尝试优化语音留言质量,但我不了解音频。我的问题是,如何在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 ;
}
}
答案 0 :(得分:0)
您的比特率目前设置为128kbps。
对于线性PCM,比特率计算为sampleRate * bitDepth * numChannels。在您的情况下,这是8000 * 16 * 1或128000。
编辑:PCM已达到“最佳”质量。在8kHz的采样率下,您可以略微削减人声频率范围。 16kHz覆盖的声音范围优于8kHz采样。语音不需要超出该采样率的任何内容。