yaafe.py使用教程

Yaafe 帮助命令

> yaafe.py -h


可用的音频特征和输出格式:

> yaafe.py -l

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 MFCC

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


定义特征提取的语法如:

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

例如:

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用在输出文件中表示存储特征数据的表,参数可选,不填则设置默认


提取一种特征,可以用语句:

> 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选项可以指定输出文件的基本目录

你可能感兴趣的:(yaafe.py使用教程)