
大语言模型(LLM)在语音合成领域得到广泛应用,它将语音合成任务视为简单的下一个语音离散单元预测。其中,寻找合适的语音编解码器(Codec)来进行语音离散化和波形重建是首要问题。多码本编解码器由于其卓越的重建质量而被广泛采用。然而,多个码本意味着 LLM 需要为每一帧预测多个离散单元,尽管有众多研究通过改进编解码器或LLM的推理方式来缓解这一问题,但仍然会严重影响效率和稳定性。因此,寻求一种有效的方法来获得单码本语音单元序列对于解决这一限制至关重要。
Mobvoi
近期,西工大音频语音与语言处理研究组(ASLP@NPU)和出门问问、香港中文大学合作论文“Single-Codec: Single-Codebook Speech Codec towards High-Performance Speech Generation”被语音研究顶级会议INTERSPEECH2024接收。该论文提出一种单码本的语音编解码器 Single-Codec,该编解码器以梅尔频谱作为建模目标,从特征解耦和语音内容建模两个方面出发提升单码本编解码器性能,能够在 304bps 带宽下将一秒语音压缩为 23 个离散单元。现对该论文进行简要的解读和分享。
最近,大语言模型(LLM)在语音合成领域得到了广泛应用,它将语音视为一种语言,将语音合成任务视为下一个离散单元的预测任务。然而,与自然语言不同,语音本质上并不具备离散性,因此需要使用语音编解码器(Codec )来进行语音离散化和波形重建。尽管多码本 Codec 因其卓越的重建质量被广泛采用,但多个离散单元序列预测成为了效率和鲁棒性的瓶颈。
语音中包含丰富的信息(如声学环境、音色、语义等),仅用单个语音单元序列无法完整表达所有语义和声学信息。尽管 Tortoise-TTS[1] 通过单个离散语音序列实现了 LLM,但仍需训练额外的扩散模型,以从 LLM 预测的语音单元或隐层表征中生成梅尔频谱,从而补偿压缩损失,这引入了更多的训练和推理成本。最近,TiCodec[2] 引入了一个额外的全局编码器来从语音单元中分离出时不变信息,从而减少需要编码的帧级信息量。这启发我们从特征解耦的角度重新思考语音编解码。
本文提出了一种单码本神经音频编解码器 Single-Codec 用于高性能语音合成。它以梅尔频谱而非原始波形作为建模目标,从而能够有效压缩语音信息,同时保留重要细节,并且使用解耦的 VQ-VAE 技术,将语音分解为音色、声学环境等信息相关的时不变嵌入与发音相关的单个离散序列。为了进一步增强编解码器的性能和语音合成的应用,我们还通过以下几种方式进一步提升编解码器的性能:
1) 利用 BLSTM 模块进行上下文建模,以充分利用时序信息;
2) 使用混合采样模块,以减少上采样和下采样过程中的信息失真;
3) 使用重采样模块,以促使离散单元携带更多的发音信息。实验表明,与多码本的编解码器(如 EnCodec[3] 和 TiCodec[2])相比,Single-Codec 在仅有 304bps 的较低带宽下展现出了更高的重建质量。基于大语言模型的语音合成实验结果进一步证实了 Single-Codec 的有效性,合成音频的自然度和说话人相似度均得到了提升。
/ 提出的方案
Single-Codec 结构如图 1 所示,与 Tortoise TTS 类似,Single-Codec 基于矢量量化变分自动编码器 (VQVAE) [5] 构建,输入并重建梅尔频谱。我们采用基于 Conformer 的编码器将梅尔频谱片段
编码为潜在内容表示
,然后将其传递到矢量量化器(VQ)进行矢量量化。基于卷积的解码器根据量化的内容表示
重建梅尔频谱
。此外,我们使用一个基于二维卷积的判别器来提高生成质量。最后,我们使用预训练的声码器 BigVGAN[4] 从编解码器输出的梅尔谱来重建波形。
为了实现高质量的单码本编解码器,我们使用四个模块来改进模型架构。具体来说,我们添加一个参考编码器从梅尔频谱图片段
解耦语音中的时不变信息,产生全局表示
。我们还采用混合采样模块来减少采样损失。此外,我们在编码器和解码器中引入了 BLSTM 模块和重采样模块,以分别增强上下文信息和发音相关信息。
参考编码器
语音中包含多方面的信息,如时变的内容、时不变的音色和声学环境等。在多码本情况下,不同的码本可以分别编码不同的信息,使得建模变得相对容易。然而,对于单码本 Codec 而言,将所有信息压缩到有限数量的离散单元中具有挑战性。为了解决这个问题,我们解耦了在语音的所有帧中几乎不变的全局信息(如音色和声学环境等),并将语音内容离散化为语音单元。
我们引入一个参考编码器来提取主要与音色和声学环境有关的全局表示
。参考编码器的输入是从输入句子中随机截取的一个片段
。我们将参考输入片段
的长度设置为 600 帧,而 Codec 输入片段
的长度设置为 200 帧,其中较短的片段
可以减少计算量和显存开销,而较长的参考片段
有助于获得更鲁棒的全局表征。参考编码器的输出
经过不同的线性层后被送入编码器和解码器中,其中它与每个编码器块的输出相减,并与每个解码器块的输入相加。
BLSTM模块
Codec 通常在大规模语音数据上进行训练,以确保良好的泛化性。然而,语音内容的多样性为有限尺寸的码本向量学习带来了挑战。EnCodec 通过引入 LSTM 进行序列建模,发现其可以提高尺度不变的信噪比(Scale-Invariant Noise Ratio,SI-SNR)。与之不同,我们在量化器前后添加了 BLSTM 模块,以增强上下文信息。我们发现,这种方可以提高了语音内容建模的效率,更容易形成稳定的聚类单元。
混合采样模块
基于神经网络的 Codec 通常采用采样模块来减少中间离散单元的序列长度,以实现进一步压缩。目前,编解码器中的上采样和下采样操作通常通过卷积、转置卷积或池化和复制来实现。采样过程不可避免地会产生采样损失,导致编码和解码能力降低。受 MR-HuBERT[6] 的启发,我们引入了一种改进的混合采样模块,该模块同时使用卷积和池化来实现下采样,并使用转置卷积和复制来实现上采样。我们发现,不同采样方法的组合可以有效缓解采样失真。
数据集和实验配置
我们使用了 5 个开源数据集,包括 LibriTTS[7] ,Hi-Fi TTS[8] ,VCTK[9] ,AISHELL-1[10] 和 AISHELL3[11]。总共使用了 1165.3 小时的英语和汉语的语音。
我们采用 EnCodec 的 1 个码本 (EnCodec-1VQ) 和 TiCodec 的 1 个码本 (TiCodec-1VQ) 、 2 个码本 (TiCodec-2VQ) 作为基线与我们提出的方法进行比较。为了验证 Single-Codec 各个模块的有效性,我们对以下模型进行了消融研究:
-
VQVAE: 一个基本的带有判别器的 VQVAE Codec,其中 VQVAE 的结构和配置类似于 Tortoise TTS 。 -
Ref-short: 使用参考编码器的 VQVAE,使用 200 帧的短片段作为输入。 -
Ref-long: 使用参考编码器的 VQVAE,使用 600 帧的长片段作为输入。 -
Ref-BLSTM: 基于 Ref-long 增加 BLSTM 模块,验证 BLSTM 模块有效性。 -
Ref-HybSam: 基于 Ref-long 增加混合采样模块,验证混合采样模块有效性。 -
Ref-BLSTM-HybSam: 基于 Ref-long 增加 BLSTM 模块和混合采样模块,验证 BLSTM 和混合采样模块结合的有效性。 -
Ref-BLSTM-HybSam-Conf:Ref-BLSTM-HybSam 基础上采用基于Conformer的编码器,不包括重采样模块。
语音重构质量分析
我们比较了所提出的 Single-Codec 与其他 Codec 在语音重建中的性能。结果如表 1 所示,尽管 Single-Codec 带宽较低,但在重构质量和说话人相似度方面优于其他单码本的 Codec,与两个码本的 TiCodec 相当。VQVAE 的性能优于单码本的 EnCodec,证明了基于梅尔频谱的编解码器具有较高的量化效率。与同样建模解耦时不变信息的 TiCodec 相比,Single-Codec 获得了更高的说话人相似度和重构质量,表明了连续时不变表示和更长参考长度的有效性。
消融实验分析
我们对所提出的各个模块做了消融实验。结果如表 1 所示,与 VQVAE 相比,无论是 Ref-short 还是 Ref-long 都在所有指标上都获得了更好的性能。这表明对于单码本的 Codec 来说,将全局信息与语音内容解耦是有效的。此外,Ref-long 在重构和说话人相似度方面均优于 Ref-short,表明较长的参考段有助于捕获更准确的时不变信息,增强内容建模。Ref-BLSTM、Ref-HybSam 和 Ref-BLSTM-HybSam 获得了较高的重建质量,表明了 BLSTM 和混合采样模块的有效性。此外,Ref-BLSTM-HybSam-Con 与 Ref-BLSTM-HybSam 达到相似性能,但在加入重采样模块后得到了进一步的改善,达到了最好的效果。
Commitment损失分析
我们进一步对训练中的 Commitment 损失进行分析,以探究所提出的不同模块对单码本 Codec 的影响。Commitment 损失可以衡量量化前后特征之间的差异,而 Commitment 损失的收敛程度可以反映在编码器输出和码本中的聚类中心之间的关系(例如 Commitment 损失收敛意味着编码器可以将输入的声学特征映射到固定的语音单元上)。如图 2 所示,VQVAE 的 Commitment 损失在模型训练后趋于发散,表明时不变的全局信息和时变的内容信息的耦合对形成有限种类的内容相关的语音单元形成阻碍。在考虑时不变解耦后,Ref-short 的损失增加缓慢,表明全局信息解耦对语音单元学习的有效性。Ref-long 进一步验证了这一结果,说明了更长参考切片的有效性。Ref-HybSam 的损失曲线较为平坦,说明混合采样模块有效提高了编解码性能。此外,通过 BLSTM 模块进行上下文建模的模型的损失都是收敛的。这说明模型在量化之前已经学习到了稳定的语音单元,表明上下文建模在编解码器中的有效性。
此外,考虑到表 1 中的结果,我们观察到 Commitment 损失与重建质量并不严格负相关,而 Commitment 损失的收敛状态 (发散、平稳、收敛) 与重构质量相关。具体来说,收敛的 Codec 优于未收敛的 Codec。这一结果进一步凸显了在单码本 Codec 中实现稳定聚类中心的重要性,它直接影响整体的重构质量。
零样本语音合成评估
我们为不同的 Codec 分别训练 VALL-E[12] 以比较在下游语音合成任务中的性能,表 2 显示了主观和客观结果。Single-Codec 在自然度和说话人相似度方面优于其他模型。在单码本场景下,TiCodec-1VQ 和 Single-Codec 在说话人相似度、自然度和稳定性方面明显优于其他模型。这是因为全局信息的解耦使得帧级码本更加注重内容建模,同时能够传输更多的全局信息。此外,Single-Codec 的性能优于 Ticodec,表明连续全局表示和附加内容建模的有效性。最后,Single-Codec 在说话者相似度和自然度方面超过了多码本 Codec,而 WER 略高于 Encodec-8VQ。这主要是因为更高的带宽带来更高分辨率的语音单元感知。
下面展示10万小时量级训练的LM+SingleCodec方案的音色克隆效果(生成音频为48KHz高保真音质)。更多论文相关样例敬请访问 https://kkksuper.github.io/Single-Codec。
第一组
Speaker Prompt 1及合成音频效果:
第二组
Speaker Prompt 2及合成音频效果:
第三组
Speaker Prompt 3及合成音频效果:




