DALL-E 已经能够很好地从文本生成图像,那么如何高效地实现语音合成呢?本文带你看微软最新推出的语音合成模型 ——VALL-E,它的效果将惊掉你的下巴。
近十年间随着神经网络和端到端建模的发展,语音合成技术取得了巨大突破。级联的文本到语音(TTS)系统通常利用声学模型 pipeline 和梅尔频谱作为中间表示的声码器。先进的 TTS 系统可以从单个或多个 speaker 合成高质量的语音,但仍需要高质量的 “干净” 数据。从网络上抓取的大规模数据无法满足要求,并且会导致性能下降。
由于训练数据相对较少,目前的 TTS 系统仍存在泛化能力差的问题。在零样本场景中,speaker 的相似性和语音自然度对于未知的 speaker 来说会急剧下降。为了解决零场景 TTS 问题,现有的工作利用 speaker 自适应和 speaker 编码法,但需要额外的微调、复杂的预设计功能或重型结构工程。最终的解决方案不是为该问题设计一个复杂而具体的网络,而是在文本合成领域取得成功的推动下,尽可能地训练具有大量和多样化数据的模型。近年来,文本语言模型的数据增加显著提高了性能,从 16GB 的未压缩文本增加到 160GB,再到 570GB,最后增加到 1TB 左右。为把文本合成领域的成功引入到语音合成领域,微软的研究者们提出了 VALL-E,它是第一个利用大量、多样化和多 speaker 语音数据的基于语言模型的 TTS 框架。如下图 1 所示,为了合成个性化语音(如零样本 TTS),VALL-E 以 3 秒 enrolled 录音的声学 token 和音素 prompt 为条件生成相应的声学 token,这也对 speaker 和内容信息做了约束。最后,使用生成的声学 token 与相应的神经编解码器合成最终波形。从音频编解码器模型导出的离散声学 token 能够将 TTS 视为条件编解码器语言建模,并且基于高级 prompt 的大型模型技术(如 GPT)可以用于 TTS 任务。声学 token 还允许通过在推理过程中使用不同的采样策略在 TTS 中生成不同的合成结果。研究者使用 LibriLight 训练 VALL-E,LibriLight 包含由 7000 多名不同 speaker 做的 6 万小时的英语演讲组成的语料库。原始数据为音频,研究者使用语音识别模型获得对应的文字。与以前的 TTS 训练数据集(比如 LibriTTS)相比,研究者使用的数据集虽然包含噪声以及不准确的文本数据,但却包含大量不同的 speaker 语音。研究者坚信所提出的方法对噪声具有鲁棒性,并由于使用了大量数据因而表现出很好的泛化能力。值得注意的是,现有的 TTS 系统通知会使用数十小时的单 speaker 数据或数百小时的多 speaker 数据进行训练,这比 VALL-E 使用的数据要小数百倍。下表 1 总结了 VALL-E 的新颖性,VALL-E 是用于 TTS 的语言模型方法,使用音频编解码器代码作为中间表示,利用大量多样的数据,从而实现强大的上下文学习能力。评估结果表明,VALL-E 在 LibriSpeech 和 VCTK 上明显优于 SOTA 零样本 TTS 系统。- 论文地址:https://arxiv.org/pdf/2301.02111.pdf
- 语音 Demo 地址:https://valle-demo.github.io/
在论文中,研究者遵循 AudioLM 利用神经编解码器模型来表示离散 token 中的语音。为了压缩网络传输的音频,编解码器能够将波形转码为离散的声学编码并重建高质量的波形,即使是训练数据中没见过的 speaker 数据。与传统的音频编解码器方法相比,基于神经网络编解码器在低比特率下明显更好。通过实验,研究者坚定量化的 token 包含足够的关于 speaker 和录音条件的信息。与其他量化方法相比,音频编解码器具有以下优点:- 它包含丰富的 speaker 信息和声学信息,与 HuBERT 编码相比,可以在重构中保持 speaker 特征一致。
- 有现成的编解码器,可以将离散 token 转换为波形,而无需像在频谱上运行的基于 VQ 的方法那样对声码器训练做额外的工作。
- 它能减少时间步长,提高效率,解决 µ-law 转换中的问题。
研究者采用预训练神经音频编码模型 EnCodec 作为 tokenizer。EnCodec 是卷积编码器 - 解码器模型,输入和输出均为可变比特率的 24 kHz 音频,编码器为 24kHz 的输入波形产生 75Hz 的嵌入,采样率降低了 320 倍。每个嵌入都通过残差矢量量化 (RVQ) 建模,研究者选用八层量化器,每层有 1024 个 entries,如下图 2 所示。该配置对应于 6K 比特率的 EnCodec,用于 24 kHz 音频重构。给定数据集 D = {x_i , y_i},其中 y 是音频样本,x = {x_0, x-1, . . . , x_L} 是其对应的音素转录。研究者使用预训练神经编解码器模型将每个音频样本编码为离散的声学编码,记为 Encodec (y) = C^T ×8,其中 C 表示二维声学编码矩阵,T 表示下采样的发声长度。零样本 TTS 需要模型为看不见的 speaker 合成高质量的语音。在该工作中,研究者将零样本 TTS 看作条件编解码器语言建模任务。他们通过训练神经语言模型,以生成以音素序列x和声学 prompt 矩阵为条件的声学编码矩阵 C,优化目标为。研究者期望神经语言模型学习分别从音素序列和声学 prompt 中提取内容和 speaker 信息。在推理过程中,给定音素序列和 speaker 的 3 秒 enrolled 录音,首先通过训练好的语言模型估计具有相应内容和 speaker 声音的声学编码矩阵,然后神经编解码器合成高质量语音。神经语音编解码器模型允许对离散音频表示进行操作。由于神经编解码器模型中的残差量化,token 具有分层结构:来自先前量化器的 token 恢复声学特性,如 speaker 特征,而连续量化器学习更精细的声音细节。每个量化器被训练为对来自先前量化器的残差进行建模。受此启发,研究者以分层方式设计了两个条件语言模型。对于来自第一个量化器 c_:,1 的离散 token,研究者训练了一个自回归 (AR) 解码器专用语言模型。它建立在音素序列 x 和声音 prompt 条件基础上,并如下公式(1)所示。对于从第二个到最后一个量化器的离散 token 记为,这样就训练了一个非自回归(NAR)语言模型。AR 模型和 NAR 模型的结合在语音质量和推理速度之间达到了良好的平衡。这种情况下,AR 模型是更自然的选择,它具有声学序列长度预测的灵活性。总体而言,C 的预测可以建模为:自回归语言模型从第一个量化器生成 token。它包括音素嵌入 W_x、声学嵌入 W_a、transformer 解码器和预测层。为了生成特定内容的语音,研究者使用音素序列作为语言模型的音素 prompt。因此,模型输入是 x 和 c_:,1 的串联,并在它们之后附加了两个特殊的 token。研究者分别计算了 prompt 和输入 token 的正弦位置嵌入。对于因果 transformer 模型,每个 c_t,1 都可以参与 (x, c_≤t,1) ,如下图 3 左侧所示。该模型经过优化以最大化第一个 codebook 中下一个 token 的概率。研究者将输出映射层的参数与声学嵌入 W_a 的参数共享。当通过 AR 模型获得第一个量化器编码时,使用非自回归(NAR)模型来生成其他七个量化器的编码。NAR 模型具有与 AR 模型相似的架构,不同之处在于它包含八个单独的声学嵌入层。在每个训练步骤中,随机抽取训练阶段 i ϵ [2, 8]。该模型被训练为最大化来自第 i 个量化器的 codebook 的声学 token。第 1 阶段至第 i−1 阶段的声学 token 被嵌入并汇总为模型输入:推理:通过 prompting 进行 in-context 学习In-context 学习是基于文本语言模型的一种令人惊讶的能力,它能够预测未见过输入的标签,而无需额外的参数更新。对于 TTS,如果该模型可以在没有微调的情况下为未见过 speaker 合成高质量的语音,则该模型被认为具有 in-context 学习能力。对于语言模型,prompt 对于在零样本场景中启用 in-context 学习是必要的。研究者设计 prompt 和推理是按照接下来的步骤进行的:首先将文本转换为音素序列,并将语音编码为声学矩阵,形成音素 prompt 和声学 prompt。此外,基于采样方法可以显著增加输出的多样性。对于 NAR 模型,研究者使用贪心解码来选择概率最高的 token,最后使用神经编解码器来生成基于八个编码序列的波形。- VALL-E:研究者的主要兴趣是为未见过的 speaker 生成给定的内容,需要给该模型一个文本句子、一段 enrolled 语音及其对应的转录。
- VALL-E-continual:在此设置中,研究者使用整个转录和语音的前 3 秒分别作为音素和声音 prompt,并要求模型生成后续部分。
研究者在 LibriSpeech 和 VCTK 数据集上评估 VALL-E,在这些数据集中,所有测试 speaker 都在训练语料库中是未见过的。研究者首先使用 LibriSpeech 进行零样本 TTS 评估,并计算 WER 分数和真实语音的 speaker 相似度分数作为上限。与 YourTTS 基线相比,研究者建立的模型在鲁棒性和 speaker 相似性方面都明显更好,表明研究者生成的语音高度忠实于给定的文本和给定的 enrolled 语音。此外,在 VALL-E-continual 设置中可以进一步降低单词错误率。研究者还将其鲁棒性与其他基于 speech-to-speech LM 的生成模型 GSLM 和 AudioLM 进行了比较。实验结果表明,VALL-E 在鲁棒性方面明显更好。在 LibriSpeech 测试中,研究者为每个 speaker 随机抽取一段语音进行人工评估,产生 40 个测试用例。下表 3 显示了人工评估结果。VALL-E 在 SMOS 方面非常接近真实情况,表明合成语音与测试中给定的未见过 speaker 相似。它以 + 0.93 SMOS 显著优于基线,证明了 VALL-E 在零样本场景中的有效性。关于自然度,VALL-E 以 + 0.12 CMOS 优于基线,表明所提出的方法可以根据基线合成更自然、更真实的语音。研究者在由 108 个 speaker 组成的 VCTK 上评估了模型,所有 speaker 均是在训练时没有见过的。研究者首先使用上述的 speaker 验证指标评估 YourTTS 和 VALL-E 两个模型。从下表 6 中可以看出,即使 YourTTS 在训练时已经用到 97 个 speaker 的语音,VALL-E 也优于 YourTTS,表明 VALL-E 能够合成与 speaker 相似度更高的语音。当两个模型同时使用训练中未见过的 11 个 speaker 语音进行比较时,性能差距变得更大,尤其是当只有 3 秒 prompt 可用时。研究者抽取 60 位 speaker 进行人工评估,每人一段语音,其中 11 位未见过,49 位在 YourTTS 的训练集中。VALL-E 未见过 60 个 speaker 的任何数据。在模型合成过程中,每个 speaker 都录一段 3 秒语音。下表 7 显示了研究者的方法与 YourTTS 及 GroundTruth 的比较。SMOS 的比较表明,VALL-E 合成的语音比 YourTTS 更接近 speaker。side-by-side CMOS 评估显示 VALL-E 比 YourTTS 高出 +0.23,表明在自然度方面表现明显更好。此外,VALL-E 比 GroundTruth 高出 + 0.04 CMOS,表明与该数据集上的人类录音没有统计学上的显著差异。由于 VALL-E 使用基于采样的方法生成离散 token,因此推理具有随机性,对于相同的输入文本,其输出是不同的。给定一个句子和一个 enrolled 录音,运行两次推理过程,并在下图 4 中可视化其波形。