wavファイル
windowsの音声ファイル形式である wav ファイルの入出力ができる。
以下のwavファイルをダウンロードしておこう。
x1.wav (m03-1-l.wav)
x2.wav (m19-1-l.wav)
x3.wav (m20-1-l.wav)
右クリックで選択し、「名前を付けてリンク先を保存」を選んで、ampフォルダーに保存する。
ampフォルダに3つのファイルが保存されていることを確認しよう。
これで練習に用いるwavファイルが準備できた。
これらのファイルをダブルクリックすると約2秒間の音が再生される。
注意: これらのwavファイルは、実験用に使用することが許されているものだが、無断複製が許されているものではないので、授業での実験以外に使用してはいけない。
loadwave関数
loadwave関数で、wavファイルをscilabの変数に読み込むことができる。
x1=loadwave("x1.wav");
x2=loadwave("x2.wav");
x3=loadwave("x3.wav");
最初のコマンドを実行すると、以下のように表示される。
-->x1=loadwave("x1.wav");
Reading Wave file: Microsoft PCM format, 1 channel, 22050 samp/sec
44100 byte/sec, 2 block align, 16 bits/samp, 29266 data bytes
Input file: using sample rate 22050
size shorts, style signed (2's complement), 1 channel
ここで、表示は以下のような意味だ。(特に覚える必要はない)
Reading Wave file: Microsoft PCM format, マイクロソフト PCM形式のファイルを読み込み中 1 channel 1チャンネル 22050 samp/sec 毎秒 22050サンプル 44100 byte/sec. 毎秒 44100バイト 16 bits/samp 1サンプルあたり16ビット 29266 data bytes 29266 バイトのデータ Input file using sample rate 44100 サンプリングレート44100の入力ファイル size shorts, style signed 符号付short ('2's complement) 2の補数形式 1channel 1チャンネル 3つのファイルを読み込み終えたら、以下のようにしてサンプル数を確認してみよう。
-->length(x1)
ans =14633.
-->length(x2)
ans =42997.
-->length(x3)
ans =27497.
savewave関数
savewave関数でwavファイルを出力することができる。
savewave( "ファイル名", 配列, サンプリング周波数);以下を行ってみよう
savewave( "test1.wav", [x1,x2], 44100); savewave( "test2.wav", x1, 22050);test1.wavはx1とx2が連続した波形になる。
text2.wavは音が低くゆっくり再生される。これはサンプリング周波数を22050として保存したため、もともと44100サンプルの音がゆっくり再生されたためである。