mfcc计算 java_MFCC特征提取详细计算过程

一、MFCC计算总体流程

1.信号的预处理,包括预加重(Preemphasis),分帧(Frame Blocking),加窗(Windowing)。假设语音信号的采样频率fs=8KHz.由于语音信号在10-30ms认为是稳定的,则可设置帧长为80~240点。帧移可以设置为帧长的1/2.

预加重处理其实是一个高通滤波器,该高通滤波顺的传递函数为:

其中的取值为0.97,该高通滤波器作用是滤去低频,使语音信号的高频特性更加突现。

由于语音信号只在较短的时间内呈现平稳性(一般认为

10-30ms

),(项目中每帧是24ms,48K pcm每ms 48个采样点,24 * 48 = 1152)因此将语音信号划分为一个一个的短时段即一帧。同时为避免丢失语音信号的动态信息,相邻帧之间要有一段重叠区域,重叠区域一段为帧长的

1/2

1/3

。然后再将每帧乘上窗函数,以增加每帧左端和右端的连续性。

2.对每一帧进行FFT变换,求频谱,进而求得幅度谱。

对分帧加窗后的各帧信号进行FFT变换得到各帧的频谱。并对语音信号的频谱取模平方得到语音信号的功率谱。

3.对幅度谱加Mel滤波器组(Mel滤波器组设计问题)。

4.对所有的滤波器输出做对数运算(Logarlithm),再进一步做离散余弦变换DCT可得MFCC。做对数运算是为了

调到分贝(dB)域(也是为了模拟人耳),DCT是为了压缩。只用20个coefficients表示,阔以重建mfcc(dB)。

图1:DCT压缩前的MFCC in dB

图2为DCT系数矩阵、DCT压缩后、DCT重建

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值