语音合成:从离散声学编码到自回归建模
Summary
Draft
嗨嗨嗨,今天我们来聊聊语音合成(Text-to-Speech, TTS)。距离我上次写关于语音合成的文章已经过去了三年多,这段时间里,语音合成领域发生了很多有趣的事情。在这篇文章中,我将回顾语音合成的发展历程,并从离散声学编码与词元预测的角度出发综述语音的自回归建模方法。
之前的文章《语音合成技术的发展》有提到一些语音合成的基础内容,虽然没翻译完就跑路了...但还是可以先看一下👀
(主要是笔记软件太好用了,写起来比Blog好用多了!)
引言
背景意义
深度神经网络可以处理的任务可以分为三类:预测、分类与生成。本文接下来主要综述了深度神经网络在生成方面的应用,确切的说,本文主要介绍了深度神经网络在语音合成这一人工智能子领域的前沿进展。 文本到言语(TTS),也称为语音合成,长期以来一直是人工智能,自然语言和语音处理领域中的一个研究方向。赋予机器像人类一样交流的能力是人交互中重要的一环。开发TTS系统需要有关语言和人类语音生产的知识,涉及多个学科,包括语言学,声学,数字信号处理和机器学习。
语音合成技术的发展历程
人类对语音合成最早的尝试可以追溯到12世纪,18世界中叶匈牙利科学家沃尔夫冈·冯·肯佩伦(Wolfgang von Kempelen)构建了一台使用一系列波纹管,弹簧,风笛和共振盒的说话机器,以产生一些简单的单词和简短的句子。
第一个基于计算机的语音合成系统出现在20世纪下半叶。早期基于计算机的语音合成方法包括关节模拟合成,共振峰合成和拼接合成。之后随着统计机器学习的发展。基于统计参数的语音合成(SPSS)方法被提出,它可以预测诸如频谱,基频和音素时长之类的参数,该阶段语音合成的基本管线可以被归纳为文本处理前端、声学特征预测模型、声码器三个基本组件。到了2010年左右,基于神经网络的合成方法被提出,因其较好的合成语音质量,逐渐成为语音合成领域的主流方法。
传统语音合成管线
早期基于神经网络的TTS模型利用神经网络来代替隐马尔可夫模型(Hidden Markov Model,HMM)进行声学建模。诸如DeepVoice 1/2 之类的其他模型仍然遵循统计参数合成中的三个组件,仅仅只是使用相应的基于神经网络的模型来升级了部分组件。后来,WaveNet 提议直接从语言特征产生波形,这可以被视为第一个现代神经TTS模型。
VITS 系统的提出标志着语音合成领域进入了端到端生成的时代。VITS模型作为一个完全端到端的文本转语音系统,它通过将条件变分自编码器(VAE)与对抗学习(GAN)相结合,解决了传统TTS模型pipeline复杂、训练困难等问题。VITS模型主要包含以下三个核心部分:后验编码器(Posterior Encoder)、先验编码器(Prior Encoder)和解码器(Decoder)。其中后验编码器负责将输入的音频信号编码为潜在表示;先验编码器接收文本序列作为输入,生成对应的先验分布,两个编码器的输出通过单调对齐搜索(MAS)算法进行对齐。解码器则将潜在表示转换回音频波形。针对VAE模型的高斯分布假设所带来的描述力弱的问题,VITS在隐空间隐入了 Flow 方法对分布进行变换,、并使用判别器进行对抗训练以提升合成音频的自然度。
VITS模型突破了传统TTS模型需要多个独立模块串联的限制,实现了真正的端到端训练,同时合成音质相比传统方法有显著提升。但该模型缺乏对韵律信息的直接建模,导致其生成语音过于平淡。
近年来随着大语言模型(LLM)在自然语言处理任务,特别是文本生成任务上展现出来的惊人性能,研究者探索将其迁移到语音生成任务中。
离散语音合成系统
VALL-E 是 Microsoft 提出的一个创新性语音合成系统,它基于神经编码器 (neural codec) 技术,从根本上改变了传统语音合成的实现路径。与传统的基于波形或声学特征预测的方法相比,它利用 神经编解码器将原始音频压缩为低维度的离散编码表示,将音频输入统一到了与文本特征一致的离散空间,实现了音频生成与文本生成的统一建模。VALL-E 的核心优势在于直接生成神经编码器中的潜在特征,再由解码器将这些特征还原为高保真的语音信号。这一框架大大提高了语音合成的效率与质量,尤其在保留发音人音色与表达特征方面展现了强大的能力。VALL-E 在少样本甚至零样本语音合成领域取得了显著进展。传统方法需要大量的目标语音数据进行训练,而 VALL-E 的神经编码器技术仅需少量甚至单一语音样本即可生成高质量语音。这对定制化语音生成(如个性化语音助手)具有重要意义,同时也为低资源语言的语音合成打开了新的可能性。VALL-E 的提出极大地激发了学术界和工业界对基于神经编码器技术的兴趣,催生了诸多后续研究与改进版本。
语音编解码器(Codec)基础
音频序列生成与文本序列生成任务具有很高的相似性,这为文本生成到语音生成任务的迁移奠定了基础。然而,两个关键问题亟待解决。首先,音频序列显著长于文本序列,以16kHz音频为例,其代表了每秒需要生成16000个采样点的序列长度。这种高维度的序列生成不仅带来了巨大的计算开销,也增加了模型的复杂度。其次,传统语音合成方法中使用的输入数据是一种连续的表示,难以和离散的文本词元相匹配。
传统方法中,梅尔频谱(Mel-spectrogram)是一种常用的音频中间表示,通过将音频从时域映射到频域,大幅降低了数据的维度,并捕捉了音频的时频特征。然而,梅尔频谱是一种连续的密集表示,难以解决第二个问题。 为了解决这个问题,研究人员引入了神经编解码器来降低音频序列的维度。神经编解码器通过将原始音频压缩为低维度的离散编码表示,既显著降低了序列长度,又将音频输入统一到了与文本特征一致的离散空间。
神经音频编解码器的基本原理
神经音频编解码器是一种基于深度学习技术的音频处理方法,旨在通过人工神经网络对音频信号进行高效的压缩和解压缩。其基本原理是利用神经网络的强大特征提取能力,从音频信号中捕捉关键信息,去掉冗余数据,从而在保证音质的同时实现更高的压缩率。神经音频编解码器的核心结构通常包括编码器、量化器和解码器三个部分。编码器负责将原始音频信号映射到一个低维的潜在空间,量化器对被映射后的音频信号执行量化操作,将其转变为码本中的一组码字(Token),这使得被编码语音信号在传输过程中仅需要传输码本索引无需传输信号本身,这一操作极大的提高了编解码性能,而解码器则从这一组码字中重构出近似的音频信号。训练神经音频编解码器需要大规模的音频数据集,训练目标通常是最小化重构误差和感知损失。在实际应用中,神经音频编解码器已经被广泛应用于语音通信、音乐压缩、音频流媒体等领域,为这些场景提供了高效且智能的音频处理解决方案。
用于合成的神经音频编解码器
使用了残差矢量量化的神经编解码器
首个被应用于离散语音合成的神经音频编解码器是Google公司提出的SoundStream。它的核心思想是通过一个编码器-解码器架构对音频信号进行高效的压缩与解码。编码器将连续的原始音频波形映射为低维的潜在表示,随后经过量化模块进行离散化处理,以便压缩存储或传输。在解码端,解码器使用这些离散表示重新生成高保真的音频信号。为了增强压缩效率和生成音质,SoundStream 引入了残差矢量量化技术(RVQ),该技术使用多个矢量量化器对原始特征输入逐层量化,每个量化器仅负责量化来自上一层量化器剩余的信息,并通过在训练阶段随机丢弃(quantizer dropout)末尾的N个量化器输出实现了可变比特率编码。
HifiCodec模型结构
SoundStream 的成功启发了后续许多离散语音合成系统的设计。Encodec是由meta提出的神经音频编解码器,其整体风格深受Google的SoundStream的影响。在其影响下改进了原有的鉴别器,引入语言模型进一步降低码率,并提出了一种提升稳定性的训练策略。Hifi-codec从量化器的角度出发提出了分组残差矢量量化方法(GRVQ),它的基本思想是将RVQ分组进行编码,即将输入向量划分为若干个子向量组,每组使用独立的残差矢量量化器进行量化。GRVQ技术允许音频编解码器使用较少的码本来实现高质量的音频重建性能。在HiFi-Codec模型中,仅需要4个码本就能达到与需要12个码本的Encodec模型相当的性能。在音频生成领域,使用多个码本会增加生成模型的负担,尤其是在处理长序列时。GRVQ通过减少所需的码本数量,减轻了这一负担。笔者参与提出的Ti-codec则是通过将时变信息与时不变信息分离编码,通过在编解码器中引入一条旁路独立编码说话人依赖的时不变信息,来降低编解码器需要编码的信息量,实现对码本数量的降低,其具体结构如下。
Ti-Codec模型结构
先前的神经音频编解码器主要关注于某一特定场景下的音频编解码,如音乐、语音、环境音等,DAC则统一了音频编解码任务,DAC通过实验证明SoundStream的量化器丢弃操作会损害最终解码音频的质量,并将其改进为了概率的形式进行,此外,其利用snake激活函数更好的拟合周期信号,并将量化器的量化与查找过程进行分离,将向量投影到低维空间进行查找,整个过程类似于主成分分析(PCA)过程。DAC成功在 8kbps 带宽下把 44.1 Khz 音频压缩了 90 倍,并统一了音频的编解码任务,成为了当前离散神经语音编解码器的SOTA。
基于Codec的自回归离散语音合成方法概述
技术原理
首个基于 Codec 的自回归离散语音合成系统是由 Microsoft 提出的 VALL-E,其将 Codec 视为一种语音的 Tokenizer,通过利用 Codec 将语音信息离散化成类似文本的词元,使用和GPT类似的自回归Transformer结构根据给定的文本词元与参考音频Token去预测对应文本词元的音频Token。VALL-E 的模型结构如下图所示。
VALL-E模型结构
然而,与文本词元不同,受限于 Codec 的残差矢量编码技术限制,对于一帧的音频存在多层音频Token,Token层数由量化器数量决定,并且每层Token依赖于前一层Token确定,因此 VALL-E 中首先沿时间维自回归生成第一层Token,并基于第一层Token预测后续层Token,当全部Token预测完毕后由解码器转换成对应的语音,因此此种合成方式具有明显的时延,后续的一些研究通过流水线并行等方案优化这一生成过程。
前沿自回归离散语音合成方法
SoundStorm模型是由Google DeepMind团队提出的新一代音频生成模型,它通过将扩散模型与自回归采样相结合,解决了传统音频扩散模型采样速度慢的问题。 SoundStorm 接收 AudioLM 的语义标记作为输入,并依靠双向注意力和基于置信度的并行解码来生成神经音频编解码器的标记。SoundStorm主要包含三个核心组件:压缩编码器(Compression Encoder)、扩散解码器(Diffusion Decoder)和自回归采样器(Autoregressive Sampler)。其中压缩编码器负责将原始音频信号压缩到一个更加紧凑的离散表示空间;扩散解码器在这个压缩空间中进行扩散过程,生成高质量的音频表示;自回归采样器则采用创新的分块并行策略,大幅提升了音频生成的速度。在具体实现中,模型使用了Encodec作为音频压缩编码器,并采用了条件扩散模型来实现音频的生成,通过提出的Blockwise Parallel Sampling策略,使得生成速度提升了数个数量级。SoundStorm模型突破了传统音频扩散模型在推理速度上的瓶颈,同时保持了高质量的音频生成能力。
CosyVoice模型是一个基于语音离散标记的文本转语音系统,它提出了监督语义标记生成方法并结合条件流匹配模型实现了高质量的语音合成效果。CosyVoice模型主要包含以下四个核心部分:文本编码器(Text Encoder)、语音标记器(Speech Tokenizer)、大型语言模型(Large Language Model, LLM)和条件流匹配模型(Conditional Flow Matching Model)。其中文本编码器负责将输入的文本序列编码为语义表示;语音标记器通过从多语言语音识别模型中插入向量量化来提取语义标记。这些标记从传统的无监督学习方式转变为有监督学习,提供了更明确的语义信息和与文本的对齐。大型语言模型接收文本编码和语音标记作为输入,生成对应的文本和语音标记序列,通过自回归方式建模整个序列;条件流匹配模型则将语音标记转换回音频波形。为了提升生成音频的自然度,CosyVoice在语音标记的隐空间引入了最优传输条件流匹配方法,并使用分类器自由引导等技术进行对抗训练。
语音对话模型
通过将音频表示为离散单元的方式可以实现音频生成与文本生成的统一范式,一些研究者通过将音频token预测任务与文本预测任务进行联合训练,为大语言模型系统实现了通过语音直接进行对话的多模态交互能力。
未来展望
通过离散神经音频编解码器,将语音信号映射为离散的Token表示,实现了音频序列与文本序列任务的统一,这使得一系列下游任务的统一成为了可能,然而相较于文本词元,音频的离散表示仍然存在压缩率低、单帧Token数量多的缺点,如何实现更高的压缩率,或在保证生成音频质量的情况下,如何使用更少的量化器去编码音频,仍然值得研究。通过联合训练音频Token与文本词元的预测任务,研究人员实现了多模态问答交互的大语言模型,然而这种问答形式依旧是基于轮次分割的,如何实现全双工的语音对话模型是个值得研究的领域,其在人机交互领域拥有重大价值。
References
-
Sercan Ö Arık et al. “Deep voice: Real-time neural text-to-speech”. In: International conference on machine learning. PMLR. 2017, pp. 195–204.
-
Zalán Borsos et al. “Audiolm: a language modeling approach to audio generation”. In: IEEE/ACM transactions on audio, speech, and language processing 31 (2023), pp. 2523–2533.
-
Zalán Borsos et al. “Soundstorm: Efficient parallel audio generation”. In: arXiv preprint arXiv:2305.09636 (2023).
-
Alexandre Défossez et al. “High fidelity neural audio compression”. In: arXiv preprint arXiv:2210.13438 (2022).
-
Zhihao Du et al. “Cosyvoice: A scalable multilingual zero-shot text-to-speech synthesizer based on supervised semantic tokens”. In:arXiv preprint arXiv:2407.05407 (2024).
-
Qingkai Fang et al. “Llama-omni: Seamless speech interaction with large language models”. In: arXiv preprint arXiv:2409.06666 (2024).
-
Andrew Gibiansky et al. “Deep voice 2: Multi-speaker neural text-to-speech”. In: Advances in neural information processing systems 30 (2017).
-
Jaehyeon Kim, Jungil Kong, and Juhee Son. “Conditional variational autoencoder with adversarial learning for end-to-end text-to-speech”. In: International Conference on Machine Learning. PMLR. 2021, pp. 5530–5540.
-
Rithesh Kumar et al. “High-fidelity audio compression with improved rvqgan”. In: Advances in Neural Information Processing Systems 36 (2024).
-
Yong Ren et al. “Fewer-Token Neural Speech Codec with Time-Invariant Codes”. In: ICASSP 2024 - 2024 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). 2024, pp. 12737–12741. DOI: 10.1109/ICASSP48485.2024.10448454.
-
Xu Tan et al. “A survey on neural speech synthesis”. In: arXiv preprint arXiv:2106.15561 (2021).
-
Aaron Van Den Oord et al. “Wavenet: A generative model for raw audio”. In: arXiv preprint arXiv:1609.03499 12 (2016).
-
Chengyi Wang et al. “Neural codec language models are zero-shot text to speech synthesizers”. In: arXiv preprint arXiv:2301.02111 (2023).
-
Zhifei Xie and Changqiao Wu. “Mini-omni: Language models can hear, talk while thinking in streaming”. In: arXiv preprint arXiv:2408.16725 (2024).
-
Dongchao Yang et al. “Hifi-codec: Group-residual vector quantization for high fidelity audio codec”. In: arXiv preprint arXiv:2305.02765 (2023).
-
Neil Zeghidour et al. “Soundstream: An end-to-end neural audio codec”. In: IEEE/ACM Transactions on Audio, Speech, and Language Processing 30 (2021), pp. 495–507.
-
Liu Ziyin, Tilman Hartwig, and Masahito Ueda. “Neural networks fail to learn periodic functions and how to fix it”. In: Advances in Neural Information Processing Systems 33 (2020), pp. 1583–1594.