yaafe.py使用教程

Yaafe 幫助命令html

> yaafe.py -happ



可用的音頻特徵和輸出格式:ui

> yaafe.py -l.net

Available features:
 - AmplitudeModulation
 - AutoCorrelation
 - ComplexDomainOnsetDetection
 - Energy 能量
 - Envelope
 - EnvelopeShapeStatistics
 - Frames
 - LPC 線性預測係數
 - LSF 線性譜率
 - Loudness 響度
 - MFCC 梅爾係數
 - MagnitudeSpectrum
 - OBSI
 - OBSIR
 - PerceptualSharpness 尖銳度
 - PerceptualSpread
 - SpectralCrestFactorPerBand
 - SpectralDecrease
 - SpectralFlatness 譜平坦度
 - SpectralFlatnessPerBand
 - SpectralFlux
 - SpectralRolloff 譜流量
 - SpectralShapeStatistics
 - SpectralSlope
 - SpectralVariation
 - TemporalShapeStatistics
 - ZCR 過零率
Available feature transforms:
 - AutoCorrelationPeaksIntegrator
 - Cepstrum
 - Derivate
 - HistogramIntegrator
 - SlopeIntegrator
 - StatisticalIntegrator
Available Output formats:
 - csv
 - h5



用-d能夠查看描述
設計

> yaafe.py -d MFCCrest

Compute the Mel-frequencies cepstrum coefficients.

Parameters are :
- CepsIgnoreFirstCoeff (default=1): 0 means to keep the first cepstral coeffcient, 1 means to ignore it
- CepsNbCoeffs (default=13): Number of cepstral coefficient to keep.
- FFTWindow (default=Hanning): Weighting window to apply before fft. Hanning|Hamming|None
- MelMaxFreq (default=6854.0): Maximum frequency of the mel filter bank
- MelMinFreq (default=130.0): Minimum frequency of the mel filter bank
- MelNbFilters (default=40): Number of mel filters
- blockSize (default=1024): output frames size
- stepSize (default=512): step between consecutive frames



定義特徵提取的語法如:code

name: feature [param=value] [param=value] ... [> feature-transform [param=value] ... [> ...] ]

例如:orm

mfcc: MFCC blockSize=1024 stepSize=1024 CepsNbCoeffs=11
mfcc_d1: MFCC blockSize=1024 stepSize=1024 CepsNbCoeffs=11 > Derivate DOrder=1
mfcc_d2: MFCC blockSize=1024 stepSize=1024 CepsNbCoeffs=11 > Derivate DOrder=2

name用在輸出文件中表示存儲特徵數據的表,參數可選,不填則設置默認htm



提取一種特徵,能夠用語句:
ci

> yaafe -r 44100 -f "mfcc: MFCC blockSize=1024 stepSize=512" test.wav

-f選項是根據特徵定義格式來計算特徵。可能須要用到不少次-f選項。-r選項定義預期採樣率。



提取多數特徵,能夠在文件中每行寫一種特徵:

lx: Loudness
psp: PerceptualSpread
psh: PerceptualSharpness
ss: SpectralSlope
sv: SpectralVariation
sd: SpectralDecrease
sf: SpectralFlatness
sss: SpectralShapeStatistics
mfcc: MFCC blockSize=512 stepSize=256 CepsNbCoeffs=11
lpc: LPC LPCNbCoeffs=3
obsi: OBSI
obsir: OBSIR
am: AmplitudeModulation blockSize=30720 stepSize=15360


提取全部的特徵能夠用-c選項

> yaafe.py -c featureplan -r 32000 file1.wav

能夠經過多種音頻文件做爲參數傳遞給yaafe.py腳本,但你也可使用-i選項來指定每行包含一個文件名的文本文件。每一個音頻文件必須具備相同的採樣率。



yaafe提供了自動轉換輸入音頻採樣率的功能,來知足所須要的分析採樣率的可能性。這要用到smarc包,在yaafe中做爲額外的包。

默認行爲是不執行任何採樣率轉換(不一樣的採樣率的音頻文件被忽略)。爲了使輸入音頻採樣率轉換,使用--resample選項。



信號標準化

Yaafe能夠標準化的輸入信號。標準化的信號的意思是等於0和最大絕對值等於經過--normalize-MAX選項給定的值。

-n 使正常化。 --normalize-max 最大絕對值,默認爲0.98。



咱們假設上計算一個信號幀的特徵值與幀的中心的時間相關聯。當計算用的b號幀大小(塊大小)和步驟在s號幀(步驟大小)之間的特徵,幀迭代操做以下:

  • 第一幀是集中在第一信號採樣(用b / 2零左)(with b/2 zeros at left)

  • 如下幀中心信號取樣S,2 * S,3 * S等

  • 最後的幀以最後s的信號樣本爲樣本。它可能包含了最多的b / 2零右。(at most b/2 zeros at right)

例如,提取MFCC,blockSize=1024,stepSize=512超過1000的信號樣本將會有以下幀:

frame  0 : [  -512    511] -> centered on sample 0, padded with 0 on the left
frame  1 : [     0   1023] -> centered on sample 512
frame  2 : [   512   1535] -> centered on sample 1024
frame  3 : [  1024   2047] -> centered on sample 1536
...
frame 18 : [  8704   9727] -> centered on sample 9216
frame 19 : [  9216  10239] -> centered on sample 9728, padded with 0 on the right

這個幀迭代保證與同一stepSize的參數,全部功能將始終一致,即便他們有不一樣的blockSize的參數。



可使用-o選項選擇一種輸出格式。可用的輸出格式能夠列出-l選項。 CSV是默認格式。其餘輸出格式取決於編譯選項,例如HDF5。每一個輸出格式都有本身的參數,你可使用-d選項列表。要設置參數,使用-p選項。例如:

> yaafe.py -c featureplan -r 44100 audio.wav -o csv -p Precision=8 -p Metadata=False


每一個特徵都有如下數據:

sampleRate 輸入音頻文件的採樣率
blockSize 樣品的幀大小 frame size in number of sample
stepSize 樣品中連續幀的步驟 step between consecutive frames, in number of sample
version yaafe的版本,用於計算功能
inputfile 輸入文件的名稱
normalize 標準花參數(--normalize-max值),或-1,若是沒有標準化就使用
yaafedefinition yaafe特徵定義


CSV輸出格式

> yaafe.py -d csv

[csv] Creates one CSV file per feature and input file.

Parameters are:
- Metadata (default=True): If 'True' then write metadata as comments at the beginning of the csv file. If 'False', do not write metadata
- Precision (default=6): precision of output floating point number.

Yaafe輸出特徵值的CSV文件,每一個特徵建立一個CSV文件。元數據被寫入在文件開始的註釋中,可是能夠忽略參數Metadata=False



HDF5輸出格式

> yaafe.py -d h5

[h5] Creates one H5 file per input file, containing one dataset per features.

Parameters are:
- Mode (default=update): 'overwrite' force overwrite already existing dataset, 'update' overwrite already existing dataset only if feature parameters have changed, 'create' fails if dataset already exists

Yaafe輸出特徵值在一個HDF5文件中。 HDF5是設計用於大量的科學數據的高效存儲的二進制格式。 Yaafe爲每一個輸入音頻文件建立一個H5文件,並在不一樣的數據集中存儲各自提取的特徵。元數據被存儲在數據集的屬性中。

若是你正在使用MATLAB,Yaafe提供了一些Matlab的腳本從H5文件加載特徵數據。 

若是你正在使用Python,可使用h5py包操縱特徵數據(其它Python包也存在)。



-b選項能夠指定輸出文件的基本目錄

相關文章
相關標籤/搜索