基于语音交互系统导游机器人设计
2023-09-27杨鹏杨会潘杰陆思奇刘锦烨
杨鹏,杨会,潘杰,陆思奇,刘锦烨
(宿迁学院 信息工程学院,江苏宿迁,223800)
0 引言
在浮躁的社会环境下,人们越来越喜欢前往博物馆品味历史文化,感受历史积淀。可是博物馆讲解人员接受教育程度、职业技能水平、道德素质参差不齐,而现有的蓝牙耳机定点讲解过于死板,有着信号干扰、游客互动性差等缺点,不能满足游客的用户体验[1]。所以本文设计一款可为游客提供引导讲解的机器人语音交互系统,通过人工智能技术的引入促使博物馆转入新的发展方向,更加智慧化、智能化[2]。
文献[3]利用科大讯飞开放云平台,搭建一种基于云平台的智能语音交互机器人系统,使机器人能够根据不同的环境与任务需求实现双向互动交流[3]。文献[4]就介绍了一种运用于煤矿的机器人语音交互系统,该系统可以提高煤矿机器人的人机交互性能,使现场作业人员与机器人的交互更加便利,也可以与机器人管理系统配合,提高机器人的协调作业能力[4]。文献[5]利用语音识别技术中的动态时间规整算法,针对系统中的指定的词汇进行测试,实验结果表明DTW 算法可以很好地实现系统中指定的词汇识别,具有较好的鲁棒性和抗噪性能,识别率高[5]。在上述研究的基础上,我们针对博物馆、艺术馆等室内场景,设计了一款识别能力较优的语音交互系统。
1 导游机器人语音交互系统框架
图1 语音交互系统总体框架图
智慧博物馆下导游机器人语音交互系统搭载在Jestnano-NX 上,主要由以下三个层次构成:最底层是物理层,系统运行环境为Ubantu18.04,对应的机器人操作系统ROS 版本为Melodic;其次是中间层,该层主要是科大讯飞SDK 以及ROS操作系统;最上层为应用层,主要是机器人进行语音交互,分为语音识别、语义理解、对话生成、文本转语音四个模块。
2 语音交互系统
■2.1 语音交互流程
导游机器人所用语音交互系统主要模块包含语音采集、语音唤醒、语音检测、语音识别、本地语音库的检索、语音交互、语音合成、输出设备播放从而构成满足功能需要的语音交互系统。
一次完整的语音交互,包含:语音识别(ASR)→语义理解(NLU)→对话生成(NLG)→文本转语音(TTS)的流程。
图2 语音交互流程图
语音识别(ASR)用于将声学语音进行分析,并得到对应的文字或拼音信息。语音识别系统一般分为:训练和解码两阶段。训练即通过大 量标注的语音数据训练数学模型,通过大量标注的文本数据训练语言模型。解码则是通过声学和语言模型将语音数据识别成文字。机器人通过训练与解码实现对语音指令的识别。
语义理解(NLU)为了让机器人能够理解到它所识别的,我们对机器构造语义网络表达对世界的认知,用有序的词语映射到语义网络,并且特定词语和语义网络中特定元素对应。使其能够理解所说的话。
对话生成(NLG)即机器人根据理解所得到的结构化的数据、文本等,生成人类可以理解的自然语言形式的文本。实现文本到文本(text-to-text)等。
文字转语音(TTS)就是将得到的信息从文本转换成语音,让机器说话。一般主要使用两种做法:一种是拼接法,一种是参数法。我们使用的是参数法,即使用统计模型来产生语音参数并转化成波形。
■2.2 语音交互系统算法
(1)动态时间规整识别算法
假设参考模板为{R1,R2,…Rm…,RM}共有M 帧;测试语音为{T1,2T,…Tn…,TN}共有N 帧。由于M ≠N,则动态时间规整通过寻找一个时间规整函数m=w(n),使得测试语音的时间轴n 通过非线性变换函数w 映射到参考模板的时间轴m,并使得该函数满足一下关系式:
在这里,[TN,]是第n 帧测试语音特征矢量和第m 帧参考模板特征矢量之间的距离。D 是处于最优时间规整情况下两矢量的累积距离。由于DTW 一直在计算两矢量的距离并寻找最优的匹配路径,所以得到的是两矢量匹配时累积距离最小所对应的规整函数,这就保证了它们之间存在的最大声学相似性。基本的DTW 算法对端点检测非常敏感,它要求进行比较的两个模板起点和终点分别对应,并且对端点检测的精度要求很高,在背景噪声较大或者语音中存在摩擦音时,端点检测往往不会非常精准,端点检测结果可能会对动态规整造成不可预知的误差。此时,必须将边界约束条件放宽。通常的做法是放宽区域中边界约束条件不再要求起点和终点严格对齐,这样就解决了由于端点检测算法的缺陷带来的参考模板和测试模板的起点和终点不能分别对齐的问题。实际中,起点和终点分别在横轴和纵轴两个方向上各放宽2~3 帧,即起点(1,1)、(1,2)、(1,3)、(2,1)、(3,1)处,终点类推,就可以在不影响识别结果的前提下解决端点检测缺陷问题。
(2)基于TDOA 的声源定位算法
TDOA 定位算法是目前应用与研究最广泛的声源定位算法,该算法主要原理是利用接收器接收到的声音信号,求取声音信号到达各个接收器的时间延迟,时间延迟即对应三维空间中各个接收器与声源之间的声程差,再利用声程差与定位方程解算方法求解声源位置坐标。基于TDOA 的定位算法的主要流程可以分为两个步骤:
步骤一:时延估计,即从导游机器人的声音信号中得到声源与接收器之间的时间延迟的过程。
步骤二:位置解算,即得到时间延迟后,利用接收器坐标求取导游机器人声源坐标的过程。位置解算中的主流算法包括迭代法以及球面插值法等。
TDOA 的定位算法的所需的计算复杂度大为减小,因此很容易满足算法的实时性,但是也存在一些不足之处。第一步的时延估计算法对于噪声与混响比较敏感,因此主要适用于低噪低混响环境。引入PHAT、SCOT、ROTH 等许多加权函数来弱化实际环境中的噪声与混响带来的影响,锐化互相关峰值。第二步中的位置解算方法中,牛顿迭代法最为基本,但是在实际使用中经常会遇到迭代结果无法收敛的情景,并且迭代情况受迭代初始值影响较大,为此使用封闭解来避免定位结果发散等算法被提出。封闭解的推导也成为位置解算方法中的常用改进方法。
3 导游机器人语音交互设计
■3.1 硬件平台
我们的语音硬件系统采用的是科大讯飞的麦克风阵列,麦克风阵列是由一定数目的声学传感器组成,对声场的空间特性进行采样并处理的系统。其主要作用有声源定位,抑制背景噪声、干扰、混响、回声,信号提取与分离。
麦克风阵列采用平面式分布结构,包含6 个麦克风,可实现360 度等效拾音,唤醒分辨率为1 度。可以使用麦克风阵列获取原始和降噪音频,获取唤醒角度,主麦编号。图3 为麦克风阵列图。
图3 麦克风阵列硬件图
■3.2 机器人语音交互结构设计
导游机器人的语音交互系统主要是语音交互底层节点与麦克风运行节点、导航节点、雷达避障节点等相互作用。设计思路主要是进行节点状态的识别与反馈,还要确保节点的开启/关闭,不与基本节点进行冲突,如图4 所示。
图4 底层运行节点构成
根据以上设计思路,进行程序结构设计,如图5 所示。
图5 程序设计结构
成功开启语音交互节点的时候,就表明我们已经建立好了语音交互的入口,可以进行无接触语音控制小车探索功能,再配合自启动语音交互,可以实现无电脑等辅助设备的情况下,进行小车控制。小车识别到开启指令的时候,并开启相关功能然后把标志位flag 置1,标志flag 位置1之后会进行成功打开的语音播报;当接收到关闭的指令后,杀死相关的节点然后进行语音播报。每当小车识别到小车成功开启、关闭节点的时候,需要进行语音反馈进行状态的识别,同时添加了音频库,可以加强游客对语音交互功能的体验。
■3.3 机器人录音识别动作
通过语音驱使机器人的动作是导游机器人工作必不可少的一环,图6 为本文设计的基于语音交互系统的导游机器人的录音识别动作图。
图6 录音识别动作流程图
图6 中的SDK 源文件主要有三个作用,第一方面,它有麦克风阵列的回调函数,可以获取麦克风阵列录制的音频流,唤醒的方向以及它的主麦编号;第二个方面,可以调用科大讯飞的离线识别引擎,把音频信号送入到识别引擎里面;第三个方面,SDK 节点里面有很多服务类的函数,录音调用节点会请求SDK 的录音识别服务,去请求SDK 的录音,SDK 接收到录音请求之后,发送给硬件科大讯飞去进行录音,录音完,会把音频流数据传输给SDK,然后SDK就会把收到的音频文件送入到科大讯飞的识别引擎,识别引擎识别以后把文本类的识别结果再返回到SDK 节点中,再把识别结果作为服务类型的请求结果返回到录音调用节点,这是一个完整的录音识别的动作调用。
在麦克风阵列唤醒状态下,录音调用节点会不断的去请求SDK 的录音,得到识别结果后,通过话题的方式发布出去,而命令控制器节点,订阅了识别结果的话题后,根据话题的信息和我们预设好的指令去匹配,判定动作指令,再将动作指令发送到我们的底盘运动控制器,由底盘运动控制器去控制小车的底盘运动,同时底盘运动控制器在收到命令控制器发的速度指令之后,根据小车目前的位置状态,根据雷达所反馈的信息去判断小车适不适合执行这个动作,倘若前方有障碍物的情况下,就会屏蔽这个信息,产生雷达避障的效果。
4 语音测试
在实验室环境下,对导游机器人搭载的语音交互功能进行测试,通过麦克风阵列对语音进行采集,回复的语音内容通过语音播放器进行播放,挑选五句交互语句,每句测试50 次,分别针对博物馆信息,作品讲解以及机器人介绍信息,将语音识别置信度设置为47,发现平均识别率能达到96%以上,满足博物馆内游客对于语音交互功能的使用,识别结果统计如表1 所示。
表1 语音交互识别结果
5 总结
本文主要介绍了针对博物馆、艺术馆,基于语音交互系统的导游机器人的设计,并经过测试与验证,发现该设计方案的语音交互系统识别率高,有很强的可行性。语音系统与机器人的结合证明了机器人应用于导游行业的可行性,通过该语音系统能够给游客带来优质的旅行体验,给导游行业带来更好的发展。