【发布时间】:2019-10-22 01:23:20
【问题描述】:
我正在尝试读取文件夹中的所有 wav 文件,然后合并这些文件。我了解audioread和audiowrite。我正在努力自动处理文件夹中的一系列文件,以便我只需要更改 dirin 名称并可以移动到下一个文件夹。这里的代码显然不起作用,但试图演示我想要做什么。
DirIn = 'C:\Users\24hr sound analysis\17';
eval(['filelist=dir(''' DirIn '/*.wav'')']);
for i = 1:length(filelist);
[f(i),fs] = audioread(strcat(DirIn,'/',filelist(i).name)); % read in wav file
end
combined = [f1;f(i)];
audiowrite('combined.wav',combined, fs)
编辑:我在下面实现了建议,但现在有一个新问题。我组合了 6 个 1 分钟的 wav 文件,我的输出是 6 分 36 秒。额外的 26 秒是从哪里来的?
DirIn = 'C:\Users\24hr sound analysis\17';
eval(['filelist=dir(''' DirIn '/*.wav'')']);
cd(DirIn);
combined = [];
fs = 44800
for i = 1:length(filelist);
Filename = filelist(i).name;
aud_file = audioread(Filename);
combined = [combined;aud_file];
end
audiowrite('combined.wav', combined, fs)
【问题讨论】: