Clear Filters
Clear Filters

How to audiowrite a soundfile from m4a to wav?

14 views (last 30 days)
Hello!
I want to write an audiofile from m4a to wav? I thought it was easy, but I miss something I guess..
This is what I'm doing:
load hoi.m4a
filename='hoi.wav'
audiowrite(filename, y, Fs)
This is what the help function says, but what am I supposed to fill in on y and Fs?
Thanks!

Accepted Answer

Geoff Hayes
Geoff Hayes on 5 Jul 2016
Laura - I think that you want to use audioread first as
m4AFilename = 'hoi.m4a';
[y,Fs] = audioread(m4AFilename);
and then write it as a wav file using audiowrite as
wavFilename = 'hoi.wav';
audio write(wavFilename,y,Fs);
Try the above and see what happens!
  3 Comments
Laura Sels
Laura Sels on 7 Jul 2016
Edited: Geoff Hayes on 7 Jul 2016
Now I want to audiowrite and save not from a m4a or wav file but from a recorded file in matlab. How can I do that, because this does not work..
% record some speech (chien):
r= audiorecorder;
disp('Start speaking.')
recordblocking(r, 5);
disp('End of Recording.');
% Play back the recording.
play(r);
% Store data in double-precision array.
myRecording = getaudiodata(r);
% write the recording in a wav file
filename='chien.wav';
audiowrite(filename, y, Fs);
[y, Fs] = audioread(filename);
Geoff Hayes
Geoff Hayes on 7 Jul 2016
Laura - presumably it isn't working because you haven't defined the y and Fs and so the line
audiowrite(filename, y, Fs);
fails. Is that correct? If so, then you need to define them
y = getaudiodata(r);
Fs = get(r,'SampleRate');

Sign in to comment.

More Answers (1)

Thorsten
Thorsten on 5 Jul 2016
Use audioread to read the m4a. audioread returns y and Fs, and you can pass these to audio write:
[y, Fs] = audioread('hoi.m4a');
audiowrite('hoi.wav', y, Fs)
  1 Comment
Laura Sels
Laura Sels on 6 Jul 2016
Thank you! I forgot the audioread! And I had a not working soundfile but now it works!

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!