Hello, I have to read a Audio File (.wav) into a vector.
I know how to plot it:
info = audioinfo('sound.wav');
[y, Fs] = audioread('sound.wav');
t = 0:1/Fs:info.Duration;
t = t(1:end-1);
plot(t,y);
xlabel('Time');
ylabel('Audio Signal');
But this Sript does not read the Audio into a Vector.
I also tried to read every single Sample, but this is to complex and I get error after error. Is there a simple way to do this?

2 件のコメント

Cris LaPierre
Cris LaPierre 2020 年 7 月 15 日
It would be helpful if you could share the error messages as well as your sound.wav file.
dieter alfred
dieter alfred 2020 年 7 月 15 日
Sorry, I cannot upload the file, because the forum doesnt accept the .wav filetype. And I have already deleted the code with the error messages. But next time I will upload everything.

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

 採用された回答

Sugar Daddy
Sugar Daddy 2020 年 7 月 15 日
編集済み: Sugar Daddy 2020 年 7 月 15 日

1 投票

[y, Fs] = audioread('sound.wav');
sound_duration = length(y)/Fs;
t = 0:1/Fs:sound_duration;
t = t(1:end-1);
%%
soundsc(y,Fs);
%%
plot(t,y);
xlabel('Time');
ylabel('Audio Signal');

3 件のコメント

dieter alfred
dieter alfred 2020 年 7 月 15 日
Thank you very much for your answer.
bob bob
bob bob 2024 年 12 月 21 日
Any idea on how to reduce the # of points? I am trying to get the SVG to use in a graphic design setting so I will be altering the shape more in Illustrator but I would like to reduce the point by quite a bit
Walter Roberson
Walter Roberson 2025 年 12 月 29 日
I suggest using resample
If you do not have the Signal Processing Toolbox, then you could instead try using imresize

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

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2025 年 12 月 29 日

0 投票

An audio file would not be read into a vector in the case where the audio file had multiple channels.
%approach #1
[y, Fs] = audioread('sound.wav');
y = y(:,1); %take the left channel only
t = (0:length(y)-1)/Fs;
%approach #2
[y, Fs] = audioread('sound.wav');
y = mean(y,2); %average all channels
t = (0:length(y)-1)/Fs;
Note that the code
t = 0:1/Fs:info.Duration;
t = t(1:end-1);
could result in a time vector that was one element too long or too short because of round-off errors in accumulating the 1/Fs in the colon operation.

カテゴリ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by