海阔天空蓝

一个玩过n种运动的语音合成算法攻城狮

0%

nvc-net End-to-End Adversarial Voice Conversion

NVC-Net 端到端对抗性音色转换任务

摘要

语音转换在语音合成的许多应用中越来越受欢迎。这个想法是在保持语言内容不变的情况下将语音身份从一个说话者更改为另一个说话者。许多语音转换方法依赖于使用声码器从声学特征重建语音,因此,语音质量在很大程度上取决于这种声码器。在本文中,我们提出了一种端到端的对抗网络 NVC-Net,它可以直接对任意长度的原始音频波形进行语音转换。通过从语音内容中分离说话者身份,NVC-Net 能够执行非并行的传统多对多语音转换以及从看不见的目标说话者的简短话语中进行零样本语音转换。重要的是,NVC-Net 是非自回归和完全卷积的,可以实现快速推理。我们的模型能够在 NVIDIA V100 GPU 上以超过 3600 kHz 的速率生成样本,在相同硬件配置下比最先进的方法快几个数量级。对非并行多对多语音转换任务的客观和主观评估表明,NVC-Net 以更少的参数获得了有竞争力的结果。

Introduction

语音转换包括改变源说话者的语音,使其听起来像目标说话者的语音,同时保持语言信息不变。语音转换的典型应用包括说话人转换、电影和视频中的配音、语音辅助系统和发音转换。尽管在该领域取得了很大成功,但语音转换仍有一些问题需要解决。

早期的语音转换方法需要并行训练数据,其中包含不同说话者所说的相同语言内容的话语。这些方法的一个缺点是它们对源话语和目标话语之间的错位敏感。时间对齐和手动校正通常作为预处理步骤执行,以使这些方法更可靠地工作。尽管如此,收集并行训练数据仍然是一项耗时的工作,在许多情况下甚至是一项不可行的任务。这激发了越来越多的研究兴趣,即通过使用生成对抗网络 (GAN) 及其变体在非并行训练数据上开发语音转换方法。尽管基于 GAN 的方法通过非并行训练数据学习映射提供了一种有前景的解决方案,但设计这种与并行方法相比具有竞争力的方法仍有待解决。

语音转换中的另一个常见问题是对原始音频波形进行建模。一个好的模型应该捕获音频信号中的短期和长期时间依赖性,由于语音的高时间分辨率(例如,每秒 16k 个样本),这并非微不足道。一个简单的解决方案是将时间分辨率降低为较低维的表示(例如,声学特征)。在这种情况下,人们需要一个声码器来从声学特征重建波形表示。像 WORLD 或 STRAIGHT这样的传统声码器通常会引入伪像(金属声音)。为了克服这个问题,已经提出了更复杂的神经声码器,例如自回归和非自回归模型。 WaveNet和 WaveRNN 等自回归模型推理速度较慢,因此它们不太适合实际应用。尽管像 WaveGlow 这样的非自回归模型产生更快的推理,但波形重建仍然主导着计算工作和内存需求。像 MelGAN 或 Parallel WaveGAN这样的轻量级声码器可以缓解内存问题,但是,训练和推理之间的特征不匹配问题仍未解决。事实上,正如吴等人所观察到的那样。 特征不匹配问题可能导致声码器在输出中产生嘈杂或塌陷的语音,尤其是在训练数据有限的情况下。

虽然许多研究工作都集中在在训练期间看到的说话者之间转换音频,但很少关注将音频从训练期间看不见的说话者转换为音频的问题(即零样本语音转换)。钱等人建议在具有许多说话人的大数据集上使用预先训练的说话人编码器。通过精心设计的瓶颈层,内容信息可以从说话者信息中分离出来,从而实现零样本语音转换。然而,在数据和计算资源有限的情况下,说话人编码器不能很好地概括不可见的说话人,因为说话人嵌入往往是分散的。

在本文中,我们以端到端的方式使用对抗训练来解决从原始音频波形转换语音的问题。本文的主要贡献总结如下:

  1. 我们介绍了 NVC-Net,这是一种经过对抗训练的多对多语音转换方法,不需要并行数据。我们的方法旨在将说话者身份与语音内容分开。据我们所知,这是第一个基于 GAN 的方法,它直接在原始音频波形上明确地执行语音转换的解缠结。
  2. 与其他基于 GAN 的语音转换方法不同,NVC-Net 可以直接生成原始音频,而无需训练额外的声码器。因此,可以避免使用独立声码器时的特征不匹配问题。声码器的缺失也使得 NVC-Net 在推理时非常高效。它能够在 NVIDIA V100 GPU 上以超过 3600 kHz 的速率生成音频。
  3. NVC-Net 通过限制说话者的表示来解决零样本语音转换问题。我们在说话人潜在空间上应用 Kullback-Leibler 正则化,使说话人表示对输入的微小变化具有鲁棒性。这也允许在生成时进行随机采样。在推理过程中,可以从该空间随机采样说话人嵌入以生成不同的输出或从给定的参考话语中提取说话人嵌入。

相关工作

由于难以收集并行训练数据,当前的语音转换方法求助于非并行训练数据。他们中的许多人都受到了计算机视觉领域的最新进展的启发。例如,许等人通过根据说话者身份对解码器进行调节,引入了基于变分自动编码器 (VAE) 的语音转换框架。作为扩展,Kameoka 等人对 VAE 使用了一个辅助分类器,迫使转换后的音频被正确分类。尽管取得了成功,但众所周知,条件 VAE 具有生成过度平滑音频的局限性。这可能是有问题的,因为该模型可能会产生质量较差的音频。

解决这个问题的一个有吸引力的解决方案是基于 GAN,因为它们没有对数据分布做出任何明确的假设。他们学习捕捉真实音频的分布,使生成的音频听起来更自然。第一项研究基于 CycleGAN。这个想法是通过结合对抗性损失、循环一致性损失和身份映射损失来学习源和目标说话者之间声学特征的映射。最近,受到 Choi 等人工作的启发StarGAN-VC及其改进版本在语音转换方面表现出非常有希望的结果。许等人证明 GAN 可以改进基于 VAE 的模型。然而,尽管在生成逼真的图像方面取得了成功,但构建 GAN 以直接生成高保真音频波形是一项具有挑战性的任务。原因之一是音频是高度周期性的,人耳对不连续性很敏感。此外,与图像不同,音频通常会引起高时间分辨率要求。

在语音转换的背景下,我们将语音视为说话者身份和语言内容的组合。将说话者身份与语言内容分开允许独立地改变说话者身份。有几种方法利用自动语音识别 (ASR) 模型的潜在表示进行语音转换。 ASR 模型用于从源语音中提取语言特征,然后使用另一个依赖说话人的模型将这些特征转换为目标说话人。这些模型可以进行非并行语音转换,但它们的性能高度依赖于 ASR 模型的准确性。用于语音转换的其他解开技术包括自动编码器、矢量量化和实例归一化。

许多上述方法依赖于语音的中间表示,例如频谱图和梅尔频率倒谱系数。尽管它们能够产生良好的感知质量的语音,但有些仍然需要额外的监督来训练强大的声码器。只有几种方法可以处理原始音频波形。例如,恩格尔等人提出了一种 WaveNet 风格的自动编码器,用于在不同乐器之间转换音频。最近,塞拉等人介绍了 Blow,一种用于原始音频信号语音转换的标准化流网络。基于流的模型具有高效采样和精确似然计算的优点,但是,与自回归模型相比,它们的表现力较差。

NVC-Net

我们的提议旨在实现以下目标:(i)从潜在嵌入重建高度感知相似的音频波形,(ii)在转换过程中保留说话人不变的信息,以及(iii)为目标说话人生成高保真音频。特别是,NVC-Net 由一个内容编码器 \(E_c\)​​​​​、一个说话人编码器 \(E_s\)​​​​​、一个生成器 \(G\)​​​​​ 和三个鉴别器 \(D(k)\)​​​​​ 组成,其中 \(k = 1、2、3\)​​​​​,它们用于输入的不同时间分辨率。图 1 说明了整体架构。我们假设话语 \(x\)​​​​​ 是从两个潜在嵌入生成的,说话者身份\(z∈R^{d_{spk}}\)​​​​​,语音内容信息\(c∈R^{d_{con}×L_{con}}\)​​​​​,即,\(x=G(c,z)\)​​​​​。内容描述了不同说话者之间不变的信息,例如语音和其他韵律信息。为了将话语 \(x\)​​​​​ 从说话人 \(y\)​​​​​ 转换为说话人 \(\tilde y􏰈\)​​​​​​􏰈 的话语 \(\tilde x\)​​​​,我们通过内容编码器 \(c = E_c(x)\)​​​​ 将 \(x\)​​​ 映射到内容嵌入中。此外,目标说话人嵌入 \(\tilde z\)​​​ 是从扬声器编码器 \(E_s(x􏰈)\) 的输出分布中采样的。最后,我们从内容嵌入 \(c\) 生成原始音频,该内容嵌入 \(c\) 以目标说话人嵌入 \(􏰈\tilde z\) 为条件,即 \(\tilde x􏰈 = G(c, 􏰈\tilde z)\)

3.1 训练目标

我们的目标是训练内容编码器 \(E_c\)、说话者编码器 \(E_s\) 和学习多个说话者之间映射的生成器 \(G\)​​。 下面,我们将详细解释训练的目标函数。

对抗性损失 为了使合成语音与真实语音无法区分,鉴别器的损失函数 \(L_{adv}(D^{(k)})\)​​​ 和生成器的损失函数 \(L_{adv}(E_c, E_s, G)\)​​​​​ 定义为:

nvc-net-al1

nvc-net-al1

编码器和生成器被训练来欺骗鉴别器,而鉴别器被训练来同时解决多个二元分类任务。 每个鉴别器有多个输出分支,每个分支对应一个任务。 每项任务包括为一个特定说话者确定输入话语是真实的还是由生成器转换的。 分支的数量等于说话者的数量。 当为 \(y\)​ 类的话语 \(x\)​ 更新鉴别器 \(D^{(k)}\)​ 时,我们只惩罚它的第 \(y\)​ 个分支输出 \(D^{(k)}(x)[y]\) 不正确,同时保持其他分支输出不变。 在我们的实现中,源话语 \(\tilde x\) 的参考话语 \(x\)​􏰈 是从同一个小批量中随机抽取的。

重构损失 在生成音频时,我们通过从内容和说话人嵌入重构输入来强制生成器 G 使用说话人嵌入。 可以使用原始波形上的逐点损失来测量原始音频和生成的音频之间的差异。 然而,逐点损失无法正确捕捉它们之间的差异,因为两个感知相同的音频可能不具有相同的音频波形。 相反,我们使用以下特征匹配损失,

nvc-net-al2

nvc-net-al2

其中 \(D^{(k)}\) 表示来自第 \(i\) 层鉴别器 \(D^{(k)}\)​ 的 \(N_i\)​ 单元的特征图输出,\(∥.∥_1\)表示L1范数,\(L\)​表示层数。 差异是通过鉴别器的特征图来衡量的。 为了进一步提高语音的保真度,我们添加了以下频谱损失

nvc-net-al3

nvc-net-al3

其中 \(θ(.,w)\)​ 计算梅尔谱图的对数幅度,FFT 大小为 \(w\)​​,\(∥.∥_2\) 表示 L2 范数。 在频谱域上测量生成的信号和Ground-truth信号之间的差异具有增加相位不变性的优点。 继恩格尔等人之后使用不同的 FFT 大小 \(w ∈ W = {2048, 1024, 512}\) 在不同的时空分辨率下计算频谱损失。 最后,总重建损失是所有谱损失和特征匹配损失的总和,即

nvc-net-al4

nvc-net-al4

其中 \(β ≥ 0\) 是一个加权项。 在我们的实验中,我们简单地设置 \(β = 1\)

内容保存损失 为了鼓励转换后的话语保留其输入音频的说话人不变特征,我们最小化以下内容保留损失

nvc-net-al5

nvc-net-al5

我们鼓励内容编码器 \(E_c\) 保留输入 \(x\) 的基本特征,同时在转换期间更改其说话人身份 􏰈\(z\)。添加此损失有两个潜在的好处。首先,它允许循环转换,因为如果我们转换,例如,从说话者 A 到说话者 B 的话语,然后将其从 B 转换回 A,我们应该获得原始话语,前提是重构也被最小化。其次,最小化方程 (3) 还导致从语音内容中分离出说话者身份。可以看出,如果来自不同说话人的话语的内容嵌入相同,则说话人信息无法嵌入到内容嵌入中。与之前的作品不同,我们不对内容嵌入执行任何域分类损失,从而使训练过程更简单。有趣的是,我们观察到方程中 l2-norm 的数值。 (3) 会受到 \(E_c\)​ 输出规模的影响。通过简单地缩小任何 \(E_c(x)\),将减少内容保存损失。因此,内容嵌入的量级将相对较小,使得两个内容嵌入之间的距离变得毫无意义。为了避免这种情况,我们将内容嵌入正则化为在空间维度上有一个单位 l2-范数,即 \(c_{ij} ← c_{ij}/(􏰅\sum_k c^2_{kj})^{1/2}\)。在附录 A.4.2 中,我们对这种归一化进行了实证分析。

Kullback-Leibler 损失 为了从说话人潜在空间执行随机采样,我们惩罚说话人输出分布与先验零均值单位方差高斯分布的偏差,即,

nvc-net-al6

nvc-net-al6

其中 \(D_{KL}\) 表示 Kullback-Leibler (KL) 散度,\(p(z|x)\) 表示 \(E_s(x)\)​ 的输出分布。 约束说话人潜在空间提供了两种简单的方法来在推理时对说话人嵌入进行采样:(i)来自先验分布 \(N (z|0, I)\) 的样本或(ii)来自 \(p(z|x)\) 的样本,用于参考 \(x\)。 一方面,该term强制说话者嵌入平滑且不那么分散,从而对看不见的样本进行泛化。 另一方面,我们隐式地最大化对数似然 \(log p(x)\) 的下界近似值(参见附录 A.1 中的推导)。

最后损失 从方程 (1) 到 (4),编码器、生成器和鉴别器的最终损失函数可以总结如下

nvc-net-al7

nvc-net-al7

其中 \(λ_{rec} ≥ 0\)​、\(λ_{con} ≥ 0\)\(λ_{kl} ≥ 0\) 控制客观项的权重。 对于我们的实验,这些超参数设置为 \(λ_{rec} = 10\)\(λ_{con} = 10\)​​ 和 \(λ_{kl} = 0.02\)

3.2 Model architectures

我们描述了 NVC-Net 的主要组件。 NVC-Net 的一些结构继承自 MelGAN 和 WaveNet。有关网络配置的更多详细信息,请参见附录 A.2。

内容编码器 内容编码器是一个全卷积神经网络,可以应用于任何输入序列长度。它将原始音频波形映射到编码的内容表示。内容嵌入的时间分辨率比其输入低 256 倍。该网络由 4 个下采样块组成,后跟两个带有 GELU 激活的卷积层。下采样块由 4 个残差块的堆栈组成,后跟一个跨步卷积。残差块包含具有门控 tanh 非线性和残差连接的扩张卷积。这类似于 WaveNet,但这里我们只是使用反射填充reflection padding而不应用因果卷积。对于内容编码器,没有条件输入被馈送到残差块。通过增加每个残差块中的膨胀,我们的目标是捕捉音频信号的长期时间依赖性,因为感受野随着块的数量呈指数增长。

说话人编码器 说话者编码器从话语中产生编码的说话者表示。我们假设 \(p(z|x)\)​ 是一个条件独立的高斯分布。网络输出均值向量 \(μ\) 和对角协方差 \(σ^2I\)​,其中 \(I\)​ 是单位矩阵。因此,说话人嵌入是通过从输出分布中采样得到的,即 \(z ∼ N (μ, σ^2I)\)。尽管采样操作是不可微的,但可以使用重新参数化技巧将其重新参数化为可微操作,即 \(z = μ + σ ⊙ ε\)​,其中 \(ε ∼ N (0, I)\)​。我们从音频信号中提取 Melspectrograms,并将它们用作说话人编码器的输入。该网络由 5 个残差块和扩张的 1D 卷积组成。我们使用具有 0.2 负斜率的 Leaky ReLU 非线性进行激活。最后,平均池化用于去除时间维度,然后是两个密集层,输出均值和协方差。

生成器 生成器将内容和说话人嵌入映射回原始音频。我们的网络架构继承自 MelGAN,但它的输入来自内容编码器,而不是对预先计算的梅尔谱图进行上采样。更具体地说,该网络由 4 个上采样块组成。每个上采样由转置卷积层执行,然后是带有 GELU 激活的 4 个残差块的堆栈。为了避免伪影,内核大小被选择为步长的倍数。与 MelGAN 不同,我们的模型在残差块中使用了门控 tanh 非线性。为了对说话人身份进行调节,我们将说话人嵌入提供给残差块,如 WaveNet 中所示(另请参见图 1)。说话人嵌入首先通过一个 1 × 1 的卷积层来减少维数以匹配膨胀层中使用的特征图的数量。然后,它的输出在时间维度上broadcast。最后,我们通过在末尾应用带有 tanh 激活的卷积层来生成输出音频波形。

鉴别器 鉴别器架构类似于 MelGAN 中使用的架构。特别是,三个具有相同网络架构的鉴别器应用于不同的音频分辨率,即输入的下采样版本,分别具有 1、2 和 4 的不同尺度。我们使用内核大小为 4 的跨步平均池化来对音频比例进行下采样。与 MelGAN 不同的是,我们的鉴别器是一个多任务鉴别器,它包含多个线性输出分支。输出分支的数量对应于说话人的数量。每个分支都是一个二元分类任务,确定输入是源说话者的真实样本还是来自生成器的转换输出。我们还利用 PatchGAN 的思想,而不是对整个音频序列进行分类,它使用基于窗口的鉴别器网络来分类本地音频块是真实还是虚假。

3.3 数据增强

众所周知,用有限的数据训练 GAN 可能会导致过拟合。为了学习语义信息而不是记住输入信号,我们应用了一些数据增强策略。将信号的相位移动 180 度时,人类的听觉感知不会受到影响,因此,我们可以通过乘以 -1 来翻转输入的符号以获得不同的输入。类似于 Serra 等人,还执行了随机幅度缩放。特别是,输入的幅度由一个随机因子缩放,在 [0.25, 1] 的范围内均匀绘制。为了减少伪影,我们在计算等式中的重建损失时将少量时间抖动(在 [−30, 30] 范围内)应用于真实波形。 请注意,这些数据增强策略不会改变说话者身份或信号的内容信息。此外,我们引入了一种随机洗牌策略 (random shuffle strategy),该策略应用于说话人编码器网络。首先,输入信号被分成从 0.35 到 0.45 秒的均匀随机长度的片段。然后我们打乱这些段的顺序,然后将它们连接起来形成一个新的输入,其中的语言信息以随机顺序打乱。我们观察到随机洗牌策略有助于避免内容信息泄漏到说话人嵌入中,从而实现更好的解开。

结论

在本文中,我们介绍了 NVC-Net,这是一种对抗性神经网络,以端到端的方式进行语音转换训练。 NVC-Net 不是限制模型使用典型的中间表示(例如,频谱图、语言特征等),而是能够通过对抗性反馈和重建损失的组合来利用良好的内部表示。特别是,NVC-Net 旨在将说话者身份与语言内容分开。我们的实证研究证实,NVC-Net 在传统语音转换设置以及零样本语音转换设置中产生了非常有竞争力的结果。与其他语音转换方法相比,NVC-Net 在推理方面非常高效。尽管 NVC-Net 可以合成不同的样本,但它仍然缺乏对语音其他方面的明确控制,例如节奏和韵律。在未来的工作中,我们将重点解决这个问题。另一个有前途的方向是将 NVC-Net 扩展到其他语音转换任务,例如音乐和歌声。

影响广泛

语音转换,更一般地说,语音合成模型具有广泛的应用,对社会产生各种影响。在娱乐行业,自动内容生成可能会催生新类型的个性化游戏,并在此过程中生成场景。它还具有使配音更容易、更便宜的潜力,允许社区访问以前无法用他们的语言提供的大量内容。在医学领域,本文提出的模型可以为语言障碍者带来新型的交流辅助工具。特别是,我们设想了一种能够保留失去说话能力的人的原始声音的交流辅助工具。在具有积极社会影响的应用程序中,语音转换可用于说话人去标识化,这有助于保护隐私。另一方面,它也可以用于生成深度伪造并促进“假新闻”的传播。出于这个原因,我们认为研究界也必须对操纵图像和音频的检测进行研究。提高语音转换模型的计算效率激发了本文提出的工作。特别是,所提出的端到端模型不需要在推理时使用声码器,这通常占大部分计算的量。主观评估表明,我们的模型可以通过最先进的 AutoVC 获得有竞争力的结果(见图 2 和图 3),同时在 GPU 上的速度提高四个数量级(见表 3)。这些结果表明,语音转换推理可以以更少的硬件和更少的能耗进行大规模执行。总的来说,我们认为在开发新模型时,能源消耗和环境影响应该是一个重要的标准。虽然我们都对巨大模型的性能感到兴奋和印象深刻,但研究界还应该考虑权衡这些模型的积极社会影响与使用它们对环境的影响。我们向读者推荐 Strubell 等人的工作关于这方面的进一步讨论。最后,表 3 中的结果表明,我们还在单个 CPU 内核上进行实时推理,而无需任何特定的代码优化。这表明语音转换应用程序将能够在本地设备上执行,有助于保护用户的匿名性和隐私。