《HMM基本原理及在语音识别中的应用ppt课件.ppt》由会员分享,可在线阅读,更多相关《HMM基本原理及在语音识别中的应用ppt课件.ppt(81页珍藏版)》请在三一办公上搜索。
1、第十章 语音识别,10.1 概述,1,10.2 HMM基本原理及在语音识别中的应用,2,10.1 概述,语音识别以语音为研究对象,涉及到生理学、心理学、语言学、计算机科学,以及信号处理等诸多领域,最终目的是实现人与机器进行自然语言通信,用语言操纵计算机。 语音识别系统可以分为孤立字(词)语音识别系统、连接字语音识别系统以及连续语音识别系统。,语音识别系统分为两个方向:一是根据对说话人的依赖程度可以分为特定人和非特定人语音识别系统;二是根据词汇量大小,可以分为小词汇量、中等词汇量、大词汇量,以及无限词汇量语音识别系统。 不同的语音识别系统,尽管设计和实现的细节不同,但所采用的基本技术是相似的。一
2、个典型的语音识别系统如下页图所示。主要包括预处理、特征提取和训练识别网络。,10.1.1 预处理,在语音识别系统中,语音信号预处理主要包括抗混叠滤波、预加重及端点检测等。 1抗混叠滤波与预加重 语音信号的频谱分量主要集中在3003400Hz范围内。因此需用一个防混叠的带通滤波器将此范围内的语音信号的频谱分量取出,然后对语音信号进行采样,得到离散的时域语音信号。,抗混叠滤波,根据采样定理,如果模拟信号的频谱的带宽是有限的,那么用等于或高于2fm的取样频率进行采样,所得到的信号能够完全唯一的代表原模拟信号,或者说能够由取样信号恢复出原始信号。 因此,为了防止混叠失真和噪声干扰,必须在采样前用一个锐
3、截止模拟低通滤波器对语音信号进行滤波。该滤波器称为反混叠滤波器或去伪滤波器。,预加重,语音从嘴唇辐射会有6dB/oct的衰减,因此在对语音信号进行处理之前,希望能按6dB/oct的比例对信号加以提升(或加重),以使得输出信号的电平相近似。可采用以下差分方程定义的数字滤波器:,2端点检测,语音信号起止点的判别是任何一个语音识别系统必不可少的组成部分。常用的端点检测方法有下面两种。,(1) 短时平均幅度 端点检测中需要计算信号的短时能量,由于短时能量的计算涉及到平方运算,而平方运算势必扩大了振幅不等的任何相邻取样值之间的幅度差别,这就给窗的宽度选择带来了困难,而用短时平均幅度来表示语音能量,在一定
4、程度上可以克服这个弊端。,(2) 短时平均过零率 当离散信号的相邻两个取样值具有不同的符号时,便出现过零现象,单位时间内过零的次数叫做过零率。 如果离散时间信号的包络是窄带信号,那么过零率可以比较准确的反应该信号的频率。在宽带信号情况下,过零率只能粗略的反映信号的频谱特性。,10.1.2 语音识别特征提取,特征提取,也称为前端处理,与之相关的内容则是特征间的距离度量。 特征提取:即对不同的语音寻找其内在特征,由此来判别出未知语音,所以每个语音识别系统都必须进行特征提取。 特征的选择对识别效果至关重要。同时,还要考虑特征参数的计算量。,孤立词语音识别系统的特征提取一般需要解决两个问题: 一个是从
5、语音信号中提取(或测量)有代表性的合适的特征参数(即选取有用的信号表示); 另一个是进行适当的数据压缩。 对于非特定人语音识别来讲,希望特征参数尽可能多的反映语义信息,尽量减少说话人的个人信息(对特定人语音识别来讲,则相反)。从信息论角度讲,这也是信息压缩的过程。,语音信号的特征主要有时域和频域两种。 时域特征:短时平均能量、短时平均过零率、共振峰、基音周期等; 频域特征:线性预测系数(LPC)、LP倒谱系数(LPCC)、线谱对参数(LSP)、短时频谱、Mel频率倒谱系数(MFCC)等。 目前已有结合时间和频率的特征,即时频谱,充分利用了语音信号的时序信息;以及基于听觉模型的特征参数提取,如感
6、知线性预测(PLP)分析。,1线性预测系数(LPC),线性预测分析从人的发声机理入手,通过对声道的短管级联模型的研究,认为系统的传递函数符合全极点数字滤波器的形式,从而某一时刻的信号可以用前若干时刻的信号的线性组合来估计。通过使实际语音的采样值和线性预测采样值之间达到均方误差(MSE)最小,即可得到线性预测系数LPC。,根据语音产生的模型,语音信号S(z)是一个线性非移变因果稳定系统V(z)受到信号E(z)激励产生的输出。在时域中,语音信号s(n)是该系统的单位取样响应v(n)和激励信号e(n)的卷积。语音产生的声道模型是一个可用下式阐述的全极点模型:,根据最小均方误差对该模型参数ak进行估计
7、,就得到了线性预测编码(LPC)算法,求得的 即为LP系数(p为预测器阶数)。对LPC的计算方法有自相关法(Levinson-Durbin莱文逊-杜宾法)、协方差法、格型法等。计算上的快速有效保证了这一声学特征的广泛使用。,2LPC倒谱系数(LPCC),倒谱系数是信号的z变换的对数模函数的逆z变换,一般先求信号的傅里叶变换,取模的对数,再求傅里叶逆变换得到。 主要优点:比较彻底地去掉了语音产生过程中的激励信息,反映了声道响应,而且往往只需要几个倒谱系数就能够很好地描述语音的共振峰特性。,3Mel频率倒谱系数(MFCC),Mel频率倒谱系数是先将信号频谱的频率轴转变为Mel刻度,再变换到倒谱域得
8、到倒谱系数。其计算过程如下: (1) 将信号进行短时傅立叶变换得到其频谱。 (2) 求频谱幅度的平方,即能量谱,并用一组三角滤波器在频域对能量进行带通滤波。 (3) 对滤波器的输出取对数,然后作2M点傅立叶逆变换即可得到MFCC。,这里,MFCC系数的个数L通常取最低的1216。在谱失真测度定义中通常不用0阶倒谱系数,因为它是反映倒谱能量的。上面所说的在频域进行带通滤波是对能量谱进行滤波,这样做的根据是考虑到一个多分量信号的总能量应该是各个正交分量的能量之和。,4. 过零峰值幅度(ZCPA),特征参数的好坏直接决定着系统的识别性能。要想使识别系统有好的鲁棒性,必须要求提取的特征参数有很强的抗噪
9、性。 人类的听觉系统在噪音环境下能够很好工作,所以如果语音识别系统能模拟人类听觉感知的处理特点,噪音环境下识别率一定会提高。,近年来,基于听觉模型的语音特征提取方法在语音识别领域日益受到重视。 过零峰值幅度特征ZCPA就是基于人类听觉特性的一种特征。 下图给出了基于人耳听觉特性的ZCPA特征提取原理图:,ZCPA原理框图,该系统由带通滤波器组、过零检测器、峰值检测器、非线性压缩和频率接收器组成。带通滤波器组由16个FIR滤波器组成,用来仿真耳蜗基底膜;过零检测器、峰值检测器、非线性压缩部分则仿真听觉神经纤维。从过零检测器获得频率信息,峰值检测器获得强度信息,经非线性压缩后,用频率接收器合成频率
10、信息和强度信息,最后将16路所获得的信息合成为语音信号的特征。,10.1.3 语音识别方法,一般来说,语音识别的方法有四种: 基于声道模型和语音知识的方法 模式匹配的方法 统计模型方法 人工神经网络的方法 基于声道模型和语音知识的方法起步较早,没有达到实用的阶段。目前常用的方法是后三种方法,目前它们都已达到了实用阶段。,模式匹配常用的技术有矢量量化(VQ)和动态时间规整(DTW); 统计型模型方法常见的是隐马尔可夫模型(HMM); 语音识别常用的神经网络有反向传播(BP)网络、径向基函数网络(RBF)及小波网络。 本书重点介绍经典的隐马尔可夫模型及其在语音识别中的应用。,模式匹配法用于语音识别
11、共有四个步骤:特征提取、模板训练、模板分类、判决。其原理框图如下:,训练过程:输入语音经过预处理后,语音信号的特征被提取出来,首先在此基础上建立所需的模板,这个建立模板的过程称为训练过程。 识别过程:根据语音识别整体模型,将输入的语音信号特征与存在的语音模板(参考模式)进行比较,找出一系列最优的与输入的语音相匹配的模板。然后,根据此模板号的定义,通过查表就可以给出计算机的识别结果。,动态时间规整(DTW)算法的思想: 把未知量均匀地伸长或缩短,直到它与参考模式的长度一致时为止。在时间规整过程中,未知单词的时间轴要不均匀地扭曲或弯折,以便使其特征与模型特征对正。 DTW应用动态规划方法在孤立词语
12、音识别中获得了良好性能。但因其不适合连续语音大词汇量语音识别系统,目前已被HMM模型和ANN替代。,隐马尔可夫模型是对语音信号的时间序列结构建立统计模型,将之看作一个数学上的双重随机过程: 一个是用具有有限状态数的Markov链来模拟语音信号统计特性变化的隐含的随机过程,另一个是与Markov链的每一个状态相关联的观测序列的随机过程。前者通过后者表现出来,但前者的具体参数是不可测的。,基于HMM的孤立词语音识别原理图,采用HMM进行语音识别,实质上是一种概率运算。根据训练集数据计算得出模型参数后,测试集数据只需分别计算各模型的条件概率(Viterbi算法),取此概率最大者即为识别结果。 除训练
13、时需运算量较大外,识别时的运算量仅有模式匹配法的几分之一。,人工神经网络(ANN)在语音识别中的应用是当前研究的热点。人工神经网络本质上是一个自适应非线性动力学系统,模拟了人类神经元活动的原理,具有自适应性、并行性、鲁棒性、容错性和学习特性。目前用于语音识别的神经网络有多层感知机,Kohonen自组织神经网和预测神经网。,由于神经网络反映了人脑功能的基本特征,具有自组织性、自适应性、和连续学习的能力。这种网络是可以训练的,即可以随着经验的积累而改变自身的性能。同时由于高度的并行性,它们能够进行快速判决并具有容错性,特别适合于解决象语音识别这类难以用算法来描述而又有大量样本可供学习的问题。,基于
14、神经网络的语音识别原理图,神经网络的语音识别方法与传统方法差异: 提取了语音的特征参数后,靠神经网络中大量的连接权对输入模式进行非线性运算,产生最大兴奋的输入点就代表了输入模式对应的分类。神经网络的连接权系数是在使用中根据识别结果的正确与否不断的进行自适应修正。 比较起来,神经网络识别系统更接近人类的感知过程。,矢量量化技术在语音识别中应用时,一般是先用矢量量化的码本作为语音识别的参考模板,即系统词库中的每一个(字)词,做一个码本作为该(字)词的参考模板。 识别时对于任意输入的语音特征矢量序列 ,计算该序列对每一个码本的总平均的失真量化误差。总平均失真误差最小的码本所对应的(字)词即为识别结果
15、。,矢量量化在语音识别中的应用,10.2 HMM基本原理及在语音识别中的应用,10.2.1 隐马尔可夫模型 马尔可夫过程(或马尔可夫链)直观解释是: 在已知系统目前的状态(现在)的条件下,“将来”与“过去”无关。这种过程也称为无记忆的单随机过程。如果这种单随机过程的取值(状态)是离散的,我们又可以将它称作无记忆的离散随机过程。,假设有一个系统,它在任何时间可以认为处在有限多个状态的某个状态下。在均匀划分地时间间隔上,系统的状态按一组概率发生改变(包括停留在原状态),这组概率值和状态有关,而且这个状态对应于一个可观测的物理事件,因此称之为可观测马尔可夫过程。,不可测(随机)的双随机过程只能通过另
16、一组随机过程才能观测到,另一组随机过程产生出观测序列(行为),而这组行为是可见不可测的。因此,这种双随机过程称为隐马尔可夫模型(或隐马尔可夫过程)。通常,HMM对应的状态被假设为离散的,且其演变是无记忆的,因而,HMM也被称为无记忆的离散双随机过程。,隐马尔可夫过程是一个双重随机过程: 一重用于描述非平稳信号的短时平稳段的统计特征(信号的瞬态特征,可直接观测到);另一重随机过程描述了每个短时平稳段如何转变到下一个短时平稳段,即短时统计特征的动态特性(隐含在观察序列中)。 基于这两重随机过程,HMM既可有效解决怎样辨识具有不同参数的短时平稳信号段,又可解决怎样跟踪它们之间的转化等问题。,人的言语
17、过程也是这样一个双重随机过程。因为语音信号本身是一个可观察的序列,而它又是由大脑里的(不可观察的)、根据言语需要和语法知识(状态选择)所发出的音素(词、句)的参数流,大量实验表明,HMM的确可以非常精确地描述语音信号的产生过程。,(1) N模型的状态数目。 状态的集合表示为 (2) M观测符号数。 即每个状态可能输出的观测符号的数目。 观测符号集合表示为 (3) A状态转移概率分布。 状态转移概率构成的矩阵为,一个隐马尔可夫模型由下列参数来决定:,(4) B状态的观测符号概率分布。 (5) 初始状态分布。 为了完整地描述一个隐马尔可夫模型,应当指定状态数N,观测符号数M,以及三个概率密度A、B
18、和 。这些参数之间有一定的联系,因此为了方便,HMM常用 来简记。,10.2.2 隐马尔可夫模型的三个基本问题,给定HMM的形式后,为了将其应用于实际,必须解决以下三个基本关键问题:(1) 已知观测序列 和模型 ,如何有效的计算在给定模型条件下产生观测序列 的概率 。(2) 已知观测序列 和模型 ,如何选择在某种意义上最佳的状态序列。(3) 给定观测序列,如何调整参数 使条件概率 最大。,1第一个问题的求解,这是一个评估问题,即已知模型和一个观测序列,怎样来评估这个模型(它与给定序列匹配得如何),或怎样给模型打分,这个问题通常被称为“前向-后向”的算法解决。 (一)前向算法 首先要定义一个前向
19、变量 即在给定模型条件下,产生t以前的部分观测符号序列,且t时刻又处于状态Si的概率。,以下是前向变量进行迭代计算的步骤: (1) 初始化 (2) 迭代计算 (3) 最后计算 其中 为状态转移矩阵中的元素, 为观测符 号矩阵中的元素。,(二)后向算法 同理,可以类似地定义后向变量 : 即在给定模型 及t时刻处于状态Si的条件下,产生t以后的部分观测符号序列 的概率。,(1) 初始化 (2) 迭代计算 (3) 最后计算前向和后向算法对于求解问题2和问题3也是有帮助的。,后向变量也可以用迭代法进行计算,步骤如下:,由于 表示t时刻处于状态 且部分观测序列为 ,而 表示t时刻处于状态 且剩下部分的观
20、测序列为 ,因而 表示产生整个观测序列O且t时刻处于状态 的概率,即 那么,问题1也可以通过同时使用前向后向概率来求解,即,2第二个问题的求解,这个问题是求取伴随给定观测序列产生的最佳状态序列。这一最佳判据,目的就是要使正确的状态数目的期望值最大。它通常用Viterbi算法解决,用于模型细调。 首先定义变量 : 它是在给定观测序列O和模型 的条件下,t时刻处在状态Si的概率。,由于所以有 且从而可求出在各个时刻所处的最可能的状态为:,可用前后向变量表示为:,但是,上式的求解仅仅从每个时刻出现最可能的状态来考虑的,而没有考虑到状态序列的发生概率(如没有考虑全局结构,时间上相邻状态以及观测序列的长
21、度等等)。 上述问题的解决办法是对最佳判据进行修正。最广泛应用的判据是寻找单个最佳状态序列(路径),亦即使 最大。下面介绍的Viterbi算法就是一种以动态规划为基础的寻找单个最佳状态序列的方法。,完整的算法如下所述:初始化(2) 迭代计算(3) 最后计算(4) 路径(状态序列)回溯,3第三个问题的求解,这个问题是调整模型参数 ,使观测序列在给定模型条件下发生概率最大。即模型参数重估问题(训练问题)。事实上,给定任何有限观测序列作为训练数据,没有一种最佳方法能估计模型参数。但是可以利用迭代处理方法(Baum-Welch法,或称期望值修正法)来选择(A,B,)以使得 最大,可以用参数重估来解决。
22、,首先定义变量 即给定模型和观测序列条件下,在时间t处于状态Si ,而在时间t+1处于状态Sj的概率。根据前后向变量的定义,从计算图可以看出, 可写成如下形式:,t-1 t+2 计算示意图,此前己经定义了 为在给定模型和观察序列O的条件下,在时刻t位于状态为Si 的条件概率,将 对j求和,可把两者联系起来,即 利用上面的公式及计算事件发生的概念,可以得到估计隐马尔可夫模型参数的方法,其计算公式如下,(1) 的重估公式 即在时间t=1处于状态Si的次数的期望值。aij的重估公式 bj(Ok)的重估公式,把现在的模型定义为=(A,B,),把重估模型定义为 。以上述方法为基础,如果不断地用 代替,并
23、重复上述重估计算,那么就能够改善由模型观测到O的概率,直到达到某个极限点为止。,4解决下溢问题后的重估公式,我们可以看到上面的重估公式均涉及到了前向变量 和后向变量 的计算。而每个前向变量和后向变量都是通过递推计算得到的,即是由连续相乘的概率值组成。当t达到较大数值(如100)时,二者的动态范围会超过任何计算机的精度范围从而导致下溢,因此要用软件实现此算法,必须在计算过程中使用定标算法。,即每递推计算一次便对运算结果乘以一个适当放大的比例因子。下面给出了详细的定标过程并且推导了加入定标因子后三个参数的重估公式(包括单序列和多序列重估公式)。 定标的基本方法是对 和 乘以一个定标系数,该系数与t
24、无关(即它只取决于t),目的是使定标后的 和 总是处在计算机的动态范围之内,在计算结束后,应当去掉所有的定标系数。 下面给出完整的定标过程。,(1) 对前向变量进行定标,定标过程需要引入几个新的变量: 和 。 是待求前向变量值,设 为递推值, 为修正递推值,由于 的下溢问题,在实际计算过程中这个变量不能出现,所以公式中的 必须用修正递推值 代替。设ct为标度(定标)因子 则前向变量的递推计算按下面步骤进行。,初始化: 递推:,定标后前向变量的计算公式为: 根据上两个公式可以得到:推理后有下式成立,由于前向概率用修正递推值表示为:而所以,(2) 对后向变量进行定标,同上,我们引入两个变量,即递推
25、值 和修正递推值 。 初始化 令 同理类似于前向概率的定标最终可以得到: 加入定标算法后(即用修正递推值代替原来的前后向变量)改写三个参数重估公式:,前面给出了单个序列训练模型参数的重估公式。对于非特定人识别系统,如果语音的全部知识只是词汇表中每个单词的一个例词,却期望识别器具有非常优良的性能是不可能的,应该给识别器提供单词模式的各种变异情况。 比较好的办法就是每个单词要有多个例词发音。所以不能用一个观测序列来训练模型,为了有足够的数据来可靠地估计模型参数,必须使用多个观测序列。,即每个模型参数都要使用多个样本来训练,假设有L个样本(对应于L个观测序列 ),现假定每个观测序列都是相互独立的,调
26、整模型的参数以使L个 乘积的值最大,此时对重估公式的修正办法是把每个观测序列的概率加在一起,这样修正后多序列的重估公式为:,单序列和多序列i的重估公式中都出现了概率P的计算,这样又会引入新的下溢问题,解决办法是在迭代计算P 的过程中,每次都乘以一个较大的数,这样分子分母每次都乘以一个相同的数,二者在同一数量级上,所以对重估公式没有影响。,10.2.3 隐马尔可夫模型用于语音识别,1实验方法 用C+语言在Windows操作系统上实现了一个基于离散HMM的孤立词语音识别系统。共使用了50词16个人的不同信噪比的语音数据来做实验(包括无噪音、15dB、20dB、25dB、30dB的数据),每人每个词
27、发音3次,其中9人的语音数据(某种SNR)用于训练模型,另外7人的用于识别,得到这种SNR下语音的识别结果。每个词的HMM参数使用27个样本(9人3次)来训练,测试样本文件的数目依实验所用的词汇量而不同。,具体实验步骤,第一步:特征提取 第二步:矢量量化 第三步:训练隐马尔可夫模型 第四步:对测试集单词进行识别,2实验结果及讨论,下表为使用ZCPA特征和HMM的不同词汇量单词在各种SNR下的识别结果比较。,系统性能影响因素的讨论,(1) 矢量量化影响 由于系统使用的是离散隐马尔可夫模型方法,所以需要事先对每个单词的特征参数进行矢量量化,这样不可避免地会引入量化误差,所以应使用好的方法生成码书,
28、以减小由此引起的失真,从而使系统性能所受影响尽可能减小。,(2) 初值设定影响 HMM训练方法(Baum-Welch算法)本质上是一种梯度下降方法,在训练过程中有可能到达局部最小值。因此,初值的选取比较重要,好的初值可以避免局部极小问题。我们可以加入一定的优化方法来选取初值。在离散HMM中,参数B对系统的性能有很大影响,超过了参数A和。所以也可以单独对参数B初值的选取采用一定的优化方法。,(3) 训练数据量的影响 为了训练出可靠的参数模型,必须加大训练集的数据。当在训练集中又加入了5个人的语音数据(共16人数据),测试集数据量不变,分别对10词到50词的数据进行了无噪音及信噪比为15dB、20
29、dB、25dB、30dB、clean条件下的实验,结果如下表所示。实验结果表明增加训练集的样本数后,与9人训练相比系统识别率有大幅度提高。,(4) 输出概率矩阵的平滑问题 训练集的有限性使得训练完以后的B矩阵中有一些零元素,这些不合理的零概率会给识别带来一定的影响,解决这个问题有三种方法:基数法,距离法和同现法。 实验中采用的是最简单的基数法,它是将B矩阵中小于某个给定最小值的元素e(e依据生成矩阵确定)赋给一个值(取10-4 10-6),然后修改B矩阵的其它元素使它满足约束条件:即在第 j个状态下 。,实验结论: 将B矩阵进行平滑处理后,对训练集内数据做识别测试时(称为特定人识别)识别率随值增大而下降,未进行平滑前训练集内数据识别率为100%,平滑处理后识别率略有下降,这是由于 的设置改变了原有训练参数而引起的。而对测试集数据进行识别测试时(称为非特定人识别),识别率随值增加而上升。说明对于测试集,越小,适应能力越差。所以这种输出概率矩阵平滑方法只适用于HMM的非特定人识别。在我们前述的识别系统中,选取=10-4 ,结果表明识别率较没有进行输出矩阵平滑前增加了10%左右。,