name_ch: 神经网络编解码器语言模型实现零样本 TTS

name_en: Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers

date_publish: 2023-01-05

paper_addr: http://arxiv.org/abs/2301.02111

code: https://github.com/microsoft/unilm/tree/master/valle

1 读后感

语音合成模型,输入是待合成的文本,3 秒的录音,输出为与录音一致的合成后的语音内容。

2 与传统 TTS 的差异

之前的语音模型是:音素 ->梅尔倒谱 ->音频;VALL-E 是:音素 ->离散编码 ->音频。

3 主要贡献

• 我们提出了 VALL-E,有效使用上下文学习能力的 TTS 框架,音频编解码器代码作为中间表示,以取代传统的梅尔声谱图

• 通过利用大量的半监督数据在说话者维度构建了一个通用的 TTS 系统。

• VALL-E 能够以相同的输入文本提供不同的输出,并保持声音提示的声学环境和说话者的情绪

• 在零样本场景中提示来合成具有高说话人相似度的自然语音

4 背景

合成音频数据的挑战,包括每个时间步骤需要生成的概率数量多和序列长度长的问题。为了解决这些问题,使用语音量化技术来压缩数据和提高推理速度。矢量量化广泛应用于自监督语音模型中进行特征提取,如 vq-wav2vec 和 HuBERT。

最近的研究表明,自监督模型中的编码也可以重构内容,并且推理速度比 WaveNet 快。但是,说话人身份已被丢弃,重构质量很差。而 AudioLM 模型有效解决了以上问题。深度学习在音频编码方面也取得了显著提升,这里使用了 Encodec 作为音频编码器。

5 方法

5.1 问题表述

其中 y 是音频样本,x = {x0, x1,..., xL} 是其对应的音素转录,我们使用预训练的神经编解码器模型将每个音频样本编码成离散的声学代码,表示为 Encodec(y) = C,T 是下采样的话语长度。重建波形 Decodec(C) ≈ y^。

推理过程中,给定音素序列和未见过的说话人的 3 秒登记录音,首先通过训练的语言模型估计具有相应内容和说话人语音的声学代码矩阵,模型推理,然后用解码器合成高质量的语音。

5.2 训练

以分层的方式设计了两个条件语言模型,一个用于生成声音 c1(自回归 AR),一个用于精调声音 c2-8(NAR 非自回归)。AR 模型和 NAR 模型的结合在语音质量和推理速度之间提供了良好的折衷。

自回归为了生成具有特定内容的语音,使用音素序列作为语言模型的音素提示。使用非自回归 (NAR) 模型生成其他七个量化器的代码。与 AR 不同的是,NAR 模型允许每个 token 参与 self-attention 层中的所有输入 token。

5.3 推理

如果该模型无需微调即可为看不见的说话人合成高质量的语音,则该模型被认为具有上下文学习能力。

首先将文本转换为音素序列,并将录音编码为声学矩阵,形成音素提示和声学提示。对于 AR 模型,使用以提示为条件的基于采样的方法,可以显着增加输出的多样性。对于 NAR 模型,使用贪心解码来选择概率最高的标记。最后,使用解码器生成以八个代码序列为条件的波形。