Read and analyse multiple .wav files

8 次查看(过去 30 天)
Jack
Jack 2019-9-15
编辑: GreyHunter 2020-10-7
Hi,
I have 100 .wav files in the same folder which I would like to perform analysis on. I would like to read in the files one at a time, perform some simple analysis on them (e.g. calculate the mean) and then save the outputs in to a seperate file.
The essential issue seems to be importing the file and then saving each analysed output seperately. The steps I see it are to automate the following:
  1. Import file 1.wav
  2. Calculate the mean of file 1.wav
  3. Save the mean of file .wav as meanfile1.mat
  4. import file 2.wav
  5. repeat steps 1-3 on file 2, saving as meanfile2.mat
  6. And so on doing this for all the remaining .wav files
Please can anyone help with this?
Thank you!

回答(2 个)

Prabhan Purwar
Prabhan Purwar 2019-9-19
Hi,
Following code illustrates the saving and loading of multiple .wav files
  • Take care while selecting value of i, as it depends upon the structure of files, as shown
clc
clear
close all
for i=3:103
%i=3;(initial data)
%Imporing data from audiofiles folder
files = dir(fullfile('C:\Users\ppurwar\Downloads\audiofiles\')); %C:\Users\ppurwar\Downloads\audiofiles (folderpath)
[data,fs]=audioread(files(i).name); %set bias to i according to files structure
%sound(data(:,1),fs); %To hear sound
datamean=mean(data(:,1)); %finding mean
%Saving output to new folder
pathname = fileparts('C:\Users\ppurwar\Downloads\audiofiles\result\');%output folder
out=strcat('datamean',num2str(i),'.mat'); %output data name
matdata = fullfile(pathname,out);
save(matdata);
end
Please refer the following link for further information about MATLAB workspaces and the save function:
  3 个评论
Prabhan Purwar
Prabhan Purwar 2019-9-30
Hey,
First try to identify which files are Matlab able to locate (as shown in the snapshot above), using the following code.
clc
clear
close all
for i=3:103
%i=3;(initial data)
%Imporing data from audiofiles folder
files = dir(fullfile('C:\Users\ppurwar\Downloads\audiofiles\')); %C:\Users\ppurwar\Downloads\audiofiles (folderpath)
** Place the .m file in the same folder where .wav files are located "C:\Users\ppurwar\Downloads\audiofiles\" (as in my case)
Following line of code reads the .wav file
[data,fs]=audioread(files(i).name);
Hope it helps!!
Thomas Webber
Thomas Webber 2020-4-23
Hi there,
I was just wondering if I can ask a follow up question to this. Is there any way to use the cat function in this loop to make the data variable contain all the .wav files values. I ideally want to have one data value for all .wav files to do some power spectrum analysis on.
Thanks!

请先登录,再进行评论。


GreyHunter
GreyHunter 2020-10-3
编辑:GreyHunter 2020-10-7
Hello,
Do you know how to read multiple audio files without using the dir function?

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by