wave モジュールは、WAVサウンドフォーマットへの便利なインターフェイスを提供するモジュールです。
このモジュールは圧縮/展開をサポートしていませんが、モノラル/ステレオには対応しています。
wave モジュールは、以下の関数と例外を定義しています。
file が文字列ならその名前のファイルを開き、そうでないならファイルのようにシーク可能なオブジェクトとして扱います。 mode は以下のうちのいずれかです。
WAVファイルに対して読み込み/書き込み両方のモードで開くことはできないことに注意して下さい。 'r' と 'rb' の mode は Wave_read オブジェクトを返し、 'w' と 'wb' の mode は Wave_write オブジェクトを返します。 mode が省略されていて、ファイルのようなオブジェクトが file として渡されると、 file.mode が mode のデフォルト値として使われます(必要であれば、さらにフラグ 'b' が付け加えられます)。
WAVの仕様を犯したり、実装の欠陥に遭遇して何か実行不可能となった時に発生するエラー。
open() によって返される Wave_read オブジェクトには、以下のメソッドがあります:
ストリームを閉じ、このオブジェクトのインスタンスを使用できなくします。これはオブジェクトのガベージコレクション時に自動的に呼び出されます。
オーディオチャンネル数(モノラルなら 1 、ステレオなら 2 )を返します。
サンプルサイズをバイト数で返します。
サンプリングレートを返します。
オーディオフレーム数を返します。
圧縮形式を返します( 'NONE' だけがサポートされている形式です)。
getcomptype() を人に判読可能な形にしたものです。通常、 'NONE' に対して 'not compressed' が返されます。
get*() メソッドが返すのと同じ (nchannels, sampwidth, framerate, nframes, comptype, compname) のタプルを返します。
現在のポインタから n 個のオーディオフレームの値を読み込んで、バイトごとに文字に変換して文字列を返します。
ファイルのポインタをオーディオストリームの先頭に戻します。
以下の2つのメソッドは aifc モジュールとの互換性のために定義されていますが、何も面白いことはしません。
None を返します。
エラーを発生します。
以下の2つのメソッドは共通の”位置”を定義しています。”位置”は他の関数とは独立して実装されています。
ファイルのポインタを指定した位置に設定します。
ファイルの現在のポインタ位置を返します。
open() によって返される Wave_write オブジェクトには、以下のメソッドがあります:
nframes が正しいか確認して、ファイルを閉じます。このメソッドはオブジェクトの削除時に呼び出されます。
チャンネル数を設定します。
サンプルサイズを n バイトに設定します。
サンプリングレートを n に設定します。
フレーム数を n に設定します。あとからフレームが書き込まれるとフレーム数は変更されます。
圧縮形式とその記述を設定します。現在のところ、非圧縮を示す圧縮形式 NONE だけがサポートされています。
tuple は (nchannels, sampwidth, framerate, nframes, comptype, compname) で、それぞれ set*() のメソッドの値にふさわしいものでなければなりません。全ての変数を設定します。
ファイルの中の現在位置を返します。 Wave_read.tell() と Wave_read.setpos() メソッドでお断りしたことがこのメソッドにも当てはまります。
nframes の修正なしにオーディオフレームを書き込みます。
オーディオフレームを書き込んで nframes を修正します。
writeframes() や writeframesraw() メソッドを呼び出したあとで、どんなパラメータを設定しようとしても不正となることに注意して下さい。そうすると wave.Error を発生します。