服务机器人语音对话的实现

Posted robotmeta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务机器人语音对话的实现相关的知识,希望对你有一定的参考价值。

前言

  基于语音的人机交互是服务机器人交互的最主要表现形式之一,它主要解决以语音作为信息载体,让机器人具有像人一样的“能听会说”的能力,降低使用门槛,且能够解放双手双眼的问题。所以把对话交互功能做好,是服务机器人的基础。交互功能实现步骤包括:麦克风数据采集、麦克风音频降噪和定向、功放声音回馈、关键词唤醒、语音识别、语义词库查询、语音合成。

方案选型

  国内服务机器人可选语音交互方案有科大讯飞、思必驰、百度、云知声等方案。云知声和思必驰一般是垂直领域的整体解决方案的,例如车载系统的语音对话,前阶段跟思必驰的商务沟通,如果我们服务机器人要使用他们的方案,前期落地费用需要50万大洋,后期每台还要交授权费用几千大洋,太贵了,就打消了用思必驰方案的念头,百度语音主要用于自家产品的百度导航、小度音响,在硬件支持和适配方面方面感觉不是特别好。那还是绕不开的路,还是要用科大讯飞,科大讯飞的AIUI的流式交互体验确实比较棒。
   科大讯飞AIUI方案分为软核方案和硬核方案。软核方案就是需要把主板(android 和LInux)交给科大讯飞,让他们去适配,适配好后后期使用每台会收取授权费用,可前期适配的费用是比较高的,超过10万大洋,而我们是做商用服务器机器人,产品更新换代比较快,而且产量不是很大,所以我们选择了硬核的方案,硬核的方案就是使用科大讯飞核心板去实现。

实现步骤

  我们机器人采用的CS的架构,内部有一个工控机作为服务器,机器人所有功能和算法都跑在工控机服务器上,机器人自带的安卓平板就是通过调用服务器接口去场景交互功能。所以整体的实现步骤如下。

外围电路设计

  外围电路设计比较简单,主要是供电电路和功放板的声音回馈电路,还有注意音频输出需要隔离,要不会功放板可能会出现噪音比较大的问题。

1.供电电路

  供电电路主要设计5V供电和3.3V供电,电路图如下。

2.功放声音回馈电路

  功放声音回馈电路注意用于流式交互方式,就是机器人在回答问题时候,我们可以直接跟他继续对话,不需要打断。用这种交互方式就需要通过回馈消除掉机器人自身说话的声音。

语音交互服务实现

  我们机器人内部工控机服务器跑的是Ubuntu系统。语音识别、唤醒、休眠、合成服务根据科大讯飞提供的AIUI模块串口开发指南来实现。语义词库我们有自己的云端可编辑的词库系统,实现的方式就是优先在我们编辑好的词库查找答案,如果找不到答案就去AIUI平台去获取答案。开发使用golang语音,部署的方式是docker-compose,对服务机器人本地单机部署来说,docker-compse是非常合适的方式。

安卓平板APP交互

  交互APP只是根据机器人服务器提供的语音识别,语音唤醒,语义查找、语音合成接口来根据场景实现对话功能。不过为了体验更加自然人性化,我们加了摄像头的判断,就是摄像头检测到有人来,就打开语音对话,人走开了就自动关闭对话,这种交互比较自然,比其他机器人的交互体验好很多。

服务机器人对话演示

后续

  我是一位商用服务机器人的从业者,我会把对服务机器人这行业的想法、发展趋势和在工作中遇到的问题和解决方法分享出来。
  如果本期内容对大家有帮助记得点赞哦,所写内容对大家有帮助是我继续写下去的原动力。

以上是关于服务机器人语音对话的实现的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 实现一个简单的智能聊天机器人

爆肝一周,用Python在物联网设备上写了个智能语音助手-阿里云智能对话机器人

Android App实战项目之实现你问我答的智能语音机器人(超详细 附源码和演示视频)

(推荐)叮当——中文语音对话机器人

人工智能 1. 语音合成,语音识别,相似度,图灵机器人,智能对话

深度讲解手把手教你python制作萝莉音智能对话语音机器人,附全部源码!速速学起来!!