スポンサーリンク

【MATLAB】ディレクトリ内のwavファイルを読み込んで、リサンプリングして書き出す

MATLAB

MATLABで、ディレクトリ内のwavファイルを読み込んで、リサンプリングして書き出す方法について記載していきます。

環境:WIndows10Pro
MATLAB2020b(+Signal Processing Toolbox)

dir(name)で、ディレクトリ内のファイル属性を取得します。.nameでファイル名を得ることができます。リストの1番目のファイル名を取得したい場合は、listing(1).nameのように書きます。

path_input_dir = './wav/';
path_output_dir = './re_wav/';

listing = dir([path_input_dir '*.wav']);
listing(1).name
% ans = '100.wav'

for文でlistingからファイル名を取得しつつ、audioread(filename)でwavファイルを読み込みます。

resample(x,p,q)でリサンプリングを行います。 xは入力信号, pはリサンプリング後のサンプリング周波数、qは元のサンプリング周波数を指定します。

audiowrite(filename,y,Fs)でファイルを書き出します

re_Fs = 32000; % リサンプル後のサンプリング周波数

for i = 1:length(listing)
    filename = listing(i).name;
    [x, Fs] = audioread([path_input_dir filename]);
    y = resample(x,re_Fs,Fs);
    audiowrite([path_output_dir filename],y,re_Fs);
end

コメント