研讨性学习报告随机过程理论在语音识别中的应用第一章语音识别总述1.1语音识别技术简介语音识别技术就是让机器通过识别和理解过程,把语音信号转变为相应的文本或命令的技术。在当下流行的即时通讯软件(如:微信、QQ等)里,语音识别技术得到了非常广泛的应用。当对方发来一段语音信息而自己不方便收听时便可以使用语音转化功能将语音信息转化成文字信息。此外,在许多输入法(如:讯飞输入法)中也可以使用语音输入功能。用户只需要对着麦克风说话,输入法便可以将语音转换为文字填入输入框,在方便用户的同时也提高了文字输入效率。语音识别涉及的领域包括:数字信号处理、声学、语音学、计算机科学、心理学、人工智能等,是一门涵盖多个学科领域的交叉科学技术。语音识别的技术原理是模式识别,其一般过程可以总结为:预处理、特征提取、基于语音模型库下的模式匹配、基于语言模型库下的语言处理、完成识别。图1.0.1语音识别过程第二章预处理声音的实质是波。在现如中得到广泛应用的音频文件格式(如:mp3等)都经过了压缩无法直接识别。语音识别所使用的音频文件格式必须是未经压缩处理的wav格式文件。下图是一个波形示例。研讨性学习报告图2.0.2语音波形示例有了声波源文件输入便可以按照图2.1.1所示的各个步骤进行识别。2.1静音切除如图2.1.2所示,在得到的声波信号输入中需要实际处理的信号并不一定占满整个时域,会有静音和噪声的存在。因此,必须先对得到的输入信号进行一定的预处理,消去静音的部分并且滤除噪声的干扰才能对实际需要处理的有效语音进行识别。噪声处理部分本文已在上文进行过讨论,这里不再赘述。去除静音需要用到VAD算法,本文对其做简单介绍。2.1.1VAD算法VAD算法全称为VoiceActivityDetection,又称语音边界检测。其可实现的功能有对语音信号进行打断、去除语音信号中的静音部分从而获取有效语音,还可以去除一部分噪声对后续语音识别过程造成的干扰。VAD主要是对输入语音信号的一些时域或频域特征判断其是否属于静音部分。本文只对这些参数做简要介绍,具体算法不属于本文重点因而不在此做细致讨论。2.1.2时域参数时域参数是通过对输入信号在时域上的特征参量进行区分。在信噪比较高的环境下使用时域参数进行区分效果显著。1.相关性分析通过对足够短的时间范围内的语音信号进行相关性检测可以初步判定该时间范围内的信号是否属于静音部分。在实际应用中,静音的部分实际上会混有各种各样的噪声,因此并非绝对意义上静音。噪声在各个时间范围内的相关性比较低,而人说话的语音相关性则比较强。因此,在高信噪比的条件下区分成功率很研讨性学习报告高。然而,由于噪声多种多样,因此相关性分析只适用于区分小部分噪声与语音,这是其局限性所在。2.时域能量静音部分的噪声能量相较于有效语音能量而言要少得多,因此可以通过比较短时间范围内的输入信号能量来判定该段信号是否输入静音部分。而在实际生活中,会出现高能量噪声的情况,此时再用时域能量参数就显得爱莫能助。.3.2.1.2频域参数频域参数的抗噪性能要优于时域参数,但是由于需要用到傅立叶变换等变换方法进行分析域转换,因此相应的计算复杂度较高,花费时间也较长。1.谱熵熵本是源于热力学的参数,用于描述系统的混乱度。在信息论中用于描述信息源的不确定性。图2.1.1噪声谱图2.1.2语音谱在实际应用中,噪声谱较为平坦,谱熵较大。而语音能量集中在低频段,谱熵较小,因此可通过谱熵来判断信号属于噪声还是有效语音。谱熵的可靠性不会受信号大小的影响,其大小只与信噪比有关。2.自适应子带即使在很低的信噪比下,语音帧仍然具有较高信噪比的子带,而噪声帧却没有。因此可以根据每帧信号的最小频带所占的该帧总能量的概率来自适应选择子带的多少。2.2分帧2.2.1分帧简介研讨性学习报告如图2.0.2的有效语音信号波形在时域上是无法对其进行识别的的。因此必须算出有效语音信号在频域上的分布情况,因而需要对有效语音信号做傅立叶变换从而得到其在频域上的分布情况。图2.2.1有效语音信号波形图傅立叶变换的前提是输入信号是平稳的,而如图2.2.1所示的有效语音信号的前三分之一和后三分之二明显不一样,这是由于发音者的发音姿态变换而导致的,所以整体来看语音信号不平稳。但如果取适量小的时间范围内(如图中矩形框圈出的时间范围),仅在该时间范围内做分析的话,发声者的发声姿态基本不变,语音信号就可以看成平稳的,就可以截取出来做傅立叶变换了。将有效语音信号的截取成一帧一帧的平稳信号的过程就称为分帧。2.2.1分帧时长由上述的讨论可知,通过分帧操作所得到的每一帧信号需满足如下两个条件:1.它必须足够短来保证帧内信号是平稳的。上文提到过,发音者发音姿态的变化是导致信号不平稳的原因,所以在一帧的期间内发音姿态不能有明显变化。即一帧的长度应当小于一个音素的长度。正常语速下,音素的持续时间大约是50至200ms,所以帧长一般取为小于50ms。2.每一帧信号又必须包括足够多的振动周期,因为傅立叶变换是对信号的频域进行分析,只有每一个频率成分在时域重复振动足够多次才能分析频率。语音的基频,男声在100Hz左右,女声在200Hz左右,换算成周期就是10ms和5ms。既然一帧要包含多个周期,所以一般取至少20ms。通过以上的讨论,帧长一般取为20至50ms,20、25、30、40、50都是比较常用的数值。2.3加窗为了提高傅立叶变换所得频谱的分辨率,取出来的一帧信号,在做傅立叶变换之前,要先进行加窗的操作,即与一个窗函数相乘,如图2.3.1所示。研讨性学习报告图2.3.1(a)原信号图2.3.1(b)汉明窗函数图2.3.1(c)加窗处理结果加窗的目的是让一帧信号的幅度在两端渐变到0从而提高傅立叶变换结果频谱的分辨率。由加窗处理过程可以看出,信号两端的部分被逐渐削弱至0,因此在该帧信号中无法计入频谱。在实际处理时,往往通过不同帧之间进行重叠来弥补加窗处理带来的损失。图2.3.2重叠分帧如图2.2.1所示,每一帧信号时长为25ms,以10ms作为帧移取下一段信号。由此第一帧信号后15ms的波形便会在下一帧信号前15ms中出现。2.4傅立叶变换对一帧信号做傅立叶变换,得到信号频谱如下:研讨性学习报告图2.4.1信号频谱图如图2.4.1,从信号频谱图中可知该帧语音信号呈现出的精细结构和包络两种模式。平滑连接每一个精细结构的小峰便得到包络。又由包络可以得到共振峰,图中能看出四个,分别在500、1700、2450、3800Hz附近。它代表了发音者的口型,对此特征进行提取便可只发音者发出的是哪个音。第三章声学特征提取人通过声道产生声音,声道的形状决定了发出怎样的声音。声道的形状包括舌头,牙齿等。如果我们可以准确的知道这个形状,那么我们就可以对产生的音素进行准确的描述。声道的形状在语音短时可以由功率谱的包络中显示出来。因此,准确描述这一包络的特征就是声学特征识别步骤的主要功能。接收端接收到的语音信号经过上文的预处理以后便得到有效的语音信号,对每一帧波形进行声学特征提取便可以得到一个多维向量。这个向量便包含了一帧波形的内容信息,为后续的进一步识别做准备。本文主要介绍使用最多的MFCC声学特征。3.1MFCC简介MFCC(MelFrequencyCepstrumCoefficient)特征是基于人耳对声音的敏感特性而提出的。人耳听声音时,耳蜗相当于一组滤波器。当声音频率在1KHz以下时,人耳的感知能力与频率成线性关系,但在1KHz以上时,人耳的感知能力与声音频率更接近对数关系。这也就解释了为什么人耳对于低频声音的感知比高频声音更敏感。MFCC是Mel频率倒谱系数的缩写。Mel频率是基于人耳听觉特性提出来的,其计算公式为:)7001(log259510fm它与Hz频率成非线性对应关系。Mel频率研讨性学习报告倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征。由于Mel频率与Hz频率之间非线性的对应关系,使得MFCC随着频率的提高,其计算精度随之下降。因此,在应用中常常只使用低频MFCC,而丢弃中高频MFCC。3.2MFCC的一般过程MFCC特征提取的一般过程如下:图3.2.1MFCC特征提取的一般过程图中的分帧加窗以及FFT已经在预处理部分中提到,这里不再赘述。3.2.1Mel滤波器组假设原信号经过预加重、分帧加窗后的DFT为NkenxkXNnNkja0,)()(102π式中x(n)为输入的语音信号,N表示傅立叶变换的点数。式中x(n)为输入的语音信号,N表示傅立叶变换的点数。将能量谱通过一组Mel尺度的三角形滤波器组,定义一个有M个滤波器的滤波器组(滤波器的个数和临界带的个数相近),采用的滤波器为三角滤波器,中心频率为。M通常取22-26。各)(mf之间的间隔随着m值的减小而缩小,随着m值的增大而增宽,如图所示:研讨性学习报告图3.2.2Mel频率滤波器组三角滤波器的频率响应定义为:式中:101)(MmmkH此处使用三角带通滤波器有两个目的:第一、使得到的频谱变得平滑,并且可以去除谐波的干扰从而凸显出原语音信号的共振峰。因此,一段语音的音调并不会由MFCC特征表示出来。换句话说,语音信号的音调不会对MFCC的参数产生影响。第二、可以有效减少运算量。计算每个滤波器组输出的对数能量为:MmkHkXmsNkma0],)(|)(|ln[)(102经离散余弦变换(DCT)得到MFCC系数:LnMmnmsnCNm,...,2,1,))5.0(cos()()(10将上述的对数能量带入离散余弦变换,求出L阶的Mel-scaleCepstrum参数。L阶指MFCC系数阶数,通常取12-16。这里M是三角滤波器个数。3.2.2对数能量语音信号的能量表现为音量的大小,每一帧信号的能量也是语音信号的一个重要特征,而这个参数非常容易计算得到,因此,通常在已经得到的参数基础上再加上一帧的对数能量。对数能量的定义为:)(log10E10一帧内信号的平方和如此就使得每一帧语音信号特征向量又多了一个维度。在此阶段也可加入其它语音特征。例如:音高、过零率以及共振峰等。研讨性学习报告3.2.3动态差分参数的提取(包括一阶差分和二阶差分)标准的倒谱参数MFCC只反映了语音参数的静态特性,语音的动态特性可以用这些静态特征的差分谱来描述。实验证明:把动、静态特征结合起来才能有效提高系统的识别性能。差分参数的计算可以采用下面的公式:式中,td表示第t个一阶差分;tC表示第t个倒谱系数;Q表示倒谱系数的阶数;K表示一阶导数的时间差,可取1或2。将上式中结果再代入就可以得到二阶差分的参数。3.2.4特征提取结果总而言之,MFCC的全部组成其实是:N维MFCC参数(N/3MFCC系数+N/3一阶差分参数+N/3二阶差分参数)+帧能量(此项可根据需求替换)声音信号经过MFCC特征提取后便可得到描述其内容信息特征的向量。为方便后续说明,我们假设经过特征提取后每一帧的信号都变换为一个12维的向量,并用色块颜色的深浅来表示向量值的大小。图3.2.3原波形研讨性学习报告图3.2.4信号声学特征图第四章模式匹配模式匹配也即是解码过程。它是对上文得到的经过处理的声音信号与已有的语音模型库进行匹配以达到识别的目的。经过特征识别,我们已经得到了描述声音内容信息特征的向量。接下来的解码过程就是在给定语音模型的情况下,找到最可能对应的发音的过程。图4.0.1语音识别全过程本文主要介绍隐马尔科夫模型在模式匹配环节中的作用。4.1马尔科夫模型与隐马尔科夫模型按照维基百科的说法,到目前为止语音识别的技术都没有脱离隐马尔可夫模型框架。可见隐马尔科夫模型在语音识别中的重要性。为了透彻阐述隐马尔科夫模型,有必要同时简单介绍一下马尔科夫模型与隐马尔科夫模型。4.1.1马尔科夫模型马尔科夫模型通过研究事物发生以及相互转化的概率从而对未来事物的状态进行预测。在马尔科夫模型中,事物当前的状态只与上一个状态而与其它任何时候的状态均无关。用马尔科夫的一句富含哲理的话说:“过去发生