Abstract
本文介绍了 F5-TTS,这是一种基于流匹配与扩散变压器(DiT)的完全非自回归文本转语音系统。它无需诸如时长模型、文本编码器和音素对齐等复杂设计,直接将文本输入用填充标记填充至与输入语音相同的长度,然后对语音进行去噪处理以生成语音 ,这一方法在 E2 TTS 中已被证明是可行的。然而,E2 TTS 的原始设计由于其收敛速度慢和鲁棒性低而难以遵循 。为了解决这些问题,我们首先使用 ConvNeXt 对输入进行建模,以优化文本表示,使其易于与语音对齐 。我们还提出了一个推理时的“摆动采样 ”策略,这显著提高了我们模型的性能和效率。这种用于 flow step 的采样策略可以轻松应用于现有的基于流匹配的模型,无需重新训练。我们的设计实现了更快的训练速度,并达到了 0.15 的推理 RTF,与最先进的基于扩散的 TTS 模型相比有了显著的提升。经过对一个包含 10 万小时多语言数据的公共数据集的训练,我们的 F5-TTS 展现出高度自然且富有表现力的零样本能力、无缝的代码切换能力以及速度控制效率。
Introduction
1. 自回归(AR)模型的局限性和改进方向
- • 优点 :AR模型以直观方式连续预测音素,实现了良好的零样本语音合成能力。
- • 缺点:存在固有局限性,包括:
- • 推理延迟 和 暴露偏差 ,需要额外努力解决。
- • 高度依赖 语音分词器的质量 以实现高保真合成。
- • 改进探索 :近期研究聚焦于 在连续空间中进行直接建模 ,以提升合成语音质量。
2. 非自回归(NAR)模型的对齐挑战和现有方法
- • 核心挑战:NAR模型中,输入文本与合成语音的对齐建模至关重要且极具挑战性。
- • 例如:NaturalSpeech 3 和 Voicebox 采用 帧级别的音素对齐 ;Matcha-TTS 使用 单调对齐搜索 并依赖音素级别的时长模型。
- • 问题 :引入严格的文本-语音对齐会阻碍生成更自然的结果。
- • 现有NAR方法及其缺陷:
- • E3 TTS :摒弃音素时长,应用交叉注意力,但音频质量有限。
- • DiTTo-TTS :基于扩散变压器(DiT),利用预训练语言模型进行条件交叉注意力,并通过微调注入语义信息以增强对齐。
- • E2 TTS :采用简化方案(去除音素和时长预测器,直接使用填充标记的字符输入),实现自然逼真的合成,但存在 文本和语音对齐的鲁棒性问题 。
- • Seed-TTS :类似简化方法,取得出色成果,但模型细节未详述。
- • 共同特点 :在不明确建模音素时长的方案中,模型学会了根据总序列长度为单词或音素分配长度,从而改善了 语调和节奏 。
3. F5-TTS的提案:解决对齐问题并提升鲁棒性
- • 目标 :提出F5-TTS模型,生成流畅且真实的语音,确保语音时长与内容一致,同时简化合成管道。
- • 核心技术:
- • 摒弃音素对齐、时长预测器、文本编码器和语义注入编码器。
- • 采用 扩散转换器(基于ConvNeXt V2) ,更有效地解决上下文中的文本到语音对齐问题。
- • 关键洞察 :强调E2 TTS中 语义特征和声学特征的紧密关联 存在固有缺陷,会导致无法通过重新排序解决的对齐失败问题。
- • 验证 :通过深入的消融研究,F5-TTS在忠实于文本提示方面表现出更强的 鲁棒性 ,同时保持了说话者相似度。
4. 推理时间优化:新采样策略
- • 创新点 :引入推理时间采样策略,显著提高生成语音的 自然度、可理解性和说话者相似度 。
- • 优势 :该策略可无缝集成到现有的基于流匹配的模型中,无需重新训练。
Method
Pipeline
Training 填充任务是根据给定的周围音频和完整文本(包括周围转录内容以及要生成的部分)来预测一段语音。为了简化起见,我们使用符号 x 来表示音频样本,使用符号 y 来表示对应的数据对(x, y)的转录内容。如图 1(左)所示,用于训练的声学输入是从音频样本 x 提取的梅尔频谱图特征
,其中 F 是梅尔维度,N 是序列长度。在 CFM 范畴内,我们将模型输入为有噪声的语音
和掩蔽语音
,其中
表示采样的高斯噪声,t 是采样流步长,
表示一个二进制时间掩码。
在 E2 TTS 之后,我们直接使用字母和符号来表示英语 。我们选择完整的拼音以方便中文 的零样本生成。将原始文本分解为这样的字符序列,并**用填充标记
进行填充,使其与 mel 帧的长度相同** ,从而形成一个扩展序列
,其中
表示第
个字符:
在这里插入图片描述
该模型经过训练,能够利用
和 z 来重建
,这相当于学习以
的形式呈现的目标分布
,该分布近似于真实数据分布
。
在这里插入图片描述
Inference 为了生成具有所需内容的语音,我们需要音频提示 的梅尔频谱图特征
、其转录内容
以及文本提示
。音频提示用于提供说话者的特征,而文本提示则用于指导生成语音的内容 。
序列长度 N 或持续时间现在已成为一个关键因素,需要向模型告知生成样本所需的长度 。可以训练一个单独的模型来预测并根据
、
和
提供持续时间。**在这里,我们仅根据
和
中字符数量的比率来估算持续时间** 。我们假设字符的总长度不会超过 mel 长度,因此在训练期间也会像以往一样使用填充标记进行填充。
为了从所学习的分布中进行抽样,转换后的梅尔特征
以及与字符序列
相连接并扩展后的序列共同构成了方程 4 中的条件。我们有
在这里插入图片描述
从图 1(右图)中可以看出,我们从采样噪声
开始,而我们想要的是流的另一端
。因此,我们使用微分方程求解器逐步从
集合到
,给定
。在推理过程中,流的步骤是以有序的方式提供的,例如,根据 NFE 设置从 0 到 1 均匀采样一定数量的值。**在使用模型
和微分方程求解器获得生成的 mel 后,我们丢弃
部分** 。然后,我们利用语音合成器将 mel 转换回波形。
F5-TTS
E2 TTS 直接将填充后的字符序列与输入语音序列进行拼接,这使得语义和声学特征之间产生了较大的信息有效部分长度差距,这是训练困难的根本原因 ,并在零样本场景中引发了诸多问题(第 5.1 节)。为了解决收敛速度慢和鲁棒性低的问题,我们提出了 F5-TTS 算法,它能够加快训练和推理过程,并在生成过程中展现出强大的鲁棒性。此外,还引入了推理时的“Sway
Sampling ”方法,该方法能够在保持性能的同时使推理速度更快(所需迭代次数更少 )。这种基于 flow step 的采样方式可以直接应用于其他基于 CFM 的模型,无需重新训练。
Model 如图 1 所示,我们采用了 latent 扩散转换器(DiT )作为基础架构。具体而言,我们使用带有 zero-initialized 自适应层归一化的 DiT 块(adaLNzero )。为了增强模型的对齐 能力,我们还利用了 ConvNeXt V2 块,其前身 ConvNeXt V1在众多研究中被使用,并在语音领域任务中展现出强大的时间建模能力。
如第 3.1 节所述,该模型的输入为字符序列、有噪声的语音和被遮蔽的语音 。在特征维度进行拼接之前,字符序列首先会经过 ConvNeXt 块 。实验表明,这种方式为每个模型提供了独立的建模空间,使得文本输入在后续的上下文学习中能够更好地做好准备 。与 Voicebox 中进行的音素级强制对齐不同,本方法并未明确引入文本的严格边界 。语义和声学特征与整个模型一起被共同学习。与 E2 TTS 不直接将具有显著长度差距的输入提供给模型不同,所提出的文本细化方法减轻了使用具有不匹配有效信息长度的输入的影响,尽管其在物理长度上与 E2 TTS 相同 。
对于 CFM 而言,flow step
的设定是基于 adaLN 为零这一条件,而非附加在语音框中的串联输入序列中。我们发现,对于 adaLN 条件而言,额外的文本序列平均池化标记并非 TTS 任务所必需的,这或许是因为 TTS 任务需要更严格指导的结果,而平均池化的文本标记更为粗糙。
我们在“Voicebox”中采用了某些位置嵌入设置。Flow step 中嵌入了一个正弦位置信息 。拼接后的输入 序列还添加了一个卷积位置嵌入 。我们为自注意力机制 应用了旋转位置嵌入 (RoPE),而非采用对称双向的 ALiBi 偏置。对于扩展的字符序列
,我们还会在将其输入到 ConvNeXt 块之前,加上一个绝对正弦位置嵌入 。
与 Voicebox 和 E2 TTS 相比,我们摒弃了 U-Net 式的跳跃连接结构,转而采用了DiT 与 adaLN-zero 结合的方式。由于没有基于音素级别的时长预测器和明确的对齐过程,也没有在 DiTTo-TTS 中加入额外的文本编码器和具有语义融入功能的神经编码器模型,我们为文本输入赋予了一定的自由度(个体建模空间),以便它在拼接和与语音输入的上下文学习之前做好准备 。
Sampling 如第 2.1 节所述,CFM 可以被视为具有余弦调度的 v-prediction。对于图像合成,埃瑟尔等人提议进一步为 flow step 设置单峰对数正态采样调度,以便通过更频繁地采样来赋予中间 flow step 更多的权重。我们推测这种采样会更均匀地将模型的学习难度分配到不同的流步骤 t ∈ [0,1] 上。
相比之下,我们在训练 模型时采用的是传统的均匀采样方式,即时间步长 t 服从 U[0, 1] 的分布,但在推理 过程中则采用了非均匀采样 方式。具体而言,我们将“Sway Sampling ”定义为
在这里插入图片描述
其系数 s 的取值范围为
。我们首先对
进行采样,使其服从
的分布,然后将此函数应用于以获得流步
的摆动采样流。当 s < 0 时,采样向左摆动;当 s > 0 时,采样向右摆动;而 s = 0 的情况则等同于均匀采样 。图 3 展示了在流步 t 上摆动采样概率密度函数。
在这里插入图片描述
从概念上讲,CFM 模型更侧重于在早期阶段(t = 0)勾勒出语音的轮廓 ,从纯粹的噪声开始,随后则更注重精细细节的修饰 。因此,语音与文本的对齐将基于生成的前几组结果来确定 。当尺度参数 s < 0 时,我们使模型推理更多地基于较小的 t 值,从而为 ODE 求解器提供更多的启动信息,以便在初始积分步骤中进行更精确的评估。
Experimental Setup
Training 我们的基础模型经过训练,达到了 120 万次更新,每批次处理 307,200 个音频帧(共计 0.91 小时),在 8 块 NVIDIA A100 80G GPU 上运行了超过一周。使用的是 AdamW 优化器,初始峰值学习率为 750,000,经过 20,000 次更新进行线性预热,其余训练过程中则进行线性衰减。我们设置 1 用于最大梯度范数剪枝。F5-TTS 基础模型有 22 层,16 个注意力头,DiT 的嵌入/前馈网络(FFN)维度为 1024/2048;而 ConvNeXt V2 的嵌入/FFN 维度为 4 层,512/1024。总计 335.8M 个参数。所重现的 E2 TTS 是一个 333.2M 的平铺 U-Net 配备的 Transformer,它有 24 层、16 个注意力头以及 1024/4096 的嵌入/FFN 维度。两个模型都如第 3.2 节中所述使用了 RoPE,注意力和 FFN 的丢弃率均为 0.1,使用的卷积位置嵌入与 Voicebox 中的相同。
我们直接使用字母和符号来书写英语 ,使用jieba 和pypinyin 来对原始中文字符 进行处理,使其转换为完整的拼音形式 。字符嵌入词汇量为 2546,其中包括特殊的填充标记以及在埃米利亚数据集中存在的所有其他语言字符,因为存在许多代码切换的句子。对于音频样本,我们使用100 维的对数梅尔滤波器组特征,采样率为24kHz ,采样间隔为256。随机抽取 70%至 100%的梅尔帧进行掩蔽 ,用于填充任务的训练。对于CFG(第2.2 节)训练,首先以 0.3 的概率丢弃掩蔽后的语音输入,然后以 0.2 的概率丢弃同时包含文本输入的掩蔽语音。我们假设CFG训练的两阶段控制可能使模型通过文本对齐学习更多。
Experimental Results
在这里插入图片描述
在这里插入图片描述
参考文献
点个「赞」+「在看」❤️
让我们知道这份文字有温暖到你,也是 我们持续 创作的最大动力!
推荐
E2 TTS:令人尴尬地简单、完全非自回归、零样本的语音合成技术
为什么都在聊 Kimi K2?Open Agentic Intelligence 藏着哪些新惊喜
OPENCSG 中文语料库:一系列高质量的中文数据集,用于语言模型训练
不要对 2+3=?想太多:关于类 o1 大语言模型的过度思考
Conditional Flow Matching : 连续标准流 Continuous Normalizing Flow
Conditional Flow Matching : 常微分方程ODE、欧拉方法和Neural ODE
当 Normalizing flow 遇上语音生成:AI 说话变 “真人” 的秘密在这里!
深度剖析:Kimi - Audio 中 BigVGAN 的神奇作用
为什么说分布变换是 Normalizing flow 的「灵魂操作」?
MiniMax-Speech,零样本语音合成新突破,32 种语言轻松拿捏!
手把手教你创建 evol-instruct 数据集!附完整流程~
最新!SpeechLLM 综述:架构、能力、挑战与未来全揭秘
从数量到质量:通过自引导数据选择来提升语言模型性能以实现指令调优
GeForce RTX 3090, 4090, A10, A40, A100, A800, L20, L40 显卡性能对比
基础模型中的新范式:为什么o1是不同的,以及它将如何改变LLM应用
从数量到质量:通过自引导数据选择来提升语言模型性能以实现指令调优
Fully Sharded Data Parallelism (FSDP)
CosyVoice 2:基于大型语言模型的可扩展流式语音合成技术
Mini-Omni2: with Vision, Speech and Duplex Capabilities
亲测有效!如何用 Address Sanitizer 精准定位内存漏洞?附保姆级操作指南
要用 AI 裁员 50% 的千亿独角兽,公开认错,重启招聘!
single codebook和dual codebook在LLM中向量量化上有什么区别?
亲测有效!如何用 Address Sanitizer 精准定位内存漏洞?附保姆级操作指南
CosyVoice:一种基于监督式语义标记的可扩展多语言 Zero-Shot 语音合成器
近日还在想要不要建个群呢?感觉自己是个i人,又懒,打理不来呀。但这个想法不自主的就冒出来了,还是要思考下。天人交战良久,得,一位朋友私我要入群,那就建一个吧,感谢。
欢迎入群,希望能有一个交流的地方。但群主是个i人,没事儿让他想静静,有事儿圈他。
群主不是万能的,不是万能的,不是能的,能的。
