让语音助手好好说话这项成就,谷歌还有些事没
人工智能仍然在不断颠覆着我们对“黑科技”这一名词的认知,这是很多人看完Google新语音交互技术演示后的感叹。
在上周召开的Google I/O大会上,Google CEO桑达尔·皮查伊(Sundar Pichai)向众人展示了一段日常生活中再正常不过的电话沟通片段:向理发店或是餐厅预约时间。
不同之处在于,这是一段Google AI语音助手和真人之间的对话。它实在是太过真实,倘若不是在发布会上,单纯听这段录音恐怕很难分清谁是AI人工智能,谁才是真人。
最后,名为Google Duplex的人工智能助理出色地完成了往日需要真人实现的电话预约服务,也让我们看到语音助手了下一种演变方向。
借助AI技术,人类和语音助手之间的沟通不再是单向的,而是可以很自然流畅地实现多段沟通,就像人与人之间的对话一样。
这种自然,具体体现在以下几个细节:
1.更加富有情感的变调语气,比如提问句中会有停顿,某些单词则带有明显的拖长音;
2.哪怕是对方回答的内容稍显混乱,Duplex也能调及时调整应答内容;
3.会发出诸如“嗯哼”、“额…”这样的语气词;
4.恰到好处的回应速度。
事实上,人类在日常对话中并不会太讲究语序逻辑,有可能会在一个句子中夹杂着多层意思,这一点在Google现场演示的两个电话沟通案例中也有体现。如果在中文领域,大量的同声词或是同音字会让情况变得更加复杂。
当然,目前Duplex只是在“电话预约”这一领域能够自然地和人类交流。Google之所以会选择这个先行试验领域,也是由于这个场景中涉及的问题不多,对话往往都离不开时间、地点、人数等这类的关键词。而单一环境意味着AI能够更加充分地学习该场景下的内容,并进行有针对性地训练。
但是,由于真人对话的语序问题,电话沟通中的许多确定性信息,往往要在几段对话后才会出现,比如“时间是下周五”→“什么时候?”→“下周五,18号”这种关于时间点的反复确认。
语音助手不仅更聪明,连声音都越做越逼真
为了准确处理对话问题,我们结合 Google AI官方博客的内容,简单梳理了一下Duplex的处理流程:
1.依靠TensorFlow Extended搭建一个循环神经网络(RNN)模型,并使用匿名通话数据进行了训练;
2.真人语音会先通过自动语音识别技术(ARS),向RNN网络输入文本信息,其中也包含了音频特征和对话历史;
3.通过RNN生成的文本会借助TTS将文本转语音,来作为最终应答的内容。
这么看,Google Duplex和其它很多人工智能在做的事情也很相似。它们都要先通过大量的数据进行分析训练,自己学习处理和识别这些数据,然后再借助合适的模型导出预测结果。
至于大众所关心的“Duplex的说话声和人类差不多”,一方面前文也提到,单一领域下AI可以进行更深度的学习;另一方面,Google则是借助了包括WaveNet在内的文本转语音技术,让AI可以根据不同情境来改变语气和语调,生成质量颇高且细致入微的语音。
▲(图片来源:CNET)
其中一点很重要的是“语气词”的运用,人类在说话的过程中也会思考,其中的停顿往往就会伴随着一些语气词。我们会在Google Duplex的应答中听到如此自然的表达,有些是开发人员在训练时刻意为之,有些则是为了能更好地过度多个声音单元。
当然,在应对一些需要快速回应的询问比如“你好”时,Google Duplex可能都不会等待模型运算结果,而是会先给出一个模糊的回答,然后再根据之后的内容配合一个正式回应。
这个手段可以让AI的响应时间更快,同时也更加自然——毕竟如果对复杂问题回应太快,听起来可就不像是一个“人类”能做到的事。
这种“拟人声”的自然语音表达,背后离不开文字转语音技术的进步。现在很多的语音助手,一个句子只是将几个单词的语音拼接在一起,虽然结构本身没问题,但语调基本没有起承转合,听起来就非常生硬。
最典型的例子其实就是我们给10086打业务办理电话,大家都知道其中的回应语音都是预设的——那种声音不带任何情感,所以我们都能“听”的出来。
▲(图片来源:Marques Brownlee)
但Google Duplex不一样,它发音的清晰度可能比人类都更为标准。
早在2016年,Google和DeepMind就向我们展示了名为 WaveNet 的基于深度学习的语音生成模型。由于音频涉及了大量信息,它借助卷积神经网络的层层堆叠和延时连接,以及大量的样本训练,最终生成的原始音频波形在韵律和语调上都表现得非常出色。
在实际的美国英语语音测试环节中,WaveNet的声音得分已经非常接近人类的水准,如果再加上句式的准确性因素,可能还不亚于人类。