论文解读:CosyVoice2: Scalable Streaming Speech Synthesis with Large Language Models

CosyVoice2 论文

zero-shot TTS models 零样本 TTS 模型

codec language models 编解码器语言模型

feature diffusion models 特征扩散模型

DDPM + CFM + NAR(non-autoregressive) model, 没有 codec

  • Base module:

  • the alignment modeling between input text and synthesized speech:

    • phoneme-level duration model:

    • E3 TTS 放弃音素级持续时间并对输入序列应用交叉注意力,但产生的音频质量有限;

    • DiTTo-TTS 使用扩散变换器 (DiT) ,并以来自预训练语言模型的编码文本为条件进行交叉注意。为了进一步增强对齐,它使用预训练的语言模型来微调神经音频编解码器,将语义信息注入生成的表示中;

    • 相比之下,基于 Voicebox的 E2 TTS采用了更简单的方法,删除了音素和持续时间预测器,直接使用填充token填充到梅尔频谱图长度的字符作为输入。这个简单的方案也实现了非常自然和真实的合成结果。然而,F5-TTS 发现 E2 TTS 中文本和语音对齐存在鲁棒性问题。

    • 2024.6 Seed-TTS 采用了类似的策略并取得了优异的结果,尽管没有详细说明模型细节。在这些未明确建模音素级持续时间的方法中,模型学习根据给定的总序列长度分配每个单词或音素的长度,从而改进韵律和节奏。

  • 2024.10 F5-TTS: A fairytaler that fakes fluent and faithful speech with flow matching 保持了管道的简单性,无需音素对齐、持续时间预测器、文本编码器和语义注入编解码器模型,利用带有 ConvNeXt V2|paper code 的Diffusion Transformer(DiT)来更好地解决上下文学习期间的文本语音对齐问题。

codec language and feature diffusion hybrid systems 混合系统

text-to-codec language model 和 codec-to-feature diffusion model

语言模型解决文本和语音之间的对齐以及话语持续时间预测,而编解码器到特征扩散模型则根据生成的编解码器和其他条件合成语音特征(梅尔谱)。通过利用两种生成模型的优势,混合系统实现了高度多样性、韵律一致性和语音质量。

language model-based zero-shot TTS models streaming synthesis

论文解读:CosyVoice: A Scalable Multilingual Zero-shot Text-to-speech Synthesizer based on Supervised Semantic Tokens

CosyVoice

创新点:

  • 将监督语音token集成到TTS 模型,增强了零样本语音克隆中的内容一致性和说话者相似性。
  • 一种可扩展的零样本 TTS 合成系统,它将用于文本到token生成的 LLM 与用于token到语音合成的条件流匹配模型(conditional flow matching model(CFM))相结合,不依赖于音素持续时间预测(Duration predictor),不需要使用补充音素器(phonemizers)和强制对齐器aligners (比如:Glow-TTS中 Monotonic Alignment Search(MAS))。
  • 为了进一步细化生成语音的质量,将 x-vector 合并到 LLM 中,将语音建模分为语义、说话者和韵律(semantic, speaker, and prosody)组件。 LLM 对语义(semantic)内容和韵律(prosody)进行建模,而条件流匹配模型(CFM)则捕获音色(timbre)和环境信息。我们使用Classifier-Free Guidance(2022. Classifier-free diffusion guidance)、余弦调度器(cosine scheduler)和屏蔽条件(masked conditions)等技术来优化流匹配过程。

CosyVoice由四个组件组成,即文本编码器(text encoder)、语音分词器(speech tokenizer)、大语言模型(large language model)和条件流匹配模型(conditional flow matching model)

  • 文本编码器(text encoder)用于对齐文本和语音token的语义空间;
  • 语音标记器(speech tokenizer)用于提取语义token;
  • LLM(GLM)学习文本编码和语音标记的整个序列,将 TTS 重新表述为以文本作为提示的自回归序列生成问题;
  • 利用条件流匹配模型(conditional flow matching model), 通过最优路径上的去噪处理,将语音标记转换为梅尔谱图(Mel spectrogram); 通过Classifier-Free Guidance(Classifier-free diffusion guidance CFG)提高扩散概率模型的生成质量, 将CFG适应到条件流匹配模型中;
  • 获得人类耳朵可感知的声音信号,声码器(vocoder)使用 Hifi-GAN Generator 用于将生成的梅尔频谱图作为输入来合成波形(waveform)。

其中:

附:

论文解读 Matcha-TTS: A fast TTS architecture with conditional flow matching

🍵 matcha-tts

摘要:

一种用于快速 TTS 声学建模的新编码器-解码器架构,使用最佳传输条件流匹配 (OT-CFM) 进行训练。与使用分数匹配训练的模型相比,这产生了基于 ODE 的解码器,能够以更少的合成步骤实现高输出质量。仔细的设计选择还确保每个合成步骤都能快速运行。该方法是概率性的、非自回归的,并且无需外部对齐即可从头开始学习说话。与强大的预训练基线模型相比,Matcha-TTS 系统具有最小的内存占用,可以与长语音上最快的模型相媲美,并在听力测试中获得最高的平均意见得分。

一种非自回归神经 TTS 的新方法,它使用条件流匹配(CFM from 2022.10 Flow Matching for Generative Modeling)(类似于校正流(Rectified Flow 2022.9 Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow)来加速基于 ODE 的语音合成。

  • Is probabilistic 是概率性的
  • Has compact memory footprint 具有紧凑的内存占用
  • Sounds highly natural 听起来非常自然
  • Is very fast to synthesise from 合成速度非常快

简洁的结构,训练推理快,使用更少额内存空间,

一种基于连续归一化流的概率性、非自回归、快速采样的 TTS 声学模型。主要有两个创新点:

  1. 提出了一种改进的编码器-解码器 TTS 结构,该结构在解码器中结合使用 1D CNN 和 Transformer。这减少了内存消耗并且可以快速评估,从而提高综合速度。
  2. 使用最优传输条件流匹配 optimal-transport conditional flow matching(OT-CFM) 来训练这些模型,这是一种学习从数据分布中采样的 ODE 的新方法。与传统的 连续时间归一化流 CNF(continuous-time normalising flows ) 和分数匹配概率流 ODE (probability flow ODE) 相比,OT-CFM 定义了从源到目标的更简单的路径,从而能够以比 DPM(Diffusion probabilistic model) 更少的步骤进行准确合成。

实验结果表明,这两种创新都加速了合成,减少了速度和合成质量之间的权衡。尽管速度快且轻量级,Matcha-TTS能够在不需要外部对齐器的情况下学习说话和对齐。与强大的预训练基线模型相比,Matcha-TTS实现了快速合成,并获得了更好的自然度评分。


论文解读: VALL-E 系列

前文讲到VITS,采用的端到端的NAR模型,这篇文章记录下微软提出的VALL-E系列,从 AR+NAR 到 AR 模型的转变,以及后面MELLE引入的VAE和Mel-Spectorgram,将neural codec text speech LM (AR+NAR Transformer Decoder) 转变为 autoregressive mel-spectrogram text speech LM (AR Transformer Decoder) ;由于LM生成的是mel-spectrogram 需要通过vocoder 转换成 waveform; 生成的内容采样模块:从top-p random sampling 变成 Latent Sampling潜在采样模块(思想源自VAE, 从预测的高斯分布中采样潜在嵌入,然后将其投影回频谱图空间)

VALL-E 系列

https://www.microsoft.com/en-us/research/project/vall-e-x/

Vall-E: https://ar5iv.labs.arxiv.org/html/2301.02111

具体来说,我们使用从现成的神经音频编解码器模型派生的离散代码来训练神经编解码器语言模型(neural codec language model)(称为VALL-E ),并将 TTS 视为条件语言建模任务,而不是像之前的工作那样将 TTS 视为连续信号回归。 在预训练阶段,我们将 TTS 训练数据扩展到 60K 小时的英语语音,比现有系统大数百倍。 VALL-E具有情境学习功能,可用于合成高质量的个性化语音,只需对看不见的说话者进行 3 秒的注册录音作为声音提示。实验结果表明, VALL-E在语音自然度和说话人相似度方面显着优于最先进的零样本 TTS 系统。此外,我们发现VALL-E可以在合成时保留说话者的情感和声音提示的声学环境。

与之前的管道不同(例如,音素 → 梅尔谱图 → 波形), VALL-E的管线是音素 → 离散码 → 波形。

VALL-E根据音素和声学代码提示生成与目标内容和说话者的声音相对应的离散音频编解码器代码。 VALL-E直接支持各种语音合成应用,例如零样本 TTS、语音编辑以及与 GPT-3 等其他生成式 AI 模型相结合的内容创建。

VALL-E系列:2023年的1月份开始 - 2024年的7月份

  • VALL-E 使用从现成的神经音频编解码器模型派生的离散代码来训练神经编解码器语言模型,并将 TTS 视为条件语言建模任务,而不是像之前的工作那样将 TTS 视为连续信号回归。 VALL-E 具有情境学习功能,可用于合成高质量的个性化语音,只需录制未见过的讲话者的 3 秒注册录音作为提示。在语音自然度和说话人相似度方面,VALL-E 显着优于最先进的零样本 TTS 系统。此外,VALL-E可以在合成时保留说话者的情绪和声音提示的声学环境。
  • VALL-E X 扩展其能力,适应多语言场景,促进跨语言零样本 TTS。
  • VALL-E R 引入了音素单调对齐策略,增强了语音生成的鲁棒性。
  • VALL-E 2 通过集成重复感知采样和分组代码建模技术, 实现了一个突破性的里程碑:在 LibriSpeech 和 VCTK 数据集上的零样本 TTS 性能与人类相当。这标志着此类成就的首次实例,为该领域树立了新标准。
  • MELLE 是一种新颖的基于连续值标记的语言建模方法,用于文本到语音合成 (TTS)。 MELLE 直接从文本条件自回归生成连续的梅尔频谱图帧,绕过了矢量量化的需要,矢量量化最初是为音频压缩而设计的,与梅尔频谱图相比,牺牲了保真度。

论文解读 VITS: Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech

前文讲到OpenVoicev2,补充下细节,然后梳理使用的基础模型VITS:

📓

melo-tts 生成原始音频:

  • OpenVoice 版本1不依赖melo-tts, 升级后的V2版本依赖melo-tts, 主要是生成原始音频质量加强了(由melo-tts生成);
  • 默认配置使用了TransformerCouplingBlock list作为flow 和 reverse flow, 而第一版的OpenVoice 模型使用的 ResidualCouplingBlock ;
  • melo-tts的模型权重支持多语言,更具语言区分,比如 ZH: myshell-ai/MeloTTS-Chinese, EN_NEWEST: myshell-ai/MeloTTS-English-v3;

音色转换生成目标音频:

  • 通过训练好的音色抽取器抽取目标说话者的音色 (myshell-ai/OpenVoiceV2/converter);
  • 生成的原始音频信息通过 训练抽取好的基础说话者的音色(myshell-ai/OpenVoiceV2/base_speakers/ses),将原始音频中的音色去除 (flow);
  • 将去除原始音色的音频 和 抽取好的目标说话者的音色 合并 (reverse flow); 最终通过 vocoder(也是论文中的Decoder,使用的 HiFi-Gan模型)合成目标音频。

额外注意的是,由melo-tts生成原始音频sample rate是 44100, 而通过音色提取器 提取 并且 生成目标音频sample rate是 22050

前提知识这里简单概括如下:

AE(Autoencoder): 自编码器是自监督系统,其训练目标是通过降维来压缩(或编码)输入数据,然后使用该压缩后的表示准确重建(或解码)其原始输入。无泛化生成能力,但是可以执行特定任务:常用于数据压缩、图像去噪、异常检测和面部识别等任务。

VAE(Variational Autoencoder) :与其他自编码器(Autoencoder(AE)的区别在于它们对潜在空间进行编码的独特方式,以及可以应用其概率编码的不同用例,即随机生成训练数据的变体。具有泛化生成能力。

CVAE(Conditional Variational Autoencoder): 条件变分自编码器 可以以特定输入为条件进行输出,而不仅仅是随机生成训练数据的变体。这是通过将监督学习(或半监督学习)的元素与常规自编码器的传统无监督训练目标相结合来实现的。具有指定特征的泛化能力。

  • VAE 与 GAN的区别:

    VAE 经常与生成式对抗网络 (GAN) 进行比较,GAN 是另一种模型架构,用于生成类似于训练数据的样本,尤其是图像。

    与 VAE 类似,GAN 是结合两种神经网络的联合架构:一个生成器网络,负责输出与训练数据集中的图像相似的图像样本,另一个判别器网络,负责确定特定图像是训练数据中的“真实”图像还是来自生成器网络的“虚假”图像。

    这两个网络在零和博弈中进行对抗性训练:来自判别器的反馈用于改进生成器的输出,直到判别器不再能够区分真假样本。

    就图像合成而言,两者各有优劣:

    • GAN 可以生成更清晰的图像,但由于两种复合模型之间的对抗性权衡,在训练中并不稳定。
    • VAE 更容易训练,但由于其根据训练数据的“平均”特征生成图像的性质,往往会生成比较模糊的图像。
  • VAE-GAN 两者结合 顾名思义,VAE-GAN 是变分自编码器 (VAE) 和生成式对抗网络 (GAN) 的混合体。通过用判别器网络替换 VAE 模型的重建损失项,来降低 VAE 生成图像的模糊性,提高生成质量。

VITS 使用了 条件变分自编码器 (Conditional Variational Autoencoder (CVAE)) 和生成式对抗网络 (Generative adversarial network(GAN)) 两个模型架构。 至于VAE和GAN的细节可以关注下baby-llm这个学习项目中的对应模块PR学习资料:

这篇文章是讲解VITS,是现在工业上TTS常用的基础方案(NAR模型,成本相对AR模型低, 推理快,生成质量尽可能追平或超越SOTA AR模型)。作者来自韩国现代汽车公司的 AIR 实验室(人工智能研究实验室),论文结合了以前的研究成果:

后续作者还研究了加入扩散模型来生成语音,不需要使用分类器指导的目标说话者的任何转录。

Guided-TTS 将无条件扩散概率模型(unconditional Diffusion Model)与单独训练的音素分类器(phoneme classifier )相结合,用于分类器指导。无条件扩散模型学习在没有任何上下文的情况下从未转录的语音数据中生成语音。对于 TTS 合成,使用在大规模语音识别数据集上训练的音素分类器来指导扩散模型的生成过程。

VITS

主要贡献:

  • 提出了一种并行的端到端 TTS 方法,它可以生成比当前两阶段模型更自然的音频;
  • 采用通过归一化流程和对抗性训练过程增强的变分推理,提高了生成模型的表达能力;
  • 一个随机持续时间预测器(stochastic duration predictor)来从输入文本中合成具有不同节奏的语音;
  • 通过对潜在变量的不确定性建模和随机持续时间预测器,表达了自然的一对多关系,其中文本输入可以以不同的音调(pitches)和节奏(rhythms)以多种方式说出。

通过利用条件变分自编码器 CVAE,模型特点:

  1. 学习直接从文本合成原始波形,而不需要额外的输入条件;
  2. 使用动态编程方法 MAS 来搜索最佳对齐方式,而不是与计算损失相比,不需要任何外部对齐器;
  3. 并行生成样本;
  4. 高效的端到端训练方法, 并且生成质量优于最好的公开可用的两阶段模型。附两阶段的数据处理过程(在后续的研究论文中称之为级联方法(cascaded),见VALL-E系列论文研究):
    • 第一阶段是从预处理的文本中生成中间语音表示,例如梅尔谱图(mel-spectrograms)或语言特征(linguistic features)
    • 第二阶段是生成以中间表示为条件的原始波形。
    • 两阶段的相关模型大都是独立开发的。

结构:

VITS

PS: achatbot 集成了OpenVoiceV2 with meloTTS(meloTTS代码大部分来自VITS,Flow 采用 Transformer Encoder 结构来自 VITS2: Improving Quality and Efficiency of Single-Stage Text-to-Speech with Adversarial Learning and Architecture Design | paper code

PR地址: https://github.com/ai-bot-pro/achatbot/pull/103

论文解读 OpenVoice: Versatile Instant Voice Cloning

使用meloTTS 本文生成的音频

使用openVoice clone 自己的声音 阅读本文内容

文件直接上传在github中, 暂未走cdn, 缓存比较慢,可下载播放, 下载地址: http://github.com/weedge/paper-speaker/tree/main/multimoding/voices/open_voice_inference


openVoiceV2 tone color clone: base TTS + extra tone color + convert

Base TTS: use meloTTS , 支持TTS模型训练,以及load Pre-Trained ckpt 进行TTS, 在 VITS基础上支持多种语言;

论文地址:OpenVoice: Versatile Instant Voice Cloning

论文主作者:Zengyi Qin (同时是JetMoE的作者,站在巨人的肩膀上创新)

公开的权重:

源码:

训练: MSML dataset 和 训练过程 未公开

附操作笔记https://github.com/weedge/doraemon-nb/blob/main/myshell_ai_OpenVoiceV2.ipynb

论文解读 DeLighT: Very Deep and Light-weight Transformers

在看apple 最近发布的OpenELM 模型,其论文中提到 block-wise scaling 模型结构优化方法,(论文见: OpenELM: An Efficient Language Model Family with Open-source Training and Inference Framework),这里记录下DeLighT论文中的 block-wise scaling,翻译整理下以便对照代码实现,了解背景和原理。DeLighT论文中的实验任务主要是在两个标准的序列建模任务上评估了DeLighT的性能:机器翻译(machine translation)任务 encoder-decoder architecture 和 语言建模( language modeling)decoder architecture,论文中机器翻译任务未对En-Zh(英文译中文)进行实验,可以作为一个复现练习,根据源码实操一下论文中的实验;而语言建模可以作为openELM的来源延伸~ 结合cornet进行复现(也有mxl示例,mxl针对Apple Silicon 硬件进行的优化深度学习框架)。

论文主作者:Sachin Mehta

论文地址:https://arxiv.org/pdf/2008.00623

论文代码: https://github.com/sacmehta/delight (基于当时facebook的 fairseq seq2seq工具库开发)

该论文研究是在作者以前的DeFINE: DEep Factorized INput Token Embeddings for Neural Sequence Modeling 进行改进,模型结构引入更多的GLTs,来学习更宽的权重,并且减少了参数数量。

摘要

我们介绍了一种深度且轻量级的Transformer,名为DeLighT,它在参数数量显著减少的情况下,提供了与标准基于Transformer的模型相似或更好的性能。DeLighT更有效地在每个Transformer块内部(通过DeLighT变换)以及跨块(通过块级缩放)分配参数,允许输入端使用较浅较窄的DeLighT块,输出端使用较宽较深的DeLighT块。总体而言,DeLighT网络比标准Transformer模型深2.5到4倍,但参数和运算量更少。在基准机器翻译和语言建模任务上的实验表明,DeLighT在平均参数数量减少2到3倍的情况下,达到或提高了基线Transformer的性能。