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選項能夠指定輸出文件的基本目錄