logo资料库

利用MATLAB平台实现少量字的语音识别功能.doc

第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
资料共31页,剩余部分请下载后查看
本科毕业论文(设计) 论文题目: 利用 MATLAB 平台实现 少量字的语音识别功能 院 专 姓 学 系: 物理系 业: 物理学 名: 吴大钟 号: 0319030 指导教师: 俞 熹 2007 年 6 月 19 日 1
学生姓名 吴大钟 学 号 0319030 专 业 指导教师姓名 俞熹 职 称 讲师 部 门 物理学 物理系 论文题目 利用 MATLAB 平台实现少量字的语音识别 摘 要 摘要:初步研究两种不同的语音识别算法---动态时间伸缩算法(DTW)和 隐马尔科夫模型(HMM), 初步探究并实现在 MATLAB 环境中应用 DTW 识别 法的孤立字语音识别实验平台。 关键字:MATLAB,语音识别,LPC,LPCC,MFCC,动态时间伸缩算 法(DTW),隐马尔科夫模型(HMM) Abstract 【Abstract】: Use two kinds of arithmetic to study speech recognition: Dynamic Time Warping (DTW) and the Hidden Markov Model (HMM). Build a basic test platform of speech recognition using DTW. 【Key words 】: MATLAB, speech recognition, LPC, LPCC, MFCC, Dynamic Time Warping, Hidden Markov Model 2
目 录 引言.....................................................................................................................................................4 1.语音识别简介..................................................................................................................................5 1.1 语音识别系统的分类................................................................................................... 5 1.2 语音识别系统的基本构成.......................................................................................5 2.语音识别参数..................................................................................................................................6 2.1 线性预测系数(LPC)............................................................................................... 6 2.2 线性预测倒谱系数(LPCC)......................................................................................8 2.3 MFCC 系数........................................................................................................... 8 2.4 参数计算流程.........................................................................................................9 3.DTW 算法..................................................................................................................................... 11 3.1 DTW 算法原理.....................................................................................................11 3.2 DTW 的高效算法................................................................................................. 14 4.HMM 算法.................................................................................................................................... 16 4.1 HMM 的原理....................................................................................................... 16 4.2 HMM 的前向概率和后向概率...........................................................................................17 4.3 识别算法——VITERBI 解码...................................................................................19 4.4 BAUM-WELCH 算法................................................................................................20 5.实验及总结....................................................................................................................................23 5.1 实验准备以及步骤............................................................................................... 23 5.2 实验结果及讨论..................................................................................................................25 5.3 实验结论.............................................................................................................................. 29 参考文献...........................................................................................................................................30 致 谢...........................................................................................................................................31 3
引 言 自上世纪 80 年代开始,语音识别技术的研究进入了一个蓬勃发展的时期, 一些商用系统也从实验室进入市场。然而,在实际的应用中,由于各种干扰因素 导致的测试条件与训练环境的不匹配,系统的性能往往会收到极大的影响。因此 提高语音识别系统的性能就成为了语音识别技术真正走向实用化的关键课题。 语音识别是以声音作为研究对象它是语音信号处理的一个重要研究方向,是 模式识别的一个分支涉及到生理学、心理学、语言学、计算机科学以及信号处理 等诸多领域,甚至还涉及到人的体态语言(如人在说话时的表情、手势等行为动 作可帮助对方理解),其最终目标是实现人与机器进行自然语言通信。本文研究 了汉语语音识别技术及其实现方法。论文首先分析了语音信号预处理问题。对 MFCC 倒谱系数在语音识别中的运用做了详细介绍。其次研究了基于 DTW 的语 音识别系统,针对 DTW 算法中系统识别性能过分依赖于端点检测、动态规划的 计算量太大等缺陷,分别提出了快速 DTW 算法和端点松动的 DTW 算法,仿真 结果比较理想。继而研究了基于 HMM 的语音识别系统。针对 HMM 在实际应用 中的优化计算问题,包括初始模型选取,定标等进行了深入的分析与探讨。针对 传统定标仍能溢出的问题,给出了无溢出的参数重估公式。 4
第一章 语音识别简介 1.1 语音识别系统的分类 语音识别是近年来十分活跃的一个研究领域。在不远的将来,语音识别技术 有可能作为一种重要的人机交互手段,辅助甚至取代传统的键盘、鼠标等输入设 备,在个人计算机上进行文字录入和操作控制。本文介绍了语音识别的基本流程、 所用到的语音参数算法、语音识别的训练算法和识别算法做初步的探究,主要运 用 了特 定人 孤立 词 识别 的 DTW 算 法和 非特 定人 识 别的 连续 HMM 算 法 的 MATLAB 识别系统。 语音识别按说话人的讲话方式可分为孤立词(Isolated Word)识别、连接词 (Connected Word)识别和连续语音(Continuous Speech)识别。孤立词识别是指说话 人每次只说一个词或短语,每个词或短语在词汇表中都算作一个词条,一般用在 语音电话拨号系统中。连接词语音识别支持一个小的语法网络,其内部形成一个 状态机,可以实现简单的家用电器的控制,而复杂的连接词语音识别系统可以用 于电话语音查询、航空定票等系统。连续语音识别是指对说话人以日常自然的方 式发音,通常特指用于语音录入的听写机。显然,连续非特定人语音识别的难度 要大得多,因为不仅有说话人口音的问题,还有协同发音、断字断句、搜索等问 题,除了考虑语音的声学模型外还要涉及到语言模型,如构词法、文法等。 从识别对象的类型来看,语音识别可以分为特定人(Speaker Dependent)语音 识别和非特定人(Speaker Independent)语音识别。特定人是指只针对一个用户的语 音识别,非特定人则可用于不同的用户。实际上,非特定人语音识别的初始识别 率往往都比较低,一般都要求用户花一定的时间对系统进行训练,将系统的参数 进行一定的自适应调整,才能使识别率达到满意的程度。 非特定人大词表连续语音识别是近几年研究的重点,也是研究的难点。目前 的连续语音识别大多是基于 HMM(隐马尔可夫模型)框架,并将声学、语言学的 知识统一引入来改善这个框架,其硬件平台通常是功能强大的工作站或 PC 机。 1.2 语音识别系统的基本构成 语音识别系统的典型实现方案为:输入的模拟语音信号首先要进行预处理, 5
包括预滤波、采样和量化、加窗、端点检测、预加重等。语音信号经预处理后, 接下来很重要的一环就是特征参数提取。对特征参数的要求是: (1) 提取的特征参数能有效地代表语音特征,具有很好的区分性。 (2) 各阶参数之间有良好的独立性。 (3) 特征参数要计算方便,最好有高效的计算方法,以保证语音识别的实 时实现。 在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型, 保存为模版库。在识别阶段,语音喜好经过相同的通道得到语音参数,生成测试 模版,与参考模版进行匹配,将匹配分数最高的参考模版作为识别结果。同时还 可以在很多先验知识的帮助下,提高识别的准确率。 第二章 语音识别的参数 2.1 线性预测系数 语音信号是一种典型的时变信号,然而如果把观察时间缩短到十毫秒至几十 毫秒,则可以得到一系列近似稳定的信号。人的发音器官可以用若干段前后连接 的声管进行模拟,这就是所谓的声管模型。下图为语音产生的生理结构示意图: 6
图 2-1 语音产生的生理结构示意图[1] 由于发音器官不可能毫无规律地快速变化,因此语音信号是准稳定的(quasi steady)。全极点线性预测模型(LPC)可以对声管模型进行很好的描述,这里信号 的激励源是由肺部气流的冲击引起的,声带可以有周期振动也可以不振动,分别 对应浊音(Vowel)和清音(Consonant),而每段声管则对应一个 LPC 模型的极点。 一般情况下,极点的个数在 12~16 之间,就可以足够清晰地描述语音信号的特征 了。LPC 是语音分析的重要手段,它能很好地进行谱估计,即可作为语音特征的 参数。因此仅用 12 个 LPC 系数就能很好地表示复杂语音信号的特征,这就大大 降低了信号的冗余度并有效地减少了计算量和存储量,使之成为语音识别和语音 压缩的基础。下图为以声管模型为基础的 LPC 模型: 7
图 2-2 以声管模型为基础的 LPC 模型  n ( ,0) i 由: 该式表示 p 个方程构成的方程组,未知数为 p 个。求解该方程组,就可以得到系 统的线性预测系数。由基于自相关的递推求解公式求解,也就是所谓的 Durbin 算法得: 1  k 1,2,   , p ( , ) i k ˆ a  k n k p   (0) E n R n ( ) R i n ………………………………………………2.1 (0) 1 i   1  E ……………………………..2.2 ( R i n ( 1) i ( 1) i   a ) j   j j n k i  ( )i ( ) i a i a j E n ( ) l  ( 1) i k …………………………………………………...2.3 i ( 1) ,1   …………………………..2.4 i  a  j ………………………………………2.5 (1   a 直到 k a  i i j  2 ( 1) i ) k E  i , a a j i , n ,i 2 公式中,上标 ( )i 表示第i 次迭代,每次迭代只计算和更新 1 i p 时,结束迭代。 在 MATLAB 中利用 lpc 函数[2]计算 LPC 系数,其语法为: a = lpc(x,n); 这里 x 为一帧语音信号,n 为计算 LPC 参数的阶数。通常 x 为 240 点或 256 点的数据,n 取 10~12,对语音识别来说就已经足够。 2.2 线性预测倒谱系数 在语音识别系统中,很少直接使用 LPC 系数,而是由 LPC 系数推导出另一 种参数:线性预测倒谱系数(LPCC)。倒谱实际上是一种同态信号处理方法,标 准的倒谱系数计算流程需要进行 FFT 变换[3],对数操作和相位校正等步骤,运 8
分享到:
收藏