[文章大意:我惊讶于谷歌在2018年I/O大会上展示的谷歌助理的本领,于是去Googleblog找了资料,这篇博文来自于谷歌助理项目负责人,讲述了谷歌助理背后的系统Duplex。它同时讲述了研制Duplex系统背后需要解决的问题和应对方法。]
2018年5月8日,星期二
Google工程副总裁兼首席工程师YanivLeviathan发布
人机交互的一个长期目标是使人与计算机的对话像人与人一样自然。最近几年,我们目睹了计算机在理解和生成语音方面的巨大改善,特别是深度神经网络的应用助力于此(Google语音搜索,WaveNet)。然而,即使依靠最高的科技,人们常常必须忍受计算机生成的枯燥生硬的声音,因为它们不懂自然语言。特别是在自动电话系统中,现在这些系统仍然是识别简单的单词或者指令(10086的请按1)。系统并不是在参与一个对话而是强迫呼叫者适应系统,不会根据呼叫者的需要作出调整。(10086查话费就是那个指令,多按一个字符就要重新来)。
如今我们发布了GoogleDuplex,用这项新技术在手机上制造一段真实的自然的对话来完成“现实世界”中的任务。这项技术目前只针对一些特殊的场景,比如说预订某种会议。对于这样的事情,这套系统使得对话尽可能地自然,像人们平时对话一样,不必完全适应机器。
我们研发Duple时一个重要的观点是将它限制在一个封闭的环境中,使得研究能够深入(意思是不将系统造的适应面很广,而是在某个方面深入下去)。所以Duplex只能在某些场景进行自然对话,因为它在这些场景中受过大量的深入的训练。但是它还不能完成其他方面的日常对话。
下面是Duplex发威的两个例子,
https://www.youtube.com/watch?v=D5VN56jQMWM&list=WL&index=2&t=161s
Duplex是为了建立听起来自然的对话以获得更加舒服的体验。舒适度在我们处理这些事情时很重要,但是另一个问题——透明度也很重要,因为我不知道和对话的是真实的一个人还是一个机器。我们未来几个月会着手解决这个问题。
1、建立自然对话
用计算机建立自然对话的时候,有很多困难需要面对,比如:自然语言很难让计算机理解,自然语音也比较难建立模型,还有对话一般要求被迅速回应,而且为了让计算机发出的声音更自然,还需要注意语调的高低,真难!(自夸)
当人与人进行交谈时,他们说的话比和计算机进行的对话复杂的多。比如,人们常常中途修正说过的话,说话时有很多冗余的词语,或者遗漏一些通过场景可以理解的词语(看到一个美女,你和哥们说“hi那个女孩真漂亮”,计算机哪里知道哪个女汉子啊),并且一句话里面能表达很多意思。再加上人的语速比较快,语音识别很难并且词语错误率较高。并且在手机通话这个场景中,往往有很大的背景音或者其他噪音。(蜀道难!!!)
在长对话中,相同的句子在不同的场景往往有不同的含义。比如说
A:4个苹果怎么样?
B:好的,就4个吧
A:周末4个人去划船怎么样?
B:好的,就4个吧
“好的,就4个吧”你把这句话仍给电脑,它计算到天荒地老也不知道到底是4个啥,但是B是肯定知道这个意思的。(当然这个如果考虑汉语的多义性,那就更复杂了。请参考《打》)
决定下句说什么的是当前的对话状态和对话的目的(计算机真是想一步说一句啊)。另外,机器还需要理解并运用对话中的隐含信息,比如:
(1)解释
A:下周五
B:什么时候?
A:下个星期的周五,18号
(A需要回答B的疑问)
(2)同步
A:你能听到我说话吗?
(A需要同步下对话的状态,进行到哪一步了,不能你说了一大段,别人没听懂)
(3)被打断
A:数字是212。。。
B:抱歉你能重新说吗?
(A需要处理被别人打断的情况,不能像10086一样一直独自说话)
(4)暂停
A:你能稍等会吗?[pause]谢谢!
(A需要处理对话暂停的情况,但是暂停1秒和2分钟又是不同的概念,真难处理啊)
2、分析Duplex
Duplex的核心是RNN,并且由TensorFlowExtended(TFX)构造。为了提高准确率,我们使用匿名电话数据对Duplex的RNN网络进行训练。网络的输入是Google语音转换技术的结果,音频的特征,历史对话和一些对话的参数,如对话任务是预约活动还是当天活动,还有更多的参数。最后用TFX的超参数优化来改善模型。
(输入的声音被ASR系统处理。ASR系统产生的文本和其他输入一起产生一份文本,这份结果文本经过TTS系统转换成声音)
(由这个图可以大概看出,声音被转换成文字进行训练,并将产生的文字转换成声音播放给人听。)
3、听起来自然
我们将TTS文字转声音的系统和TTS合成系统结合在一起去控制不同场景下的音调(Tacotron和WaveNet)。另外,我们还有个小技巧,使用一些语气词使对话听起来更自然(如“嗯”,“哦”)。当TTS系统使用不同的广泛的组件或者系统需要增加等待时(不理解,原文是 whencombining widely differing sound units in the concatenative TTS oradding synthetic waits),这些语气词会被加到对话中,以表明正在处理。(意思是我还活着呢)。在调研用户时,我们发现使用这些词会让对话更自然和舒适。
另外一件重要的事情是使反应速度符合人的期望。比如,当你说“你好!”的时候,总是期望被立即回应。(因为这个词语没有什么特别的意思,只是出了声而已)。当我们检测到这种场景时,我们会采用一些可信度较低的模型或者直接使用近似的一段话来代替,抛开了RNN模型。这种措施使得我们能够获得100ms之内的响应速度。
4、系统操作
Duplex能够在没有人干预的情况下,自主完成一些有经验的谈话。Duplex是自我检查的系统,它发现无法完成任务时,会向人发出信号,让操作者来完成。
为了在新的事务中训练Duplex,我们使用实时训练(随时调整)。这个很多学科中的训练原则是相符合的,当一个导师指导学生做工作时,他会提供必要的引导,以确保任务是在导师的能力水平上被完成的。在Duplex的训练中,有经验的操作者被当作导师,他们随时影响Duplex的行为。这种影响一直进行直到Duplex能够自己呼叫。
5、对企业和用户的帮助
Duplex可以被企业用来做预订系统,这样就可以省去训练员工的麻烦。另外,客户经常致电企业查询网上无法获取的信息,例如假期的营业时间。Duplex可以致电查询时间,并由Google在线提供信息,这种形式可以使所有人同时访问,还省去了培训。
对于用户来说,Duplex正在让支持的任务更轻松。用户只需与Google智能助理进行交互,而不用打电话,而且通话完全在后台进行,无需用户参与。
用户的另一个好处是Duplex能够以异步方式与服务提供商进行授权通信,例如,在非工作时间请求保留或有限的连接。它还可以帮助解决无障碍和语言障碍问题,例如允许听力障碍的用户或不会说当地语言的用户通过电话执行任务。
今年夏天,我们将开始在Google智能助理中测试Duplex技术,帮助用户预订餐厅,安排发廊预约,并通过电话获得假期。
允许人们在与技术互动时自然而然地互动,这一直是长久以来的承诺。GoogleDuplex向这个方向迈出了一步,通过在特定场景中实现自然对话,与技术进行互动。我们希望这些技术进步最终将有助于人们在与计算机的日常互动中获得有意义的改善。
(Duplex的负责人YanivLeviathan和Duplex的工程经理MatanKalman通过Duplex订的餐)
Ref:
https://ai.googleblog.com/2018/05/duplex-ai-system-for-natural-conversation.html
这是博客原文地址