オーディオデータがシステム内部でどういう風に扱われているのか。
pythonでwavモジュールをいじくっていたら何となく分かってきた。
以下のような形で適当なwavファイルを読み込んでデータを表示させてみた。
>>> w = wave.open("filePath","r")
>>> w.readframes(5)
'\x00\x00\x00\x00\xdb\xff\xdb\xff\xb5\xff\xb5\xff\x8f\xff\x8f\xffj\xffj\xff'
readframes()は指定されたフレーム数、データを読み出すメソッド。
で、出力されたデータを見る限り、1フレームというのは1バイトでは無いらしい。
1フレームが何バイトなのか調べてみる。
>>> r = w.readframes(5)
>>> len(r)
20
5フレーム20バイトなので1フレームは4バイト=32ビット。
よくよく考えて見ればオーディオデータの量子化ビット数が1バイトなんてことはありえないわけで。
前の記事のようなグラフが出力されるのは当たり前だ。
ということで、オーディオプログラミングではフレーム単位でデータを扱う必要があることが分かった。
0 件のコメント:
コメントを投稿