如何在 AQRecorder 中设置比特率



我正在尝试优化语音消息质量,但我不知道音频。我的问题是,如何在 AQRecod 中设置比特率?

这是我的代码:

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 ;
}

}

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

对于线性 PCM,比特率计算为采样率 * 位深度 * 通道数。在您的情况下,这是 8000 * 16 * 1 或 128000。

编辑:PCM已经处于"最佳"质量。 在 8kHz 采样率下,您会稍微削波人声频率范围。 16kHz 比 8kHz 采样更好地覆盖音域。 超出该采样率的任何内容对于语音都是不必要的。

最新更新