谷歌 DeepMind 发布博客介绍他们在文本转语音系统上取得的重大进展。DeepMind 表示,他们最新的深度生成模型 WaveNet 将机器语音合成的表现与人类之间水平的差距至少缩减了 50%。
这篇文章提出了 WaveNet——一种原始音频波形(raw audio waveforms)的深度生成模型。我们的研究表明 WaveNet 可以生成模拟任何人类声音的语音,而且其听起来比已有最好的文本转语音(Text-to-Speech)系统更为自然,与人类表现之间的差距缩减了超过 50%。
我们的研究也证明该网络还可被用于生成音乐等其它类型的音频信号,我们还给出了一些引人注目的模拟钢琴演奏的音乐片段。
说话的机器
人与机器交谈是人机交互领域内一个长久以来的梦想。最近几年来,随着深度神经网络的应用(如 Google Voice Search),计算机理解自然语音的能力已经得到了彻底革新。但是,使用计算机生成语音——这个过程通常被称为语音合成(speech synthesis)或文本转语音(TTS)——仍在很大程度上基于所谓的拼接 TTS(concatenative TTS),其中有一个由单个人录制的大量短语音片段构成的非常大的数据库,然后再将这些短语音组合起来构成完整的话语。这使得如果没有录制一个全新的数据库,修改语音就会非常困难(比如切换成一个不同的说话者,或改变它们语音的强调或情绪)。
这带来了对参数 TTS(parametric TTS)的巨大需求,其中生成数据所需的所有信息都存储在模型的参数中,因此语音的内容和特征都可以通过该模型的输入进行控制。但是,到目前为止,参数 TTS 往往听起来都不如拼接 TTS 那样自然——至少在英语等语音的合成上是这样。现有的参数模型往往是通过将它们输出经过信号处理算法(被称为语音编码器(vocoders))来生成音频信号。
WaveNet 改变了这一范式,而是选择直接建模音频信号的原始波形,一次处理一个样本。除了能够产出听起来更为自然的声音,使用原始波形意味着 WaveNet 可以建模几乎任何类型的音频,包括音乐。
WaveNet
研究者通常会避免对原始音频进行建模,因为波形波动得非常快:每秒通常有 16,000 甚至更多个样本,而且在许多时间尺度上都存在重要的结构,在这些结构中,对每一个样本的预测都会受到之前所有样本的影响(用统计学的话来说:每一个预测分布的前提是所有先前的观察),这显然是一个具有挑战性的任务。
但是,我们今年初发布的 PixelRNN 和 PixelCNN 模型表明不仅一次一个像素式地生成复杂的自然图像是可能的,而且也可以一次一个颜色信道(colour-channel)地生成,这需要对每张图像进行数千次预测。这启发了我们将我们的二维 PixelNet 调整为一维的 WaveNet。
以上的动画展示了 WaveNet 的结构。这是一个完全卷积的神经网络,其中的卷积层有不同的膨胀系数( dilation factors),这让其感受野(receptive field)可在深度(depth)上指数式地增长并可覆盖数千个时间步骤(timesteps)。
在训练时间,其输入序列是由人类说话者录制的真实波形。训练之后,我们可以对这个网络进行采样以生成合成话语。在采样的每一个时间步骤,都会从该网络所计算出的概率分布中取出一个值。然后这个值会被反馈进入输入,并为下一个步骤生成一个新的预测。像这样一次一步地构建样本具有很高的计算成本,但我们发现这对生成复杂的、听起来真实感强的音频而言至关重要。
改进当前最佳的结果
我们使用谷歌的一些 TTS 数据集训练 WaveNet,所以我们能评估其表现。与谷歌目前最好的 TTS 系统(parametric 和 concatenative)和使用平均意见得分(Mean Opinion Socres,MOS)测试的人类语音相比,下图显示了 WaveNet 从 1 到 5 的质量表现。MOS 是一个主观的声音质量测试的标准测量方法,包含带有人类受试者的盲测(在 100 条测试语句上的超过 500 个评级)。就像我们看到的那样,在英语和汉语普通话上,WaveNet 减少了顶尖水平与人类水平之间的差距,减小的这个差距超过了 50%。
无论是汉语还是英语,谷歌目前的 TTS 系统被认为是全球最好的,所以使用一个模型对两者都有改进是一件非常重大的成就。
这里是一些来自是三个系统的样本,你可以自己听听,做个对比:
美国英语:
汉语普通话:
知道说什么
为了使用 WaveNet 将文本转化为语音,我们需要识别文本中是什么。我们通过将文本转换为一序列的语言和语音特征(包含了当前音素、音节、词等方面的信息)并将其输送到 WaveNet 中做到这一点。这意味着网络的预测不只以先前的音频样本为条件,也以我们想要它说的文本为条件。
如果我们在没有文本序列的情况下训练网络,它仍能生成语音,但现在它需要编造它所说的内容。就像你从下面的样本中听到的那样,结果会导致像是在胡说,原文字被组成的像是声音的文字解释。
注意,非语音声音,比如呼吸和动嘴产生的声音,有时也会被 WaveNet 生成。这反映出了原音频模型的更强大的适应性。就像你能从这些样本中听到的那样,一个简单的 WaveNet 能够学习许多不同声音的特性,不论男性女性。为了保证它知道使用给定话语的哪些声音,我们将对说话者的识别作为该网络的条件之一。有趣的是,我们发现在多个说话者中建模一个说话者的训练要比单个说话者的训练更好,表现出了一定形式的迁移学习(transfer learning)。
通过改变说话者身份,我们能使用 WaveNet 用不同的声音说同样的事:
类似地,我们能为模型提供额外的输入,比如情绪或口音,使得语言更加多变且有趣。
制造音乐
因为 WaveNet 可被用于建模任何音频信号,我们认为用它来生成音乐也会很有意思。和 TTS 实验不同,我们没有调节该网络的输入序列,以告诉它该播放什么(比如,一个音乐评分);相反,我们只是让它生成任何其想生成的东西。当我们在一个古典钢琴曲的数据集上训练它时,它产出了一个如下的让人惊叹的样本(此处有音频)。
WaveNet 为开启了 TTS、音乐生成和广义上的音频建模的大量可能。可以使用深度神经网络一个时间步骤一个时间步骤地直接生成在所有的 16 kHz 音频上都是有效的,这个事实非常让人惊讶,更不要说其表现还优于当前最佳的 TTS 系统。我们很高兴看到下一步我们能用它来做什么。
更多细节可查看原论文,下面是对该论文的摘要介绍。
论文:WaveNet:一种用于原始音频的生成模型(WAVENET: A GENERATIVE MODEL FOR RAW AUDIO)
摘要:这篇论文介绍了 WaveNet——一种用于生成原始音频波形的深度神经网络。该模型是完全概率的和自回归的( fully probabilistic and autoregressive),其每一个音频样本的预测分布的前提是所有先前的样本;不过我们的研究表明它可以有效地在每秒音频带有数万个样本的数据上进行训练。当被应用于文本转语音时,它可以得到当前最佳的表现,人类听众评价它在英语和汉语上比当前最好的参数(parametric)和拼接(concatenative)系统所生成的音频听起来都显著更为自然。单个 WaveNet 就可以以同等的保真度捕获许多不同说话者的特点,而且可以通过调节说话者身份来在它们之间切换。当训练该模型对音乐建模时,我们发现它可以生成全新的、而且往往具有高度真实感的音乐片段。我们的研究还证明其可以被用作判别模型,可以为音速识别(phoneme recognition)返回很有希望的结果。