批量读取matlab中的wav文件,为神经网络训练集创建矩阵

时间:2013-09-12 20:02:44

标签: matlab audio neural-network batch-processing

我正在研究一个小型神经网络项目,我对Matlab很新。

我有大约400个短wav文件,必须读取,然后组合成矩阵数据集。我无法找到有关如何将所有wav文件加载到Matlab中的任何信息,以便它以不同的名称存储每个文件。

我的问题是:

  • 是否可以批量处理Matlab中的wav文件,将每个向量存储为单独的数据?
  • 如果矩阵具有不同的维度(长度),那么使用已处理的wav文件向量填充矩阵的过程是什么?

1 个答案:

答案 0 :(得分:3)

此解决方案利用单元数组{...},可以处理不同维度,大小甚至类型的数据。在此,Y会将.wav个采样数据和FS所有音频文件的采样率存储在目录中。

% create some data (write waves)
load handel.mat;                  %predifined sound in matlab stored in .mat
audiowrite('handel1.wav',y,Fs);   %write the first wave file
audiowrite('handel2.wav',y,Fs);   %write the second
clear y Fs                        %clear the data


% reading section
filedir = dir('*.wav');           %list the current folder content for .wav file
Y = cell(1,length(filedir));      %pre-allocate Y in memory (edit from @ Werner)
FS = Y;                           %pre-allocate FS in memory (edit from @ Werner)
for ii = 1:length(filedir)        %loop through the file names

    %read the .wav file and store them in cell arrays
    [Y{ii,1}, FS{ii,1}] = audioread(filedir(ii).name);  

end

您可以使用

访问数据
for ind_wav = 1:length(Y)
    wav_data = Y{ind_wav,1};
end