智能服务机器人语音交互的设计与实现

2020-05-18 02:44杨国庆黄锐李健吕俊涛杜修明
科技视界 2020年9期
关键词:识别率指令语法

杨国庆 黄锐 李健 吕俊涛 杜修明

摘 要

随着科技的不断发展,在营业场所中智能服务机器人渐渐走进我们的生活。同时智能服务机器人的出现给我们的生活也带来了诸多便利。本文分析了智能服务机器人语音交互控制的应用需求,基于微软语音应用程序接口设计开发了一套人机语音交互控制系统。详细阐述了系统的设计思想及关键步骤,重点包括语音识别、语音合成、语法规则创建为维护等方面的内容,并就如何进一步提高识别率进行了研究。

关键词

智能服务机器人;人机交互;语音识别;语音应用程序接口

中图分类号: TP242         文献标识码: A

DOI:10.19694/j.cnki.issn2095-2457.2020.09.052

0 引言

使用机器人进行服务,不但会让营业场所添色,更能够体现现代化、科技感。目前,智能服务机器人可以实现集自主引导、互动交流等功能为一体的一系列“类人”活动,智能服务机器人的出现,不仅节省了人力和时间成本,还展现了当下智能时代感[1-2]。

智能服务机器人采用最前沿的技术与智能设备、人机交互等相互应用,可提供更快更准的个性化服务,也为营业场所带来了全新的智能体验[3]。

目前,由于技术的逐步发展和多地推广应用。现场应用对机器人的控制方式提出了新的要求,希望能够以语音命令控制机器人,并且实现与机器人的交互对话。着眼于智能服务机器人语音交互控制的功能需求,本文以语音识别和语音合成的应用开发为手段,实现了可靠快捷的机器人语音控制与交互会话。

1 功能概述与性能指标

对机器人的交互控制是让机器人识别接收到的有效对话和语音操作指令,根据识别结果做出应答或完成指定操作[4-5]。

利用语音识别技术正确识别操作人员发出的语音指令,再根据识别结果判断语音指令的类型。语音指令有两种类型,一种是控制指令,即让机器人完成指定的操作,如“开始充电”、“停止充电”、“开启超声”等进而根据识别结果做出应答或执行指定的操作;正确识别到控制指令需要控制机器人完成对应操作。另外一种指令是应答指令,如“你叫什么名字”、“你会做什么”等,识别到这类指令后机器人需要根据事先设定好的内容应答。

为适应现场应用需求,语音交互控制系统应满足以下性能指标:

(1)唤醒词的唤醒率>95%;

(2)近场通用场景识别率>98%;

(3)远场通用场景识别率>95%;

(4)识别结果响应时间低于200ms。

2 流程设计

分析机器人语音交互控制的功能需求,为实现该系统可将其分解为语音采集、语音识别、对话应答和执行操作等四个模块。

2.1 语音采集

利用声音传感器采集交互语音信号,提供给后续环节的进行分析处理。

2.2 语音识别

通过对采集到的语音信号进行分析处理、提取特征进行比对识别出语音内容,然后据此判定是否是合法指令及指令类型,进而控制机器人做出相应的响应。

2.3 对话应答

识别出合法的应答指令,在应答列表中搜索相应的应答内容,然后使机器人说出应答内容以实现人机对话。

2.4 执行操作

通过语音识别确定合法的操作指令,向机器人发送指令完成相应的操作。

在上述诸环节中,语音信号采集技术成熟、结构简单,完成语音传感器(话筒)、采集卡(声卡)的物理连接,开发语音采集配套程序即可进行语音采集。语音识别是整个系统中的核心部分,对话应答和执行操作都依赖语音识别的结果。对话应答要求机器人具备说话能力,通过语音合成技术将应答内容转换为会话语音。执行操作部分是向机器人发布控制命令,可直接利用机器人已有的指令控制方式。语言交互控制的处理流程如图2所示。

3 语音交互详细设计

由前述分析可知,实现机器人语音交互控制的关键是语音识别和用于对话应答的语音合成。结合系统需求和语音技术发展状况,采用基于现有语音开发包的方式实现了整个语音交互控制系统。

3.1 选择开发方式

语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术,技术内容主要包括特征提取技术、模式匹配准则及模型训练技术三个方面[6]。客观地讲,尽管有一些公司提供了某些语音识别的商业应用,但真正高效可靠的语音识别技术仍然是一个技术难点,相对而言抗干扰性差、对语音输入要求高[7]。

目前常用的语音开发工具有微软公司的SAPI语言引擎和国内科大讯飞提供的InterReco语音识别系统。对机器人语音交互这类命令式识别而言,两者效果相当,因科大讯飞开发包成本高而采用微软的SAPI进行语音识别开发。

SAPI(Speech Application Programming Interface)是微软语音开发包(Microsoft Speech SDK)提供的关于语音(Speech)处理的一套应用程序编程接口,包含了实现文字-语音识别(Speech Recognition)和语音合成(Text-to-Speech)程序的基本函数,大大简化了语音编程的难度,降低了语音编程的工作量[8]。

下图所示是微软SAPI的開发架构,语音引擎通过设备驱动接口DDI层SAPI运行库通信,应用程序则通过应用程序接口API层和SAPI交互。通过使用这些API进行语音识别和语音合成方面的开发。

3.2 语音识别的详细开发

3.2.1 SAPI工作模式

用SAPI构建语音识别系统可以采用两种识别模式:语音命令控制模式和语音听写模式[9]。采用语音命令控制模式构建的语音识别系统,适合小词汇量、孤立词、非特定人的语音识别,但是需要创建语法规则,识别范围只能局限于语法规则内所设计的短语或字词,适应性差但限定内容识别率高。语音听写模式构建的语音识别系统适合于大词汇、连续语音的识别,同时无须构建复杂的语法规则,语音识别的适应性强,但识别率相对要低一些。

机器人语音交互控制的指令是有限且相对固定的,因此采用识别率更高的命令控制识别模式。按照SAPI的开发流程,完成语音识别的基本配置和识别引擎初始化即可进行语音识别。

3.2.2 语法规则的创建与维护

语音命令识别模式的关键问题是语音规则,是对能够识别的命令库的标准化描述。SAPI的语法规则采用XML(eXtensible Markup Language,可扩展标记语言)格式。在进行识别工作之前需要编写一个语法规则文件,其中定义了需要识别的字和短语,SDK语音识别引擎加载该语法规则来识别用户的语音。

在XML中每个实体或元素是由开始标记<属性名>和结束标记所组成,在其中间夹的语句就是该实体或元素包含的文法内容。文法的内容可以是普通文字,或者是文法元素的子元素。XML规范中对于合法的文法内容的正式定义是采用多集合表达式的形式。利用这些定义,就可以精确定义文件的语法和文法中的规则。在文法中,

中插入的是一组待识别的字或短语,而 中插入的是以

为可选择项的可能匹配用户语音的字或短语。

图4所示是机器人语音交互控制采用的部分语法规则。其中GRAMMAR LANGID="804",指明了识别对象是中文汉字,在识别过程中将调用汉语声学模型;位于

之间的是诸条识别命令。

XML语法文件可根据识别命令手工编辑,当识别命令发生变化时需要同步更新并加载XML文件,语音识别引擎才能识别新的指令。因此手工编辑方式不便于更新语法,在开发过程中根据XML规则实现了语法文件的程序化更新,采用MSXML2::IXMLDOMDocumentPtr和MSXML2::IXMLDOMEl ementPtr对XML文件进行编辑。

3.3 语音合成

语音合成又称文语转换,能将任意文字信息实时转化为标准流畅的语音朗读出来[10]。通过计算机语音合成可以在任何时候将任意文本转换成具有高自然度的语音,从而真正实现让机器“像人一样开口说话”。这正是机器人语音交互应答的需求。

采用微软SAPI实现语音合成的步骤与语音识别大致类似,同样包含基本设置(音量和语速)和引擎初始化。其中的一个关键问题是选择发音库,即让机器人以什么样的腔调说话。微软SAPI包含了中英文的发音库,但在SAPI 5.4及以下版本里中文发音类型少且效果较差;可通过安装第三方的语音库增强语音合成效果,如Neospeech语音库。

4 提高识别率的方法

按照上述流程完成了机器人语音交互控制系统的开发,经现场测试正确识别率超过90%。要进一步提高语音识别率,可加入语音预处理及用户训练。特别地,本文在语法规则设计上进行了实验研究。

采用图4所示的语法形式,在语音识别时对每条指令的判断是采用整体比对,最终的识别结果是与上述列表中最为接近的选项。实验证明此种形式的语法规则下正确识别率较高,但是虚警率偏高,即可能将某些干扰音轻易地识别为某条指令,特别是一些短的指令,如“打开”等。分析产生这种问题的原因,应该是某些干扰中含有与这些短指令类似的语音成分。为了保证识别率,这种整体指令形式的语法规则下的比对并不是非常严格的比对,因为识别系统要容忍一定程度的输入偏差,如将“山东”读成“三东”也应能识别出来,毕竟用户的发音可能千差万别的。

因此,在上述语法规则下一些短的指令往往被误识。为改善这一问题,设计了更为严格的比对规则,如图5所示。在这种分段形式的语法规则下实现了更为严格的匹配识别。实验结果也验证了这种分析,采用这种比对语法能显著地降低误识率。

对比图4、5所示两种不同形式的识别语法,可以说各有所长,因此如何合理地设计语法规则是改善语音识别效果的一个途径。

5 结论

为增强智能服务机器人的语音交互功能,根据应用需求设计了完整的语音交互开发流程。在此基础上基于微软语音应用程序接口SAPI,完成了一套人机语音交互控制系统。现场测试结果表明,系统的各项性能指标满足设计要求。限于语音识别技术的发展水平,机器人的语音识别能力与人相比还有很大差距,仍是下一步亟须解决的问题。

参考文献

[1]李安琪,苏伟,吴燕.服务机器人技术的发展[J].科教导刊-电子版(下旬),2018, (11):261-262.

[2]李强,乔克,颜红,江熙.基于人工智能技术的电力营业厅机器人设计[J].智能城市,2018,4(24):10-11.

[3]王博玮,陆中成.基于云的餐厅服务机器人系统设计[J].自动化仪表,2019,40(8):65-69.

[4]翁剑鹏,彭军发,李金林,易向东.基于语音识别的人形机器人的设计与实现[J]. 科技创新导报,2019,16(18):138-139.

[5]黎世银,任瑾,任家毅.基于语音控制的自主寻迹与避障智能小车设计[J].电子世界,2019(5):133-134.

[6]吳丽丽.孤立词语音识别算法的研究与系统仿真[D].东北大学,2012:1-77.

[7]唐美丽,胡琼,马廷淮.基于循环神经网络的语音识别研究[J].现代电子技术, 2019,42(14):152-156.

[8]罗志增,赵敬斌.机器人语音控制及其实现[J].杭州电子工业学院学报,2004,24(1):30-34.

[9]初琦.Speech SDK在语音机器人开发中的应用[J].北京工业职业技术学院学报,2008,7(4) :32-36.

[10]邱泽宇,屈丹,张连海.基于WaveNet的端到端语音合成方法[J].计算机应用, 2019,39(5):1325-1329.

猜你喜欢
识别率指令语法
基于类图像处理与向量化的大数据脚本攻击智能检测
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
跟踪导练(二)4
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
提升高速公路MTC二次抓拍车牌识别率方案研究
Book 5 Unit 1~Unit 3语法巩固练习
高速公路机电日常维护中车牌识别率分析系统的应用
坐标系旋转指令数控编程应用