您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 畜牧/养殖 > 基于HMM算法的语音识别的研究
毕业论文答辩题目:基于HMM算法的语音识别的研究一、结构框架1、研究背景2、语音系统分类和构成3、语音识别详细模块介绍4、仿真与分析5、总结与收获语音识别是近年来十分活跃的一个研究领域。在手持式设备、智能家电、工业现场控制等应用场合,语音识别技术有着广阔的发展前景。尤其是在包括PDA、手机等掌上型嵌入式系统中,键盘的存在已经大大妨碍了系统的小型化,而语音识别技术就是一种极富潜力和最为理想的选择,具有高技术含量和广阔的市场价值。目前主流的语音识别技术是基于统计模式识别的基本理论,国外的语音识别研究工作主要集中在非特定人、大字表、连续语音识别系统上,国内的研究大国集中于连续语音识别、语音新特征研究、动态时间弯折(DTW)算法、隐马尔可夫模型HMM及神经网络等识别技术的研究。课题研究的背景和意义2、语音系统分类和构成1.从说话者与识别系统的相关性分:(1)特定人语音识别系统:仅考虑对于专人的语音进行识别,与说话的语种没有关系;(2)非特定人语音识别系统:识别的语音与人无关,通常要用大量不同人的语音数据库对识别系统进行学习,识别的语言取决于采用的训练语音库;(3)多人的识别系统:通常能识别一组人的语音该系统通常要求对该组人的语音进行学习,通常可以识别三到五个人的语音。2.从说话的方式分:(1)孤立词语音识别系统:输入系统要求输入每个词后要停顿;(2)连接词语音识别系统:输入系统要求对每个词都清楚发音,开始出现连音现象;(3)连续语音识别系统:连续语音输入自然流利的语音,会出现大量的连音和变音。典型系统结构图语音系统结构图系统主要模块语音系统主要包含以下四个模块:(1)预处理预处理部分包括语音信号的采样、预加重、语音分帧以及端点检测等,预处理最重要的步骤是端点检测。(2)特征提取特征提取部分的作用是从语音信号波形中提取一组或几组能够描述语音信号特征的参数,如平均能量、过零数、倒谱、线性预测系数等,以便训练和识别。参数的选择直接关系着语音识别系统识别率的高低。(3)训练训练是建立模式库的必备过程,词表中每个词对应一个参考模式,它由这个词重复发音多遍,再经特征提取和某种训练中得到。(4)模式匹配模式匹配部分是整个系统的核心,也就是按照某种算法求取待测语音特征参数和语音信息与模式库中相应模板之间的失真测度,最匹配的就是识别结果。语音系统模块分析1、预处理模块(1)语音信号采样要了分析说话人的语音,就要将话筒中传来的语音信号转换成计算机所能处理的数字信号。利用采样定律,对语音信号进行采样。实验表明语音清晰度和可懂度有明显影响的成分最高频率约为5.7KHz。因此语音识别时常用的采样频率为10KHz或16KHz。(2)预加重它的目的在于消除低频干扰尤其是50Hz的工作频率干扰,将对语音识别更为有用的高频部分的频谱进行提升。使信号的频谱变的平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱,以便于频谱分析。(3)语音分帧语音信号常常可假定为短时平稳的,即在10-20ms这样的时间段内,其频谱特性和某些物理特征参量可近似地看作是不变的。这种处理的基本方法是将语音信号分隔为一些短段即分帧再加以处理。一般采用交叠分段的方法,即帧与帧之间有交叠,交叠的目的是使帧与帧之间平滑过渡,保持其连续性。语音信号处理的帧长一般取20ms。、(4)语音端点检测语音端点检测就是从包含语音的一段信号中找出语音的起点及终点,从而只存储和处理有效语音信号。它是语音处理技术中的一个重要方面,其目标是要在一段输入信号中将语音信号同其它信号(如背景噪声)分离开来。端点检测采用传统的检测方法即将语音信号的短时能量与过零率相结合去判断起点与结束点。2、特征参数提取模块(1)线性预测系数(LPC)LPC是语音分析的重要手段,它能很好地进行谱估计,即可作为语音特征的参数。因此仅用12个LPC系数就能很好地表示复杂语音信号的特征,这就大大降低了信号的冗余度并有效地减少了计算量和存储量,使之成为语音识别和语音压缩的基础。(2)线性预测倒谱系数(LPCC)在语音识别系统中,很少直接使用LPC系数,而是由LPC系数推导出另一种参数:线性预测倒谱系数(LPCC)。倒谱实际上是一种同态信号处理方法,标准的倒谱系数计算流程需要进行FFT变换,对数操作和相位校正等步骤,运算比较复杂。。(3)MFCC系数MFCC参数是目前大多数语音识别系统中广泛使用的特征参数,它是基于人耳的听觉特性。人耳对声音音调的感受与其频率并不成线性关系。而Mel倒谱尺寸,则更符合人耳的听觉特性。Mel频率尺度,它的值大体上对应于实际频率的对数分布关系。MFCC与基于线性预测的LPCC相比,其突出优点是不依赖全极点语音产生模型的假定,因而在噪声环境下表现出更强的鲁棒性,在非特定人语音识别方面有利于减小因说话人不同的差异可能带来的影响。不足之处是MFCC方法中多次用到FFT(快速傅氏算法),故算法的复杂程度远大于LPCC方法。3、训练模块鲁棒性训练方法:将每一个词重复说多遍,直到得到一个一致性较好的特征矢量序列。最终得到的模板是在一致性较好的特征矢量序列。经典的Baum-Welch算法中,参数重估公式是在假设只有一个观察序列的条件下推导出来的。而在实际应用中,都是大量观察序列参与训练的,也就是对每个HMM模型,都会收集大量的语音数据,分别计算各自的MFCC参数序列,再用来对该HMM的参数进行重估。例如,对数字“0”建立HMM模型,就要找很多人,录制多个“0”的wav文件,进行端点检测后,计算出MFCC参数序列,也就是所谓的观察序列,就可以对模型的参数进行训练了。4、语音识别算法HMM模块1、HMM算法简介隐马尔科夫模型,一方面用隐含的状态对应声学层各相对稳定的发音单位,并通过状态转移和状态驻留描述发音的变化;另一方面引入了概率计算模型,用概率密度函数计算语音特征参数对HMM模型的输出概率,通过搜索最佳状态序列,以最大后验概率为准则找到识别结果。2、基本原理HMM是在Markov链的基础之上发展起来的。由于实际问题比Markov链模型所描述的更为复杂,观察到的事件并不是与状态一一对应,而是通过一组概率分布相联系,这样的模型就称为HMM。它是一个双重随机过程,其中之一是Markov链,这是基本随机过程,它描述状态的转移。另一个随机过程描述状态和观察值之间的统计对应关系,即站在观察者的角度,只能看到观察值,不能直接看到状态,而是通过一个随机过程去感知状态的存在及其特性。HMM主要模型参数模型参数说明N模型的状态数{}ijAa状态转移矩阵,1[|],1,ijiiaPqjqiijN{}i各状态的起始概率分布,1[],1tPqiiN{()}jBbo输出概率密度函数,1()(),,),1MjjljljlibocNoUjN参数说明O观察向量M每个状态包含的高斯元的个数jlc第j状态第1个混合高斯函数的权N代表正态高斯概率密度函数ij第j状态第1个混合高斯元的均值矢量jlU第j状态第1个混合高斯元的协方差矩阵3、识别算法—Viterbi解码Viterbi算法,不仅可以找到一条足够好的状态转移路径,还可以得到该路径所对应的输出概率。同时,用Viterbi算法计算输出概率所需要的计算量要比全概率公式的计算量小很多。4、HMM参数训练算法Baum-Welch这个算法实际上是解决HMM训练,即HMM参数估计问题,或者说,给定一个观察值序列,该算法能确定一个,使最大。这里,求取,使最大是一个泛函极值问题。但是由于给定的训练序列有限,因而不存在一个最佳的方法来估计。在这种情况下,Baum-Welch算法利用递归的思想,使局部极大,最后得到模型参数。12,,,TOOOO5、HMM的输出概率计算首先定义HMM的前向概率为:与前向概率相对应,还有后向概率。定义后向概率为:前向概率公式和后向概率公式巧妙地将整个观察序列对HMM模型的输出概率分成两个部分观察序列的输出概率的乘积,而且它们各自都有相应的递推公式,可以大大简化计算。经过分析,可以得到下面的输出概率计算公式:6、HMM算法实现的问题(1)初始模型的选取选取好的初始模型,是最后求出的局部极大与全局最大接近,是很有意义的。一般认为,和A参数的初始选取影响不大,可以随机选取或均匀取值,只要满足概率要求即可,但B初值对训练出的HMM影响较大,一般倾向采用较为复杂的初值选取方法。比较典型的HMM参数估计算法是“K均值分割”算法。(2)HMM状态数的选取一般取状态数为4~10,但不是状态数越多越好,对单个汉字而言,取6较为合适。(3)HMM中B参数类型的选取为了采用连续观测密度,必须对模型的概率密度函数(pdf)的形式做某些限制,以保证能够对pdf的参数进行一致估计。不同形式的pdf是有不同的参数来描述的,而估计这种参数的重估公式也是不一样的。一般采用pdf——高斯型(4)多个观察序列训练是集中训练一个HMM,经常用到不止一个观察值序列,那么对于K个观察值序列训练HMM时,要对Baum-Welch算法的重估公式加以修正7、多个观察序列训练(1)HMM的缺陷基于HMM理论的语音识别系统虽然实现了很多功能,但并不是完美的,在识别率和系统鲁棒性上仍有很多不足,目前最成功的语音识别软件仍无法满足广大用户的需要。对状态持续时间建模不力在状态序列给定的条件下,观测符号之间条件独立基于帧的观测符号在特征提取上的限制Markov链理论,在本质上并非语音信号的完美解释(2)主要原因语音信号处理部分没有能从原始语音信号中提取抗干扰能力强的语音特征;HMM并没有准确地对语音信号进行描述;语音环境复杂使语言模型的建立变得困难仿真及结果分析1、实验内容实验平台为Windows平台上,采用Matlab数学工具通过完成程序而实现的。波形比较图1说话者A发音的vad输出图2说话者B发音的vad输出图3说话者A发音的vad输出——横轴:时间(单位:秒)纵轴:能量——(单位:eV)(上图)语音原始信号;Energy短时能量(单位:eV);ZCR过零率(单位:%)波形分析Vad函数的功能就是通过端点检测功能甄别出语音信号的起始点与结束点,图中的红线就是程序标记的语音信号始末点,可以看出,杂音基本被排除,效果是非常明显的。同时,从以上三个图的对比可以看出,不同发音者的发音波形及特性有较明显区别。原始波形中,发音者A的波形在横轴两端不对称,而发音者B的波形在横轴两端比较对称;能量波形中,两者的区别更加明显:发音者A的能量高峰在语音后部,发音者B的能量高峰在语音前部;过零率波形中也可以明显看出两个人的区别。端点检测下的短时能量分析只是语音识别的第一步,但是通过该步骤已经可以粗略的区别出不同发音者,并且可以进一步分析发音者语音信号的特点。MATLAB匹配距离矩阵输出图4说话者A的两组语音匹配结果及距离匹配矩阵图5说话者B的两组语音匹配结果及距离匹配矩阵图6说话者A和B的两组语音匹配结果及距离匹配矩阵图7说话者A和B的匹配矩阵的的三维柱状图实验总结课题最终在MATLAB平台的基础上基本实现了孤立词语音识别,基本上达到了预定的目的。基于HMM模型混合高斯型概率密度模型的语音识别简单的说就是通过MATLAB的程序段,将待识别的语音信号与数据库中的模板进行相似度对比,将相似度最高者最为识别结果输出,同时HMM的识别效率取决于参考模板的丰富度、清晰度以及广泛度,如果能够建立一个范围庞大而且清晰的语音库,将能够大大提高语音识别的效率。我们的试验由于时间以及外部设备的关系,难以组建一个非常精确的参考样本,因此识别的效率略微偏低,不过已经足够说明HMM识别算法在非特定人孤立字语音识别中的巨大作用。谢谢大家!
本文标题:基于HMM算法的语音识别的研究
链接地址:https://www.777doc.com/doc-4497645 .html