6

readframes()Pythonで使用すると、オンラインドキュメントによると、サンプリング周波数が返され、2バイトが返されるように見えます。各フレームに 4 バイトあると思います。

left = 2 bytes
right = 2 bytes

モノかステレオかを確認し、ステレオの場合は一度に 2 フレームを読み取り、モノの場合は一度に 1 フレームを読み取る必要がありますか?

4

1 に答える 1

5

ウェーブ ファイルには次のものがあります。

  • 1 秒あたりのサンプル レートWave_read.getframerate()(たとえば、オーディオ CD の場合は 44100)。
  • バイトのサンプル幅Wave_read.getsampwidth()(つまり、8 ビット サンプルの場合は 1、16 ビット サンプルの場合は 2)
  • Wave_read.getnchannels()チャンネル (通常、モノラル用に 1 つ、ステレオ用に 2 つ)

を実行するたびに、バイトWave_read.getframes(N)が取得されます。N * sample_width * n_channels

したがって、44100Hz、16 ビットのステレオ ファイルから 2048 フレームを読み取ると、結果として 8192 バイトが得られます。

于 2011-05-28T10:44:51.783 に答える