audioread - Read audio file - MATLAB (original) (raw)

Syntax

Description

[[y](#btiabil-1-y),[Fs](#btiabil-1-Fs)] = audioread([filename](#btiabil-1-filename)) reads data from the file named filename, and returns sampled data, y, and a sample rate for that data, Fs.

example

[[y](#btiabil-1-y),[Fs](#btiabil-1-Fs)] = audioread([filename](#btiabil-1-filename),[samples](#btiabil-1-samples)) reads the selected range of audio samples in the file, where samples is a vector of the form [start,finish].

example

[[y](#btiabil-1-y),[Fs](#btiabil-1-Fs)] = audioread(___,[dataType](#btiabil-1-dataType)) returns sampled data in the data range corresponding to the dataType of 'native' or 'double', and can include any of the input arguments in previous syntaxes.

example

Examples

collapse all

Create a WAVE file from the example file handel.mat, and read the file back into MATLAB®.

Create a WAVE (.wav) file in the current folder.

load handel.mat

filename = 'handel.wav'; audiowrite(filename,y,Fs); clear y Fs

Read the data back into MATLAB using audioread.

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

Play the audio.

Create a FLAC file from the example file handel.mat, and then read only the first 2 seconds.

Create a FLAC (.flac) file in the current folder.

load handel.mat

filename = 'handel.flac'; audiowrite(filename,y,Fs);

Read only the first 2 seconds.

samples = [1,2*Fs]; clear y Fs [y,Fs] = audioread(filename,samples);

Play the samples.

Create a .flac file, read the first 2 seconds of the file and then return audio in the native integer format.

Create a FLAC (.flac) file in the current folder.

load handel.mat filename = 'handel.flac'; audiowrite(filename,y,Fs);

Read only the first 2 seconds and specify the data and view the datatype of the sampled data y. The data type of y is double.

samples = [1,2*Fs]; clear y Fs [y,Fs] = audioread(filename,samples); whos y

Name Size Bytes Class Attributes

y 16384x1 131072 double

Request audio data in the native format of the file, and then view the data type of the sampled data y. Note the new data type of y.

[y,Fs] = audioread(filename,'native'); whos y

Name Size Bytes Class Attributes

y 73113x1 146226 int16

Input Arguments

collapse all

Name of file to read, specified as a character vector or string scalar that includes the file extension.

Depending on the location of your file, filename can take on one of these forms.

Current folder Specify the name of the file infilename.Example: 'sample_audio.wav'
Other folders If the file is not in the current folder or in a folder on the MATLAB® path, then specify the full or relative path name infilename.Example: 'C:\myFolder\myFile.sample_audio.wav'Example: 'myFolder\sample_audio.mp3'
Internet URL If the file is specified as an internet uniform resource locator (URL), thenfilename must contain the protocol type 'http://' or'https://'.Example: 'http://hostname/path\_to\_file/sample\_audio.mp3'
Remote Location If the file is stored at a remote location, then filename must contain the full path of the file specified with the form:scheme_name://path_to_file/_my_file.ext_Based on the remote location, scheme_name can be one of the values in this table. Remote Locationscheme_nameAmazon S3™s3Windows Azure® Blob Storagewasb,wasbsHDFS™hdfsFor more information, see Work with Remote Data.Example: 's3://bucketname/path_to_file/sample_audio.mp3'

Example: 'myFile.mp3'

Example: '../myFile.mp3'

Example: 'C:\temp\myFile.mp3'

audioread supports the following file formats.

Platform Support File Format
All platforms AIFC (.aifc)
AIFF (.aiff, .aif)
AU (.au)
FLAC (.flac)
OGG (.ogg)
OPUS (.opus)
WAVE (.wav)
Windows® 7 (or later), Macintosh, and Linux® MP3 (.mp3)
MPEG-4 AAC (.m4a, .mp4)

On Windows platforms prior to Windows 7,audioread does not read WAVE files with MP3 encoded data.

On Windows 7 (or later) platforms, audioread might also read any files supported by Windows Media® Foundation.

On Linux platforms, audioread might also read any files supported by GStreamer.

audioread can extract audio from MPEG-4 (.mp4, .m4v) video files onWindows 7 or later, Macintosh, and Linux, and from Windows Media Video (.wmv) and AVI (.avi) files on Windows 7 (or later) and Linux platforms.

Data Types: char | string

Audio samples to read, specified as a two-element vector of the form [start,finish], where start and finish are the first and last samples to read, and are positive scalar integers.

Note

When reading a portion of some MP3 files on Windows 7 or Windows 10 platforms, audioread might read a shifted range of samples. This is due to a limitation in the underlying Windows Media Foundation framework.

When reading a portion of MP3 and M4A files on Linux platforms, audioread might read a shifted range of samples. This is due to a limitation in the underlying GStreamer framework.

Example: [1,100]

Data Types: double

Data format of audio data, y, specified as one of the following:

'double' Double-precision normalized samples.
'native' Samples in the native format found in the file.

For compressed audio formats, such as MP3 and MPEG-4 AAC that do not store data in integer form, 'native' defaults to 'single'.

Data Types: char | string

Output Arguments

collapse all

Audio data in the file, returned as an m-by-n matrix, where m is the number of audio samples read and n is the number of audio channels in the file.

Note

Where y is single or double and the BitsPerSample is 32 or 64, values in y might exceed −1.0 or +1.0.

Sample rate, in hertz, of audio data y, returned as a positive scalar.

Limitations

Extended Capabilities

Version History

Introduced in R2012b

expand all

You can read Ogg Opus audio files.

You can run audioread in the background using MATLABbackgroundPool.

You can read audio files from an internet URL by specifyingfilename as a string or character vector that contains the protocol type 'http://' or 'https://'.

You can read audio files stored in remote locations, such as Amazon S3, Windows Azure Blob Storage, and HDFS.