2016-05-31 12 views
1

音声メッセージの品質を最適化しようとしていますが、音声についてはわかりません。私の問題は、AQRecordでビットレートを設定する方法です。ここAQRecorderでビットレートを設定する方法

は私のコードです:

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

あなたのビットレートが128kbpsの現在に設定されています。

リニアPCMの場合、ビットレートはsampleRate * bitDepth * numChannelsとして計算されます。あなたの場合、これは8000 * 16 * 1または128000です。

編集:PCMはすでに「最高」の品質です。 8kHzのサンプリングレートでは、ボーカルの周波数帯域をわずかにクリップしています。 16kHzは8kHzサンプリングよりもボーカル・レンジをカバーします。そのサンプルレートを超えるものは、スピーチには不要です。

+0

音声メッセージの品質を向上させたい場合、どうすればよいですか? sampleRateを16000または44100に設定しますか? –

+0

@ Antony.zhu:私の答えを更新しました。 – Goz

+0

お返事ありがとうございました! –

関連する問題