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

100 ビュー (過去 30 日間)
Giggs B.
Giggs B. 2022 年 3 月 11 日
コメント済み: Giggs B. 2022 年 3 月 14 日
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.
  2 件のコメント
Giggs B.
Giggs B. 2022 年 3 月 11 日
I have attached the file.

サインインしてコメントする。

採用された回答

Scott MacKenzie
Scott MacKenzie 2022 年 3 月 11 日
編集済み: Scott MacKenzie 2022 年 3 月 11 日
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 件のコメント
Giggs B.
Giggs B. 2022 年 3 月 12 日
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.

サインインしてコメントする。

その他の回答 (1 件)

Peter Perkins
Peter Perkins 2022 年 3 月 14 日
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 件のコメント
Giggs B.
Giggs B. 2022 年 3 月 14 日
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!

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by