我在Matlab中读了一个长度为10秒的Wav文件。现在我想将音频文件分成10个文件,这些文件应该包含相同的长度。我该怎么办?
答案 0 :(得分:0)
这将完成这项工作:
[y,Fs] = audioread('orig.wav');
OUTPUT_FOLDER='z:/';
OUTPUT_FILE_PREFIX='wave';
N_SPLIT=10;
y(end+1:end+N_SPLIT-mod(length(y),N_SPLIT),:)=0;%need to be divisible by N_SPLIT, so pad some zeros at end.
y_parts=reshape(y,[],1,N_SPLIT);%split signal
for i=1:N_SPLIT
filename=sprintf('%s%02d.wav',OUTPUT_FILE_PREFIX,i);
filepath=fullfile(OUTPUT_FOLDER,filename);
y_to_write=y_parts(:,:,i);
audiowrite(filepath,y_to_write,Fs); %save
end