• 744.50 KB
  • 2022-04-29 14:07:58 发布

特定人孤立词语音识别的研究毕业论文.doc

  • 50页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'本科学生毕业论文(设计)题目(中文):特定人孤立词语音识别的研究(英文):ResearchOfSpeaker-dependentIsolated-wordSpeechrecognition姓名学号院(系)专业、年级指导教师28 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:     28 湖南科技学院本科毕业论文(设计)诚信声明本人郑重声明:所呈交的本科毕业论文(设计),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。本科毕业论文(设计)作者签名:二○○八年月日28 毕业论文(设计)任务书课题名称:特定人孤立词语音识别的研究学生姓名:系别:物理与电子工程系专业:电子信息工程指导教师:28 湖南科技学院本科毕业论文(设计)任务书1、主题词、关键词:语音识别、孤立词、特定人、DTW2、毕业论文(设计)内容要求:对语音识别的概念、分类、发展过程及发展趋势要有所介绍;设计一个基于特定人的语音识别系统,给出实现方案。对特定人语音识别系统中牵涉到的有关识别算法要进行编程,并在MATLAB6.5环境下进行仿真调试,给出具体仿真结果。28 3、文献查阅指引:[1]赵力.语音信号处理.第一版,北京:机械工业出版社.[2]陈立万.基于语音识别系统中DTW算法改进技术研究.微计算机信息,2006,2(2).[3]何强,何英.MATLAB扩展编程.第一版,北京:清华大学出版社.[4]李潇,王大堃.基于MATLAB的孤立字语音识别试验平台.四川理工学院学报(自然科学版),19(3).4、毕业论文(设计)进度安排:1.2007.12月--1月论文资料收集和整理,完成开题报告。2.2008.2月--3月查找资料,给出系统实现方案,对算法进行编程和调试并完成毕业论文初稿。3.2008.3月--4月完成毕业论文修改并定稿。4.2008年5月准备答辩。教研室意见:负责人签名:注:本任务书一式三份,由指导教师填写,经教研室审批后一份下达给学生,一份交指导教师,一份留系里存档。28 湖南科技学院本科毕业论文(设计)开题报告书论文(设计)题目特定人孤立词语音识别的研究作者姓名周刚所属系、专业、年级物理与电子工程系电子信息工程专业2004年级指导教师姓名、职称杨熙预计字数10000开题日期2008.1.15选题的根据:1)说明本选题的理论、实际意义2)综述国内外有关本选题的研究动态和自己的见解一个完整特定人孤立词语音识别系统通常包括语音的输入、语音的预处理(预加重、加窗分帧、端点检测等)、特征提取、训练与识别等几个环节。语音识别的过程可以被看作模式匹配的过程。本文介绍的DTW是采用一种最优化的算法——动态规整法,通过将待识别语音信号的时间轴进行不均匀地扭曲和弯曲,使其特征与模板特征对齐,并在两者之间不断地进行两个矢量距离最小的匹配路径计算,从而获得两个矢量匹配时累积距离最小的规整函数。这是一个将时间规整和距离测度有机结合在一起的非线性规整技术,保证了待识别特征与模板特征之间最大的声学相似特性和最小的时差失真。DTW解决了发音长短不一的模板匹配问题,是语音识别中出现较早,较为经典的一种算法。语音识别研究从二十世纪50年代开始到现在已经历半个多世纪的蓬勃发展,在这期间获得了巨大的进展。但语音识别ASR(AutomaticSpeechRecognition)系统的实用化研究仍是近十年语音识别研究的一个主要方向。语音识别系统包含的知识面非常广,对其进行研究对自己各方面知识的应用能力会有很大的提高。并且语音识别作为一门正火热发展的技术,其发展前景相当可观,对其进行深入了解,研究是非常必要的。主要内容:(1)语音识别的概念、分类、发展过程及发展趋势;(2)语音识别系统的实现方案与语音识别中需要的语音信号处理理论;(3)传统DTW算法及改进后的快速DTW算法的实现与比较;(4)在Matlab6.5环境下进行特定人语音识别的仿真。28 研究方法:(1)阅读文献,进行理论分析;(2)把整个识别过程分成几个子过程,逐步分析;(3)对整个系统程序的测试采用分模块调试,然后进行整体调试;完成期限和采取的主要措施:完成期限:2007年12月到2008年5月主要措施:严格遵照《湖南科技学院毕业论文(设计)工作管理办法》的指示精神,结合个人的实际情况,我完成这项设计所采取的主要措施有两条:一是密切联系。联系本组设计成员及毕业设计指导师,寻求有关毕业设计信息,确定设计课题方向与设计内容;二是虚心学习。利用课余时间到图书馆和网络上查阅资料,并虚心向老师请教和同学进行学习交流,保障毕业设计的顺利完成。主要参考资料:[1]钟林,刘加,刘润生.多层前向感知机汉语孤立数码语音识别[J].电路与系统学报,5(2)。[2]何强,何英.MATLAB扩展编程[M].第一版,北京:清华大学出版社.[3]徐文盛,戴蓓倩,方绍武,陆伟.特定人汉语数码语音抗噪识别方法[J].电路与系统学报,5(2).[4]陈立万.基于语音识别系统中DTW算法改进技术研究[J].《微计算机信息》(嵌入式与SOC),2006,22(2).[5]李潇,王大堃.基于MATLAB的孤立字语音识别试验平台[J].四川理工学院学报(自然科学版),2006,19(3).[6]黄文梅,杨勇,熊桂林,成晓明.系统仿真分析与设计——Matlab语音工程应用[M].长沙:国防科技大学出版社.[7]林波,吕明.基于DTW改进算法的孤立词识别系统的仿真与分析[J].信息技术,2006年第4期.指导教师意见:指导教师签名:教研室意见:签名:年月日28 开题报告会纪要时间2008年1月15日地点第三教学楼317与会人员姓名职务(职称)姓名职务(职称)姓名职务(职称)李春树副教授杨熙助教李艳芳副教授周玲助教廖朝阳讲师谭永宏讲师卢卯旺教授会议记录摘要:会议主持人:记录人: 年 月日指导小组意见负责人签名:年月日系部意见负责人签名:年月日注:此表由学生本人填写,一式三份,一份留系里存档,指导老师和本人各保存一份28 湖南科技学院毕业论文(设计)中期检查表毕业论文(设计)题目特定人孤立词语音识别的研究学生姓名周刚学号2004010099系别物理与电子工程专业电子信息工程指导教师杨熙检查日期2008.3.26指导教师检查情况记载及修改意见:已经完成的工作:1、完成了语音的采集。2、初步完成特定人语音识别系统中的端点检测、特征提取、传统DTW算法和改进型DTW算法的比较和编程。3、进行资料的整理。4、论文大部分内容已经完成。下一步的工作:1、对整个系统在MATLAB下进行仿真测试。2、同时继续论文的写作工作。3、参考文献要按照学校的规范写,要在正文出现的位置标出。4、仔细修改摘要。5、进一步优化程序,提高识别速度。签名:签名:注:此表用于指导教师在学生毕业论文(设计)初稿完成后对学生执行任务书情况进行中期检查时用,由指导教师填写。28 湖南科技学院毕业设计(论文)指导过程记录表毕业论文(设计)题目特定人孤立词语音识别的研究学生姓名周刚学号2004010099专业班级电信0401指导教师杨熙职称助教系(教研室)电子科学与技术指导过程记录指导内容记录(一)建议毕业设计的选题方向,并提供一些参考课题及如何查阅资料。学生签名:200年月日指导教师签名:200年月日指导内容记录(二)确定毕业设计题目,给出毕业论文设计要求,指导开题报告,并推荐一些参考文献、书籍和网站。学生签名:200年月日指导教师签名:200年月日指导内容记录(三)特定人语音识别系统所需的语音处理理论知识及核心算法DTW算法。学生签名:200年月日指导教师签名:200年月日指导内容记录(四)语音样本的采集,样本语音库和测试语音库的建立。学生签名:200年月日指导教师签名:200年月日28 指导过程记录指导内容记录(五)对采集到的样本进行处理,端点检测算法的选择和特征参数的选择。学生签名:200年月日指导教师签名:200年月日指导内容记录(六)传统型DTW算法和快速DTW算法的编程实现。学生签名:200年月日指导教师签名:200年月日指导内容记录(七)在MATLAB下对程序进行编译和调试,对DTW算法和快速DTW算法进行比较。学生签名:200年月日指导教师签名:200年月日指导内容记录(八)修改论文初稿,摘要的修改,章节的调节,对仿真结果要分析,图表的标注和引用的参考文献要规范。学生签名:200年月日指导教师签名:200年月日答辩小组组长意见组长(签名):200年月日注:本表与毕业论文一起装订存档。28 湖南科技学院本科毕业论文(设计)评审表论文题目特定人孤立词语音识别的研究作者姓名周刚所属系、专业、年级物理与电子工程系电子信息工程专业2004年级指导教师姓名、职称杨熙字数10000定稿日期2008.5.10中文摘要论文中首先介绍了孤立词语音识别系统的基本理论,分析了孤立词语音识别的基本工作过程。接着介绍了常用的孤立词语音识别算法:DTW(DynamicTimeWarping,动态时间弯折)以及改进的DTW,对两种算法进行了比较,根据比较结果,采用比较高效的改进型DTW,以提高识别效率。提出了基于动态噪声的四状态端点检测算法,给出了详细的算法流程图以及具体参数的设置。用MATLAB6.5仿真了在有噪声和无噪声的情况下,利用这些算法对孤立词的端点检测效果,实验结果表明,些算法具有抗噪声能力。关键词(3-5个)语音识别,孤立词,特定人,DTW英文摘要Thethesisfirstintroducestheelementarytheoryofisolatedwordspeechrecognitionsystemandanalysesthebasicworkprocessofisolatedwordspeechrecognition.Thenitintroducestwokindsofisolatedwordspeechrecognitionalgorithmsincommonuse,DynamicTimeWarping(DTW)andadvancedDTW,carryingonthecomparisontotheboth.Accordingtothecomparisonresultsandconsideringthissystem’scharacteristic,itadoptsadvancedDTWatpresenttoimproverecognitionrate.Inthispaper,itproposesafour-stateendpointdetectionalgorithmbasedondynamicnoiseandgivesthedetailedalgorithmflowchartaswellastheconcreteparametersestablishment.Italsogivestheisolated-wordendpointdetectioneffectusingthealgorithminnoiseandnon-noisesituationwiththeMATLAB6.5softwaresimulation.Theexperimentalresultsindicatethatthisalgorithmhastheanti-noiseability.关键词(3-5个)speechrecognition;isolatedword;speaker-dependent;DTW28 指导教师评定成绩评审基元评审要素评审内涵满分指导教师实评分选题质量25%目的明确符合要求选题符合专业培养目标,体现学科、专业特点和教学计划的基本要求,达到毕业论文(设计)综合训练的目的。10理论意义或实际价值符合本学科的理论发展,有一定的学术意义;对经济建设和社会发展的应用性研究中的某个理论或方法问题进行研究,具有一定的实际价值。10选题恰当题目规模适当,难易度适中;有一定的科学性。5能力水平40%查阅文献资料能力能独立查阅相关文献资料,归纳总结本论文所涉及的有关研究状况及成果。10综合运用知识能力能运用所学专业知识阐述问题;能对查阅的资料进行整理和运用;能对其科学论点进行论证。10研究方案的设计能力整体思路清晰;研究方案合理可行。5研究方法和手段的运用能力能运用本学科常规研究方法及相关研究手段(如计算机、实验仪器设备等)进行实验、实践并加工处理、总结信息。10外文应用能力能阅读、翻译一定量的本专业外文资料、外文摘要和外文参考书目(特殊专业除外)体现一定的外语水平。5论文质量35%文题相符较好地完成论文选题的目的要求。5写作水平论点鲜明;论据充分;条理清晰;语言流畅。15写作规范符合学术论文的基本要求。用语、格式、图表、数据、量和单位、各种资料引用规范化、符合标准。10论文篇幅10000字左右。5实评总分成绩等级指导教师评审意见:指导教师签名:说明:评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分90—100分记为优秀,80—89分记为良好,70—79分记为中等,60—69分记为及格,60分以下记为不及格。28 评阅教师评定成绩评审基元评审要素评审内涵满分评阅教师实评分选题质量25%目的明确符合要求选题符合专业培养目标,体现学科、专业特点和教学计划的基本要求,达到毕业论文(设计)综合训练的目的。10理论意义或实际价值符合本学科的理论发展,有一定的学术意义;对经济建设和社会发展的应用性研究中的某个理论或方法问题进行研究,具有一定的实际价值。10选题恰当题目规模适当,难易度适中;有一定的科学性。5能力水平40%查阅文献资料能力能独立查阅相关文献资料,归纳总结本论文所涉及的有关研究状况及成果。10综合运用知识能力能运用所学专业知识阐述问题;能对查阅的资料进行整理和运用;能对其科学论点进行论证。10研究方案的设计能力整体思路清晰;研究方案合理可行。5研究方法和手段的运用能力能运用本学科常规研究方法及相关研究手段(如计算机、实验仪器设备等)进行实验、实践并加工处理、总结信息。10外文应用能力能阅读、翻译一定量的本专业外文资料、外文摘要和外文参考书目(特殊专业除外)体现一定的外语水平。5论文质量35%文题相符较好地完成论文选题的目的要求。5写作水平论点鲜明;论据充分;条理清晰;语言流畅。15写作规范符合学术论文的基本要求。用语、格式、图表、数据、量和单位、各种资料引用规范化、符合标准。10论文篇幅10000字左右。5实评总分成绩等级评阅教师评审意见:评阅教师签名:说明:评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分90—100分记为优秀,80—89分记为良好,70—79分记为中等,60—69分记为及格,60分以下记为不及格。28 湖南科技学院本科毕业论文(设计)答辩记录表论文题目特定人孤立词语音识别的研究作者姓名周刚所属系、专业、年级物理与电子工程系电子信息工程专业2004年级指导教师姓名、职称杨熙答辩会纪要时间2008年5月15日地点第三教学楼317答辩小组成员姓名职务(职称)姓名职务(职称)姓名职务(职称)李春树副教授杨熙助教李艳芳副教授周玲助教廖朝阳讲师谭永宏讲师卢卯旺教授答辩中提出的主要问题及回答的简要情况记录:1、论文中改进的DTW算法较传统DTW算法有何优点?答:由论文中图6可看出,改进的DTW算法更进一步约束了搜索范围,从而减少了数据计算量,加快识别速度并提高了计算准确度,在仿真结果中能清楚的看出其改进效果。2、论文中用到的端点检测算法为何能抗噪声?答:论文中的端点检测算法设定了高低短时能量、高低过零率、最大静音时间、最小语音长度六个门限值,其中短时能量是用于抗噪声设计的,由于语音序列的前10帧一般都为噪声,而端点检测算法中的高低能量门限是以前10帧的平均能量值作为参考依据,这样我们的算法就是基于动态背景噪声的。一般要根据实际情况选取,本系统取前10帧平均能量值的3倍和1.5倍分别作为高低能量门限。3、论文中只提到了对单个字的识别,能否实现对多字词的识别?答:DTW能实现对多字词的识别,但本文中的四端点检测法是针对单字词设计的,不过根据本文中四端点检测法的方法进行扩展,便能轻易实现对多字词的识别。会议主持人:记录人:年月日28 答辩小组意见评语:评定等级:负责人(签名):年月日系学位委员会意见评语:论文(设计)最终评定等级:负责人(签名):系部(公章)年月日校学位委员会意见评语:评定等级:负责人(签名):年月日28 目录绪论11语音识别系统基本理论31.1语音识别系统的组成31.2预处理31.3特征参数的提取41.3.1MFCC参数计算流程51.3.2差分倒谱参数52DynamicTimeWarping算法72.1DTW算法原理72.2改进的DTW算法83系统的软件设计与仿真123.1语音预处理123.2改进的端点检测算法及仿真123.2.1改进的端点检测算法123.2.2端点检测算法子程序流程图143.2.3端点检测仿真153.3特征参数提取子程序及仿真163.4DTW算法仿真163.5语音识别仿真18结论19参考文献20附录A部分程序21致谢2828 插图索引图1一般语音识别系统框图3图2用能量和过零率进行端点检测4图3线性频率上fm和f关系5图4动态时间弯曲(DTW)算法求最小失真7图5DTW算法搜索路径8图6匹配路径约束示意图9图7对角线附近的带状区域图10图8放宽端点后的区域限制11图9预加重后的语音效果12图10四状态转移的端点检测13图11“停止”的短时能量和过零率13图12基于四状态转移的端点检测流程图14图13无噪声环境下的端点检测15图14有噪声环境下的端点检测15图1524维特征参数部分值16图16数字1—6在MATLAB环境下的识别结果显示1828 附表索引表1实验一在传统DTW算法下的失真测度16表2实验一在改进DTW算法下的失真测度17表3实验二在传统DTW算法下的失真测度17表4实验二在改进DTW算法下的失真测度17表5实验一传统DTW算法和改进DTW算法的用时比较18表6实验二传统DTW算法和改进DTW算法的用时比较1828 特定人孤立词语音识别的研究摘要语音是人类进行交流的手段,因此,使用语音作为人机交互的途径对于使用者来说是最自然的一种方式,同时设备的小型化也要求省略键盘以节省体积。近年来,语音识别技术被广泛应用于工业控制、消费类产品及移动通信中,是高科技应用领域的研究热点。本文就是在这种情况下对特定人孤立词语音识别系统做了一些探讨。论文中首先介绍了孤立词语音识别系统的基本理论,分析了孤立词语音识别的基本工作过程。接着介绍了常用的孤立词语音识别算法:DTW(DynamicTimeWarping,动态时间弯折)以及改进的DTW,对两种算法进行了比较,根据比较结果,采用比较高效的改进型DTW,以提高识别效率。提出了基于动态噪声的四状态端点检测算法,给出了详细的算法流程图以及具体参数的设置。用MATLAB6.5仿真了在有噪声和无噪声的情况下,利用这些算法对孤立词的端点检测效果,实验结果表明,些算法具有抗噪声能力。【关键词】语音识别 孤立词 特定人 DTW28 ResearchOfSpeaker-dependentIsolated-wordSpeechRecognitionAbstractSpeechisthemeansthathumanbeingcarriesoncommunication.Therefore,usingspeechasahuman-computerinteractionapproachisthemostnaturalwayfortheuser.Atthesametime,equipmentminiaturizationalsodemandsomittingthekeyboardtoeconomizevolume.Inrecentyears,thespeechrecognitiontechnologyhasbeenwidelyappliedtoindustrialcontrol,consumingproductandmobilecommunication.Itisahotresearchspotinhightechnologyapplicationfield.Thisthesismakessomediscussionsonspeaker-independentisolatedwordspeechrecognitionsysteminthiscase.Thethesisfirstintroducestheelementarytheoryofisolatedwordspeechrecognitionsystemandanalysesthebasicworkprocessofisolatedwordspeechrecognition.Thenitintroducestwokindsofisolatedwordspeechrecognitionalgorithmsincommonuse,DynamicTimeWarping(DTW)andadvancedDTW,carryingonthecomparisontotheboth.Accordingtothecomparisonresultsandconsideringthissystem’scharacteristic,itadoptsadvancedDTWatpresenttoimproverecognitionrate.Inthispaper,itproposesafour-stateendpointdetectionalgorithmbasedondynamicnoiseandgivesthedetailedalgorithmflowchartaswellastheconcreteparametersestablishment.Italsogivestheisolated-wordendpointdetectioneffectusingthealgorithminnoiseandnon-noisesituationwiththeMATLAB6.5softwaresimulation.Theexperimentalresultsindicatethatthisalgorithmhastheanti-noiseability.【Keywords】speechrecognition isolatedword speaker-dependent DTW28 绪论语音识别(SpeechRecognition)是机器通过识别和理解过程把语音信号转变为相应的文本文件或命令的高技术。作为专门的研究领域,语音识别又是一门交叉学科,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学、人工智能、数理统计等众多学科紧密相连。语音识别经过四十多年的发展,已经显示出巨大的应用前景[1]。随着计算机技术、模式识别和信号处理技术以及声学技术等的发展,使得语音识别技术取得显著进步,开始从实验室走向市场。近二三十年来,语音识别技术在工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等领域有着广泛应用。当今,语音识别产品在人机交互应用中,已经占到了越来越大的比例。其主要应用在语音命令、应用于电信增值业务、数据库检索等方面。语音识别系统从不同角度、不同的应用范围等都会有不同的分类。一般语音识别系统按不同的角度有下面几种分类:1.按说话人的讲话方式可以分为孤立词(IsolatedWord)识别连续语音(ContinuousSpeech)识别。孤立词识别是指说话人每次只说一个词或短语,每个词或短语在词汇表中都算作一个孤立词条。因此,可以用来实现简单的家用电器控制。连续语音识别是指对说话人以日常自然的方式发音,通常特指用于语音录入的听写机。2.按识别对象的类型可以分为特定人(SpeakerDependent)语音识别和非特定人(SpeakerIndependent)语音识别。特定人是指定只针对一个用户的语音识别,比较简单,能得到较高的识别率,但使用前必须由特定人的用户输入大量的发音数据对其进行训练。非特定人则可用于不同的用户,这种识别系统的通用性好,应用面广,但难度也较大,不容易得到高的识别率,它的实用化将会有很高的经济价值和深远的社会意义。3.按识别的词汇量可以分为小词汇、中词汇和大词汇量语音识别。一般来讲,1~20个词汇属于小词汇量语音识别系统、20~1000个词汇属于中词汇量语音识别系统、大于1000个词汇属于大词汇量语音识别系统。语音识别研究从二十世纪50年代开始到现在已经历半个多世纪的蓬勃发展,在这期间获得了巨大的进展。这里仅仅按照一些重要方法的出现和发展为线索进行简要回顾。50年代,AT&TBell实验室实现了第一个可识别十个英文数字的语音识别系统——Audry系统。60年代,提出了动态规划(DP)和线性预测分析技术(LP),其中后者较好地解决了语音信号产生模型的问题,对语音识别的发展产生了深远影响。70年代,在模式识别思想、动态规划方法、线性预测思想等基础研究的成功应用的支撑下,孤立词发音和孤立语句发音的识别成为了可行的有用技术。80年代,的最大特点是从基于模板的方法向统计模型方法的转变,特别是转向研究隐马尔柯夫模型HMM的理论、方法和实现问题。90年代,语音识别研究的重点转向自然语言的识别处理,任务转移到航空旅行信息的索取。同时,语音识别技术不断应用于电话网络,增强话务员服务和自动化。2000年以来,人机语音交互成为研究的焦点。研究重点包括即兴口语的识别和理解,自然口语对话,以及多语种的语音同声翻译[5]。28 语音识别技术经过全球半个多世纪的研究,目前已经发展到了接近实用的阶段。在实验室环境下,大词汇量的朗读式连续说话的宽带语音信号的平均识别率可以达到90%以上。在这样的水平基础上,语音识别技术开始尝试从实验室演示系统走向实用化商品。但语音识别技术要进入成熟的商业运用还有一段艰难的路程,还必须在很多方面取得突破性进展。主要包括高可靠性;增加词汇量;应用拓展;降低成本减小体积四个方面。语音识别ASR(AutomaticSpeechRecognition)系统的实用化研究是近十年语音识别研究的一个主要方向。近年来,消费类电子产品对低成本、高稳健性的语音识别片上系统的需要快速增加,语音识别系统大量地从实验室的PC平台转移到嵌入式设备中。本文主要是针对普通控制命令词,小词汇量的特定人孤立词语音识别的研究。全文共分3章,具体的研究内容如下:第1章:介绍了语音识别系统的实现方案,给出了孤立词识别中需要的语音信号处理理论,如预加重、端点检测和特征参数提取等。第2章:介绍了基于动态规划(DP)思想的DTW算法,并在此算法的基础上,讨论了快速DTW算法的实现。最后给出了两者的对比仿真。第3章:针对本文采集的语音样本,对预处理后的语音提出了基于动态噪声有四状态端点检测法。阐述了系统的软件设计过程,对各部分给出了相应的软件流程图,并且对具体算法进行了MATLAB仿真论证。28 1语音识别系统基本理论1.1语音识别系统的组成语音识别系统的典型实现方案如框图1所示。预处理特征提取输入语音测度估计识别判决参考模板识别结果模板库识别训练图1一般语音识别系统框图一个完整特定人孤立词语音识别系统通常包括语音的输入、语音的预处理(预加重、加窗分帧、端点检测等)、特征提取、训练与识别等几个环节,基本构成如图1所示。语音识别的过程可以被看作模式匹配的过程,模式匹配是指根据一定的准则,使未知模式与模型库中的某一个模型获得最佳匹配的过程。模式匹配中需要用到的参考模板通过模板训练获得。在训练阶段,用户将词汇表中的每个词依次说一遍作为模板保存为模板库。在识别阶段,语音信号经过相同的通道得到语音特征参数,生成测试模板并与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。同时,还可以在一些先验知识的帮助下,提高识别的准确率[3]。1.2预处理由于语音信号的平均功率谱受声门激励和口鼻辐射影响,高频端大约在800Hz以上按6dB/倍频程跌落,所以在语音信号频谱时,频率越高相应的成分越小,高频部分的频谱比低频部分的难求,为此要在预处理中进行预加重(Pre-emphasis)处理。预加重通过滤波提升高频分量并消除50Hz或60Hz的工频干扰,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱,以便于频谱分析或声道参数分析。通常用一阶FIR数字滤波器来实现,系统函数为:H(z)=1–az–1(a接近于1)(1-1)进行预加重数字滤波处理后,接下来就要进行加窗分帧处理。分帧采用可移动的有限窗口进行加权的方法实现,即用窗函数ω(n)来乘X(n),从而形成加窗语音信号Xω(n)=X(n)*ω(n)。在语音信号处理中,常用的窗函数是矩形窗和汉明窗。本文中,8kHz采样,帧长为256,帧移为80的汉明窗。端点检测的目的是从包含语音的一般信号中确定出语音的起点以及终点,有效的端点检测不仅能使处理时间最小,而且能排除无声段的噪声干扰,从而使识别系统具有良好的识别性能,端点检测的成功与否甚至在某种程度上直接决定了整个语音识别系统的成败。在实际应用中,通常是利用过零率来检测清音,用短时能量来检测浊音,两者配合实现可靠的端点检测。用得比较多的是经典的双门限端点检测算法。如图2所示。幅值amp2amp10N0N1N2n过零率ZCR00N0N1N2n28 图1用能量和过零率进行端点检测输入的语音信号X(l),加窗分帧处理后得到的第n帧的语音信号为Xn(m),则:Xn(m)=ω(m)X(n+m)m=0~(N-1)(1-2)其中,n=0,1T,2T,…,并且N为帧长,T为帧移。第n帧语音信号Xn(m)的短时能量En为:En=Σ|Xn(m)|N-1m=0(1-3)这里定义短时能量即短时幅值,它的主要作用:①区分浊音和清音,因为浊音的短时能量比清音大得多。②区分声母与韵母的边界,无声和有声的分界,连字的分界等。③作为一种超音段信息,用于语音识别中。一帧信号中波形穿越零电平的次数,称为过零率。定义Xn(m)的短时过零率Zn为:Zn=—Σ|sgn[Xn(m)]-sgn[Xn(m-1)]|N-1m=012(1-4)上式中,sgn[]是符号函数。考虑到开始以后总会出现能量较大的浊音,设一个较高的门限amp1用以确定语音已开始,再取一比amp1稍低的门限amp2,用以确定语音的起始点N1,和结束点N2,由于语音起始段往往存在着能量很弱的清辅音(如[s]、[f]等),只用能量去判断,很难把它们和无声区分开,但发现它们的过零率明显高于无声段,因此可以用过零率来精确起点。第四将仔细介绍端点检测算法。1.1特征参数的提取特征参数提取的目的是抽取语音特征,以使在语音识别时类内距离尽量小,类间距离尽量大。语音特征参数提取是语音识别的关键问题,特征参数的好坏对于语音识别精度和识别时间有很大影响。常用的参数有线性预测的倒谱系数(LPCC)和Mel频率的倒谱系数(MFCC)。全极点线性预测模型(LPC)是基于发音模型建立的,并假设语音信号为自回归信号,利用线性预测分析获得倒谱参数。因此,LPCC系数也是基于合成的参数,没有充分利用人耳的听觉特性,对辅音的描述能力较差,抗噪声性能较差。实际上,人的听觉系统是一个特殊的非线性系统,它响应不同频率信号的灵敏度是不同的,基本上是一个对数的关系。由于充分模拟了人的听觉特性,而且没有任何前提假设,因此MFCC参数具有很好的识别性能和抗噪能力。研究表明,28 Mel频率的倒谱参数所含的信息量比其它参数多,能较好的表现语音信号,并且比较充分利用人耳特殊感知特性,性能优于LPCC参数。因此,本文中用到的Voicebox工具箱中的mfcc.m函数就是采用采用MFCC参数。1.1.1MFCC参数计算流程MFCC参数计算的要点是将线性功率谱S(n)转换成为mel频率下的功率谱,这需要在计算之前先在语音的频谱范围内设置若干个带通滤波器:Hm(n),m=0…Y–1,n=0…H/2–1Y为滤波器个数,H为一帧语音信号的点数。每个滤波器具有三角形特性,其中心频率为fm,它们在Mel频率轴上是均匀分布的。在线性频率上,当m较小时,相邻的fm间隔很小,随着m的增加相邻的fm间隔逐渐拉开。另外在频率较低的区域,fm和f之间有一段是线性的。如图3所示:m图1线性频率上fm和f关系MFCC参数的计算是以“bark”为频率基准的,Mel频率与线性频率的转换关系为:fmel=2595log10(1+)f700(1-5)其中,线性频率f的单位是Hz[8]。求MFCC参数的过程为:(1)对输入语音帧作快速傅利叶变换FFT,将时域信号转化为频域信号。计算FFT之前,要把一帧数据(256点)乘以一个hamming窗,以克服Gibbs现象。(2)把功率谱通过带通滤波器,然后再取自然对数。(3)计算其离散余弦变换。为每帧数据计算出L阶MFCC参数后,一般还要为这L个系数分别乘以不同的权系数,实际上是一个短窗口:Cm=WmCm^L2Wm=1+—sin(—),1≤m≤LπLm(1-6)1.1.2差分倒谱参数标准的MFCC参数反映了语音参数的静音特特性,而人耳对语音的动态特征更为敏感,所以通常是用差分倒谱参数来描述语音特征的动态特性。ld(n)=Σj●C(n+j)j=-1√__∑j2j=-ll1________差分参数的计算公式为:28 (1-7)这里c和d都表示一帧语音信号参数,l为常数,一般取2,这时差分参数就称为当前帧的前两帧和后两帧参数的线性组合。由上式计算得到的差分参数为一阶MFCC差分参数,用同样的公式对一阶差公参数进行计算,可以得到二阶差MFCC。在相同的参数维数下,Mel滤波器个数D对识别性能影响不大,这里取24,本文中,是将12阶MFCC参数和它一阶差分参数合并为一个矢量(24阶),作为一帧语音信号的参数,因为动态信息和静态信息形成互补,所以能很大程度上提高系统的识别性能。28 1DynamicTimeWarping算法假定一个孤立词语音识别系统,利用模板匹配法进行识别。这时一般是用单词作为识别单元。在训练阶段,用户将词汇表中的每个词依次说一遍,作为模板存入模板库;在识别阶段,将输入语音的特征矢量时间序列依次与模板库中的每个模板进行相似度比较,将相似度最高的作为识别结果输出。但是语音具有相当大的随机性,即使是同一个人在不同的时刻所讲的同一句话、发同一个音,也不可能具有完全相同的时间长度。因此在进行模板匹配时,把识别信号伸长或缩短至参考模板的长度是必不可少的,但研究表明,简单的线性拉伸或压缩并不能有效的提高识别率。对此,日本学者板仓将DP算法的概念用于解决孤立词识别时的说话速度不均匀的难题,提出了著名的动态时间伸缩算法,即DTW算法。DTW是采用一种最优化的算法——动态规整法,通过将待识别语音信号的时间轴进行不均匀地扭曲和弯曲,使其特征与模板特征对齐,并在两者之间不断的进行两个矢量距离最小的匹配路径计算,从而获得两个矢量匹配时累积距离最小的规整函数。这是一个将时间规整和距离测度有机结合在一起的非线性规整技术,保证了待识别特征与模板特征之间最大的声学相似特性和最小的时差失真。DTW解决了发音长短不一的模板匹配问题,是语音识别中出现较早,较为经典的一种算法[10]。1.1DTW算法原理在对每一帧语音信号提取MFCC特征参数以后,就转化成了一组MFCC特征向量。语音识别就是要将测试语音的这个特征向量同模板库中已存在的语音特征向量进行模式匹配,寻找距离最短的模式作为识别结果。在用DTW算法进行识别判决时,由于测试语音与参考模式语音长短不同,因此需要通过DTW动态计算两个长度不同的模式之间的相似程度,或者叫做失真距离。2(1,1)NMmnTR2(N,M)D[T(n),R(m)]R(m)T(n)(n,m)图1动态时间弯曲(DTW)算法求最小失真假设参考模板和测试模板分别用R和T表示,它们之间的相似度用它们之间的距离D[T,R]来度量,距离越小相似度越高。为了计算这一失真距离,要从T和R中各个对应帧之间的距离算起。设n和m分别是T和R中任意一帧,d[T(n),R(m)]表示这两帧特征矢量之间的距离,在DTW中通常采用欧式距离。28 设测试模板T共有N帧,参考模板R共有M帧,将测试模板和参考模板的帧号分别在坐标系的横坐标和纵坐标上标出,则各个帧号之间的关系可以形成一个网格,网格中的任何一个交叉点(n,m)表示测试模板的T(n)和参考模板的R(m)相交,并且该交叉点拥有帧失真为D[T(n),R(m)]。如上图所示。DP算法就是寻找一条通过此网格中若干个格点的最佳路径。路径不是随意选择的,首先任何一种语音的发音快慢都有可能变化,但是其各部分的先后次序不可能改变,因此所选的路径必定是从左下角出发,在右上角结束。如下图所示:212345678910NM91345678图1DTW算法搜索路径假设路径通过的格点依次为(n1,m1),…,(ni,mi),…,(nN,mM),其中(n1,m1)=(1,1),(nN,mM)=(N,M)。路径可以用函数mi=Φ(ni)来描述,其中ni=i,i=1,2,…,N,Φ(1)=1,Φ(N)=M。为了使路径不至于过分倾斜,约束斜率在0.5~2的范围内。如果路径已通过了格点(ni-1,mi-1),那么下一个通不定期的格点(ni,mi)只可能是(ni-1+1,mi-1+2)、(ni-1+1,mi-1+1)和(ni-1,mi-1),用γ表示这种约束条件。求最佳路径的问题即为:ΣD[ni,mi]=minNni=1^mi=Φ(ni)∈γΣD[ni,mi]Nni=1mi=Φ(ni)∈γΦ(●)(2-1)mi=Φ(ni)^其中为最佳路径函数。D[(ni,mi)]=d[T(ni),R(mi)]+D[(ni-1,mi-1)](2-2)其中的D[(ni-1,mi-1)]由下式决定D[(ni-1,mi-1)]=min{D[(ni-1,mi)],D[(ni-1,mi-1)],D[(ni-1,mi-2)]}(2-3)从(ni,mi)=(1,1)开始往下搜索(n2,m2),再搜索(n3,m3)……,对每一个(ni,mi)都存储相应的前一格点(ni-1,mi-1)及相应的帧匹配距离d[ni,mi]。搜索到(nN,mM)时,只保留一条最佳路径[4]。由于DTW不断地计算测试矢量与模板矢量的距离以寻找最优的匹配路径,所以得到的两矢量匹配是累计距离最小的路径函数,这保证了它们之间存在最大的声学相似特性。1.1改进的DTW算法通常,规整函数被限制在一个平行四边形的网格内,它的一条边斜率为2,另一条边斜率为1/2。如图6所示。AXaXbNxyM(N,M)y=2x+(M–2N)By=2x12—y=x12—y=x+(M–N)12—(1,1)28 图1匹配路径约束示意图规整函数的起点是(1,1),终点为(N,M),DTW算法的目的是在此平行四边形内由起点到终点寻找一个规整函数,使其具有最小的代价函数,保证了测试模板与参考模板之间具有最大的声学相似特性。由于在模板匹配过程中限定了弯折的斜率,因此平行四边形之外的格点对应的帧匹配距离是不需要计算的。另外,因为每一列各格点上的匹配计算只用到了前一列的3个网格,所以没有必要保存所有的帧匹配距离矩阵和累积距离矩阵。充分利用这两个特点可以减少计算量和存储空间的需求,形成一种高效的DTW算法。13—Xa=(2M–N)23—Xb=(2N–M)把实际的动态弯曲分为三段,(1,Xa),(Xa+1,Xb)和(Xb+1,N),其中:(2-4)由于Xa和Xb取最相近的整数,从上式可出M和N的限制条件:2M–N≥32N–M≥2(2-5)当不满足上式中的两个条件时,可认为两者差太大,无法进行动态弯折匹配。在X轴上的每一帧不再需要与Y轴上的每一帧进行比较,而只是与Y轴上[ymin,ymax]间的帧进行比较。ymin,ymax的计算如下式所示[3]Xa=Xb时:12—12—x→2xx≤Xa2x+(M–2N)→x+(M–N)x>Xa12—当Xa<Xb时比较分三段:12—12—12—12—12—x→2xx≤Xax→x+(M–N)Xa<x≤Xb2x+(M–2N)→x+(M–N)x>Xb12—28 当Xa>Xb时:12—12—12—12—12—x→2xx≤Xbx→x+(M–N)Xb<x≤Xa2x+(M–2N)→x+(M–N)x>Xa12—沿X轴上每前进一帧,虽然所要比较的Y轴上的帧数不同,但弯曲特性是一样的,这样,路径的累积距离都为:D(x,y)=d(x,y)+min[D(x-1,y),D(x-1,y-1),D(x-1,y-2)](2-6)由于X轴上每前进一帧,只需要用到前一列的积累距离,所以只需两个矢量D和d分别保存前一列的累积距离和当前列的累积距离,而不用保存整个矩阵。通过不断更新数据来实现,一直进行到待测模板的最后一帧,矢量D的最后一个元素即为两个模板经过动态规划后的匹配距离,这样可大大减小存储空间,减小计算量,从而提高识别速度。除上面介绍的整体路径约束的DTW算法外还有两种简单约束的DTW算法,下面分别进行简单的介绍。1、搜索宽度受限的DTW算法在实际应用中DTW算法加入了一些搜索限制条件,实际的搜索范围是在一定的宽度之内,如图7所示的对角线附近的带状区域[9]。WidthNM图1对角线附近的带状区域图在这个范围之内按动态规划路径计算累积匹配距离,可以进一步减少存储空间,减少计算量,提高识别速度。2、放宽端点限制的DTW算法对于普通DTW28 对端点检测比较敏感,端点信息是作为一组独立的参数提供给识别算法,它要求两个比较模式起点对起点,终点对终点,对端点检测的精度要求比较高,当环境噪声比较大或语音由摩擦音构成时,端点检测不易进行,放松端点限制方法不严格要求端点对齐,克服了由于端点算法不精确造成的测试模式和参考模式起点终点不能对齐的问题,一般情况下,起点和终点在纵横两个方向只要放宽2-3帧就可以,也就是起点可以在(1,1)、(1,2)、(1,3)、(2,1)、(3,1),终点也可类似放松,放宽端点后的区域限制图8在放松端点限制的动态时间规整算法中,累积距离矩阵中的元素(1,1)、(1,2)、(1,3)、(2,1)、(3,1),不是根据局部判决函数计算得到的,而是直接将帧匹配距离矩阵的元素填入,自动从其中选择最小的一个作为起点,对于终点也是从松弛终点的允许范围内选择一个最小值作为参考模式和未知模式的匹配距离。NM(1,1)图1放宽端点后的区域限制28 1系统的软件设计与仿真这一章主要介绍系统的软件设计与仿真过程。软件设计主要是包括语音预处理子程序、端点检测子程序以及语音识别子程序。由于语音识别系统牵涉的算法子程序比较多,为了方便验证,我们采用MATLAB6.5进行了算法仿真。1.1语音预处理预加重一般是语音信号数字化以后,在参数分析之前在计算机里用具有6dB/倍频程的提升高频特性的预加重数字滤波器来实现,它一般是一阶的高通数字滤波器。H(Z)=1–μz-1(3-1)上式中,μ值接近于1。本文中取μ=0.9375。根据上式进行预加重。图10为男生命令词“停止”经过预加重滤波后的仿真结果。8kHz采样。从图中可以看出预加重对信号处理的重要性,高频部分的信号能量得到了加强。图1预加重后的语音效果1.2改进的端点检测算法及仿真1.2.1改进的端点检测算法资料表明,语音识别错误的原因一半来自端点检测。因此,没有足够准确的语音起止点检测,将会降低语音识别的识别率,特别是起点的检测。在实验室环境下,虽然信噪比比较大,但是人们发音时的一些无意识的噪声,如人的呼吸气流等都会造成误检。由于本文采用的都是一个字的孤立词,因此采用基于动态噪声的四状态转移端点检测来消除这些影响。把整个端点检测过程总共分成4个状态:status0、status1、status2和status3分别代表静音状态(含噪声)、起始过渡状态、语音状态和结束状态。各状态之间的转换关系如图所示。status0Status2Status1status328 图1四状态转移的端点检测为了提高端点检测的精确性,消除呼吸气流等无意识噪声的影响,本文在基于状态转移的端点检测基础上,还做了一些改进。1、采用多门限判定。设定六个门限值:短时能量和过零率分别有两个门限,一个高门限,一个低门限;最短语音时间门限,防止误检,排除突发性的噪声;最大静音门限,确定语音是否结束。根据实际环境来设定具体门限值,语音序列的前10帧一般都为噪声,所以这里高低能量门限以语音前10帧的平均能量值作为参考依据,这样我们的算法就是基于动态背景噪声的。一般要根据实际情况选取,本系统取前10帧平均能量值的3倍和1.5倍分别作为高低能量门限;过零率门限取常值,5和10;最大静音门限一般为3~5帧,最短语音时间门限一般为9~10帧,一帧信号的短时能量按第二章介绍的方法计算,假设为amp,那么前10帧输入信号的平均能量设为amp_aver,则按下式进行计算[2]。amp_aver=—Σamp(i)10i=1110(3-2)上式中的amp(i)为第i帧输入信号的短时能量。2、如果输入信号中有50Hz工频干扰或者A/D变换点的工作点偏移时,用第二章中定义的短时过零率来区分无声和清音就不可靠。为此,修正短时过零率参数,定义为一帧语音波形穿越某个非零电平T的次数,即下式。本系统中的T为经验值,取0.023[5]。Zn=—Σ|sgn[Xn(m)-T]-sgn[Xn(m-1)-T]|N-1m=012(3-3)下图为命令词“停止”的短时能量和过零率仿真图,其中过零率是按上式进行计算的。图2“停止”的短时能量和过零率1.1.1端点检测算法子程序流程图status=1status=3status=0,silence=0count=0status=2,计算单字的起始端点能量或过零率大于高门限输入一帧语音计算短时能量和过零率status等于0或1silcent=0能量或过零率超过低门限status=0count=0count=count+1silence=silence+1计算X2status等于2Silence小于静音时间门限count小于语音长度门限能量或过零率大于低门限返回NNNNNNNYYYYYYY28 图1基于四状态转移的端点检测流程图上图[7]是基于动态噪声的四状态端点检测方法的子程序流程图。先根据前面的介绍设定六个门限值,然后对程序进行初始化,设定初始状态status=0,count=0,silence=0。在静音状态,如果能量或过零率超越了高门限,就开始标记起始点,进入语音状态。在过渡状态中,由于参数的数值比较小,不能确定是否处于真正的有效语音状态,因此只要两个参数的数值都回落低门限下,就将当前状态恢复到静音状态。而如果在起始过渡状态中两个参数只要有一个超过了高门限,就可以确定进入有效语音状态。门窗的开关等引起的突发性噪声也可以引起短时能量或过零率的数值很高,但是往往不能维持足够长的时间,通过最短语音时间门限值来判断。当前状态处于有效语音状态时,如果两个参数的数值都降低到低门限以下,而且总的记时长度小于最短时间门限,则认为是一段噪音。28 流程图中的四个状态0,1,2,3分别对应静音状态、起始过渡状态、语音状态和结束状态。计算过零率和短时能量之前要对读取的语音信号进行归一化处理。过零率和短时能量分别按照第二章的方法计算。流程图中的X1和X2分别为单字词的起始端点和结束端点。1.1.1端点检测仿真图1无噪声环境下的端点检测图2有噪声环境下的端点检测图13为无噪声环境下用四状态检测方法对采样到的男声命令词“停”的端点检测结果。从图上可以看出,能够准确检测到孤立词的语音端点。图14为有噪声环境下的端点检测。读取的语音是一男生发音的命令词“播”。从图上可以看出,在语音前端位置有明显的噪声,用基于动态噪声的四状态端点检测方法,仍然可以比较精确地检测到各个孤立字的起始端点和结束端点。语音端点检测的好坏对系统的识别率有重要影响,基于动态噪声的四状态端点算法能够比较好地检测到语音的端点,可以减少数据量、提高处理速度,也为后续的孤立词识别奠定基础。1.2特征参数提取子程序及仿真28 参数的提取在语音识别中是很重要的一部分,一个好的语音特征参数可以表示语音信号的全部特征,这就可以提高语音识别的识别率。下图显示的是采用voicebox工具箱中mfcc函数计算出来的24维特征参数的部分数值。图124维特征参数部分值1.1DTW算法仿真第二章讲述的算法改进均可通过实验进行证明,本文主要就整体路径约束的DTW算法的和传统的DTW算法进行实验,并比较其性能优劣。实验一是对单个字放、停、前、后、开、关的识别。实验二是对单个数字1~6的识别。表1实验一在传统DTW算法下的失真测度放停前后开关放1.71189.19597.06163.04694.44433.6157停8.20591.23263.94839.412810.19813.109前10.1837.33452.791812.2829.427314.494后2.78149.31289.29161.14246.10804.1977开6.533013.7259.30799.08391.89206.2025关3.303210.9669.30944.01985.56431.2600表2实验一在改进DTW算法下的失真测度放停前后开关28 放1.32367.50067.00202.07933.73792.0190停5.33641.21223.85615.56396.61796.5864前1.7e+3083.31412.78201.7e+3084.73985.5025后2.77987.82439.18401.11865.76743.2592开3.10986.60106.38323.85281.69543.2336关2.53757.07397.71342.89143.52661.0771表1实验二在传统DTW算法下的失真测度12345610.72491.62974.21564.08593.91273.386122.02220.43445.13725.54984.12523.501834.80714.96910.81122.21623.05584.546444.65624.81181.50180.76612.76745.098353.61523.80992.63813.07250.62353.158263.34053.46425.48655.36984.20940.8198表2实验二在改进DTW算法下的失真测度12345610.70511.27381.97211.92012.46722.373721.60910.43142.45022.69392.73962.563133.44813.45860.43591.58852.69143.502043.48873.37100.94260.68962.28183.912052.75022.93191.63592.01180.56692.566462.45362.35972.27762.40412.96080.8197实验所采用的数据都是通过计算机的声卡录音,采样频率是8000Hz,语音数据在不同时间录音。每个录音两遍并保存,一个做参考模板,一个做测试模板。表1至表4中,行代表参考模板,列代表测试模板。表1和表3分别是实验一和实验二采用传统DTW算法计算得到的测试语音与参考模板之间的失真测度,表2和表4分别是实验一和实验二采用改进DTW算法计算得到的测试语音与参考模板之间的失真测度。表1至表4中的数据都是在MATLAB6.5中仿真出来的,要乘以1.0e+004。在完全相同的条件下,对角线上是正确匹配模板的对应分数,可见对角线上的数值都应是所在行中最小的,从表1至表428 中可以看出,对角线上的数值确实是所在行中的最小值,由此验证了算法的正确性。但是,改进的DTW算法计算得到的距离明显小于传统的DTW算法。在仿真过程中,用tic和toc指令对传统DTW算法和改进DTW算法的仿真时间进行记录,如表5至表6所示。(实验PC机硬件条件CPU:1.7G;内存:256M)表1实验一传统DTW算法和改进DTW算法的用时比较传统改进耗时(s)8.50006.1720表2实验二传统DTW算法和改进DTW算法的用时比较传统改进耗时(s)7.76505.2190从MATLAB仿真结果可以看出,采用改进的DTW算法后,优化了匹配距离,同时有效地降低了系统识别时间和数据存储量。仿真程序见附录。1.1语音识别仿真下图是数字1—6在MATLAB环境下的识别结果显示图1数字1—6在MATLAB环境下的识别结果显示28 结论本文着重介绍的四个方面的知识:语音识别的发展历史及前景、语音识别系统的基本理论、DynamicTimeWarping(DTW)算法和四状态端点检测法,并在MATLAB6.5环境下进行了各环节的仿真,仿真表明改进型的DTW算法比传统的DTW算法更精确,更快速;也表明四状态的端点检测法是基于动态噪声设计的,有效好的抗噪能力。四状态端点检测法是针对单字词的端点检测,按照本文中讲述的方法,可以对其进行扩展,使其能检测多字词端点。最后,对语音识别系统进行了整体仿真,结果表明,数据完全正确,由此可以看出本文的研究方法是正确的、可以实现的。28 参考文献[1]钟林,刘加,刘润生.多层前向感知机汉语孤立数码语音识别[J].电路与系统学报,第5卷第2期,1007-0249(2000)02-0082-05.[2]OppenbeimAV,SchaferRW.DigitalsignalProcessing[M].PrenticeHall,Inc,1975.[3]王倩,吴国平,陈琳.特定人语音识别算法——DRW算法[J].中国地质大学(武汉)通信工程学院,湖北武汉430074.[4]徐文盛,戴蓓倩,方绍武,陆伟.特定人汉语数码语音抗噪识别方法[J].电路与系统学报,第5卷第2期,1007-0249(2000)02-0058-04.[5]陈立万.基于语音识别系统中DTW算法改进技术研究[J].中文核心期刊《微计算机信息》(嵌入式与SOC)2006年第22卷第2-2期.[6]李潇,王大堃.基于MATLAB的孤立字语音识别试验平台[J].四川理工学院学报(自然科学版),第19卷第3期,1673-1549(2006)03-0097-04.[7]黄文梅,杨勇,熊桂林,成晓明.系统仿真分析与设计——Matlab语音工程应用[M].国防科技大学出版社.[8]林波,吕明.基于DTW改进算法的孤立词识别系统的仿真与分析[J].信息技术,2006年第4期.[9]TretterTJ.InrtoductiontoDiscretedTimeSignalProcessing[M].JohnWiley&Sons,1976.[10]何强,何英.MATLAB扩展编程[M].第一版,北京:清华大学出版社.28 附录A部分程序%基于动态噪声的四状态孤立词端点检测子程序vad.mfunction[x1,x2]=vad(x)%幅度归一化到[-1,1]x=double(x);x=x/max(abs(x));%常数设置FrameLen=240;FrameInc=80;amp1=10;amp2=2;zcr1=10;zcr2=5;maxsilence=8;%6*10ms=30msminlen=15;%15*10ms=150msstatus=0;count=0;silence=0;%计算过零率tmp1=enframe(x(1:end-1),FrameLen,FrameInc);tmp2=enframe(x(2:end),FrameLen,FrameInc);signs=(tmp1.*tmp2)<0;diffs=(tmp1-tmp2)>0.02;zcr=sum(signs.*diffs,2);%计算短时能量amp=sum(abs(enframe(filter([1-0.9375],1,x),FrameLen,FrameInc)),2);%调整能量门限t=0;fori=1:10;t=amp(i);temp=temp+t;end;temp=temp/10;amp1=3*temp;amp2=1.5*temp;%开始端点检测x1=0;x2=0;forn=1:length(zcr)goto=0;switchstatuscase{0,1}%0=静音,1=可能开始28 ifamp(n)>amp1%确信进入语音段x1=max(n-count-1,1);status=2;silence=0;count=count+1;elseifamp(n)>amp2|...%可能处于语音段zcr(n)>zcr2status=1;count=count+1;else%静音状态status=0;count=0;endcase2,%2=语音段ifamp(n)>amp2|...%保持在语音段zcr(n)>zcr2count=count+1;else%语音将结束silence=silence+1;ifsilence1D2=D(i-1,j-1);elseD2=realmax;endifj>2D3=D(i-1,j-2);elseD3=realmax;endD(i,j)=d(i,j)+min([D1,D2,D3]);endenddist=D(n,m);%改进DTW算法子程序dtw2.mfunctiondist=dtw2(test,ref)globalxy_miny_maxglobaltrglobalDdglobalmnt=test;r=ref;n=size(t,1);m=size(r,1);d=zeros(m,1);D=ones(m,1)*realmax;D(1)=0;%如果两个模板长度相差过多,匹配失败if(2*m-n<3)|(2*n-m<2)dist=realmax;returnend%计算匹配区域xa=round((2*m-n)/3);xb=round((2*n-m)*2/3);ifxb>xa%xb>xa,按下面三个区域匹配28 %1:xa%xa+1:xb%xb+1:Nforx=1:xay_max=2*x;y_min=round(0.5*x);warpendforx=(xa+1):xby_max=round(0.5*(x-n)+m);y_min=round(0.5*x);warpendforx=(xb+1):ny_max=round(0.5*(x-n)+m);y_min=round(2*(x-n)+m);warpendelseifxa>xb%xa>xb,按下面三个区域匹配%0:xb%xb+1:xa%xa+1:Nforx=1:xby_max=2*x;y_min=round(0.5*x);warpendforx=(xb+1):xay_max=2*x;y_min=round(2*(x-n)+m);warpendforx=(xa+1):ny_max=round(0.5*(x-n)+m);y_min=round(2*(x-n)+m);warpendelseifxa==xb%xa=xb,按下面两个区域匹配%0:xa%xa+1:Nforx=1:xay_max=2*x;28 y_min=round(0.5*x);warpendforx=(xa+1):ny_max=round(0.5*(x-n)+m);y_min=round(2*(x-n)+m);warpendend%返回匹配分数dist=D(m);functionwarpglobalxy_miny_maxglobaltrglobalDdglobalmnd=D;fory=y_min:y_maxD1=D(y);ify>1D2=D(y-1);elseD2=realmax;endify>2D3=D(y-2);elseD3=realmax;endd(y)=sum((t(x,:)-r(y,:)).^2)+min([D1,D2,D3]);endD=d;%语音识别系统测试程序ticdisp("正在计算参考模板的参数...")fori=1:6fname=sprintf("%da.wav",i-1);x=wavread(fname);[x1x2]=vad(x);m=mfcc(x);m=m(x1-2:x2-2,:);ref(i).mfcc=m;end28 disp("正在计算测试模板的参数...")fori=1:6fname=sprintf("%db.wav",i-1);x=wavread(fname);[x1x2]=vad(x);m=mfcc(x);m=m(x1-2:x2-2,:);test(i).mfcc=m;enddisp("正在进行模板匹配...")dist=zeros(6,6);fori=1:6forj=1:6dist(i,j)=dtw2(test(i).mfcc,ref(j).mfcc);endenddisp("正在计算匹配结果...")fori=1:6[d,j]=min(dist(i,:));fprintf("测试模板%d的识别结果为:%dn",i,j);endtoc28 致谢经过将近一个学期的努力,本次毕业设计已经接近尾声,作为一个本科生的毕业论文,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,想要完成这个论文是难以想象的。在这里首先要感谢我的导师杨熙老师。杨老师平日里工作繁忙,但在我做毕业设计的每个阶段,从外出实习到查阅资料,设计草案的确定和修改,中期检查,后期详细设计,定稿等整个过程中都给予了我悉心的指导。我的论文较为复杂烦琐,但是杨老师仍然细心地纠正论文的错误。除了敬佩杨老师的专业水平外,她治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。然后还要感谢大学四年来所有的老师,为我打下各方面知识的基础;同时还要感谢我深爱的父母、室友和所有的同学们,正是因为有了你们的支持和鼓励,此次毕业论文才会顺利完成。最后感谢我的母校——湖南科技学院四年来对我的大力栽培。28'