0

16000 HzPCM16ビットウェーブファイルを8000Hzにダウンサンプリングする必要があります。私はオーディオ処理についてあまり知識がありません(ほとんどありません)。すべてのプログラマーが理解しているように、ビット、バイト、シフトなどを理解しています。

これはWindowsPhoneアプリケーションです。

何を指示してるんですか?また、私が理解している限り、XNAフレームワークのMicrophoneクラスのSampleRateは、16000Hzのデータしか提供しないようにカスタマイズできません。Windows Phoneで8000Hzの生のオーディオデータを取得する方法はありますか?それははるかに簡単な解決策になるでしょう:)

ありがとうございました。

4

1 に答える 1

0

良い解決策が見つからず、独自の変換を続行する必要がある場合は、次のことが役立つ場合があります。

次のようにXNAフレームワークのmicrophone+wavを使用するとします。http: //damianblog.com/2011/02/07/storing-wp7-recorded-audio-as-wav-format-streams/

次に、16khzではなく8khzを取得するには、microphone.BufferReadyイベントで返されたデータから1秒ごとの値を削除する必要があります。または、補間を使用することをお勧めします(1つおきの値を削除する代わりに、2つの値の平均を保存します)

for(int i = 0; i <arr.length / 2; i ++)res [i] =(arr [2 * i] + arr [2 * i + 1]))

また、WriteWavHeader関数でsampleRate(8000)に正しい値を設定することを忘れないでください

于 2012-11-17T21:20:34.303 に答える