TensorFlow WaveNet声音合成详解

  • 内容
  • 评论
  • 相关

WaveNet 是生成原始音频波形的深层生成模型。这项突破性的技术已经被 Google DeepMind 引入(https://deepmind.com/blog/generate-mode-raw-audio/),用于教授如何与计算机对话。结果确实令人惊讶,在网上你可以找到合成声音的例子,电脑学习如何用名人的声音与人们谈话。

所以,你可能想知道为什么学习合成音频是如此困难。听到的每个数字声音都是基于每秒 16000 个样本(有时是 48000 个或更多)建立一个预测模型,在这个模型中学习基于以前所有的样本来重现样本,这是一个非常困难的挑战。

尽管如此,有实验表明,WaveNet 已经改进了当前最先进的文本到语音(Text-To-Speech,TTS)系统,降低了英语和普通话之间 50% 的差异。

更酷的是,DeepMind 证明了 WaveNet 可以教会电脑如何产生乐器的声音,比如钢琴音乐。

下面给出一些定义。TTS 系统通常分为两个不同的类别:

  • 连续TTS:其中单个语音片段首先被记忆,然后在语音再现时重新组合。这种方法没有大规模应用,因为它只能再现记忆过的语音片段,并且不可能在没有记忆片段的情况下再现新的声音或不同类型的音频。
  • 参数TTS:其中创建模型用于存储要合成的音频的所有特征。在 WaveNet 之前,使用参数 TTS 生成的音频不如连续 TTS 自然。WaveNet 通过直接建模音频声音的生成来改进现有技术,而不是使用过去常用的中间信号去处理算法。

原则上,WaveNet 可以看作是一堆卷积层(已经在前面章节中看到了二维卷积图像),而且步长恒定,没有池化层。请注意,输入和输出的结构具有相同的尺寸,所以 ConvNet 非常适合对音频声音等连续数据进行建模。

然而,实验表明,为了达到输出神经元中的感受野大尺寸,有必要使用大量的大型滤波器或者不可避免地增加网络的深度。请记住,一个网络中一层神经元的感受野是前一层神经元对其提供输入的横截面。由于这个原因,纯粹的卷积网络在学习如何合成音频方面效率不高。

WaveNet 的关键在于所谓的扩张因果卷积(有时称为带孔卷积),这就意味着当应用卷积层的滤波器时,一些输入值被跳过。例如,在一个维度上,一个具有扩张 1、大小为 3 的滤波器 w 将计算如下所示的加权和。

简而言之,在扩张值为 D 的扩张卷积中,通常步长是 1,你也可使用其他的步长。下图给出了一个例子,扩大(孔)尺寸为 0,1,2:



图 1 扩张网络的一个例子

本文标题:TensorFlow WaveNet声音合成详解

本文地址:http://www.hosteonscn.com/4257.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注