2010年9月13日月曜日

オーディオデータについて

前の記事の続き。

オーディオデータがシステム内部でどういう風に扱われているのか。

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 件のコメント:

コメントを投稿