tutorial - Lote de lectura de archivos wav en matlab para crear una matriz para el conjunto de entrenamiento de redes neuronales
redes neuronales artificiales aplicaciones en matlab (1)
Estoy trabajando en un pequeño proyecto de red neuronal y soy muy nuevo en Matlab.
Tengo alrededor de 400 archivos wav cortos, que deben leerse, y luego combinarlos en un conjunto de datos matriciales. No pude encontrar ninguna información sobre cómo cargar todos los archivos wav en Matlab para que almacene cada archivo con un nombre diferente.
Mis preguntas son:
- ¿Es posible procesar por lotes los archivos wav en Matlab para tener cada vector almacenado como datos separados?
- ¿Cuál sería el procedimiento de llenar la matriz con los vectores de archivos wav procesados, dado que son de diferentes dimensiones (longitudes)?
Esta solución hace uso de matrices de celdas, {...}
, que pueden manejar datos de diferentes dimensiones, tamaños e incluso tipos. Aquí, Y
almacenará los datos muestreados .wav
y FS
la velocidad muestreada de todos los archivos de audio en un directorio.
% 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
Puede acceder a los datos con
for ind_wav = 1:length(Y)
wav_data = Y{ind_wav,1};
end