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
コメント