今回は、オーディオファイルの読み込み、書き込みをMATLABを用いてする方法を紹介します。
目次
コード例
以下にコード例を示します。
clear;
filepath = fullfile("data", "sample.wav");
[signal, fs] = audioread(filepath);
audiowrite("output.wav", signal, fs);
MATLABでは、オーディオファイルの読み込みはaudioread関数、書き込みはaudiowrite関数を使用します。
2行目のオーディオファイルまでのパスは各自修正してください。
audioread関数を使用すると、1つ目のsignalに-1~1までのdouble型の値として信号値が2つのfsにサンプリング周波数が返されます。
ここで、signalはn x m 行列として構成されており、nはオーディオファイルのサンプル数、mはチャンネル数を表しています。
実際にsize()関数を使用して確認してみてください。
また、audiowrite関数でオーディオファイルの書き込みが行えます。
第1引数にファイル名を含むファイルパス、第2引数に信号値、第3引数にはサンプリング周波数を入力します。
ここで、signalは audioreadで読み込まれる信号値signalと同様に n x m 行列で nはサンプル数、mはチャンネル数となるように構成する必要があることに注意してください。
実行例
上記のプログラムを実行すると、読み込んだオーディオファイルが実行したディレクトリ内にoutput.wavというファイル名で書き出されていることがわかると思います。
実際に聞いてみたり、audacityなどの音声編集ソフトで波形を確認してみると同じものが出力されていることが確認できます。
まとめ
今回は、MATLABを用いてオーディオファイルの読み書きを行う方法を紹介しました。
オーディオファイルの読み込みには、audioread関数を、書き込みにはaudiowrite関数を使用します。
コメント