pythonでwaveを変換してみる

pythonではwaveを扱える組み込みモジュールが入っているのでこれを利用してみた。

http://www.python.jp/doc/current/lib/module-wave.html

とりあえずwaveの読み込みと書き込みは出来るようになり、中身を取り出して配列へ入れて逆に並び替えて出力したところ、

あ い う え お か き く け こ

という音声は

お え う い %s お え う い &@

みたいな感じになります。言った言葉をローマ字に直して、それを逆から読むのと同じ言葉になるというのを小学生の頃コロコロコミックで読んで近所のおもちゃ屋にあったボイスチェンジャーを使って遊んでいたことがありますが、それと同じようになりました。

しかしまだ逆に置き換えただけで、原理がぜんぜん分からないので中身を取り出そうとして表示させてみるとバイナリデータ。そらそーかと思い、変換して16進に直してから論理演算したのですが、0x000000FF以上の値をマスクしても普通に声が聞き取れるという結果に。逆に最初の0xFFの部分をマスクしてしまうと声がまったく聞こえなくなりました。

仕組みはまた今度調べるとして、次は数値を半分割り引いて出力してみるとテレビが終わった後に出るザーーーーーという砂嵐の音が大音量でイヤホンに流れたのでびびりました。心臓に悪いので今日はもうやめることに。