一、摘要

代码:https://github.com/Soul-AILab/SoulX-Podcast
demo: https://soul-ailab.github.io/soulx-podcast/

近期,文本转语音(TTS)合成技术取得了显著进展,语音的表现力和自然度都有了大幅提升。然而,现有的大多数系统都是针对单人语音合成(TTS)而设计的,在生成连贯的多人对话方面(AI播客)存在不足。本技术报告介绍了 SoulX-Podcast 系统,该系统专为播客风格的多轮、多角色对话语音生成而设计,同时在传统的文本转语音(TTS)任务中也达到了最先进的水平。为了满足多轮口语对话对更高自然度的要求,SoulX-Podcast 集成了多种副语言控制功能,并支持普通话、英语以及包括四川话、河南话和粤语在内的几种中国方言,从而能够生成更具个性化的播客风格语音。实验结果表明,SoulX-Podcast 能够持续生成超过 90 分钟的对话,保持稳定的说话人音色和流畅的说话人转换。此外,说话人的语调还能根据上下文进行适应性调整,反映出对话推进过程中自然的节奏和语调变化。在多个评估指标上,SoulX-Podcast 在独白式语音合成和多轮对话式语音合成方面均达到了最先进的性能。

在这里插入图片描述

二、背景

基于大语言模型(LLM)的生成能力,文本转语音(TTS)已达到能够生成几乎与人类声音难以区分的语音的程度,实现了令人瞩目的自然度和零样本语音克隆性能[1]、[2]、[3]、[4]、[5]。然而,以往的大多数工作主要集中在单人语音生成上。这些系统虽然在孤立的语音任务中表现有效,但在多人、多轮对话场景中却难以保持流畅性和自然度。为填补这一空白,本技术报告介绍了SoulX-Podcast,这是一种专门用于无缝多人、多轮对话的语音合成模型。为了进一步增强对话的真实感和多样性,SoulX-Podcast还融入了对各种副语言特征和方言的有力支持,确保了更生动自然的对话体验。

基于向量量化(VQ)[15]或有限标量量化[16]的语音token化方法[6]、[7]、[8]、[9]、[10]、[11]、[12]、[13]、[14],在连续语音信号和基于离散token的大型语言模型(LLM)之间架起了桥梁。Vall-E [17] 是一个开创性的语音生成系统,它利用具有离散token的大型语言模型,并采用基于残差向量量化(RVQ)[18] 的token器。具体而言,第一层的token由自回归(AR)语言模型预测,而其余token则通过非自回归(NAR)模型生成。后续工作根据token器的选择,可以分为几种主要的建模方法:使用语言模型预测单个语义token流,然后通过流匹配生成声学特征 [5]、[19]、[20]、[21]、[22]、[23];直接根据特定模式预测跨越多个码本的声学token [24]、[25];或者直接预测单个声学token流 [2]、[3]。

上述大多数研究主要关注独白式的语音生成,而忽略了多说话者、多轮次对话合成的挑战。相比之下,对话式语音生成对自然的韵律和节奏变化提出了更高的要求,以确保对话流畅连贯。最近,一些研究开始探索这一方向。例如,Covomix [26] 采用并行通道建模策略,通过不同通道同时预测不同说话者的语音,而 MoonCast [27] 和 MOSS-TTSD [28] 则将对话文本与说话者标签合并,生成集成的多说话者对话。另一方面,最新的 FireRedTTS-2 [25] 模型以交替方式生成来自多个说话者的语音。尽管这些方法与标准的 TTS 系统相比,在对话连续性和韵律变化方面有所改进,但它们对副语言特征的有限控制仍然限制了生成对话的表达力和真实性。

在这项工作中,我们推出了 SoulX-Podcast,这是一个由大型语言模型驱动的框架,用于长篇、多说话者和多方言的播客语音合成。SoulX-Podcast 旨在通过有效建模方言差异、副语言线索和上下文相关的语调,生成稳定、连贯且富有表现力的播客风格对话语音。该框架表示交错的文本-语音序列,其中带有说话者标签的文本和相应的语音token按时间顺序对齐,从而有助于生成质量一致且说话者相似度高的长篇对话音频。实验结果表明,SoulX-Podcast 在多轮对话合成方面表现出色,并在传统 TTS 任务中展现出强大的泛化能力,突显了其在各种语音生成场景中的通用性。

总之,SoulX-Podcast 具有多个显著特点:

  • 它支持带有多种副语言标签的长篇自然对话语音生成,在多轮对话中实现了高流畅性和连贯性。
  • 除了普通话和英语,SoulX-Podcast 还为包括四川话、河南话和粤语在内的多种汉语方言提供了强大的支持,能够实现更多样化和个性化的语音生成。重要的是,所有这些方言都支持跨方言、零样本语音克隆,仅需一个音频提示即可生成任何支持方言的语音。
  • SoulX-Podcast 不仅在多轮对话语音合成方面表现出色,在语音克隆等传统 TTS 任务中也表现出色,突显了其在各种语音合成场景中的有效性和通用性。

实测:

  • SoulX-Podcast普通话的播客生成能力在情感韵律,连贯性上很出色。可以比肩豆包播客。稳定性也可以
  • 方言播客不稳定,有时候生成的还是普通话。可能跟说话人音频和目前文本有关系。
  • 生成的单人音频风格还是偏向于播客,所以不适用于电视剧,游戏等配音场景

三、方法

包含说话人身份对应关系的对话文本 - 语音配对数据是构建对话语音合成系统的必要前提。本节首先介绍本研究中使用的数据处理方法,包括对话数据的处理以及方言和副语言信息的标注。随后,我们将介绍 SoulX-Podcast 的具体算法。

3.1 数据处理

与单说话人合成不同,对话式语音生成的处理不仅需要获取对齐的文本记录,还需要明确区分说话者。如图 2 所示,整体工作流程包括语音增强、音频分割和说话人识别、文本转录以及质量筛选。此外,为了便于副语言和方言的可控性,还会提取并标注更多信息。

在这里插入图片描述

3.1.1 基本处理工作流程

  • 音频预处理:来自真实环境的对话录音通常包含背景音乐或噪声,这会对诸如转录或说话人日志等下游任务产生不利影响。为解决此问题,我们首先应用基于 UVR-MDX 的 4 声音分离工具来去除背景音频和噪声,然后将所得信号归一化至一致的幅度。
  • 分段与日志记录:处理长对话录音(例如超过 30 分钟)对传统的说话人日志记录构成挑战。由于说话人的声音特征和说话状态会随时间变化,日志记录模型可能会错误地将多个说话人身份分配给同一个人,导致说话人数量和边界对齐不一致。为缓解此问题,我们首先应用语音活动检测(VAD)[29] 将长录音分割成短语句。然后将这些短语句连接成大约五分钟的对话段。在此过程中,我们强制执行一段静音时长限制,以防止分段边界跨越不同的会话或长时间的过渡静音:如果话语间的静音超过预设阈值,则相邻的话语将被视为不同段落的起始和结束。最后,我们采用基于 Sortformer 的会话角色分离模型[30]来检测说话人边界并分配说话人标签,为后续处理生成可靠的说话人转换标注。
  • 质量过滤:尽管在初始阶段对音频记录进行了增强处理,但仍有部分片段的降噪效果不佳或本身录音质量较差。为防止此类低质量数据对模型训练产生负面影响,我们对对话片段应用了一系列过滤标准,包括信噪比(SNR)和由 DNSMOS[31] 评估的感知质量。
  • 语音识别:在质量过滤之后,我们采用双 ASR 转录策略以获取可靠的转录文本。具体而言,对话段落中的每一句话都由两个独立的 ASR 模型进行转录。对于中文语音,我们使用了 ParaformerS 和 Whisper6,而对于英文语音,我们采用了 Parakeet 和 Whisper。对于每个话语,都获得了两个转录结果,并计算了中文的字符错误率(CER)或英文的词错误率(WER)。对于 CER 或 WER 低于预设阈值的话语,完整保留,其中文转录结果采用 Paraformer 的输出,英文则采用 Whisper 的输出。对于 CER 或 WER 超过阈值的话语,仅保留文本转录,而丢弃相应的音频。这种策略在保持对话完整性和文本一致性的同时,将转录错误对语音合成训练的不利影响降至最低,从而在数据保留和转录可靠性之间实现了更好的平衡。
  • 说话人纯净度优化:为确保说话人标签的一致性,我们基于说话人embedding聚类进行了说话人纯净度优化。对于每个对话片段,将属于同一说话人的所有话语的embedding进行聚类,识别出embedding与聚类中心偏差过大的话语作为异常值。这些异常值话语从音频数据中排除,仅保留其转录文本。此策略有效减少了多轮对话合成中潜在的说话人混淆,同时最大限度地保留了整体数据。在此,我们使用在说话人验证任务上微调的 WavLM-large 模型提取说话人embedding [32]。

3.1.2 副语言和方言数据注释

副语言暗示(如笑声和叹息)在增强对话的自然度和表现力方面起着至关重要的作用。为了能够可控地生成此类暗示,我们对收集到的数据进行了副语言信息的挖掘和标注。此外,以往大多数的语音合成研究主要集中在普通话上,而像粤语和川语这样的主要中国方言却受到了较少的关注。为了便于实现方言的可控性,我们还为收集到的数据添加了方言标签,使模型能够捕捉并重现方言特有的特征。

副语言标注

为了确保副语言标签的覆盖范围广泛且精度精细,我们设计了一个两阶段的标注框架来进行数据标注。该框架结合了高通量的自动化检测与模型辅助验证,以实现效率和准确性的双重目标。

在第一阶段,我们使用针对副语言事件检测进行微调的语言特定的ASR模型来处理原始音频语料库。对于普通话数据,我们使用 Beats [33] 来粗略识别副语言线索;而对于英语数据,我们则采用 Whisperd [34] 。这一阶段能够有效地过滤掉不太可能包含相关副语言事件的片段。

在第二阶段,预先标注的片段通过 Gemini-2.5-Pro API [35] 进行模型驱动的验证和精细标注。这个多模态模型能够验证副语言事件的存在和类别,并生成精确的、时间对齐的注释以及相应的文本。

通过这一细致的两阶段过程,我们获得了约 1000 小时的高质量语音,并附有详细的副语言事件注释,为富有表现力和情境感知的语音合成提供了坚实的基础。

方言标注

为了高效收集方言语音数据,我们采用了两种互补的策略。首先,我们收集了特定方言的公开录音。其次,我们训练了一个方言识别模型,从更广泛的野外数据集中检索和分类方言话语。

在转录方面,我们发现我们的标准流程在方言语音的转录上表现不佳。因此,我们利用商业的 Seed-ASR API 来生成可靠的转录结果。通过这种方法,我们获得了约 2000 小时的四川话、1000 小时的粤语和 500 小时的河南话语音。(是不是存在打广告的嫌疑哈哈哈。由数据集可以看出四川话合成效果大于粤语大于河南话,实测也是如此)

3.1.3 语料概述

通过上述方法,我们最终获得了约 30 万小时的高质量、自然的对话式语音。此外,我们还整理了约 100 万小时的独白数据,从而形成了总计约 130 万小时的训练数据集

3.2 SoulX-Podcast

在这里插入图片描述

在“CosyVoice”系列[5]、[23]之后,SoulX-Podcast 采用了两阶段生成框架。具体而言,一个大型语言模型首先预测语义token,这些token随后通过流匹配转换为声学特征,然后通过语音编码器合成为波形音频。该大型语言模型的主体是预训练的 Qwen3-1.7B 模型,其文本代码库经过扩展,以容纳语音token和编码言语语调和方言特征的特殊token。

3.2.1 token的组织

为了实现灵活的多轮对话生成,我们采用了文本-语音交错序列,允许逐句合成。具体而言,每个说话者的文本token后面跟着其对应的语音token,然后将这些token与下一个说话者的文本和语音token按时间顺序连接起来。每个话语以一个说话者token开头,以表明说话者的身份。同样,方言控制通过在说话者token后立即插入特定方言的token来实现,而言语线索(例如笑声、叹息)被视为文本token,并放置在序列中的相应位置。下面给出了一个带有方言标签的示例:

<SPEAKER1><Sichuan><Text Tokens><Audio Tokens><SPEAKER2><Sichuan><Text
 Tokens><Audio Tokens><SPEAKER3><...>

3.2.2 训练

对话式语音数据相较于独白式语音而言相对匮乏。为了充分利用异构数据模式并提升在对话场景中的表现,我们采用了循序渐进的学习策略。

在第一阶段,从 Qwen3-1.7B 9 初始化 LLM 主干,并在独白和对话数据的混合集上进行训练,以获取基本的文本转语音能力。随后,该模型在中英文多说话人对话数据上进一步训练,融入方言和副语言元素。由于汉语方言数据量远小于普通话和英语,我们在方言数据上进行额外的微调以增强模型的方言能力,从而得到专门优化用于方言生成的播客模型。

为解决长音频生成的挑战,我们引入了一种上下文正则化机制,逐步丢弃历史语音token,同时保留其文本上下文。这促使模型依赖语义连续性而非低级声学记忆,从而提高扩展对话合成的连贯性和稳定性。

3.2.3 推理

在这里插入图片描述
在推理过程中,我们遵循训练阶段所建立的token组织方式:来自多位说话者的初始文本和语音token是交错排列的,模型会以同样的交错方式自回归地生成后续的语音token。

跨方言语音克隆。对于方言生成,我们的目标是实现跨方言的语音克隆。然而,这并非易事。与中文和英语之间明显的拼写差异不同,各种中国方言——尤其是普通话、河南话和四川话——有着相同的书写形式。即使粤语在语言上更为独特,它也与普通话存在大量的文本重叠。因此,当目标文本与普通话高度相似,且语音提示也是用普通话给出时,方言控制信号就会变得微弱。

为了解决这个问题并使一个用普通话给出的提示能够生成任何目标方言的语音,我们提出了“方言引导提示”(DGP)推理策略。具体来说,在生成方言播客之前,我们在输入文本前添加一个简短的具有典型方言风格的句子——一个能强烈反映目标方言风格的句子。这一初始表述能够有效地引导模型,在后续的生成过程中生成具有预期方言特征的语音。

四、结果

TTS方面的性能
在这里插入图片描述
播客生成的性能

在 ZipVoice-Dia 测试集上对 SoulX-Podcast 与具有代表性的对话 TTS 系统进行比较。该基准测试包含了自然的多轮对话,能够评估长篇合成中的可懂度和跨说话者一致性(cpSIM)。如表 2 所示,SoulX-Podcast 在中文和英文子集上的表现均优于近期的领先模型。具体而言,它实现了最低的 WER/CER 值和最高的 cpSIM 值,同时保持了与 UTMOS 分数相当的竞争力,展示了更出色的说话者一致性和感知质量。

在这里插入图片描述
副语言控制的性能

在这里插入图片描述
方言性能测试

SoulX-Podcast 目前支持三种主要的中国方言:四川话、河南话和粤语。我们在单句语音合成和对话生成的两种场景下对其在这三种方言上的表现进行了评估。单句测试集每个方言包含 1000 个样本,这些样本来自内部的 GPT 生成数据以及 SeedTTS、Wenetspeech-Yue-eval [40] 和 Wenetspeech-Chuan-eval [41]。对话测试集每个方言包含 100 个 GPT 生成的项目。针对不同方言的自动语音识别系统被用于计算 CER,包括针对四川话的 Wenetspeech-Chuan-ASR [41]、针对河南话的 TeleSpeech 和针对粤语的 Wenetspeech-Yue-ASR [40]。如表 4 所示,SoulX-Podcast 在所有三种方言中都能实现一致的说话者相似度,与它在普通话和英语上的表现相当。较高的 CER 值可能部分是由于自动语音识别系统的限制所致。

在这里插入图片描述

Logo

欢迎大家加入成都城市开发者社区,“和我在成都的街头走一走”,让我们一起携手,汇聚IT技术潮流,共建社区文明生态!

更多推荐