matlab之“audioread”函數幫助文檔翻譯
課 程 設 計 (1)
原文
audioread
Read audio file
Syntax
[y,Fs] = audioread(filename)
[y,Fs] = audioread(filename,samples)
[y,Fs] = audioread(___,dataType)
Description
[
reads data from the file namedy
,Fs
] = audioread(filename
)filename
, and returns sampled data,y
, and a sample rate for that data,Fs
.
[
reads the selected range of audio samples in the file, wherey
,Fs
] = audioread(filename
,samples
)samples
is a vector of the form[start,finish]
.
[
returns sampled data in the data range corresponding to they
,Fs
] = audioread(___,dataType
)dataType
of‘native‘
or‘double‘
, and can include any of the input arguments in previous syntaxes.Examples
Read Complete Audio File
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.
sound(y,Fs);
Read Portion of Audio File
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.
sound(y,Fs);
Return Audio in Native Integer Format
Create a FLAC file and read the first 2 seconds according to the previous Example. Then, view the data type of the sampled data
y
.whos y
Name Size Bytes Class Attributes y 16384x1 131072 double
The data type of
y
isdouble
.Request audio data in the native format of the file, and then view the data type of the sampled data
y
.[y,Fs] = audioread(filename,‘native‘); whos y
Name Size Bytes Class Attributes y 16384x1 32768 int16
The data type of
y
is nowint16
.Input Arguments
filename
— Name of file to readstringName of file to read, specified as a string that includes the file extension. If a path is specified, it can be absolute, relative or partial.
Example:
‘myFile.mp3‘
Example:
‘../myFile.mp3‘
Example:
‘C:\temp\myFile.mp3‘
audioread
supports the following file formats.
Platform Support File Format All platforms WAVE ( .wav
)OGG ( .ogg
)FLAC ( .flac
)AU ( .au
)AIFF ( .aiff
,.aif
)AIFC ( .aifc
)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 on Windows 7 or later, Macintosh, and Linux, and from Windows Media Video (.wmv
) and AVI (.avi
) files on Windows 7 (or later) and Linux platforms.
samples
— Audio samples to read[1,inf]
(default) | two-element vector of positive scalar integersAudio samples to read, specified as a two-element vector of the form
[start,finish]
, wherestart
andfinish
are the first and last samples to read, and are positive scalar integers.
start
must be less than or equal tofinish
.
start
andfinish
must be less than the number of audio samples in the file,You can use
inf
to indicate the last sample in the file.
Note: When reading a portion of some MP3 files on Windows 7 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
dataType
— Data format of audio data,y
‘double‘
(default) |‘native‘
Data format of audio data,
y
, specified as one of the following strings:
‘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‘
.Output Arguments
y
— Audio datamatrixAudio data in the file, returned as an
m
-by-n
matrix, wherem
is the number of audio samples read andn
is the number of audio channels in the file.
If you do not specify
dataType
, ordataType
is‘double‘
, theny
is of typedouble
, and matrix elements are normalized values between ?1.0 and 1.0.If
dataType
is‘native‘
, theny
can be one of several MATLAB data types, depending on the file format and theBitsPerSample
value of the input file. Callaudioinfo
to determine theBitsPerSample
value of the file.
File Format BitsPerSample Data Type of y Data Range of y WAVE ( .wav
)8 uint8
0 ≤ y
≤ 25516 int16
-32768 ≤ y
≤ +3276724 int32
-2^32 ≤ y
≤ 2^32–132 int32
-2^32 ≤ y
≤ 2^32–132 single
-1.0 ≤ y
≤ +1.064 double
-1.0 ≤ y
≤ +1.0FLAC ( .flac
)8 uint8
0 ≤ y
≤ 25516 int16
-32768 ≤ y
≤ +3276724 int32
-2^32 ≤ y
≤ 2^32–1MP3 ( .mp3
), MPEG-4 AAC (.m4a
,.mp4
), OGG (.ogg
), and certain compressed WAVE filesN/A single
-1.0 ≤ y
≤ +1.0
Note: Where
y
issingle
ordouble
and theBitsPerSample
is 32 or 64, values iny
might exceed ?1.0 or +1.0.
Fs
— Sample ratepositive scalarSample rate, in hertz, of audio data
y
, returned as a positive scalar.Limitations
For MP3, MPEG-4 AAC, and AVI audio files on Windows 7 or later and Linux platforms,
audioread
might read fewer samples than expected. On Windows 7 platforms, this is due to a limitation in the underlying Media Foundation framework. On Linux platforms, this is due to a limitation in the underlying GStreamer framework. If you require sample-accurate reading, work with WAV or FLAC files.On Linux platforms,
audioread
reads MPEG-4 AAC files that contain single-channel data as stereo data.
翻譯
調用結構&描述
[y, Fs] =audioread(filename)
從以“filename”為文件名的文件中讀取數據,並返回抽樣數據y和此數據的抽樣率Fs 。
[y, Fs] =audioread(filename, samples)
以選定範圍從文件中讀取音頻樣本,其中 samples 是具有[start, finish]形式的向量。
[y, Fs] =audioread( ____, dataType)
返回數據域中與 dataType 相對應的采樣數據,dataType 可選“native(本地類型)”或“double(雙精度型)”。
例子
可以自己從本地音樂裏面選擇音樂來測試。但是建議適當縮減音頻長度,不然計算量會比較大,有可能卡死電腦。剪輯音頻可以使用“格式工廠”,它也能用來轉換文件格式。
輸入 1、對於輸入文件,表中給的信息已經很詳細了,".wav"格式的音頻是一定支持的,通用的".mp3"格式在win7以上及Linux系統上都是可以讀取的。
2、 對於輸入參數 samples ,在第一種調用結構中其實是隱藏了 [1, inf] 的默認samples參數,意思是從文件頭讀到文件尾。在第二種調用格式裏面我們可以指定讀取的參數範圍。要註意 start, finish 兩個參數都是正整數,而且他們的大小不能超出抽樣個數。這個很容易理解,超出了源文件的抽樣範圍就不可能有數據。在使用中,可以用 [start, inf] 表示從 start 讀到文件尾。
註意:當在win7平臺上讀取MP3以及在Linux上讀取MP3&M4A格式文件時,可能會出現讀取範圍轉移的現象,這是由於底層Windows Media Foundation框架的局限性造成的。
3、dataType有兩種取值,native 或 double 。默認情況下,native 為單精度類型 single 。
輸出
y 為音頻數據,是一個mxn 的矩陣,m是讀取文件的抽樣個數,n是讀取文件的音頻信道個數。
· 在未明確 dataType 和 dataType 取 double 時,y 的類型也是 double。y 的元素為值介於-1.0和1.0之間的規範化值。
· 如果 dataType 取 native,y 可以為matlab所允許的幾種數據類型之一。至於為哪一種類型取決於輸入文件的類型,這種對應關系在上面給出的表中。
註意:當 y 為單精度或雙精度數, 且 BitPerSample 為32或64時,y 的值有可能超出 -1.0~1.0。
局限
· 對於 MP3, MPEG-4 AAC, AVI音頻文件,在win7及更高版本和Linux平臺上,有可能會出現抽樣個數比預期要少的現象。
· 在Linux上讀取MPEG-4 AAC文件時,即使是單聲道數據文件,也會當成立體聲文件來讀。
matlab之“audioread”函數幫助文檔翻譯