编者按:本文由微信公众号将门创业(thejiangmen)原创编译,如需转载,请在微信公众号中回复“转载”,获得许可。
几个小时前,DeepMind在Twitter上发布的一条推文称:“很高兴和大家分享我们在语音和音乐时代的最新研究突破!来听我们的#WaveNets是如果向大家来证明自己的。”随后,DeepMind的CEO Demis Hassabis转发了该推文,并补充道:“一些惊人的成果——WaveNets是目前世界上文本到语音环节最好的生成模型!”
将门快速编译了DeepMind的发布在官网的有关于WaveNets的博客文章,分享给大家。 Enjoy~
这篇文章的主角是WaveNet,一个用于处理原始音频波形图的深度生成模型。我们将向大家展示WaveNets是如何生成语音的,它可以模仿任何人类的声音,听上去比在存的文本到语音(TTS)系统都要自然。这个模型将机器和人类的表现之间的现有差距减小了50%多。
我们还将展示WaveNets是如何合成如音乐这样的音频信号的。大家可以在下面听到若干由这个系统自动生成的惊人的钢琴演奏小样。
实现人类和机器进行对话是人机交互领域长期以来的一个梦想。随着过去的几年中深度神经网络的应用(如谷歌语音搜索),计算机理解自然对话的能力已经得到了很大的提升。然而,让计算机生成语音,这个过程通常被描述为语音合成或者TTS(文本到语音),却基本上还是基于拼接TTS的方法。
这种通过先将一个人类录制的语音分解成大量的一小段一小段的语音片段,积累成一个非常大的数据库,然后再这些小片段去合成人类的语音。这样做的问题就使得修改声音变得非常困难,例如在不录制一个新的数据库的情况下,能够将合成的语音变成另一个人的声音,或者改变他们在演讲时的侧重或者情感。
这就自然的引出了对于参量式TTS的巨大需求。在参量式TTS中,所有用于生成数据的信息被存储在模型的参量中。因为,语音的内容和特色就可以通过模型的输入来进行控制。不过,目前来讲,参量式TTS听上去没有拼接式来得自然,至于对于英语这样的音节语音是的。现存的参量式模型一般上通过一个叫做vocoders的信号处理算法来输出它的结果,以生成语音信号。
WaveNet通过直接将音频信号的原始波形进行建模,并且一次产生一个样本,从来改变了现在的局面。此外,使用原始波形,意味着WaveNet可以对包括音乐在内的任何音频进行建模,这样子生成的语音听起来会更自然。
研究人员一般都会避免去对原始音频进行建模,因为它的节拍太快了。一般来说,一秒存在着1万6千个samples,或者更多,并且在很多时间尺度上有着重要的结构。构建一个完全自回归的模型,并且能够预测每一个samples是如何被前面所有的samples所影响的(从统计学上来说,每个预测都和所有之前的观测存在关联),这是一个相当艰巨的挑战。
然而,我们在今年早先时候发布的PixelRNN和PixelCNN模型却向我们展示了,它可以生成完全自然的图片。不仅是一次一个像素,而且是一次一个color-channel,一张图片需要进行成千上万次的预测。这激发了我们将二维的PixelNet调整为一维的WaveNet。
上面的动画演示像我们展示了WaveNet是如何组织的。这是一个完全的卷积神经网络。在这其中,卷积层拥有不同的扩张因素,能够让它的接受域随着成千上万的timesteps的深度和覆盖呈现指数型的增长。
在训练时,输入序列是来自人类演讲者的真实的波形。在训练后,我们可以取样这个网络来生成合成的语音。每一步的采样值是由网络计算得出的概率分布得到的。这个值随后会重新回到输入端,然后在下一步生成一个新的预测。构建一个像这样能够一次进行一步取样的网络是需要大量的计算的,但我们觉得这对于生成复杂、听上去和实际的声音一样的音频是非常必要的。
我们用了一部分Google的TTS数据库来训练WaveNet。因此,我们可以去衡量它的表现。下面的数据展示了从规模1-5上,对比Google现在最好的TTS系统(参量式和拼接式)和人类语音(使用的是MOS),WaveNet的质量。MOS是一个标准的用于主观音质测试的衡量体系,它由人类在盲测中所提交的数据获得。如我们所能看到的一样,WaveNets在中英文和中文上,缩小的超过50%的目前最前进的技术和人类表现之前的差距。
对于中文和英文来说,目前Google的TTS系统被认为是目前世界上最佳的系统。所以,WaveNets可以通过一个系统来对两种语言同时进行提升,确实是一个重大的成果。
关于三者对比的语音,建议大家进入DeepMind的英文原文,进行试听,WaveNets的效果相当不错!
为了使用WaveNets将文本变成语音,我们先要告诉它什么是文本。我们的做法是,通过将文本转换成有语言和语音特色(包括当前的音素、章节、单词等信息)的一个序列,之后将它们都投入到WaveNet中。这意味着这个网络的预测不仅可以基于之前的音频samples,也可以基于我们想要让他说的文本。
如果我们在没有文本序列的情况下来训练网络,它仍然可以生成语音,但是它不得不编造一些它要说的东西。你同样可以在DeepMind的英文原文页听到,这样生成的小样听上去就是在胡说八道。
WaveNets在有些时间还可以生成例如呼吸和嘴部运动这样的非语言声音,这也反映了一个原始的音频模型所拥有的更大的自由度。
36氪在这方面的还有如下几篇报道:
国际旅客的狂欢:Google Fi无线服务可将国际漫游数据传输速度提升至4G
Android 7.0 Nougat正式版终于上线!但“心机boy”谷歌却不让每个人都尝到鲜
通过投资与前员工保持“秘密关系”,Google的触手开始伸向硅谷每一个角落
Google将以6.25亿美元收购API管理平台Apigee
如你在这些样本中所能听到的一样,一个单一的WaveNet可以学习很多种声音的特点,不论是男性还是女性。为了确认WaveNet知道在任意的情景下它知道用什么声音,我们去控制演讲人的身份。有意思的是,我们发布用很多的演讲者是训练这个系统,使得它能够更好的去给单个演讲者建模。这比只用一个演讲者去训练要强。这是一种形式的迁移学习。
同样的,我们也可以在模型的输入端给予更多的东西,例如情感或噪音,这样使得生成的语音可以更多样化,也更有趣。
既然WaveNets可以用来能任意的音频信息进行建模,我们就想如果能让他来生成音乐的话,这样就更有意思了。和TTS实验不同,我们没有给网络一个输入序列,告诉它要去播放什么(例如一个谱子)。相反的,我们只是让它去生成任意它想生成的东西。当我们将它在一个古典钢琴音乐的数据集上进行训练时,它听上去的效果确定还不错。
这几段生成的样本,也建议大家点击文章最下方的“阅读原文”按钮,进入DeepMind的英文原文,进行试听。
WaveNets为TTS、音乐合成以及音频建模开启了更多的可能性。我们已经迫不及待地想要去探索更多WaveNets能做的事!
了解更多细节,欢迎大家在“将门创业”(thejiangmen)微信公众号后台,回复“TTS”,获取有关于WaveNets的论文!
联系客服