加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 空间 > 正文

基于语音识别的IVR系统的设计与实现

发布时间:2017-07-31 20:42:15 所属栏目:空间 来源:佚名
导读:随着春节的临近,智能手机和平板电脑成为互赠礼物的最佳选择,尤其是目前非常火爆的应用SIRI增添了购买指数。随着智能手机和平板电脑的日益普及,移动设备安全越来越被用户重视。那么谁能提供智能手机和平板电脑最安全的操作系统呢?

  由于命令控制语法方式可以限制识别的词汇量,并且这种识别技术不需要对说话人事先进行训练,因此在实际应用中具有较高的鲁棒性和较高的识别效率。本系统的识别词汇包括:“车辆信息查询”、“驾驶证信息查询”和26个英文字母10个数字,我们首先编写了包含这些特定词汇的语法文件。

  在使用接口函数前,首先调用CoInitialize(NULL)初始化COM对象,然后创建语音识别引擎、语法规则上下文和识别语法,并调用函数LoadCmdFromFile装载文法识别规则。微软识别引擎是通过SAPI由事件触发来通知上层的应用程序。可以调用SetInterest来注册自己感兴趣的事件。系统默认的事件为SPEI_RECOGNITION,该事件表明当前已有识别结果返回,这时上层应用程序可以通过调用ISpRecoResult接口的GetText方法获得识别结果。

  微软识别引擎的语音输入有多种方式,通常都是通过声卡直接输入,也可以通过其他语音输入流。本系统的语音数据是从语音卡取得的实时数据,将其存入内存,然后通过调用ISpAudioPlug的SetData方法将其送入识别引擎。

  4.3 系统实现的难点和解决方案

  车牌的识别词汇中包含10个数字和26个英文字母,这些词汇的发音有许多是相同或相近的,比如:E和1,R和2,T和7,D和B,M和N,X和S。这些词汇在识别时很容易产生误识,有的甚至完全不能识别。如果单从算法上来考虑,是很难解决这些问题的。因此我们考虑从系统的流程出发,当用户认为识别有误时,可以输入识别错误的位数,然后系统根据用户的输入,提供几个备选结果,供用户选择,这样极大的提高了系统识别率。

  然而Microsoft Speech SDK 5.1在命令控制语法方式下是不提供多选的,只有在听写方式下才提供多选,但是听写方式下的词汇量又无法限制。对此我们的想法是这样的:当系统识别出结果以后,将有效语音段保存起来,并且把识别结果从命令控制方式下的词汇量中移除,然后将保存有效语音段再次送入识别引擎,当系统识别出结果以后,再次重复以上步骤,直到识别出给定个数的结果。

  5 操作方法

  用户用清晰、自然的语调说出需查询信息的类别,如:车辆信息查询、驾驶证信息查询,系统识别模块识别出结果后,转入相应的信息查询模块。当用户需要查询车辆信息时,首先要求用清晰、较缓慢的语调说出车牌号,系统识别模块识别出结果后,通过TTS将结果播放给用户。这时用户可以输入车牌号码中识别错误的位数,系统根据用户的输入提供7个备选结果让用户进行选择。用户选择确认无误后,系统将结果递交给后台数据库进行查询,并将检索到的信息播放给用户。

  6 试验结果及分析

  对于信息类别的识别由于其词汇量少,音节较多,所以识别率很高,达到了100%。但是对于字母和数字的组合识别,由于其词汇量较多,音节简单,而且有大量相同和相近的词汇,很容易受到噪声的干扰,所以识别率不是很理想。然而,当我们提供七个备选结果后,即使在有一定噪音的环境下,系统的识别率达也能达到96%以上。由此表明该系统是稳定的和实用的。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读