Reading, resampling and writing audio files
Show older comments
I have multiple audio files in one folder having file format like C_01_ECHO_FA.wav, C_01_ECHO_FG.wav, C_01_ECHO_MK.wav, C_01_ECHO_ML.wav and again C_02_ECHO_FA.wav, C_02_ECHO_FG.wav, C_02_ECHO_MK.wav, C_02_ECHO_ML.wav and so on like this... The sampling freq of these files are 48k. I need to read all the audio files one by one and resample them to 8k and then write all output audio files in different folder. For the single file, i did like this but i need to do for all. [y,Fs] = audioread('C_01_ECHO_FA.wav'); y_resamp = resample(y,8000,48000); audiowrite('C_01_ECHO_FA_new.wav',y_resamp,8000);
Accepted Answer
More Answers (2)
Laureano Moro
on 28 Aug 2018
Edited: Laureano Moro
on 28 Aug 2018
To do it automatically:
sAudioFolder='MyAudiofolder'; eFiles=dir(fullfile(sAudioFolder,'*.wav'));
for i=1:length(eFiles)
sAudioFile=fullfile(sAudioFolder,eFiles(i).name);
[y,Fs] = audioread(sAudioFile); y_resamp = resample(y,8000,48000);
sAudioFileOut=fullfile(sAudioFolder,[strrep(eFiles(i).name,'.wav','') '_new.wav']);
audiowrite(sAudioFileOut,y_resamp,8000);
end
1 Comment
shweta singh
on 30 May 2020
very good code
Deepak Gala
on 7 Aug 2017
This should work!
for i=1:1000
FILE1=sprintf('file48000_%d.wav',i);
FILE2=sprintf('file8000_%d.wav',i);
FOLDER_NAME = 'C:\.......\ReadingFolder';
userpath(FOLDER_NAME);
[y,fs]=audioread(FILE1);
FOLDER_NAME = 'C:\.......\WritingFolder';
userpath(FOLDER_NAME);
audiowrite(FILE2,y,8000);
end
1 Comment
Rahul Jaiswal
on 8 Aug 2017
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!