语音识别算法原理文档整理-.docx

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
个人不做这一块了,把自己做的工程中的东西整理一下发出来

语音算法原理介绍 MFCC提取过程 声音是模拟信号,声音的时域波形只代表声压随时间变化的关系,不能很好的代表声音的特征,因此,必须将声音波形转换为声学特征向量。目前有许多声音特征提取方法,如梅尔频率倒谱系数MFCC、线性预测倒谱系数LPCC、多媒体内容描述接口MPEG7等,其中MFCC是基于倒谱的,更符合人的听觉原理,因而是最普遍、最有效的声音特征提取算法。在提取MFCC前,需要对声音做前期处理,包括模数转换、预加重和加窗。 模数转换就是把模拟信号转换为数字信号,包括两个步骤:采样和量化,即以一定的采样率和采样位数把声音连续波形转换为离散的数据点。由于日常生活中的声音一般都在8kHz以下,根据Nyquist定律,16kHz采样率足以使得采样出来的数据包含大多数声音信息。16kHz意味着1s的时间内采样16k个样本,这些样本都是以幅度值存储,为了有效存储幅度值,需要将其量化为整数。对于16位采样位数来说,可以表示-32768~32767之间的整数值,所以可以将采样幅度值量化为最近的整数值。 采样和量化后的波形表示为x[n],其中n是时间索引。然后可以对x[n]做MFCC特征提取, \o "算法与数据结构知识库" 算法流程图如图: 一、预加重? MFCC特征提取的第一步是增加声音高频部分的能量。对于声音信号的频谱来说,往往低频部分的能量高于高频部分的能量,每经过10倍Hz,频谱能量就会衰减20dB,为了消除发生过程中声带和嘴唇的效应,来补偿语音信号受到发音系统所抑制的高频部分,此外为使高频部分的能量和低频部分能量有相似的幅度,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱,则需要提升高频部分的能量。加强高频部分的能量能使声学模型更好的利用高频共振峰,从而提高识别准确率。 预加重可以通过一个一阶高通滤波器实现,在时域,如果输入信号是x[n],并且式中μ的值介于0.9-1.0之间,我们通常取0.97,滤波器表示为y[n]=x[n]- μx[n-1];在频域则表示为: 二、分帧加窗 ?? 先将N个采样点集合成一个观测单位,称为帧。通常情况下N的值为256或512,涵盖的时间约为20~30ms左右。为了避免相邻两帧的变化过大,因此会让两相邻帧之间有一段重叠区域,此重叠区域包含了M个取样点,通常M的值约为N的1/2或1/3。通常语音识别所采用语音信号的采样频率为8KHz或16KHz,以8KHz来说,若帧长度为256个采样点,则对应的时间长度是256/8000×1000=32ms。 日常生活中的声音一般是非平稳信号,其统计特性不是固定不变的,但在一段相当短的时间内,可以认为信号是平稳的,这就是加窗。窗由三个参数来描述:窗长(单位毫秒)、偏移和形状。每一个加窗的声音信号叫做一帧,每一帧的毫秒数叫做帧长,相邻两帧左边界的距离叫帧移。 从信号s[n]中提取一帧的过程可表示为y[n]=w[n]s[n],如果w[n]是矩形窗,则信号会在边界处切断,这些不连续会对傅里叶分析造成影响。因此在MFCC中,加窗一般使用边缘平滑降到0的汉明窗,表达式如下: ? ? ? ?? 其中L为帧长。 三、离散傅里叶变换 由于信号在时域上的变换通常很难看出信号的特性,所以通常将它转换为频域上的能量分布来观察,不同的能量分布,就能代表不同语音的特性。所以在乘上汉明窗后,每帧还必须再经过快速傅里叶变换以得到在频谱上的能量分布。对分帧加窗后的各帧信号进行快速傅里叶变换得到各帧的频谱。并对语音信号的频谱取模平方得到语音信号的功率谱。设语音信号的DFT为: ? ? ? ?? ?式中x[n]为输入的语音信号,N表示傅里叶变换的点数。 计算DFT常用的一个算法是快速傅里叶变换(FFT),它非常高效但是一般要求N是2的幂。 四、?Mel滤波器组 FFT的结果包含此帧信号在每一频带的能量信息。但是,人耳听觉对不同频带的敏感度是不同的,人耳对高频不如低频敏感,这一分界线大约是1000Hz,在提取声音特征时模拟人耳听觉这一性质可以提高识别性能。在MFCC中的做法是将FFT输出的频率对应到mel刻度上。一mel是一个音高单位,在音高上感知等距的声音可以被相同数量的mel数分离。频率(单位Hz)和mel刻度之间的对应关系在1000Hz以下是线性的,在1000Hz以上是对数的,其计算公式如下: ? ? ? ??? ? 式中f为频率,单位为Hz。下图展示了Mel频率与线性频率的关系: 在计算MFCC时,将FFT频谱通过一组mel滤波器组就可以转换为mel频谱。Mel滤波器组一般是一组mel刻度的三角形滤波器组,1000Hz以下的10个滤波器线性相隔,1000Hz以上的剩余滤波器对数相隔。定义一个有M个滤波器的滤波器组,采用的滤波器为三角滤波器,中心频率为f(m),m=

您可能关注的文档

文档评论(0)

机械中的AI混子 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档