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サンプルの音がゆっくり再生されたためである。