Fbank特征与MFCC特征解析

详细的fbank特征介绍见Kaldi特征提取之-FBank,可以运行其MATLAB代码,然后结合这篇博客FBank与MFCC 的介绍一起看

其中需要自己注意的是:

  • FBank与MFCC特征提取的区别

fbank只是缺少mfcc特征提取的dct倒谱环节,其他步骤相同。

fbank的不足:FBank特征已经很贴近人耳的响应特性,但是仍有一些不足:FBank特征相邻的特征高度相关(相邻滤波器组有重叠),因此当我们用HMM对音素建模的时候,几乎总需要首先进行倒谱转换,通过这样得到MFCC特征。
计算量:MFCC是在FBank的基础上进行的,所以MFCC的计算量更大
特征区分度:FBank特征相关性较高,MFCC具有更好的判别度,所以大多数语音识别论文中用的是MFCC,而不是FBank

  • DCT倒谱的目的

第二篇博客FBank与MFCC 其中dct倒谱的目的描述的比较清晰,其目的是:DCT的实质是去除各维信号之间的相关性,将信号映射到低维空间。

离散余弦变换(discrete cosine transform,DCT)是傅里叶变换的一个变种,好处是结果是实数,没有虚部。DCT还有一个特点是,对于一般的语音信号,这一步的结果的前几个系数特别大,后面的系数比较小,可以忽略。上面说了一般取40个三角形,所以DCT的结果也是40个点;实际中,一般仅保留前12~20个,这就进一步压缩了数据。

  • 为什么使用CMVN?

FBank与MFCC 有介绍到为什么使用CMVN(Cepstral Mean and Variance Normalization,倒谱均值方差归一化)
原因如下:
实际情况下,受不同麦克风及音频通道的影响,会导致相同音素的特征差别比较大,通过CMVN可以得到均值为0,方差为1的标准特征。均值方差可以以一段语音为单位计算,但更好的是在一个较大的数据及上进行计算,这样识别效果会更加稳健。
CMVN的操作可以参考kaldi feature extraction,就是之前学的0-1标准化内容

  • 为什么MFCC特征提取后进行一阶差分、二阶差分操作?

是因为MFCC特征提取是针对一段语音信号进行特征提取,忽略了语音信号的动态连续性,所以使用差分操作。
具体的解释可以参考mfcc代码+一阶、二阶差分(matlab代码)末尾所说的:我们都知道MFCC很好的表达了语音的特征,但只是静态的特征。提取动态特征,一般都采用一阶二阶差分,但一阶二阶差分究竟表示什么,什么含义:

一阶差分就是离散函数中连续相邻两项之差;定义X(k),则Y(k)=X(k+1)-X(k)就是此函数的一阶差分,物理意义就是当前语音帧与前一帧之间的关系, 体现帧与帧(相邻两帧)之间的联系;在一阶差分的基础上,Z(k)=Y(k+1)-Y(k)=X(k+2)-2*X(k+1)+X(k)为此函数的二阶差分.二阶差分表示的是一阶差分与一阶差分之间的关系。即前一阶差分与后一阶差分之间的关系,体现到帧上就是相邻三帧之间的动态关系。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值