MATLAB Answers

Continuous Spectrogram from multiple wav files.

8 views (last 30 days)
Hello all,
I have been scouring the existing online help but cant seem to find exactly what I’m after. I have a folder with hundreds of 4 min wav files and want to produce a single spectrogram which contains them all. My initial thinking was to read in all wav files and somehow join them into one large file to later put into a spectrogram. Any help would be great appreciated!
Thanks,
Thomas

  0 Comments

Sign in to comment.

Accepted Answer

Stijn Haenen
Stijn Haenen on 19 May 2020
Something like this:
data_tot=[];
>> for i=1:numel(files)
data=audioread(files(i));
data_tot=[data_tot ; data];
end
audiowrite('file.wav',data_tot,Fs);

  3 Comments

Thomas Webber
Thomas Webber on 19 May 2020
Hi Stijn,
Thanks for this, would you know of anyway to account for the length of files not being exactly equal? The exact number of samples in each wav file differ slightly, which is throwing up the error:
"Error using horzcat
Dimensions of arrays being concatenated are not consistent."
Thanks,
Stijn Haenen
Stijn Haenen on 19 May 2020
you have to make colomns from your data, you can add some lines to do this:
data_tot=[];
>> for i=1:numel(files)
data=audioread(files(i));
if size(data,1)<2
data=data';
end
data_tot=[data_tot ; data];
end
audiowrite('file.wav',data_tot,Fs);
and you have to check whether all your files are single audio files or double (left and right audio).
Thomas Webber
Thomas Webber on 19 May 2020
Thats wonderful, thankyou for your help!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!