很多公司都觉得自己能做好智能语音产品。其实他们只能做好命令式语音交互产品,那不是智能语音产品。
真正的智能语音交互不需要用户按某种格式表达,用户只要按照自己语言的习惯表达就好。
关于什么是智能语音交互,网上的定义都很宽泛。本文所讲的智能语音交互特指具备自然语言语义理解能力的语音交互。与智能语音交互相对的是命令式语音交互,是指只允许用户使用特定命令输入的语音交互。现在好多语音交互产品对外宣传自己是智能语音交互产品,实际上还是命令式语音交互产品。命令式语音交互和智能语音交互之间的差别在背后的自然语言处理技术。前者是搜索技术,后者是语义理解技术。前者是人操作机器,后者是机器人大脑服务人。前者用户是主动的,后者机器是主动的。两者有本质区别。
智能语音交互主要难在语义理解。在语音交互状态下,用户的表达要比文本交互更加口语化,而且还存在语音识别错误的情况。这时候对语义理解技术的要求要比文本更高。语音识别只解决了把语音信号变成文本的问题,机器人对文本语义的理解依然是个难点。用户说“北京”是要介绍北京,还是说要听北京的天气情况,还是要听一首歌名叫“北京”的歌。这都是需要语义理解处理的事情。
很多公司做语义理解是按照做程序的思路去做的,是对用户输入和需要执行的动作做了一一映射。这不是语义理解,是查询。语义理解是思辨的过程,是否定之否定。理解语义需要智能,这是真正的人工智能。比如用户说“北京”,固定地播放北京简介肯定就错了,根据上下文分析用户意图给出准确答案才是对的。根据上下文分析用户意图的过程就是思辨的过程,这个处理过程就是机器人大脑做的事情。
把命令和动作建立映射关系,一个命令只能指向特定的动作,就是命令式交互。用户输入要和命令列表里的命令严格匹配,差一个字都不行,词序颠倒都不行。这不是人工智能。这样给用户带来很高的学习成本。这样的产品用不起来,没有市场。语音交互本来的优势就是简单,让用户记命令,语音交互的优势就没有了。
有些公司的产品虽然处理的是句子,但他们处理的不是句子语义,是文本整句匹配,本质还是命令式处理。有的公司处理的句子是用关键字代表语义的。他们不能准确理解语义,本质上还是命令式交互。用关键字代表语义,就丢失了句子结构、非关键字对语义的影响,大约会损失掉30%-50%的语义。关键字相同的句子,他们就分辨不清楚了。“蜗牛不是牛”“蜗牛是牛不”“牛不是蜗牛”“蜗牛不是牛吧”,这样的句子他们是分不清的。
语义理解是很难的事情,很多公司都做失败了。他们从一开始的思路就是错的。让机器理解语义关键是提高机器的智能水平,让机器具备思辨能力。语义的本质是用户透过文字要表达的意图。准确理解用户意图也就准确理解了句子的语义。有的公司用分类的方法去确定用户意图,但分类太粗了。在同一个分类下面,用户的意图还是有很多细微差别。
我们氖星智能用句子主干表示语义,既能分辨用户意图,准确分类,又能分辨用户意图的细微差别。在交互过程中,允许用户按照自己的习惯表达,是真正的自然语言交互。