口语理解SLU和自然语言理解NLU旨在帮助机器理解人类语言。主要的区别在于输入数据的类型。SLU处理的是理解语音,而NLU处理的是理解文本。NLU是SLU的一部分,无论它是否被独立训练。
对NLU的研究开始于20世纪60年代:Bobrow的博士论文Weizenbaum的ELIZA,一个模拟心理治疗师的聊天机器人,以及Winograd的SHRDLU是这个领域的先驱作品。SLU的流行始于最近由深度学习驱动的语音识别的进展。在亚马逊和微软的研究出版物网站上,查询 "口语 "可以得到超过1000项研究。
传统的SLU方法
传统的SLU分两步处理语料--首先是语音到文本(STT),然后是NLU。一旦STT将语音转录为文本,NLU就通过处理转录的文本来提取意义。其性能依赖于独立训练的STT和NLU模块。如果STT返回错误的输出,那么它就会导致NLU的预测不正确。因此,机器无法捕捉到人类所说的内容。许多语音应用程序,包括语音助手--Alexa、Siri和Google都使用这种方法。
端到端SLU方法
现代的SLU使用一个端到端的模型,而不是两个不同的组件。开发人员联合训练STT和NLU,从而获得更高的准确性。
Picovoice称之为Speech-to-Intent,因为它直接从语音中推断用户的意图。亚马逊称其为FANS--融合ASR和NLU的SLU。
传统的SLU方法与端到端SLU方法的对比
答案是 "这取决于"。这取决于语料库和信息的可用性。如果有,那么答案就是现代端到端SLU。如果没有,那就是传统的SLU。基于文本的理解(NLU)比基于语音的理解(SLU)存在的时间更长。因此,它有更丰富的数据集。
对于特定领域的应用,如IVR系统、网站上的菜单导航或在QSR订餐,现代的端到端SLU是比较好的。没有人会在点汉堡包时与语音助手讨论生命的意义。对于开放领域的用例,如Alexa这样的语音助手,考虑到它们所涵盖的各种主题,传统的级联SLU效果更好。人们可以与Alexa讨论生命的意义--尽管有更好的选择。
市场上顶级的SLU和NLU引擎
免费和开源的SLU和NLU引擎:
****Rasa:Rasa是一个开源的NLU引擎,可以处理文本输入。核心软件是免费的,Rasa提供付费支持和咨询服务。任何人都可以选择一个语音到文本服务,并在转录的文本上运行Rasa。
Snips:Snips是一个开源的SLU引擎,使用传统方法。在被Sonos收购后,Snips不再维护它。然而,GitHub上仍有回购,并被开发者使用。
Wit.ai:Wit.ai是一个免费平台,被Facebook收购后,现在需要一个Facebook账户。如果一个人不(想)有一个Facebook账户或删除它,那么他们就不能使用Wit。
顶级付费SLU和NLU引擎:
Dialogflow:谷歌在收购API.ai后,将其命名为Dialogflow,并以同一名称提供聊天机器人和语音机器人工具。它采用的是传统的方法。Dialogflow记录并将语音数据发送到谷歌的服务器进行转录,然后处理转录的文本。它根据使用情况收费。
Lex:亚马逊的Lex是一个AWS产品。与Dialogflow一样,Lex提供文本和语音功能,使用传统方法,并在其云中分别转录语音和理解。它按使用量收费。
Rhino:Picovoice的Rhino是一个SLU引擎,使用端到端方法,直接从语音中推断出意图和意图细节。Rhino是基于语音的,不支持基于文本的服务。它根据用户的数量收费,并为每个用户提供无限的互动。