How to convert an excel file (.csv) to a .wav format/any other audio format file?

68 vues (au cours des 30 derniers jours)
Hi,
I have an excel file which has ~200k data samples stored in one column and I want to convert the data from that file into an audio file. But whenever I use the excel file, there is almost no sound. I want to play it at 40khz frequency.
I am just using this code:
clearvars
a=xlsread('w3.csv'); %read the xls table
figure,plot(a) %this is your signal
xlim([0 200704])
sound(a,40000) %play the signal
audiowrite('w3.wav',a,40000,'BitsPerSample',16);
Can someone help? Thanks.

Réponse acceptée

Scott MacKenzie
Scott MacKenzie le 11 Mar 2022
Modifié(e) : Scott MacKenzie le 11 Mar 2022
I was able to play your audio data and save it as a .wav file. It's some sort of noise along with a dripping sound. But, I had to first rescale the data to fall between -1 and 1:
clearvars
a = xlsread('temp.csv'); % this is your w3.csv file
a = rescale(a, -1, 1);
figure,plot(a) %this is your signal
xlim([0 200704])
sound(a,40000) %play the signal
audiowrite('w3.wav',a,40000,'BitsPerSample',16);
  1 commentaire
Giggs B.
Giggs B. le 12 Mar 2022
Hi,
Yes! Thanks, it the sound of waterflow from a pipe. However, I wanted to know the logic behind that why would I need to convert it to -1 to +1. I also checked other ranges such as 0 to 1 or -5 to +5 or -10 to 10 and they all gave expected results.

Connectez-vous pour commenter.

Plus de réponses (1)

Peter Perkins
Peter Perkins le 14 Mar 2022
This
should give a hint that xlsread is not the right way to go. In this case, you want to use readmatrix:
a = readmatrix("w3.csv")
  5 commentaires
Scott MacKenzie
Scott MacKenzie le 14 Mar 2022
@Giggs B. Hmm, well I'm not sure then. In the code in my answer, if I change xlsread to readmatrix, it works fine.
This sounds like a fairly simple debugging problem. So, for you, it works with xlsread, but it doesn't work with readmatrix. So, try to use both:
n1 = xlsread('3.csv');
n2 = readmatrix('3.csv');
and have a look in n1 and n2 and see what the difference is. That's a good starting point.
Giggs B.
Giggs B. le 14 Mar 2022
Oh I see, yes then that looks some problem on my end. I will try to figure it out, starting from where you suggested. Thanks!

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by