会打电话的 AI 背后:Google Duplex 技术解析
▼
Google 8 日在加州召开了 2018 年度的开发者大会(Google I/O 2018)。在大会介绍的 Android P、Gmail、Gboard、TPUv3 等众多新产品和功能中,尤为亮眼的无疑是个人助理 Google Assistant 中新增加的 Duplex,它可以打电话给餐厅、发廊等店家,帮用户预约时间。
具体效果可以先看看 I/O 大会现场的展示影片:
在这两则真实电话录音中,Duplex 不仅用自然流畅的语音和电话另一头的人类完成了交流,对方根本没有意识到打电话来的居然是个“AI”,而且第二则录音中它还成功地处理了意料之外的发展状况,不仅理解了“无需预定”,还主动询问了等位的时间。根据 Google CEO 桑德尔皮蔡(Sundar Pichai)介绍,他们未来还计划进一步拓展 Duplex 询问营业时间的能力,有一个用户的 Google Assistant 打电话询问了某家店面的营业时间,就可以把这个询问结果同步给更多别的用户,不仅节省了用户 / 消费者自己查询的时间,也为店家节省了时间。实际上,这也是 Google 对 Google Assistant 的设计宗旨:为用户节省时间,为用户把事情搞定(get things done)。
Google 也同步在 Google AI 部落格上更新了 Duplex 的技术细节,编译如下。
Google Duplex:能打电话完成真实世界任务的 AI 系统
长期以来,人类和电脑之间互动的目标都是希望两者之间可以进行自然的对话,就像两个人之间讲话那样。近几年来,电脑理解和生成自然语音的能力出现了革命性的提高,Google 语音搜寻、WaveNet 之类基于深度神经网络的技术功不可没。
即便如此,当前最先进的人机对话系统仍然只有生硬的电子声音,而且也不理解人类的自然语言。具体来说,自动呼叫系统即便只是辨识简单的单词和控制指令都不令人满意,更不用说跟人进行自然的对话了。打电话的人需要调整自己的说法方式来适应系统,系统却没办法适应打电话的人。
而 8 日发表的 Google Duplex 就包含了新的技术,它可以打电话给人类,透过自然的对话完成一系列真实世界的任务。这项技术目前针对的是执行一些特定的任务,比如为某几类活动约定时间。在这些任务中,Duplex 能让对话过程尽可能地自然,电话另一头的人可以像和另一个人说话一样自然地交流,无需做任何调整(实际上对方可能根本就没有发现这通电话不是人类打来的)。
在这项技术的研究中,一个重要的研究要点是把 Duplex 的功能限制在封闭的场景中,这些场景涵盖的内容够少,以至于 AI 系统可以充分地探索学习。相对应地,Duplex 经过这些场景的深入训练后,也就只能执行这些场景内的自然对话任务,还不能和人进行一般的对话。
不过,根据开头的影片我们已经感受到了,在这些任务中 Duplex 带来了令人惊喜的表现,对话过程对人类来说非常舒适。
如何展开自然对话
展开一段自然的对话有这么几个难点:自然语言难以理解,人类的自然行为很难建模,人类对延迟的耐受性很低所以需要高处理速度,以及生成听起来自然的语音,其中还要适当地夹杂一些语气词。
当人类和人类之间对话的时候,相比于与电脑对话,他们会使用更多的复杂句子。他们经常一个句子说到一半然后更正一部分表述,会啰啰嗦嗦的,会依赖上下文然后省略一些单词,还有时候会在一个句子里表达好多个意思。比如:“星期二到星期四我们从上午 11 点营业到下午 2 点,然后下午 4 点到 9 点再开门;然后星期五六日我们,哦不对,星期五、星期六我们 11 点开门到 9 点,星期天 1 点到 9 点。”
在天然的、自发的对话中,相比与电脑讲话,人类会讲得更快、讲得更不清晰一些,这时候的语音辨识也更难,单词错误率更高。在打电话的时候这个问题会更明显,经常会遇到背景噪音,通话品质也不好。
在较长的对话中,根据上下文的不同,同样的句子也可以有不同的含义。比如,“ok for 4”在预订座位的时候就有可能指人的数目,也有可能指时间。相关的上下文句子可能会在好几个句子之前,而受到电话中单词错误率的影响,这个问题又会变得愈发难解。
辨识了对方的语义之后,AI 系统要说的内容就是由当前要执行的任务和对话进行的状况共同决定的。除此之外,自然语言的对话中还有一些常见的语言习惯;这些约定俗成的句法模式包括:重复时说得更详细一些(-“时间是下周五。”-“什么时候?”-“下周五,18 号。”),同步语句(“你听得清楚吗”),打断(-“数字是 212……”-“对不起你能重新说一遍吗”),以及停顿(“你可以稍等一下吗(停顿)谢谢!”1 秒的停顿和 2 分钟的停顿又有不同的含义)。
认识 Duplex
借助语言理解、互动、时间控制、语音生成方面的最近技术发展,Google Duplex 的对话听起来相当真实自然。
为了处理上面提到的挑战,Duplex 的核心是一个 RNN 网络,它是由 TensorFlow Extended(RFX)构建的。为了达到高精准度,Google 用匿名的电话对话数据训练了 Duplex 的 RNN 网络。这个网络会使用 Google 自动语音辨识(ASR)的辨识结果文本,同时也会使用音频中的特征、对话历史、对话参数(比如要预订的服务,当前时间)等。Google 为每一种不同的任务分别训练了不同的理解模型,不过不同任务间也有一些训练语料是共享的。最后,Google 还利用 TFX 的超参数最佳化进一步改进了模型。
输入语音先经过自动语音辨识系统(ASR)处理,生成的文本会与上下文数据以及其他输入一起输入 RNN 网络,生成的应答文本再透过文本转语音(TTS)系统读出来。
生成自然的语音
Google 联合使用了一个级联 TTS 引擎和一个生成式 TTS 引擎(其中使用了 Tacotron 和 WaveNet),根据不同的情境控制语音的语调。
这个系统还可以生成一些语气词(比如“hmmm”、“uh”),这也让语音变得更自然。当级联 TTS 需要组合变化很大的语音单元,或者需要增加生成的停顿时,语气词就会被添加到生成的语音中,这就让这个系统可以以一种自然的方式向对方示意“是的我在听”或者“我还在考虑”(人类说话的时候就经常在思考的同时发出一些语气词)。Google 的用户调查也确认了人类觉得带有语气词的对话更熟悉、更自然。
另一方面,系统的延迟也要能够符合人类的期待。比如,当一个人在电话里讲了“你好”这样的简单句子之后,他们会希望很快听到一个简短的回复,这种时候会对延迟更加敏感一些。当 AI 系统检测到需要短延迟的情境时,就会使用更快但精准度也更低的模型来处理。在某些极端情况下,系统甚至都不会等待 RNN 执行,而是直接使用快速逼近模型(通常也会和更慢的正式回应搭配起来使用,就像人类不完全理解另一方的时候会犹豫一样)。这样的做法就可以让系统达到 100ms 之内的极短延迟。有趣的是,Google 发现在某些情况下要增加一些延迟来让对话听起来更自然,比如回复一个很复杂的句子的时候。
系统执行
Google Duplex 系统可以进行复杂的对话,它可以完全自动地完成大多数任务,不需要任何人类参与。系统也有一个自动监控机制,不仅成功完成一个任务后可以弹出提醒给用户,也可以辨识出没能成功完成的任务(比如处理某个异常复杂的预订)。在这种情况下,它会发出指令给一个人类操作员,转交给人类完成任务。
为了在训练系统处理新的情境,Google 也使用了即时监督训练。这种训练方式和许多事情的教学方法类似,都有一个教学者指导一个学生,边做边提供必要的指导,确保任务的执行效果达到了教学者的品质要求水平。在 Duplex 系统中,有经验的人类操作员就可以做为这样的教学者,当系统打电话处理新的、不熟悉的情境时,人类操作员就可以即时影响系统的行为。这样边做边学的过程,可以一直持续到系统达到理想的表现为止,然后系统就可以全自动地打电话了。
有益于用户,也有益于商家
许多商户并没有自己的线上预定系统,仍然使用的是线上预定。Duplex 就可以帮助他们,无需改变每日的行为惯例或者培训员工,就可以让用户透过 Google Assistant 轻松完成预定。Duplex 也可以减少用户放鸽子的情况,可以在手机上自动提醒用户预订事项,以及帮助用户轻松地取消或重新安排时间。
也有一些情况下,用户会打电话向商家询问营业时间,比如节庆假日期间的营业时间,一般在店铺的线上页面是看不到的。Duplex 打电话询问之后,可以透过 Google 服务把这个资讯公开出去,省去了其他用户打同一个电话、问同样的问题的精力,也帮商家节省了人力。同时,商家就像往常一样正常营业就行,这项新技术并不需要他们学习任何技能或做任何改变就可以享受到便利。
对用户来说,Google Duplex 当然可以帮助用户轻松地完成它支援的各种任务。用户只需要和 Google Assistant 做简单的互动,Duplex 就会自动在后台打电话,并且自动补全所需的用户资讯。
用户让 Google Assistant 做个预约,Google Assistant 接下来就会透过 Duplex 打电话与商家完成预约。
Duplex 还能为用户带来一项便利,就是可以非同步地做为服务提供商的代理,比如在非营业时间打电话给商家,或者手机讯号不好的时候,Duplex 在这种情况下就成为了一条额外的资讯获取途径。它也可以帮助残障人士或语言不通的用户,替听力受损的用户打电话完成预约,或替用户用另一种语言完成任务。
今年夏天,Google 就会开始利用 Google Assistant 测试 Duplex,就从预订餐厅、发廊、询问节庆假日的营业时间这样的事项开始。
▲ Google Duplex 团队负责人 Yaniv Leviathan 和项目工程主管 Matan Kalma 在餐厅吃饭,这顿饭就是Duplex 打电话为他们预订的。(Source:Google Blog)
一直以来,让人们可以“像人与人互动一样自然地与科技互动”都是 Google 的目标。Google Duplex 就是迈向这个方向的一步,在特定场景下以自然的对话让人和科技互动。Google 希望这些具体技术的发展也可以为人类和电脑的日常互动带来更有意义的改进。
- Google Duplex: An AI System for Accomplishing Real-World Tasks Over the Phone
(本文由 雷锋网 授权转载;首图来源:shutterstock)
延伸阅读:
- Google 的 AI 又进化了!像真人一样打电话订位、回邮件
▼
特别声明 本页内容仅供参考,版权终归原著者所有,若有侵权,请联系我们删除。