博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
yaafe.py使用教程
阅读量:6906 次
发布时间:2019-06-27

本文共 4690 字,大约阅读时间需要 15 分钟。

hot3.png

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 - StatisticalIntegratorAvailable 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=11mfcc_d1: MFCC blockSize=1024 stepSize=1024 CepsNbCoeffs=11 > Derivate DOrder=1mfcc_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: Loudnesspsp: PerceptualSpreadpsh: PerceptualSharpnessss: SpectralSlopesv: SpectralVariationsd: SpectralDecreasesf: SpectralFlatnesssss: SpectralShapeStatisticsmfcc: MFCC blockSize=512 stepSize=256 CepsNbCoeffs=11lpc: LPC LPCNbCoeffs=3obsi: OBSIobsir: OBSIRam: AmplitudeModulation blockSize=30720 stepSize=15360

提取所有的特征可以用-c选项

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

可以通过多种音频文件作为参数传递给yaafe.py脚本,但你也可以使用-i选项来指定每行包含一个文件名的文本文件。每个音频文件必须具有相同的采样率。


yaafe提供了自动转换输入音频采样率的功能,来满足所需要的分析采样率的可能性。这要用到包,在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 leftframe  1 : [     0   1023] -> centered on sample 512frame  2 : [   512   1535] -> centered on sample 1024frame  3 : [  1024   2047] -> centered on sample 1536...frame 18 : [  8704   9727] -> centered on sample 9216frame 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选项可以指定输出文件的基本目录

转载于:https://my.oschina.net/u/1046919/blog/406490

你可能感兴趣的文章
bzoj3946: 无聊的游戏
查看>>
CentOS上安装Git服务器
查看>>
斐波那契数列
查看>>
Codeforces 534B - Covered Path
查看>>
AJAX 一些常用方法
查看>>
使用ifstream和getline读取文件内容[c++]
查看>>
洛谷 P2391 白雪皑皑(并查集)
查看>>
修改dedecms中某个页面ueditor的宽度
查看>>
String为什么要设置成Final类型
查看>>
paper
查看>>
生成XML文件,并保存到本地文件
查看>>
[TUTORIAL]How to setup SP_Flash_Tool_Linux (MTK/MediaTek Soc)
查看>>
[C++]const、typedef联合使用注意
查看>>
JavaScript引用类型之Array数组的栈方法与队列方法
查看>>
银行转账亲测
查看>>
上海租房攻略
查看>>
【Python爬虫学习笔记3】requests库
查看>>
Spring boot(四)Spring Boot 集成 MyBatis
查看>>
win7重装系统
查看>>
转:【高并发简单解决方案】redis缓存队列+mysql 批量入库+php离线整合
查看>>