半年多一直在做机器人语音方向的应用,现在产品基本上稳定下来了,在语音交互的路上踩过不少坑,在这里记录分享一下。假设看到这篇文章的人对AIUI的基本概念包括实体、技能、语料、意图都已了解。
最开始的语音处理方案
讯飞MSC录音+本地NLP处理。
当时还不知道有AIUI这个东西,本地做了一个简陋的NLP处理的程序。大概思路和AIUI的技能处理一样,先把不同的问题分类并定好优先级,然后从返回的语音文本中提取出关键字,分析意图。再对相应的意图做处理。
这种方案满足了最初的演示需求,但是机器人的语音交互体验不好,必须使用固定的句式、只能回答固定的问题。演示圆满完成之后,公司要求着力做好这个项目。本来说有个demo就行的任务,变成了产品级的项目。于是就有了下面的方案。
真正可行的语音处理方案
MSC录音 + AIUI语义解析 +本地技能处理
既然是产品级的项目,开始研究要怎么做。在AIUI的官网中看到了有关AIUI的介绍,发现其处理思路和我之前做的几乎一样,但其丰富的问题库,优秀的语义解析设计比我的好多了。也就是说,我可以用AIUI这套处理实现之前所有的功能,还能做的更好。
AIUI的接入有一定的学习成本, 经过几个月的实践,总结一下AIUI的技能语料设计的内容。
AIUI的语料是全匹配的,比如你设计的语料是“你叫什么名字”,问法也必须是“你叫什么名字”才能识别出来。由于录音中可能会存在各种各样的杂音,要想识别“你叫什么名字××××××”(×表示任意字符)这种问题,需要使用AIUI的