ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:148.37KB ,
资源ID:12055843      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12055843.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(语音识别杂.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

语音识别杂.docx

1、语音识别杂摘要:介绍一种适合家电遥控器应用的语音识别算法,该算法使用双模块和两级端点检测方法,能有效地提高识别和稳健性;介绍利用该技术实现的一种新型学习型遥控器,展现了语音识别技术在家电领域的广阔前景。 关键词:语音识别 DTW FED FRED 学习型遥控器家用电器发展的一个重要方面是让用户界面更加人性化,更加方便自然,做到老年人和残疾人可以无障碍地使用。利用语音识别技术实现语音控制是提高家电产品用户界面质量的一条重要途径。本文以语音控制遥控器为例,说明语音识别技术如何应用在家电器领域。适合家用电器应用的语音识别嵌入式系统结构如图1所示,它由四个部分组成。第一部分为模/数转换部分,其输入端接

2、收输入的语音信号,并将其转化成数字芯片可处理的数字采集信号;在输出端将解码后的语音数字信号转换为音频模拟信号,通过扬声器放声。第二部分为语音识别部分,它的作用是对输入的数字语音词条信号进行分析,识别出词条信号所代表的命令,一般由DSP完成。第三部分语音提示和语音回放部分,它一般也是在DSP中完成的,其核心是对语音信号进行数字压缩编码和解码,目的是提示用户操作并对识别语音的响应,完成人机的语音交互。第四部分是系统控制部分,它将语音识别结果转换成相应的控制信号,并将其输出转换成物理层操作,完成具体功能。语音识别与系统控制的有机结合是完成声控交互的关键,下面将对语音识别算法及遥控系统控制部分作详细的

3、讨论。1 语音识别算法目前,常以单片机(MCU)或DSP作炎硬件平台的实现消费类电子产品中的语音识别。这类语音识别主要为孤立词识别,它有两种实现方案:一种是基于隐含马尔科夫统计模型(HMM)框架的非特定人识别;另一种是基于动态规划(DP)原理的特定人识别。它们在应用上各有优缺点。HMM非特定人员的优点是用户无需经过训练,可以直接使用;并且具良好的稳定性(即对使用者而言,语音识别性能不会随着时间的延长而降低)。但非特定人语音识别也有其很难克服的缺陷。首先,使用该方法需要预先采集大量的语料库,以便训练出相应的识别模型,这就大大提高了应用此技术的前期成本;其次,非特定人语音识别很难解决汉语中不同方言

4、的问题,限制了它的使用区域;另外还有一个因素也应予以考虑,家电中用于控制的具体命令词语最好不要完全固定,应当根据的用户的习惯而改变,这一点在非特定人识别中几乎不可能实现。因此大多数家电遥控器不适合采用此方案。DP特定人识别的优点是方法简单,对硬件资源要求较低;此外,这一方法中的训练过程也很简单,不需预先采集过多的样本,不仅降低了前期成本,而且可以根据用户习惯,由用户任意定义控制项目的具体命令语句,因而适合大多数家电遥控器的应用。DP特定识别的严重缺点是它的稳健性不理想,对有些人的语音识别率高,有的人识别率却不高;刚训练完时识别率较高,但随着时间的推迟而识别率降低。些缺点往往给用户带来不便。为克

5、服这些缺陷,对传统方法作为改进,使识别性能和稳健性都有显著的提高,取得令人满意的结果。1.1 端点检测方法影响孤立词识别性能的一个重要因素是端点检测准确性4。在10个英语数字的识别测试中,60毫秒的端点误差就使识别率下降3%。对于面向消费类应用的语音识别芯片系统,各种干扰因素更加复杂,使精确检测端点问题更加困难。为此,提出了称为FRED(Frame-based Readl_time Endpoint Detection)算法3的两级端点检测方案,提高端点检测的精度。第一级对输入语音信号,根据其能量和过零率的变化,进行一次简单的实时端点检测,以便去掉静音得到输入语音的时域范围,并且在此基础上进行

6、频谱特征提取工作。第二级根据输入语音频谱的FFT分析结果,分别计算出高频、中频和低频段的能量分布特性,用来判别轻辅音、浊辅音和元音;在确定了元音、浊音段后,再向前后两端扩展搜索包含语音端点的帧。FRED端点检测算法根据语音的本质特征进行端点检测,可以更好地适应环境的干扰和变化,提高端点检测的精度。在特定人识别中,比较了常用的FED(Fast Endpoint Detection)5和FRED两种端点检测算法的性能。两种算法测试使用相同的数据库,包括7个人的录音,每个人说100个人名,每个人名读3遍。测试中的DP模板训练和识别算法为传统的固定端点动态时间伸缩(DTW)模板匹配算法4。两种端点检测

7、算法的识别率测试结果列在表1中。表1 比较FED和FRED端点检测算法对DTW模板匹配识别率的影响端点检测算法第1人第2人第3人第4人第5人第6人第7人平均FED92.5%87%92.6%95.6%96.2%96.8%100%94.4%FRED94.3%89.9%93.2%99.4%99.4%98.8%100%96.4%测试结果说明:使用FRED端点检测算法,所有说话人的识别率都有了不同程度的提高。因此,本系统采用这种两级端点检测方案。1.2 模拟匹配算法DTW是典型的DP特定人算法,为了克服自然语速的差异,用动态时间规整方法将模板特征序列和语音特征序列进行匹配,比较两者之间的失真,得出识别判

8、决的依据。假设存储的一个词条模板包括M帧倒谱特征R=r(m);m=1,2,M;识别特征序列包括N帧倒谱特征T=t(n);n=1,2, ,N。在r(i)和t(i)之间定义帧局部失真D(i,j),D(i,j)=|r(i)-t(i)| 2,通过动态规划过程,在搜索路径中找到累积失真最小的路径,即最优的匹配结果。采用对称形式DTW:其中S(i,j)是累积失真,D(i,j)是局部失真。当动态规划过程计算到固定结点(N,M)时,可以计算出该模板动态匹配的归一化距离,识别结果即该归一化距离最小的模板词条:x=argminS(N,Mx)。为了提高DTW识别算法的识别性能和模板的稳健性,提出了双模板策略,即x=

9、argminS(N,M2x)。第一次输入的训练词条存储为第一个模板,第二次输入的相同训练词条存储为第二个模板,希望每个词条通过两个较稳健的模板来保持较高的识别性能。与上面测试相同,也利用7个人说的100个人名,每个人名含3遍的数据库,比较DTW单模板和双模板的性能差别,结果更在表2中。表2 DTW不同模板数的识别率比较DTW第1人第2人第3人第4人第5人第6人第7人平均单模板94.3%89.9%93.2%99.4%99.4%98.8%100%96.4%双模板99.4%96.6%98.5%100%100%98.8%100%99.0%测试结果说明:通过存储两个模板,相当大地提高了DTW识别的性能,

10、其稳健性也有很大的提高。因此,对特定人识别系统,采用DTW双模板是简单有效的策略。综上所述,该嵌入式语音识别芯片系统采用了改进端点检测性能的FRED算法,12阶Mel频标倒谱参数(MFCC)作为特征参数,使用双模板训练识别策略。通过一系列测试,证明该系统对特定人的识别达到了很好的识别性能,完全可以满足家用电器中声控应用的要求。2 语音控制遥控器设计目前家用遥控器主要为按键式,并有两种类型:一种是固定码型,每个键对应一种或几种码型,都是生产厂家预先设定好的,用户不能更改;另一种是学习型,具有自我学习遥控码的功能,可由用户定义遥控器的每个键对应的码型,它能够将多种遥控器集于一身,用一个遥控器就可控

11、制多个家电,又可以作为原配遥控器的备份。由于现代家电功能不断增加,上述两种遥控器都有按键过多,用户不易记住每个键的含义等问题。将语音识别技术应用于学习型遥控器,利用语音命令代替按者对命令的记忆和使用,同时省去了大量按键,缩小了遥控器的体积。 语音控制遥控器的硬件框图如图2所示,它由两个独立的模块组成:语音信号处理模块和系统控制模块。语音信号算是模块由DSP、快闪存储器(FLASH)、编解码器(CODEC)组成。其中DSP是整个语音识别模块的核心,负责语音识别、语音编解码,以及FLASH的读写控制。DSP的优点是运算速度快、内存空间大、数据交换速度快,可用来实现复杂的算法,提高识别率,减小反应延

12、时,得到较高的识别性能。DSP芯片选用Analog Devices公司的AD2186L,它具有如下特点:运算速度达40MIPS,且均为高效的单调周期指令;提供了40K字节的片内RAM,其中8K字(16Bit/字)为数据RAM,8K字(24Bit/字)为程序RAM,最大可达4兆字节的存储区,用于存储数据或程序;3.3V工作电压,具有多种省电模式。AD2186L既能完成与语音信号算是相关的算法,又适合使用电池作能源的遥控器。FLASH和CODEC也都选用3.3V工作电压的芯片。FLASH为美国ATMEL公司的AT29LV040A(4M Bit),它作为系统的存储器,主要用于存放以下内容:提示语音合

13、成所需的参数,特定人训练后的码本数据,DSP系统的应用程序和学习和遥控码数据。CODEC选用美国TI公司的TLV320AC37,用来进行A/D、D/A变换、编码和解码。系统控制模块由单片机、红外接收发送器、电源管理电路组成。单片机负责整个遥控器的系统控制。单片机作为主控芯片,进行键盘扫描,根据用户通过键盘输入的指令,分别完成学习遥控码;控制DSP进行语音训练、回放、识别;将识别结果转换成相应的遥控码,通过红外发光管发射出去。单片机与DSP之间通过标准的RS232串行协议通讯。 系统的控制软件流程图如图3所示。在使用前,按“学习键”进入学习状态,用户先对学习型遥控器训练语音命令,并使其学习与各语

14、音命令相对应的原理控码型。使用时按“识别键”,进入语音识别状态,等待语音处理模块返回结果,若返回正确的识别结果,则把相应的遥控码发射出去。例如,原电视遥控器数字键“1”对应中央1台,用户的训练命令为“中央1台”,学习了原遥控器的数字键“1”的遥控码,并使其与训练命令“中央1台”对应起来。于是使用时只需对着学习型遥控器的麦克风说出“中央1台”,电视就会切换到中央1台。这样用户不需要记住每个电视台与台号的对应关系,相对于枯燥的频道数字,用户自定义的命令更容易记住。若连续的30秒无正确的命令则遥控器进入休眠状态,单片机控制电源管理电路切换DSP和FLASH电源,单片机本身也进入休眠状态,直至用户按键

15、,唤醒单片机,再由单片机控制恢复DSP和FLASH供电,重新开始工作。这是因为整个系统中,DSP的功耗最大,长时间不用时,关闭语音信号处理模块,可以显著地降低整个系统的功耗。从实验室走向市场的过程中,可靠性与成本是遇到的最大挑战。采用双模板的DTW和两组端点检测FRED算法,可在系统资源和反应延时增加极小的情况下,有效地提高识别率和稳健性。该项技术成功地运用在学习型遥控器上,展现了语音识别技术在家电领域的广阔前景。 ( Microsoft 研究和开发语音技术已经十年有余了。1993 年,它雇佣了 Xuedong (XD) Huang、Fil Alleva 和 Mei-Yuh Hwang 他们是

16、负责 Carnegie Mellon University Sphinx-II 语音识别系统的四个人中的三个,该系统因其空前的准确性于 1992 年即受到语音界的广泛赞誉。正是从那时开始,随着 Speech API (SAPI) 1.0 小组在 1994 年成立,Microsoft 志在创建一种允许开发人员通过强大的 API 访问的准确的语音技术。该小组在不断成长,在过去的这些年中,他们已经发布了一系列功能日益强大的语音平台。近些年来,Microsoft 越来越注重将语音技术投入于主流使用,从而促生了一些产品,例如,Speech Server(用于实现启用语音的电话系统)和 Voice Com

17、mand(使用户能够使用语音命令控制 Windows Mobile 设备)。因此可想而知,Microsoft 的语音小组在 Windows Vista 的开发中一定是始终忙个不停。将强大的语音技术与强大的 API 联合起来,这一策略始终是正确的,直到 Windows Vista 都是如此。Windows Vista 包含一个内置的语音识别用户界面,专门针对需要控制 Windows 并在不使用键盘或鼠标的情况下输入文本的用户而设计。其中还有一个先进的通用语音识别引擎。该引擎不仅极其准确,而且还可以在很多语言中使用。Windows Vista 也包括 Microsoft 的首批新一代语音合成器,它

18、们已经被完全重写以便利用最新的技术。对于开发人员而言,Windows Vista 包含了一个新的 WinFX 命名空间 System.Speech。这使开发人员能够轻松地为 Windows 窗体应用程序和基于 Windows Presentation Framework 的应用程序启用语音功能。此外,它还包含一个最新的 COM Speech API (SAPI 5.3),以便提供对平台增强语音功能的本机代码访问。有关更多信息,请参阅提要栏“SAPI 5.3 的新功能”。语音的元素语音技术的概念实际包括两个技术:合成器和识别器(参见图 1)。语音合成器将文本作为输入,并产生音频流作为输出。语音合

19、成也称为“文本到语音”(text-to-speech,TTS)。另一方面,语音识别器的行为刚好相反。它将音频流作为输入,并将其转换为文本副本。对于合成器而言,将一串字符转换为听起来符合规范的音频流需要做大量工作。想象其工作方式的最简单的方法是分析一个两部分系统的前端和后端。前端负责使用自然的语言规则分析文本。它分析一串字符以分辨有哪些单词(对于英语而言很容易,但对于汉语和日语而言则没那么容易)。前端也可以分辨诸如语音功能和组成部分的详细信息 例如,哪些单词是正确的名词、数字等;哪里是语句的开头和结尾;一个短语是疑问句还是陈述句;陈述句是过去时、现在时,还是将来时。所有这些元素对于选择单词、短语

20、和语句的适当发音和语调而言是很关键的。例如在英语中,疑问句通常以声调结尾,对于单词“read”而言,它的发音会因其时态的不同而差异很大。很明显,了解单词或短语的使用环境对于将文本转换为声音相当重要。具体而言,这些规则对于每种语言而言也稍有不同。因此可想而知,前端必须进行一些非常复杂的分析。而后端有完全不同的任务。它通过自身的一些重要分析,获取前端的分析,从而生成输入文本的适当声音。旧式合成器(以及当今具有最少足迹的合成器)以算法方式生成单独的声音,从而产生一个非常机器人化的声音。现代的合成器(例如,Windows Vista 中的合成器)使用一个声音片段数据库,这些片段来自于大量的录音。后端的

21、有效性依赖于它针对给定的输入选择适当的声音片段并将它们流畅地结合在一起的能力。这听起来是不是很复杂?没错,就是这样。具有内置于操作系统中的这些文本到语音功能是非常有利的,因为它允许应用程序使用该技术。您无需创建自己的语音引擎。正如您稍后将在本文中看到的一样,您可以使用单个函数调用来调用整个处理过程。您很幸运!语音识别甚至比语音合成更复杂。然而,也可以认为其具有一个前端和一个后端。前端处理音频流,从而分隔可能发声的声音片段,并将它们转换成一系列能够在信号中表示元音的数值。后端是一个专用的搜索引擎,它获取前端产生的输出并跨以下三个数据库进行搜索:一个发音模型、一个词典和一个语言模型。发音模型表示一

22、种语言的发音声音,可通过训练来识别某个特定用户的语音模式和发音环境的特征。词典列出该语言的大量单词,以及关于每个单词如何发音的信息。语言模型表示一种语言的单词如何合并。这两种模型都很重要。准确指定什么语音听起来相似是不可能的。而且,人类的语音很少遵循可以轻松定义的严格且正规的语法规则。生成好模型的一个必要因素是获得大量可表示的数据。另一个同等重要的因素是用于分析该数据以生成实际模型的技术的复杂性。当然,同一个单词不会存在两次发音完全相同的情况,因此识别器也无法找到一个准确的匹配。而且对于给定的声音片段,说话者的言语中可能包含了很多潜在含意。因此,识别器的质量取决于它提炼搜索、排除不适当匹配以及

23、选择更类似匹配的能力。识别器的准确性依赖于它是否具有优秀的语言和发音模型,以及用于处理声音和跨模型搜索的算法。模型和算法越好,错误就越少,而且找到结果也越快。无庸置疑,这是一项非常困难的技术。虽然识别器的内置语言模型旨在表示一个广泛的语言域(例如,英文日常用语),但是任何给定的应用程序通常有非常具体的语言模型要求。特定的应用程序通常只需要某些对它而言具有特定语义的说话方式。因此,除了使用通用语言模型外,应用程序还应该使用一种语法来限制识别器只收听应用程序关注的语音。这有很多好处:增加了识别的准确性,确保了所有识别结果对应用程序有意义,而且使识别引擎能够指定在识别文本中固有的语义值。图 2 显示

24、关于这些优势如何实际投入使用的一个示例。图 2 使用针对应用程序输入的语音识别返回页首与 Windows Vista 交流准确性只是一部分因素。使用 Windows Vista 语音识别技术,Microsoft 旨在提供一个端到端的语音体验,从而提供用户在内置桌面语音识别体验中需要的关键功能。其中包括一个交互式指南,它解释如何使用语音识别技术,并帮助用户训练系统以理解用户的语音。该系统包括用于控制 Windows 的内置命令 允许您使用诸如“Start Notepad”和“Switch to Calculator”这样的命令启动、切换和关闭应用程序。用户可以通过开口说出诸如“File”和“Op

25、en”的命令来控制屏幕上的界面元素(例如,菜单和按钮)。该系统也通过提供诸如“Press shift control left arrow 3 times”这样的命令,支持模拟鼠标和键盘。Windows Vista 语音技术包括内置听写功能(用于将用户的声音转换成文本)和编辑控制(用于在文档中插入、更正和操作文本)。您可以通过重述、选择替代文字或拼写来更正未正确识别的单词。例如,“将 Robot 更正为 Robert”。或者“拼写 rabbit 中的 R、O、B、E、R,telephone 中的 T。”。您也可以说出命令来选择文本、在文档中导航并进行编辑 例如,“Select My name

26、is”、“Go after Robert”或“Capitalize Brown”。该用户界面的设计并不显眼,然而仍然能使用户随时控制语音系统(请参见图 3)。您可以轻松地访问麦克风状态,它包含一个休眠模式。文本反馈通知用户该系统正在做什么,并为用户提供指令。也有一个用于阐明用户说话内容的用户界面 当用户说出一个能够以多种方式解释的命令时,系统使用该界面澄清真正的含义。同时,持续的使用允许基础模型采用不断提升的准确性。图 3 Windows Vista 中的语音 UI要启用内置语音功能,从 Start Menu 中选择 All Programs | Accessories | Accessibi

27、lity,并单击 Speech Recognition。当您第一次进行此操作时,系统会带您浏览该指南,其中有对一些基本命令的介绍。您也可以选择启用后台语言模型适配,这样,系统将在后台通读文档的电子邮件,以便采用与您的表达方式最匹配的语言模型。默认设置可以启用很多功能。建议您询问系统“what can I say”,然后浏览主题。但您是开发人员,那么您为什么如此关注所有这些用户体验内容呢?它之所以与开发人员相关,原因在于它是操作系统提供的默认功能。它是应用程序自动获取的功能。该语音技术使用 Windows 可访问性界面显示每个应用程序的功能;然后它为每个应用程序提供一个能说话的 UI。如果用户说

28、出一个可访问元素的名称,则该系统将调用该元素的默认函数。因此,如果您已经生成了一个可访问的应用程序,则默认情况下,您已经生成了一个可以启用语音的应用程序。返回页首Windows Vista 语音APIWindows Vista 可以为任何可访问的应用程序启用语音。如果您希望用户通过简单的语音命令控制您的应用程序,这显然是不可能的。但您可能希望提供一个这样启用语音的用户界面,它比 Windows Vista 自动提供的启用语音的 UI 更复杂、更适用。有很多示例说明为什么需要进行这样的操作。例如,如果用户的工作需要她始终动手操作。每次她使用鼠标或敲击键盘时都必须把手从工作中移开 这可能降低了安全

29、性或者降低了工作效率。对于那些需要用眼睛盯着某物而非计算机屏幕的用户而言,情况也是如此。或者,比如说您的应用程序有大量在工具栏菜单中没有列出来的功能。语音命令可以展开深层菜单结构,从而提供对大量命令的快速访问。如果您的用户说过“说的确比做容易”,那他们可能说对了。在 Windows Vista 中,有两个语音 API: 用于本机应用程序的 SAPI 5.3 WinFX 中的 System.Speech.Recognition 和 System.Speech.Synthesis 命名空间图 4 阐释每个 API 如何与应用程序以及基础的识别和合成引擎相关。 图 4 Windows Vista 中

30、的语音 API该语音识别引擎可以通过 SAPI 访问。System.Speech.Recognition 命名空间中的类甚至包装 SAPI 公开的功能。(这是一个在将来版本中可能更改的 Windows Vista 的实现细节,但是它值得关注。)另一方面,语音合成引擎可以通过 System.Speech.Synthesis 中的类直接访问,在非托管应用程序中也可以通过 SAPI 访问。这两种类型都实现 SAPI 设备驱动程序接口 (DDI),它是一个使引擎对于其上的层可互换的 API,非常类似于设备驱动程序 API 使硬件设备对于使用它们的软件而言可互换的方式。这意味着,使用 SAPI 或 Sy

31、stem.Speech 的开发人员仍然可以自由地使用实现 SAPI DDI 的其他引擎(很多人确实是这样做的)。请注意,在图 4 中,合成引擎始终用与应用程序一样的进程实例化,但是该识别引擎也可以用另一个称为 SAPISVR.EXE 的进程实例化。这提供了一个可由多个应用程序同时使用的共享识别引擎。该设计有很多好处。首先,识别器通常需要比合成器多得多的运行时资源,而且共享识别器是一个减少开销的最有效的方式。其次,共享识别器也可以由 Windows Vista 的内置语音功能使用。因此,使用共享识别器的应用程序也可以从系统的麦克风和反馈 UI 中获益。用户无需编写其他代码,也无需学习新 UI。返

32、回页首System.Speech.Synthesis让我们看一下关于如何从托管应用程序使用语音合成的示例。作为最典型的一个 UI 输出示例,我将从只说出“Hello, world”的应用程序开始,如图 5 所示。该示例是一个明显的控制台应用程序,是最近使用 Visual C# 创建的,其中添加了三行代码。所添加的第一行只引入 System.Speech.Synthesis 命名空间。第二行声明并实例化 SpeechSynthesizer 的实例,它准确表示了其名称的含意:语音合成器。所添加的第三行是对 SpeakText 的调用。这是调用合成器所需的全部。默认情况下,SpeechSynthesizer 类使用 Speech

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1