1、Voice Recognition技术简介010102020303应用领域应用领域发展前景发展前景语音识别是以语音为研究对象,通过语音信号处理和模式识别让机器自动识别和理解人类口述的语言。就是让机器听懂你说话。语音识别技术的应用包括语音拨号、语音导航、室内设备控制、语音文档检索、简单的听写数据录入等。语音识别技术与其他自然语言处理技术如机器翻译及语音合成技术相结合,可以构建出更加复杂的应用,例如语音到语音的翻译。人机交互方式图形用户界面图形用户界面Graphic Users Interface多点触控多点触控 Multi Touch应用领域Siri Google now车载导航车载导航智能智能
2、PDA语音语音搜索搜索歌曲歌曲识别识别语音语音控制控制家电家电遥控遥控 语音搜索早先的模式是我们可以通过打电话的方式查一些专项的资讯,比如天气预报或者打12315。随着服务的延伸呢,很多的企业都尽力了自己的客户专线,实际上这个时候语音信息的服务就由企业为他的用户提供,主要是产品或者服务的资讯或者售后服务。常见的有Apple的Siri和Google的Google Now。语音语音搜索搜索歌曲歌曲识别识别语音语音控制控制家电家电遥控遥控 生活中,时常听到很熟悉的旋律,却想不出歌曲的名字。这个时候我们就可以直接利用语音识别功能来查找相关歌曲,常见的有微信摇一摇搜歌,以及其他音乐播放软件的搜索功能。语
3、音语音搜索搜索歌曲歌曲识别识别语音语音控制控制家电家电遥控遥控 由于在汽车的行驶过程中,驾驶员的手必须放在方向盘上,因此在汽车上拨打电话,需要使用具有语音拨号功能的免提电话通信方式。此外,对汽车的卫星导航定位系统(GPS)的操作,汽车空调、照明以及音响等设备的操作,同样也可以由语音来方便的控制。语音语音搜索搜索歌曲歌曲识别识别语音语音控制控制家电家电遥控遥控 用语音可以控制电视机、DVD、空调、电扇、窗帘的操作,而且一个遥控器就可以把家中的电器皆用语音控起来,这样,可以让令人头疼的各种电器的操作变得简单易行。随着互联网的快速发展,以及手机等移动终端的普及应用,目前可以从多个渠道获取大量文本或语
4、音方面的语料,这为语音识别中的语言模型和声学模型的训练提供了丰富的资源,使得构建通用大规模语言模型和声学模型成为可能。目前,国外的应用一直以苹果的Siri、谷歌的Google Now为代表。国内方面,科大讯飞、云知声、盛大、捷通华声、搜狗语音助手、紫冬口译、百度语音等系统都采用了最新的语音识别技术,市面上其他相关的产品也直接或间接嵌入了类似的技术。发展前景语音识别系统的出现,会让人更加自由的沟通,让人在任何地方,任何时间,对任何事都能够通过语音交互的方式,方便地享受到更多的社会信息资源和现代化服务。这必然会成为语音识别技术研究和应用的重要发展趋势。发展前景 但任何技术的成熟都会经历一段很长时间
5、的发展期,所以目前依然有识别率、可靠性及成本等问题亟待人们去克服。主要问题对自然语言的识别和理解。首先必须将连续的讲话分解为词、音素等单位,其次要建立一个理解语义的规则。语音信息量大。语音模式不仅对不同的说话人不同,对同一说话人也是不同的,例如,一个说话人在随意说话和认真说话时的语音信息是不同的。一个人的说话方式随着时间变化。主要问题语音的模糊性。说话者在讲话时,不同的词可能听起来是相似的。这在英语和汉语中常见。4.环境噪声和干扰对语音识别有严重影响,致使识别率低。语音识别概述概述1HMM基本原理及在语音识别中基本原理及在语音识别中的应用的应用210.1 概述 语音识别以语音为研究对象,涉及到
6、生理学、心理学、语言学、计算机科学,以及信号处理等诸多领域,最终目的是实现人与机器进行自然语言通信,用语言操纵计算机。语音识别系统可以分为孤立字(词)语音识别系统、连接字语音识别系统以及连续语音识别系统。语音识别系统分为两个方向:一是根据对说话人的依赖程度可以分为特定人和非特定人语音识别系统;二是根据词汇量大小,可以分为小词汇量、中等词汇量、大词汇量,以及无限词汇量语音识别系统。不同的语音识别系统,尽管设计和实现的细节不同,但所采用的基本技术是相似的。一个典型的语音识别系统如下页图所示。主要包括预处理、特征提取和训练识别网络。输入输入预处理预处理特征提取特征提取训练识别训练识别网络网络输出输出
7、语音识别系统组成部分图示语音识别系统组成部分图示10.1.1 预处理 在语音识别系统中,语音信号预处理主要包括抗混叠滤波、预加重及端点检测等。1抗混叠滤波与预加重 语音信号的频谱分量主要集中在3003400Hz范围内。因此需用一个防混叠的带通滤波器将此范围内的语音信号的频谱分量取出,然后对语音信号进行采样,得到离散的时域语音信号。抗混叠滤波 根据采样定理,如果模拟信号的频谱的带宽是有限的,那么用等于或高于2fm的取样频率进行采样,所得到的信号能够完全唯一的代表原模拟信号,或者说能够由取样信号恢复出原始信号。因此,为了防止混叠失真和噪声干扰,必须在采样前用一个锐截止模拟低通滤波器对语音信号进行滤
8、波。该滤波器称为反混叠滤波器或去伪滤波器。预加重 语音从嘴唇辐射会有6dB/oct的衰减,因此在对语音信号进行处理之前,希望能按6dB/oct的比例对信号加以提升(或加重),以使得输出信号的电平相近似。可采用以下差分方程定义的数字滤波器:()()(1)y nx nax n(10-1)式中,系数常在式中,系数常在0.9至至1之间选取。之间选取。2端点检测 语音信号起止点的判别是任何一个语音识别系统必不可少的组成部分。常用的端点检测方法有下面两种。(1)短时平均幅度 端点检测中需要计算信号的短时能量,由于短时能量的计算涉及到平方运算,而平方运算势必扩大了振幅不等的任何相邻取样值之间的幅度差别,这就
9、给窗的宽度选择带来了困难,而用短时平均幅度来表示语音能量,在一定程度上可以克服这个弊端。(2)短时平均过零率 当离散信号的相邻两个取样值具有不同的符号时,便出现过零现象,单位时间内过零的次数叫做过零率。如果离散时间信号的包络是窄带信号,那么过零率可以比较准确的反应该信号的频率。在宽带信号情况下,过零率只能粗略的反映信号的频谱特性。10.1.2 语音识别特征提取 特征提取,也称为前端处理,与之相关的内容则是特征间的距离度量。特征提取:即对不同的语音寻找其内在特征,由此来判别出未知语音,所以每个语音识别系统都必须进行特征提取。特征的选择对识别效果至关重要。同时,还要考虑特征参数的计算量。孤立词语音
10、识别系统的特征提取一般需要解决两个问题:一个是从语音信号中提取(或测量)有代表性的合适的特征参数(即选取有用的信号表示);另一个是进行适当的数据压缩。对于非特定人语音识别来讲,希望特征参数尽可能多的反映语义信息,尽量减少说话人的个人信息(对特定人语音识别来讲,则相反)。从信息论角度讲,这也是信息压缩的过程。语音信号的特征主要有时域和频域两种。时域特征:短时平均能量、短时平均过零率、共振峰、基音周期等;频域特征:线性预测系数(LPC)、LP倒谱系数(LPCC)、线谱对参数(LSP)、短时频谱、Mel频率倒谱系数(MFCC)等。目前已有结合时间和频率的特征,即时频谱,充分利用了语音信号的时序信息;
11、以及基于听觉模型的特征参数提取,如感知线性预测(PLP)分析。1线性预测系数(LPC)线性预测分析从人的发声机理入手,通过对声道的短管级联模型的研究,认为系统的传递函数符合全极点数字滤波器的形式,从而某一时刻的信号可以用前若干时刻的信号的线性组合来估计。通过使实际语音的采样值和线性预测采样值之间达到均方误差(MSE)最小,即可得到线性预测系数LPC。根据语音产生的模型,语音信号S(z)是一个线性非移变因果稳定系统V(z)受到信号E(z)激励产生的输出。在时域中,语音信号s(n)是该系统的单位取样响应v(n)和激励信号e(n)的卷积。语音产生的声道模型是一个可用下式阐述的全极点模型:pkkkza
12、zH111)(根据最小均方误差对该模型参数ak进行估计,就得到了线性预测编码(LPC)算法,求得的 即为LP系数(p为预测器阶数)。对LPC的计算方法有自相关法(Levinson-Durbin莱文逊-杜宾法)、协方差法、格型法等。计算上的快速有效保证了这一声学特征的广泛使用。pa 2LPC倒谱系数(LPCC)倒谱系数是信号的z变换的对数模函数的逆z变换,一般先求信号的傅里叶变换,取模的对数,再求傅里叶逆变换得到。主要优点:比较彻底地去掉了语音产生过程中的激励信息,反映了声道响应,而且往往只需要几个倒谱系数就能够很好地描述语音的共振峰特性。3Mel频率倒谱系数(MFCC)Mel频率倒谱系数是先将
13、信号频谱的频率轴转变为Mel刻度,再变换到倒谱域得到倒谱系数。其计算过程如下:(1)将信号进行短时傅立叶变换得到其频谱。(2)求频谱幅度的平方,即能量谱,并用一组三角滤波器在频域对能量进行带通滤波。(3)对滤波器的输出取对数,然后作2M点傅立叶逆变换即可得到MFCC。这里,MFCC系数的个数L通常取最低的1216。在谱失真测度定义中通常不用0阶倒谱系数,因为它是反映倒谱能量的。上面所说的在频域进行带通滤波是对能量谱进行滤波,这样做的根据是考虑到一个多分量信号的总能量应该是各个正交分量的能量之和。1log()cos(0.5)/1,2,MnkCX kkn MnL 4.过零峰值幅度(ZCPA)特征参
14、数的好坏直接决定着系统的识别性能。要想使识别系统有好的鲁棒性,必须要求提取的特征参数有很强的抗噪性。人类的听觉系统在噪音环境下能够很好工作,所以如果语音识别系统能模拟人类听觉感知的处理特点,噪音环境下识别率一定会提高。近年来,基于听觉模型的语音特征提取方法在语音识别领域日益受到重视。过零峰值幅度特征ZCPA就是基于人类听觉特性的一种特征。下图给出了基于人耳听觉特性的ZCPA特征提取原理图:ZCPA原理框图x(n)耳蜗滤耳蜗滤 波器波器 M 耳蜗滤耳蜗滤 波波 器器 2 耳蜗滤耳蜗滤 波波 器器 1 1 ZCPA(t,f)耳蜗滤耳蜗滤 波波 器器 i 过零点过零点 检测器检测器 频频 率率 接收
15、器接收器 峰峰 值值 检测器检测器 非线性非线性处处 理理 该系统由带通滤波器组、过零检测器、峰值检测器、非线性压缩和频率接收器组成。带通滤波器组由16个FIR滤波器组成,用来仿真耳蜗基底膜;过零检测器、峰值检测器、非线性压缩部分则仿真听觉神经纤维。从过零检测器获得频率信息,峰值检测器获得强度信息,经非线性压缩后,用频率接收器合成频率信息和强度信息,最后将16路所获得的信息合成为语音信号的特征。10.1.3 语音识别方法 一般来说,语音识别的方法有四种:基于声道模型和语音知识的方法 模式匹配的方法 统计模型方法 人工神经网络的方法 基于声道模型和语音知识的方法起步较早,没有达到实用的阶段。目前
16、常用的方法是后三种方法,目前它们都已达到了实用阶段。模式匹配常用的技术有矢量量化(VQ)和动态时间规整(DTW);统计型模型方法常见的是隐马尔可夫模型(HMM);语音识别常用的神经网络有反向传播(BP)网络、径向基函数网络(RBF)及小波网络。本书重点介绍经典的隐马尔可夫模型及其在语音识别中的应用。模式匹配法用于语音识别共有四个步骤:特征提取、模板训练、模板分类、判决。其原理框图如下:识识别别结结果果 识识别别 语语音音信信号号 预预处处理理 特特征征提提取取 模模式式匹匹配配 参参考考模模式式 判判决决规规则则 S 训训练练 训练过程:输入语音经过预处理后,语音信号的特征被提取出来,首先在此
17、基础上建立所需的模板,这个建立模板的过程称为训练过程。识别过程:根据语音识别整体模型,将输入的语音信号特征与存在的语音模板(参考模式)进行比较,找出一系列最优的与输入的语音相匹配的模板。然后,根据此模板号的定义,通过查表就可以给出计算机的识别结果。动态时间规整(DTW)算法的思想:把未知量均匀地伸长或缩短,直到它与参考模式的长度一致时为止。在时间规整过程中,未知单词的时间轴要不均匀地扭曲或弯折,以便使其特征与模型特征对正。DTW应用动态规划方法在孤立词语音识别中获得了良好性能。但因其不适合连续语音大词汇量语音识别系统,目前已被HMM模型和ANN替代。隐马尔可夫模型是对语音信号的时间序列结构建立
18、统计模型,将之看作一个数学上的双重随机过程:一个是用具有有限状态数的Markov链来模拟语音信号统计特性变化的隐含的随机过程,另一个是与Markov链的每一个状态相关联的观测序列的随机过程。前者通过后者表现出来,但前者的具体参数是不可测的。基于HMM的孤立词语音识别原理图 采用HMM进行语音识别,实质上是一种概率运算。根据训练集数据计算得出模型参数后,测试集数据只需分别计算各模型的条件概率(Viterbi算法),取此概率最大者即为识别结果。除训练时需运算量较大外,识别时的运算量仅有模式匹配法的几分之一。人工神经网络(ANN)在语音识别中的应用是当前研究的热点。人工神经网络本质上是一个自适应非线
19、性动力学系统,模拟了人类神经元活动的原理,具有自适应性、并行性、鲁棒性、容错性和学习特性。目前用于语音识别的神经网络有多层感知机,Kohonen自组织神经网和预测神经网。由于神经网络反映了人脑功能的基本特征,具有自组织性、自适应性、和连续学习的能力。这种网络是可以训练的,即可以随着经验的积累而改变自身的性能。同时由于高度的并行性,它们能够进行快速判决并具有容错性,特别适合于解决象语音识别这类难以用算法来描述而又有大量样本可供学习的问题。基于神经网络的语音识别原理图待识别的待识别的语音数据语音数据权值权值w根据标号训练根据标号训练网络得出权值网络得出权值已有神经已有神经网络模型网络模型输出结果输
20、出结果特特 征征 提提 取取用于训练的用于训练的语音数据语音数据 神经网络的语音识别方法与传统方法差异:提取了语音的特征参数后,靠神经网络中大量的连接权对输入模式进行非线性运算,产生最大兴奋的输入点就代表了输入模式对应的分类。神经网络的连接权系数是在使用中根据识别结果的正确与否不断的进行自适应修正。比较起来,神经网络识别系统更接近人类的感知过程。矢量量化技术在语音识别中应用时,一般是先用矢量量化的码本作为语音识别的参考模板,即系统词库中的每一个(字)词,做一个码本作为该(字)词的参考模板。识别时对于任意输入的语音特征矢量序列 ,计算该序列对每一个码本的总平均的失真量化误差。总平均失真误差最小的
21、码本所对应的(字)词即为识别结果。NXXX,21矢量量化在语音识别中的应用 预处理预处理参数提取参数提取码本码本1码本码本2码本码本M判决逻辑判决逻辑模型模型1模型模型2语音语音信号信号识别输识别输出结果出结果10.2 HMM基本原理及在语音识别中的应用10.2.1 隐马尔可夫模型 马尔可夫过程(或马尔可夫链)直观解释是:在已知系统目前的状态(现在)的条件下,“将来”与“过去”无关。这种过程也称为无记忆的单随机过程。如果这种单随机过程的取值(状态)是离散的,我们又可以将它称作无记忆的离散随机过程。假设有一个系统,它在任何时间可以认为处在有限多个状态的某个状态下。在均匀划分地时间间隔上,系统的状
22、态按一组概率发生改变(包括停留在原状态),这组概率值和状态有关,而且这个状态对应于一个可观测的物理事件,因此称之为可观测马尔可夫过程。不可测(随机)的双随机过程只能通过另一组随机过程才能观测到,另一组随机过程产生出观测序列(行为),而这组行为是可见不可测的。因此,这种双随机过程称为隐马尔可夫模型(或隐马尔可夫过程)。通常,HMM对应的状态被假设为离散的,且其演变是无记忆的,因而,HMM也被称为无记忆的离散双随机过程。隐马尔可夫过程是一个双重随机过程:一重用于描述非平稳信号的短时平稳段的统计特征(信号的瞬态特征,可直接观测到);另一重随机过程描述了每个短时平稳段如何转变到下一个短时平稳段,即短时
23、统计特征的动态特性(隐含在观察序列中)。基于这两重随机过程,HMM既可有效解决怎样辨识具有不同参数的短时平稳信号段,又可解决怎样跟踪它们之间的转化等问题。人的言语过程也是这样一个双重随机过程。因为语音信号本身是一个可观察的序列,而它又是由大脑里的(不可观察的)、根据言语需要和语法知识(状态选择)所发出的音素(词、句)的参数流,大量实验表明,HMM的确可以非常精确地描述语音信号的产生过程。(1)N模型的状态数目。状态的集合表示为 (2)M观测符号数。即每个状态可能输出的观测符号的数目。观测符号集合表示为 (3)A状态转移概率分布。状态转移概率构成的矩阵为,.,21NSSSS,.,21MOOOO
24、NjiSqSqPaaAitjtijij,1,|,1一个隐马尔可夫模型由下列参数来决定:一个隐马尔可夫模型由下列参数来决定:(4)B状态的观测符号概率分布。(5)初始状态分布。为了完整地描述一个隐马尔可夫模型,应当指定状态数N,观测符号数M,以及三个概率密度A、B和。这些参数之间有一定的联系,因此为了方便,HMM常用 来简记。MkNjSqOtPObObBjtkkjkj1,1|)(),(时刻的输出符号为在NiSqPiii1,1),(BA10.2.2 隐马尔可夫模型的三个基本问题 给定HMM的形式后,为了将其应用于实际,必须解决以下三个基本关键问题:(1)已知观测序列 和模型 ,如何有效的计算在给定
25、模型条件下产生观测序列 的概率 。(2)已知观测序列 和模型 ,如何选择在某种意义上最佳的状态序列。(3)给定观测序列,如何调整参数 使条件概率 最大。,.,21TOOOO),(BAOOP,.,21TOOOO),(BA),(BAOP1第一个问题的求解 这是一个评估问题,即已知模型和一个观测序列,怎样来评估这个模型(它与给定序列匹配得如何),或怎样给模型打分,这个问题通常被称为“前向-后向”的算法解决。(一)前向算法 首先要定义一个前向变量 即在给定模型条件下,产生t以前的部分观测符号序列,且t时刻又处于状态Si的概率。)(it)|,.,()(21itttSqOOOPi;以下是前向变量进行迭代计
26、算的步骤:(1)初始化 (2)迭代计算 (3)最后计算 其中 为状态转移矩阵中的元素,为观测符 号矩阵中的元素。NiObiii1 )()(11NjTtObaijtjNiijtt111)()()(111;,)()|(1iOPNiTija)(tjOb(二)后向算法 同理,可以类似地定义后向变量 :即在给定模型 及t时刻处于状态Si的条件下,产生t以后的部分观测符号序列 的概率。)(it)|;,.,()(21itTtttSqOOOPi,.,21TttOOO (1)初始化 (2)迭代计算 (3)最后计算前向和后向算法对于求解问题2和问题3也是有帮助的。NiiT 1,1)(NiTTtjObaitNitj
27、ijt1,1,.,2,1),()()(111)()|(11iOPNi 后向变量也可以用迭代法进行计算,步骤如下:后向变量也可以用迭代法进行计算,步骤如下:由于 表示t时刻处于状态 且部分观测序列为 ,而 表示t时刻处于状态 且剩下部分的观测序列为 ,因而 表示产生整个观测序列O且t时刻处于状态 的概率,即 那么,问题1也可以通过同时使用前向后向概率来求解,即)(itiS,.,21tOOO)(itiS,.,21TttOOO)()(iitt、iS)|,()()(itttSqOPiiNiTtiiOPNitt,.2,1,2,1)()()|(1;,2第二个问题的求解 这个问题是求取伴随给定观测序列产生的
28、最佳状态序列。这一最佳判据,目的就是要使正确的状态数目的期望值最大。它通常用Viterbi算法解决,用于模型细调。首先定义变量 :它是在给定观测序列O和模型 的条件下,t时刻处在状态Si的概率。)(it),|()(OSqPiitt由于所以有 且从而可求出在各个时刻所处的最可能的状态为:)|()()()()()()()(1OPiiiiiiittNittttt)|,()()(itttSqOPii)|()|,()(OPSqOPiitt1)(1NitiTtiqtNit1)(maxarg1,可用前后向变量表示为:可用前后向变量表示为:但是,上式的求解仅仅从每个时刻出现最可能的状态来考虑的,而没有考虑到状
29、态序列的发生概率(如没有考虑全局结构,时间上相邻状态以及观测序列的长度等等)。上述问题的解决办法是对最佳判据进行修正。最广泛应用的判据是寻找单个最佳状态序列(路径),亦即使 最大。下面介绍的Viterbi算法就是一种以动态规划为基础的寻找单个最佳状态序列的方法。),|(OQP完整的算法如下所述:(1)初始化(2)迭代计算(3)最后计算(4)路径(状态序列)回溯0)(1)()(111iNiObiii,NjTtObaijtjijtNit1,2)()(max)(11,NjTtaijijtNit1,2)(maxarg)(11,)(max1*ipTNi)(maxarg1*iqTNiT1,.,2,1)(*
30、11*TTtqqttt,3第三个问题的求解 这个问题是调整模型参数 ,使观测序列在给定模型条件下发生概率最大。即模型参数重估问题(训练问题)。事实上,给定任何有限观测序列作为训练数据,没有一种最佳方法能估计模型参数。但是可以利用迭代处理方法(Baum-Welch法,或称期望值修正法)来选择(A,B,)以使得 最大,可以用参数重估来解决。),(BA)|(OP 首先定义变量 即给定模型和观测序列条件下,在时间t处于状态Si,而在时间t+1处于状态Sj的概率。根据前后向变量的定义,从计算图可以看出,可写成如下形式:),(jitNiNjttjijtttjijtttjijttjObaijObaiOPjO
31、baiji11111111)()()()()()()|()()()(),(),|,(),(1OSqSqPjijtitt t-1 t+2 计算示意图 tt+1t-1 jiSS1tjijOba),(jit 此前己经定义了 为在给定模型和观察序列O的条件下,在时刻t位于状态为Si 的条件概率,将 对j求和,可把两者联系起来,即 利用上面的公式及计算事件发生的概念,可以得到估计隐马尔可夫模型参数的方法,其计算公式如下)(it),(jitNjttjii1),()(1)的重估公式 即在时间t=1处于状态Si的次数的期望值。(2)aij的重估公式(3)bj(Ok)的重估公式Niiiiiii111111)()
32、()()()(1111111111)|(/)()()|(/)()()()(),(TtttTtttjijtTttTttijOPiiOPjObaiijiATtttTvOtttTttTtvOtkjOPiiOPiijjOBkkkk11 11)|(/)()()|(/)()()()()(把现在的模型定义为=(A,B,),把重估模型定义为 。以上述方法为基础,如果不断地用 代替,并重复上述重估计算,那么就能够改善由模型观测到O的概率,直到达到某个极限点为止。),(BA4解决下溢问题后的重估公式 我们可以看到上面的重估公式均涉及到了前向变量 和后向变量 的计算。而每个前向变量和后向变量都是通过递推计算得到的,
33、即是由连续相乘的概率值组成。当t达到较大数值(如100)时,二者的动态范围会超过任何计算机的精度范围从而导致下溢,因此要用软件实现此算法,必须在计算过程中使用定标算法。)(it)(jt 即每递推计算一次便对运算结果乘以一个适当放大的比例因子。下面给出了详细的定标过程并且推导了加入定标因子后三个参数的重估公式(包括单序列和多序列重估公式)。定标的基本方法是对 和 乘以一个定标系数,该系数与t无关(即它只取决于t),目的是使定标后的 和 总是处在计算机的动态范围之内,在计算结束后,应当去掉所有的定标系数。下面给出完整的定标过程。)(it)(jt)(it)(jt(1)对前向变量进行定标 定标过程需要
34、引入几个新的变量:和 。是待求前向变量值,设 为递推值,为修正递推值,由于 的下溢问题,在实际计算过程中这个变量不能出现,所以公式中的 必须用修正递推值 代替。设ct为标度(定标)因子 则前向变量的递推计算按下面步骤进行。)(it)(it)(it)(it)(it)(it)(it)(itNittic1)(1初始化:递推:)()(11ii)()()(11111icici)|(1)(1)(1111111OPiicNiNi)()(iciattt定标后前向变量的计算公式为:根据上两个公式可以得到:推理后有下式成立 )()()(111tjijNittObaij)()()()()()()(212211122
35、112222jccObaiccObaicjcjjijNijijNi121).)()(tttcccjj)(.)(121jccccjttttt由于前向概率用修正递推值表示为:而所以)()|(1iOPNiT)().()|(1121icccOPNiTT1)()(11NiTTNiTici121).()|(TcccOP(2)对后向变量进行定标 同上,我们引入两个变量,即递推值 和修正递推值 。初始化 令 同理类似于前向概率的定标最终可以得到:加入定标算法后(即用修正递推值代替原来的前后向变量)改写三个参数重估公式:)(jt)(jt1)()(jjTT)()(jcjTTT)().()(11jcccjttTTt
36、NiicOPiicOPii111111111)|()()()|()()(1111111)()()()()(TttttTtttjijtijciijObaiA TtNittjijtTvOtNittjijtkjiObaiciiiObaiciiOBkk21111112111111)()()()()()()()()()()(前面给出了单个序列训练模型参数的重估公式。对于非特定人识别系统,如果语音的全部知识只是词汇表中每个单词的一个例词,却期望识别器具有非常优良的性能是不可能的,应该给识别器提供单词模式的各种变异情况。比较好的办法就是每个单词要有多个例词发音。所以不能用一个观测序列来训练模型,为了有足够的
37、数据来可靠地估计模型参数,必须使用多个观测序列。即每个模型参数都要使用多个样本来训练,假 设 有 L 个 样 本(对 应 于 L 个 观 测 序列 ),现假定每个观测序列都是相互独立的,调整模型的参数以使L个 乘积的值最大,此时对重估公式的修正办法是把每个观测序列的概率加在一起,这样修正后多序列的重估公式为:,.,)()2()1(LOOO)|(OPNiLllllLllllicOPiicOPii111)(1)(1)(111)(1)(1)(1)|()()()|()()(LlTtltltltLlTtlttjijltijllciijObaiA1111)()()(111)(11)()()()()()(L
38、lTtNilttjijltlllLlTvOtNilttjijltlllkjllkkiObaiciiiObaiciiOB121)()(1)(1)(1)(1121)()(1)(1)(1)(1)()()()()()()()()()()(11 单序列和多序列i的重估公式中都出现了概率P的计算,这样又会引入新的下溢问题,解决办法是在迭代计算P 的过程中,每次都乘以一个较大的数,这样分子分母每次都乘以一个相同的数,二者在同一数量级上,所以对重估公式没有影响。10.2.3 隐马尔可夫模型用于语音识别1实验方法 用C+语言在Windows操作系统上实现了一个基于离散HMM的孤立词语音识别系统。共使用了50词1
39、6个人的不同信噪比的语音数据来做实验(包括无噪音、15dB、20dB、25dB、30dB的数据),每人每个词发音3次,其中9人的语音数据(某种SNR)用于训练模型,另外7人的用于识别,得到这种SNR下语音的识别结果。每个词的HMM参数使用27个样本(9人3次)来训练,测试样本文件的数目依实验所用的词汇量而不同。具体实验步骤 第一步:特征提取 第二步:矢量量化 第三步:训练隐马尔可夫模型 第四步:对测试集单词进行识别 2实验结果及讨论 下表为使用ZCPA特征和HMM的不同词汇量单词在各种SNR下的识别结果比较。SNR(dB)15202530clean10词词85.784.786.285.789.
40、120词词76.681.282.481.785.730词词77.181.983.182.983.540词词76.679.081.382.683.050词词72.174.580.179.081.7系统性能影响因素的讨论 (1)矢量量化影响 由于系统使用的是离散隐马尔可夫模型方法,所以需要事先对每个单词的特征参数进行矢量量化,这样不可避免地会引入量化误差,所以应使用好的方法生成码书,以减小由此引起的失真,从而使系统性能所受影响尽可能减小。(2)初值设定影响 HMM训练方法(Baum-Welch算法)本质上是一种梯度下降方法,在训练过程中有可能到达局部最小值。因此,初值的选取比较重要,好的初值可以避
41、免局部极小问题。我们可以加入一定的优化方法来选取初值。在离散HMM中,参数B对系统的性能有很大影响,超过了参数A和。所以也可以单独对参数B初值的选取采用一定的优化方法。(3)训练数据量的影响 为了训练出可靠的参数模型,必须加大训练集的数据。当在训练集中又加入了5个人的语音数据(共16人数据),测试集数据量不变,分别对10词到50词的数据进行了无噪音及信噪比为15dB、20dB、25dB、30dB、clean条件下的实验,结果如下表所示。实验结果表明增加训练集的样本数后,与9人训练相比系统识别率有大幅度提高。SNR(dB)15202530clean10词词88.088.790.791.392.0
42、20词词86.087.790.389.391.730词词84.287.389.189.690.440词词82.887.788.790.790.850词词81.785.687.786.789.3 (4)输出概率矩阵的平滑问题 训练集的有限性使得训练完以后的B矩阵中有一些零元素,这些不合理的零概率会给识别带来一定的影响,解决这个问题有三种方法:基数法,距离法和同现法。实验中采用的是最简单的基数法,它是将B矩阵中小于某个给定最小值的元素e(e依据生成矩阵确定)赋给一个值(取10-4 10-6),然后修改B矩阵的其它元素使它满足约束条件:即在第 j个状态下 。1)(1kbMkj 实验结论:将B矩阵进行
43、平滑处理后,对训练集内数据做识别测试时(称为特定人识别)识别率随值增大而下降,未进行平滑前训练集内数据识别率为100%,平滑处理后识别率略有下降,这是由于 的设置改变了原有训练参数而引起的。而对测试集数据进行识别测试时(称为非特定人识别),识别率随值增加而上升。说明对于测试集,越小,适应能力越差。所以这种输出概率矩阵平滑方法只适用于HMM的非特定人识别。在我们前述的识别系统中,选取=10-4,结果表明识别率较没有进行输出矩阵平滑前增加了10%左右。语音识别系统简述语音识别系统的本质就是一种模式识别系统,它包括特征提取、模式匹配、参考模式库等基本单元。由于语音信号是一种典型的非平稳信号,加之呼吸
44、气流、外部噪音、电流干扰等使得语音信号不能直接用于提取特征,而要进行前期的预处理。预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。经过预处理的语音数据就可以进行特征参数提取。在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。语音识别原理框图语音信号采集语音信号预处理端点检测识别参数提取识别参数匹配识别模板信号待识别信号识别结果语音信号预处理端点检测识别参数提取语音信号预处理分帧:在实际处理时可以将语音信号分成很小的时间段(约10
45、30ms5,7),称之为“帧”,作为语音信号处理的最小单位,帧与帧的非重叠部分称为帧移,而将语音信号分成若干帧的过程称为分帧。预加重:对于语音信号的频谱,通常是频率越高幅值越小,在语音信号的频率增加两倍时,其功率谱的幅度下降6dB。因此必须对高频进行加重处理,一般是将语音信号通过一个一阶高通滤波器1-0.9375z-1,即为预加重滤波器,其目的是滤除低频干扰。加窗:为了保持语音信号的短时平稳性,利用窗函数来减少由截断处理导致的Gibbs效应。用的最多的三种为矩形窗、汉明窗(Hamming)和汉宁窗(Hanning)。几种典型的窗函数矩形窗:汉明窗(Hamming):哈宁窗(Hanning):1
46、=(0nN-1)WR=0=(Other)0.5-0.46cos(2n/(N-1)(0nN-1)WHM=0=(Other)0.5-0.5cos(2n/(N-1)(0nN-1)0=(Other)WHN=语音信号端点检测在基于DTW算法的语音识别系统中,无论是训练和建立模板阶段还是在识别阶段,都先采用端点检测算法确定语音的起点和终点。语音端点检测是指用计算机数字处理技术从包含语音的一段信号中找出字、词的起始点及结束点,从而只存储和处理有效语音信号。1、短时能量2、短时过零率3、双门限端点检测短时能量:语音和噪声的主要区别在它们的能量上。语音段的能量比噪声段的大,语音段的能量是噪声段能量叠加语音声波能
47、量的和。短时过零率:短时过零表示一帧语音信号波形穿过横轴(零电平)的次数。对于连续语音信号,过零意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值的改变符号则称为过零。双门限端点检测:双门限端点检测顾名思义需要两级检测,即短时能量检测和短时过零率检测。语音train_0.wav的时域分析参数语音train_0.wav的端点检测结果语音识别参数的提取经过预处理的语音数据就可以进行特征参数提取,特征参数的好坏将直接影响系统的性能和效率,提取出来的参数直接用来进行语音识别。对特征参数的要求:(1)提取的特征参数能有效地代表语音特征,具有很好的区分性;(2)各阶参数之间有良好的独立性;(3)特
48、征参数要计算方便,最好有高效的计算方法,以保证语音识别的实时实现。LPC与LPCC系数MFCC系数LPC与LPCC系数:LPC(线性预测系数)模拟人发音器官的声管模型,是一种基于语音合成的参数模型。在语音识别系统中很少直接使用LPC系统,而是由LPC系数推出的另一种参数LPCC。LPCC(线性预测倒谱系数)是LPC在倒谱域中的表示。LPCC的优点是计算量小,易于实现,对元音有较好的描述能力,缺点是对辅音描述能力较差。MFCC系数:人的听觉系统是一个特殊的非线性系统,它响应不同频率信号的灵敏度是不同的,基本上是一个对数的关系。近年来,一种能够比较充分利用人耳的这种特殊感知特性的系数得到了广泛应用
49、,这就是Mel尺度倒谱系数(即MFCC)。大量研究表明,MFCC系数能够比LPCC参数更好地提高系统的识别性能。DTW算法实现DTW(Dynamic Time Warping,动态时间规整)是语音识别中较为经典的一种算法。在实现小词汇表孤立词识别系统时,其识别率及其它指标与HMM算法实现几乎等同。又由于HMM算法复杂,在训练阶段需要提供大量的语音数据通过反复计算才能得到模型参数,而DTW算法本身既简单又有效,因此在特定的场合下获得了广泛的应用。DTW算法原理DTW是把时间规整和距离测度计算结合起来的一种非线性规整技术,它寻找一个规整函数im=(in),将测试矢量的时间轴n非线性地映射到参考模板
50、的时间轴m上,并使该函数满足:D是处于最优时间规整情况下两矢量的距离。由于DTW不断地计算两矢量的距离以寻找最优的匹配路径,所以得到的是两矢量匹配时累积距离最小所对应的规整函数,这就保证了它们之间存在的最大声学相似性。算法实质为运用动态规划的思想,利用局部最佳化的处理来自动寻找一条路径,沿着这条路径,两个特征矢量之间的累积失真量最小,从而避免由于时长不同而可能引入的误差。NinninniRiTdD1)()(),(min第一讲 绪论1.语音信号处理的概念2.语音信号处理的学科基础3.语音信号处理的分支和应用4.语音信号处理的发展历史5.本课程的内容和特点6.参考书目7.学习要求1.语音信号处理的