Main Content

Read and Write Audio Files

Write data to an audio file, get information about the file, and then read the data back into the MATLAB® workspace.

Write to Audio File

Load sample data from the file, handel.mat

load handel.mat

The workspace now contains a matrix of audio data, y, and a sample rate, Fs.

Use the audiowrite function to write the data to a WAVE file named handel.wav in the current folder.

audiowrite("handel.wav",y,Fs)
clear y Fs

The audiowrite function also can write to other audio file formats. For a full list of viable formats, see Supported File Formats for Import and Export.

Get Information About Audio File

Use the audioinfo function to get information about the WAVE file, handel.wav.

info = audioinfo("handel.wav")
info = 
             Filename: 'pwd\handel.wav'
    CompressionMethod: 'Uncompressed'
          NumChannels: 1
           SampleRate: 8192
         TotalSamples: 73113
             Duration: 8.9249
                Title: []
              Comment: []
               Artist: []
        BitsPerSample: 16

audioinfo returns a 1-by-1 structure array. The SampleRate field indicates the sample rate of the audio data, in hertz. The Duration field indicates the duration of the file, in seconds.

Read Audio File

Use the audioread function to read the file, handel.wav. The audioread function can support other file formats. For a full list of viable formats, see Supported File Formats for Import and Export.

[y,Fs] = audioread("handel.wav");

Play the audio.

sound(y,Fs)

You also can read files interactively. Select Import Data or double-click the file name in the Current Folder browser.

Plot Audio Data

Create a vector t the same length as y, that represents elapsed time.

t = 0:seconds(1/Fs):seconds(info.Duration);
t = t(1:end-1);

Plot the audio data as a function of time.

plot(t,y)
xlabel('Time')
ylabel('Audio Signal')

Figure contains an axes object. The axes object with xlabel Time, ylabel Audio Signal contains an object of type line.

See Also

| |

Related Topics