您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > VB基于Speech SDK的语音信号识别
*大学课程设计(说明书)基于SpeechSDK的语音信号识别班级/学号*学生姓名*指导教师**大学课程设计任务书课程名称综合课程设计院(系)电*院专业电*程班级*学号*姓名*课程设计题目基于SpeechSDK的语音信号识别课程设计时间:20*日课程设计的内容及要求:一、设计说明语音识别研究在国内外已经有了很多年的发展历史,特别是在近些年,随着实验室条件下语音识别的飞速发展,语音识别的应用已经离我们越来越近。语音识别作为一种重要的信息识别方式在金融、人机交互、电信等领域有着极大的应用空间。课程设计基本要求①学会SpeechSDK的使用,掌握其语音识别工具包的设计方法。②掌握在Windows环境下语音信号采集的方法。③掌握语音信号识别的基本概念、基本理论和基本方法。④掌握语音信号识别经典算法。⑤学会用SpeechSDK对信号进行识别。三、实验要求1.根据设计要求制定方案;2.进行语音测试数据的分析。四、推荐参考资料[1]李禹才,左友东,郑秀清等.基于SpeechSDK的语音控制应用程序的设计与实现[J].计算机应用,2004[2]易克初,田斌,付强编著.语音信号处理.北京:国防工业出版社,2000[3]胡航编著.语音信号处理.哈尔滨:哈尔滨工业大学出版社,2000[4]蔡莲红,黄德智,蔡锐.现代语音技术基础与应用[M].清华大学出版社,2003.五、按照要求撰写课程设计报告指导教师2011年12月19日负责教师年月日学生签字2011年12月19日成绩评定表评语、建议或需要说明的问题:指导教师签字:日期:成绩目录一、概述........................................................51.分类.......................................................52.语音信号处理...............................................53.MicrosoftSpeechSDK简介..................................7二、方案论证....................................................8三、程序设计...................................................101.窗口载入及初始化子程序....................................102.语音命令子程序............................................113.听写子程序................................................114.朗读子程序................................................125.预处理及语法规则..........................................13四、性能测试...................................................141.程序界面载入测试..........................................142.孤立词识别测试............................................143.听写模式测试..............................................16五、结论.......................................................16六、课设体会及合理化建议.......................................17附录I源程序.....................................................18附录Ⅱ语法规则..................................................21一、概述语音识别研究在国内外已经有了很多年的发展历史,特别是在近些年,随着实验室条件下语音识别的飞速发展,语音识别的应用已经离我们越来越近。语音识别作为一种重要的信息识别方式在金融、人机交互、电信等领域有着极大的应用空间。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。语音识别是一门交叉学科,语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。1.分类根据识别的对象不同,语音识别任务大体可分为3类,即孤立词识别(isolatedwordrecognition),关键词识别(或称关键词检出,keywordspotting)和连续语音识别。其中,孤立词识别的任务是识别事先已知的孤立的词,如“开机”、“关机”等;连续语音识别的任务则是识别任意的连续语音,如一个句子或一段话;连续语音流中的关键词检测针对的是连续语音,但它并不识别全部文字,而只是检测已知的若干关键词在何处出现,如在一段话中检测“计算机”、“世界”这两个词。根据针对的发音人,可以把语音识别技术分为特定人语音识别和非特定人语音识别,前者只能识别一个或几个人的语音,而后者则可以被任何人使用。非特定人语音识别系统实际运用更多,但它要比针对特定人的识别困难得多。语音识别的应用领域非常广泛,常见的应用系统有:语音输入系统,语音控制系统,智能对话查询系统,等等。2.语音信号处理语音识别方法主要是模式匹配法。在训练阶段,用户将词汇表中的每一个词依次说一遍,并且将其特征矢量作为模板存入模板库。在识别阶段,将输入语音的特征矢量依次与模板库中的每个模板进行相似度比较,将相似度最高者作为识别结果输出。前端处理是指在特征提取之前,先对原始语音进行处理,部分消除噪声和不同说话人带来的影响,使处理后的信号更能反映语音的本质特征。最常用的前端处理有端点检测和语音增强。端点检测是指在语音信号中将语音和非语音信号时段区分开来,准确地确定出语音信号的起始点。经过端点检测后,后续处理就可以只对语音信号进行,这对提高模型的精确度和识别正确率有重要作用。语音增强的主要任务就是消除环境噪声对语音的影响。目前通用的方法是采用维纳滤波,该方法在噪声较大的情况下效果好于其它滤波器。声学特征的提取与选择是语音识别的一个重要环节。声学特征的提取既是一个信息大幅度压缩的过程,也是一个信号解卷过程,目的是使模式划分器能更好地划分。由于语音信号的时变特性,特征提取必须在一小段语音信号上进行,也即进行短时分析。这一段被认为是平稳的分析区间称之为帧,帧与帧之间的偏移通常取帧长的1/2或1/3。通常要对信号进行预加重以提升高频,对信号加窗以避免短时语音段边缘的影响。对语音信号进行数字信号处理常用的算法有:1.线性预测系数LPC:线性预测分析从人的发声机理入手,通过对声道的短管级联模型的研究,认为系统的传递函数符合全极点数字滤波器的形式,从而n时刻的信号可以用前若干时刻的信号的线性组合来估计。通过使实际语音的采样值和线性预测采样值之间达到均方差最小LMS,即可得到线性预测系数LPC。对LPC的计算方法有自相关法、协方差法、格型法等。计算上的快速有效保证了这一声学特征的广泛使用。2.倒谱系数CEP:利用同态处理方法,对语音信号求离散傅立叶变换DFT后取对数,再求反变换(IDFT)就可得到倒谱系数。对LPC倒谱,在获得滤波器的线性预测系数后,可以用一个递推公式计算得出。实验表明,使用倒谱可以提高特征参数的稳定性。3.Mel倒谱系数MFCC和感知线性预测PLP:Mel倒谱系数MFCC和感知线性预测PLP是受人的听觉系统研究成果推动而导出的声学特征。当两个频率相近的音调同时发出时,人只能听到一个音调。临界带宽指的就是这样一种令人的主观感觉发生突变的带宽边界,当两个音调的频率差小于临界带宽时,人就会把两个音调听成一个,这称之为屏蔽效应。Mel刻度是对这一临界带宽的度量方法之一。首先用FFT将时域信号转化成频域,之后对其对数能量谱用依照Mel刻度分布的三角滤波器组进行卷积,最后对各个滤波器的输出构成的向量进行离散余弦变换DCT,取前N个系数。PLP仍用自相关法去计算LPC参数,但在计算自相关参数时用的也是对听觉激励的对数能量谱进行DCT的方法。语音识别系统的模型通常由声学模型和语言模型两部分组成,分别对应于语音到音节概率的计算和音节到字概率的计算。声学建模:马尔可夫模型的概念是一个离散时域有限状态自动机,隐马尔可夫模型HMM是指这一马尔可夫模型的内部状态外界不可见,外界只能看到各个时刻的输出值。对语音识别系统,输出值通常就是从各个帧计算而得的声学特征。HMM的打分、解码和训练相应的算法是前向算法、Viterbi算法和前向后向算法。上下文相关建模:协同发音,指的是一个音受前后相邻音的影响而发生变化,从发声机理上看就是人的发声器官在一个音转向另一个音时其特性只能渐变,从而使得后一个音的频谱与其他条件下的频谱产生差异。上下文相关建模方法在建模时考虑了这一影响,从而使模型能更准确地描述语音,只考虑前一音的影响的称为Bi-Phone,考虑前一音和后一音的影响的称为Tri-Phone。语言模型主要分为规则模型和统计模型两种。统计语言模型是用概率统计的方法来揭示语言单位内在的统计规律,其中N-Gram简单有效,被广泛使用。语言模型的性能通常用交叉熵和复杂度(Perplexity)来衡量。交叉熵的意义是用该模型对文本识别的难度,或者从压缩的角度来看,每个词平均要用几个位来编码。复杂度的意义是用该模型表示这一文本平均的分支数,其倒数可视为每个词的平均概率。平滑是指对没观察到的N元组合赋予一个概率值,以保证词序列总能通过语言模型得到一个概率。语音识别系统选择识别基元的要求是,有准确的定义,能得到足够数据进行训练,具有一般性。英语通常采用上下文相关的音素建模,汉语的协同发音不如英语严重,可以采用音节建模。系统所需的训练数据大小与模型复杂度有关。模型设计得过于复杂以至于超出了所提供的训练数据的能力,会使得性能急剧下降。以上介绍了实现语音信号识别的各个方面的技术。这些技术在实际使用中达到了较好的效果,但如何克服影响语音的各种因素还需要更深入地分析。目前听写机系统还不能完全实用化以取代键盘的输入,但识别技术的成熟同时推动了更高层次的语音理解技术的研究。由于英语与汉语有着不同的特点,针对英语提出的技术在汉语中如何使用也是一个重要的研究课题,而四声等汉语本身特有的问题也有待解决。3.MicrosoftSpeechSDK简介目前,微软、IBM等公司都相继推出了它们基于PC的语音识别产品。其中,微软SpeechSDK完全支持简体中文语音系统的开发,是开发语音软件的一个理想工具。它是基于COM标准开发的,底层协议以COM组件的形式完全独立于应用程序层,为应用程序设计人员屏蔽了复杂的语音技术,充分体现了COM的技术优点。语音识别由识别引擎(RecognitionEngine)管理,能实现从语音中识别出汉字;语音合成由语音合成引擎(TTSEngine)负责,实现语音朗读。程序员只需专注于自己的应用,调用相关的语音应用程序接口(SAPI)来实现语音功能,该语音框架主要靠SAPI运行来实现应用程序与语音引擎之间的协作,而SAPI提供各种接口来实现不同的语音功能,如识别、朗读、训练等。(1)语音识别引擎(ISpRecognizer)接口:用于创建语音识别引擎的实例。语音识别引擎对象有两种:独占(InProcRecognizer)的引擎和共享(SharedRecognizer)的引擎。独占的引擎对象只能由创建的应用程序使用,而共享的引擎可以供多个应用程序共同使用。(2)语音识别上下文(ISpRecoContext)接口:主要用于发送和接收与语音识别相关的消息通知,创建语法规则对象。(3)语法规则
本文标题:VB基于Speech SDK的语音信号识别
链接地址:https://www.777doc.com/doc-4333171 .html