通过高保真分解语音与真人语音无异。
首先来听一段《凡人修仙传》:
你猜的没错,这段有声书并非来自某个专业制作团队,而是一个 AI 模型 Seed-TTS,而这个模型则是来自字节跳动的 Seed Team。
TTS 是指文本转语音,这是一种具备诸多妙用的技术,像是让个人智能助理谈话、为视频或游戏配音、辅助视障人士、制作有声书等等。对于 TTS 技术研发者来说,流畅自然的表达一直以来都是值得追求的重要目标。
字节跳动 Seed Team 发布的 Seed-TTS 不只是一个模型,而是一整个模型系列。
论文标题:Seed-TTS: A Family of High-Quality Versatile Speech Generation Models
论文地址:https://arxiv.org/pdf/2406.02430
演示网站:https://bytedancespeech.github.io/seedtts_tech_report/
据介绍,该系列模型有能力分解自然度和表现力达到人类水平的语音。不仅如此,Seed-TTS 还能以零样本方式鉴于一段较短的录入语音片段生成可控的、高保真度的分解语音。
该团队在三个任务上评价了 Seed-TTS:零样本语音上下文进修、谈话人微调、情绪控制。为了方便未来的基准测试,他们还发布了测试数据集的配置,并讨论了该模型在产品部署方面的行为。
此外,该团队还提出了两种可大幅晋升模型性能的新型扩展技术:通过自蒸馏实现语音分解以及通过加强进修实现偏好偏向。
然后,他们还比较了两类主要的语音生成技术的优劣:鉴于言语模型的步骤和鉴于聚集的步骤。为此,他们为 Seed-TTS 开发了一种非自回归式的变体 Seed-TTS_DiT,这是一种完全鉴于扩展的语音生成模型,能以端到端的方式直接预测输出语音的隐含表征。
步骤
Seed-TTS 是一种鉴于自回归 Transformer 的模型,如图 1 所示。
该零碎包含 4 个主要模块:语音 token 化器、token 言语模型、token 聚集模型和声学声码器。
该团队还强调,Seed-TTS 的训练应用了大量数据(比之前最大的 TTS 零碎多几个数量级),因而具备强大的泛化和涌现能力。
首先,语音 token 化器将语音信号转换成语音 token 序列,然后鉴于其训练一个 token 言语模型。该团队研究了连续和离散的语音 token 化器,结果发现 token 化器的设计对整个零碎的性能来说至关重要。这个言语模型的训练应用了成对的文本和语音 token。在推理期间,该模型则以自回归方式生成语音 token。
然后,生成的 token 交由聚集模型处理,以增强其声学细节。其输出再经过声学声码器处理,得到最终声波波形。这个声学声码器是单独训练的。
类似于鉴于文本的言语模型,Seed-TTS 也要经历三个训练阶段:预训练、微调和后训练。
预训练阶段的目标是尽可能多地覆盖不同的场景和谈话人,同时为一般语音建模确立一个稳健的骨干。在这一阶段,Seed-TTS 应用的训练数据量和模型规模都超过了之前的语音生成步骤几个数量级。
微调阶段包含谈话人微调和指令微调。谈话人微调的重点是提高所选谈话人组的表现,而指令微调旨在提高可控性和交互性。后训练通过加强进修完成,从而整体晋升模型。
该团队表示,相比于之前的模型,Seed-TTS 有两大优势。
第一,针对多种不同场景(包括怒吼、哭喊、声情并茂演讲等高难度场景),Seed-TTS 分解的语音都有更好的自然度和表现力。
第二,Seed-TTS 解决了鉴于言语模型的 TTS 零碎普遍存在的不稳定问题。Seed-TTS 在稳定性上的卓越表现得益于 token 和模型设计的晋升、改进过的训练和推理策略、数据增强和加强进修后训练。因此,Seed-TTS 在测试集上的表现出了显著更优的稳健性。
由于应用了一个基础模型来生成语音,因此 Seed-TTS 可以执行多种不同任务,比如语音上下文进修、可控式 TTS、跨言语 TTS、语音转换、音色生成和谈话风格迁移。
实验
零样本上下文进修
该团队为实验准备了两个测试集:主观集(objective-set)和主观集(subjective-set)。主观集的样本提取自英语(EN)和汉语普通话(ZH)的公共语料库;这些语料库曾被用于测量模型在多种主观基准上的性能表现。
具体来说,主观集包含 1000 个来自 Common Voice 数据集的样本和 2000 个来自 DiDiSpeech 数据集的样本。主观集则来自他们的内部数据集,用于主观评价,其中的样本语音比主观集丰富得多,包括多种口音、方言、情绪和谈话风格。该数据集包含英语和普通话的各 100 个样本。
评价指标。对于主观评价,该团队采用了词错率(WER)和谈话人相似度(SIM)指标。对于主观评价,则应用了 CMOS,即比较平均意见分数(Comparative Mean Opinion Scores)。
在实践中,如果 CMOS 分数绝对值低于 0.1,则认为相比较的两个零碎差别不大。表 1 给出了在这两个测试集上的结果。为便于基准测试,该团队发布了主观集的配置:https://github.com/BytedanceSpeech/seed-tts-eval/tree/main
上下文进修结果。从表 1 中可以看到,Seed-TTS 的 WER 与真人语音相近,并且 SIM 也明显更高。该结果也许可以这样解释:可以观察到,在应用不同的谈话风格和在不同的背景环境中时,即使是同一谈话人,真人语音和参考语音依然会有所不同。相较之下,Seed-TTS 可以准确地捕获参考语音的特性并鉴于其生成目标语音,进而更一致、更忠实地再现录入语音片段。下面我们来听几个示例:
输入 prompt:分解语音:
在主观测试中,Seed-TTS 在英语和普通话上的表现与真人语音接近 ——CMOS 分数分别为 -0.07 和 -0.08。
此外,该团队还为之前一些模型执行了同样的评价,结果发现它们的 CMOS 结果都低于 -1,这说明这些分解语音和真人语音之间的差异很明显。该团队表示,Seed-TTS 的主观测试结果表明,在应用自然语音 prompt 的零样本 ICL 设置中,Seed-TTS 是首个能生成与真人语音难以区分的结果的 TTS 零碎实例。
对比传统的谈话人微调式 TTS 模型。该团队将他们的零样本 ICL 零碎与一组传统的鉴于 FastSpeech 的谈话人微调式 TTS 模型进行了比较。他们收集了 10 个谈话人的语音,并将其分为两组:普通组(7 个谈话人)和困难组(3 个谈话人)。
对于每个谈话人,每个零碎都生成 30 段语音,涵盖不同的场景、上下文和情绪。然后再由 10 位人类评价者给出偏好情况,之后计算平均偏好率,结果见图 2。
可以看到,对于普通组,相比于传统的微调式 TTS 零碎,新的零样本 ICL 零碎有 47.9% 的样本更受偏好。人类评价者表示,Seed-TTS 明显在自然度和表现力方面更有优势。但是,对于困难组而言,传统的微调模型表现更好。该团队推测,原因是新的零样本 ICL 零碎无法忠实地保持口音和特有的谈话人风格,尤其是当 15 秒 prompt 中并不包含谈话人代表性的韵律时。因此,如果能应用更长的 prompt 或让 prompt 更好地覆盖训练数据,应当可以缓解这个问题。
语音理解评价。为了进一步验证 Seed-TTS 的生成质量,该团队对生成的语音执行了 ASR。结果见表 2。
可以看到,相比于真人数据,Seed-TTS 生成的数据在 clean 集上表现很好,在 other 集上表现较差。该团队猜测这是因为 Seed-TTS 在生成过程中倾向于降低背景噪声,从而对噪声的稳健性降低。
可视化真人语音与 ICL 语音的谈话人相似度。为了验证分解语音中音色的保留情况,该团队应用 t-SNE 绘制了 25 个谈话人的真人语音和分解语音的谈话人嵌入,结果见图 3。
可以看到,来自同一谈话人的真人语音与分解语音紧密地聚类在一起,这也佐证了之前的发现:Seed-TTS 的语音生成质量很好,并且与真人语音很相似。
谈话人微调
在基础的 Seed-TTS 预训练模型上,该团队又执行了谈话人微调(SFT)。
他们应用 WER 和 SIM 主观指标与 CMOS 主观指标评价了微调版 Seed-TTS_SFT 和基础版 Seed-TTS_ICL 生成语音的表现。实验结果见表 3。
可以看到,微调版模型与基础版在主观指标上表现相近,而微调版在主观指标上有 +0.37 的优势。这表明,微调版 Seed-TTS_SFT 模型能捕获目标谈话人的更多细微细节,例如细微的韵律变化和句尾的独特发音模式。
通过指令微调实现可控性。为了进一步提高谈话人微调模型的可控性,该团队又尝试了整合额外的指令微调(IFT)。指令微调可让模型灵活控制生成语音的各个方面,比如表现力、语速、风格、情绪等。
结果见表 4。该团队发现,即使没有明确的控制信号,Seed-TTS_SFT 依然在情绪控制方面得到中等准确度。
他们猜想,这是因为该模型有能力鉴于所提供的文本内容推断适当的目标情绪。如果再加上额外的控制信号,准确度能大幅晋升。这里来听一个示例:
文本:哇!恭喜你中了大乐透,八百万可真不少呢!有什么特别的计划或想法吗?
生成语音:
低延迟推理和流式处理
在实际部署应用时,除了准确度等性能指标外,还有其它一些考虑因素,比如延迟、成本等。相比于传统的 TTS 模型,Seed-TTS 的模型要大得多,这就会给部署带来额外的阻碍。
为了解决这些难题,该团队采用了多种技术来降低推理成本和延迟。具体来说,他们模型部署时三方面的难题。
首先,他们实现了一个因果聚集架构。这能在聚集模块中实现流式处理,并显著降低处理延迟和首包延迟。
其次,他们采用了一致性蒸馏技术和一种修改版的流匹配算法,以降低聚集模型的计算成本。
另一方面,他们也研究了降低大模型内存和计算消耗的常用步骤,比如分组式查询注意力、分页注意力、flash 注意力和模型量化。
这样三板斧下来,如表 5 所示,经过优化的模型在保证主观和主观性能的同时,还显著降低了延迟、计算和内存消耗。
模型扩展
为了进一步晋升 Seed-TTS 模型的性能并拓宽其应用场景,该团队还为其提出了两项扩展。一是用于晋升音色可控性的自蒸馏步骤。二是应用加强进修步骤来全面晋升模型的能力。
通过自蒸馏实现语音分解
语音分解(speech factorization)是指将语音分解为不同的分立的属性。如果 TTS 零碎具备这样的功能,就能在分解语音时灵活地组合应用不同谈话人的音色、韵律和内容。
该团队为此晋升了自蒸馏方案。该步骤的核心原理是创建受控的语音对 —— 这些语音对的大部分信息都一样,但有少量特定的目标属性不同。应用这样的数据对,再加上一点对模型架构的细微更新,可让 Seed-TTS 实现高质量的属性分解。
该团队在音色属性方面做了实验。他们注意到,通过在 Seed-TTS 生成期间向聚集模块引入谈话人扰动,就能分解内容与韵律模式相同但音色不一样的语音。如图 4 所示,这一任务也被称为零样本语音转换(zero-shot voice conversion)。
通过应用原始语音以及修改过音色的语音组成的增强型分解数据对,该团队对 Seed-TTS 零碎的聚集模型进行了重新训练。
实验结果见表 6。
可以看到,新提出的自蒸馏步骤可通过增强型的音色分解显著晋升 SIM 指标,同时在所有其它维度上也更优。下面给出了一个示例:
源音频:音色 prompt: 转换后的音频:
通过加强进修实现偏好偏向
该团队也探索了应用加强进修步骤来晋升 Seed-TTS。他们比较了应用外部奖励模型的加强进修步骤(如 PPO 和 REINFORCE)以及不应用外部奖励模型的步骤(如 DPO)。
结果发现这两种步骤都很有效。前者可实现对特定语音属性的更清晰控制,而后者的优势是实现起来更简单。这篇论文主要关注的是前者。
表 7、8、9 报告了主观和主观评价结果。
从表 7 和 8 可以看出加强进修所带来的好处。
从表 9 则可以看到,相比于上面的谈话人微调式 Seed-TTS_SFT 模型,Seed-TTS_{RL-SER} 的情绪可控性下降了,但相比于 Seed-TTS_ICL,应用加强进修能大幅晋升在各种情绪上的情感控制准确度。下面是一组示例:
prompt:喜: 怒:
哀:https://bytedancespeech.github.io/seedtts_tech_report/audios/RL_ICL_samples/-5282986181050362834.wav
惊:https://bytedancespeech.github.io/seedtts_tech_report/audios/RL_ICL_samples/-7183650758233635696.wav
完全鉴于聚集的语音生成
为了进一步理解言语建模和聚集模型这两种建模步骤的特性,该团队提出了一种完全鉴于聚集的 Seed-TTS 模型变体,记为 Seed-TTS_DiT。在这种变体中,移除了聚集模型和声学 token 化器之间的依赖关系,这样一来聚集模型就需要直接鉴于输入文本将高斯噪声转换成声码器的隐含表征。
对于这种修改版的 Seed-TTS_DiT 设计,他们在聚集模型中直接采用了端到端的处理方式。该模型不会估计音素层面的持续时间,而是事先估计生成语音的总持续时间。然后优化该模型,以估计音频和文本之间的局部对齐。通过这种方式,Seed-TTS_DiT 可以动态调整每个音素的持续时间,从而得到高度自然的语音。
结果发现,只要得到适当训练,Seed-TTS_DiT 就能预测输入语音的合适总持续时间。但是,该团队并未选择以这种方式训练,而是选择直接为模型提供总持续时间,这能实现一些可用于内容编写和语速编写的额外性质。为此,在训练时,向模型提供音频 prompt、目标文本和一段有总持续时间的高斯噪声片段,然后预测有同样总持续时间的生成语音的隐含表征,之后再由声码器将该表征转换成波形。
相比于采样下一 token 言语建模的步骤,这种纯粹的聚集模型的工作流程更简单。Seed-TTS_DiT 是一种非流式模型,很自然支持内容编写应用,如图 5 所示。话虽如此,言语建模步骤也有自己的优势:流式处理以及能够整合鉴于文本的言语模型。
该团队应用之前的测试集评价了 Seed-TTS_DiT 的零样本 TTS 能力,评价结果见表 10。
可以看到,相比于 Seed-TTS_ICL,完全鉴于聚集的步骤在 SIM 上性能更优,而在 WER 指标上的表现也相差不大。
内容编写和语速编写。该团队进一步评价了 Seed-TTS_ICL 在两个语音编写任务上的能力:内容编写和语速编写。
图 6 和 7 给出了评价结果。
可以明显看出,在内容编写时,Seed-TTS_DiT 在不同的掩蔽率下表现很稳健。而 Seed-TTS_DiT 也确实能在不同语速下分解高谈话人相似度的语音,但当语速过快时,WER 指标会变差一些。
最后展示一个内容编写的示例:
源文本:对,这就是我,万人敬仰的太乙真人,虽然有点婴儿肥,但也掩不住我逼人的帅气。
目标文本:对,这就是我,众人尊崇的太白金星,虽然有点娃娃脸,但也遮不住我迷人的魅力。
源语音:https://bytedancespeech.github.io/seedtts_tech_report/audios/DITEdit_samples/source/-40165564411515767.wav
编写后的语音:https://bytedancespeech.github.io/seedtts_tech_report/audios/DITEdit_samples/generated/5710927739229863116.wav