java mfcc_语音特征提取技术——MFCC

简介

MFCC是一种语音特征提取技术,它产生与20世纪80年代。MFCC为了从人发出的音频中去除噪音和情感的影响,提取特征值便于我们进行进一步的分析。

人的发声由很多部位共同影响的结果,如嘴形、牙齿等因素,这种形状可以决定声音的输出。如果我们可以精确的确定形状,那么我们就可以对发出的因素进行科学的表示。这篇文章将带你走进MFCC技术,解释它为什么能够很好的用于语音识别领域以及如何实现它。

首先我们来确定一下如何进行MFCC的步骤:

-----1.将音频分解为帧;

-----2.对于每一帧,计算周期功率谱;

-----3.将mel滤波器应用到功率谱中,计算每个滤波器的能量和;

-----4.计算能量的对数值;

-----5.对每个对数能量进行离散余弦变换(DCT);

-----6.保留DCT的2-13个系数,其余系数舍去;

现在我们来探讨一下每一步的细节以及为什么要这么做。

一个音频信号通常是不断变化的,为了简化,我们通常假设一个较短时间内音频信号不会有较大的变化(我们指统计上),所以我们把每一帧划分成20-40ms为宜,若该时间太短,则没有足够的信号来进行功率估计;方之,若太长,则每一帧信号变化太多。

下一步是计算每一帧的周期功率谱,这个源自人的耳锅,它随声音的大小而发生不同频率的振动。通过耳锅的不同位置上的振动,不同的神经元将会通知大脑现在听到的音频频率。我们的周期图同样为我们做出这种工作,确定帧中存在哪些频率。

周期图同样存在一些ASR(Automatic Speech Recognition)不需要的信息。实际上耳锅无法辨别两个空间上相近的频率。当频率变大时,这种影响更明显。因此,我们采取周期图块,并且将它们进行累加来得知在不同频率区域的能量是多少。这个是有我们的mel滤波器完成的,第一个滤波器非常狭窄,可以告诉我们频率为0Hz附近的能量是多少,当频率渐渐变高时,我们的滤波器也会越来越宽,我们只关心每一个点能量是多少。mel级别告诉我们如何去划分滤波器以及滤波器的宽度如何选择。

一旦我们有了滤波器的能量,我们对它取对数,这也是受人类听力启发的;通常我们无法听出线性级别的音量,通常若声音扩大两倍,我们需要放入8倍的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值