|
标题:JoyVoice: Long-Context Conditioning for Anthropomorphic Multi-Speaker Conversational Synthesis 链接: https://arxiv.org/pdf/2512.19090
作者单位:JD SpeechTeam
发表时间:2025年12月22日
Demo地址:https://jea-speech.github.io/JoyVoice 这篇论文是京东(JD SpeechTeam)的,核心是推出了一个叫JoyVoice的语音生成基础模型,专门解决现在长语音合成的痛点——之前的模型大多只能处理2人轮流对话,而JoyVoice能灵活支持最多8个说话人,还能生成无边界的长对话,而且在多语言、零样本克隆这些任务上都做到了SOTA。现在的TTS(文本转语音)早就不是“机器音”的时代了,靠大语言模型(LLM)和扩散模型,零样本克隆(没见过的声音也能模仿)都做得很逼真。但问题也很明显:
- 架构分裂 :主流的两阶段模型(先让AR模型预测离散语音token,再用扩散/流匹配模型转声学特征)是分开训练的,中间的量化会丢信息,而且AR模型只关心“预测对不对”,不管后续声学重建好不好,容易出问题;单阶段模型虽然联合训练,但感受野小(抓不住长上下文),如果输入语音有噪音,还会传到LLM里导致合成不稳定。
- 场景局限 :现在大多只能做2人“你一言我一语”的对话,没法处理3个以上说话人的复杂场景;而且都是按“单句话”分割处理,长对话的韵律连贯性会断。
- 效率和鲁棒性 :有些tokenizer的序列太长,推理慢还容易“幻觉”;另外,传统TTS依赖专门的文本前端(处理标点、多音字这些),一旦遇到生僻字就拉胯。
所以JoyVoice的目标很明确: 搞定多说话人、长上下文、高自然度的语音合成,同时解决效率和鲁棒性问题。JoyVoice的核心创新点:这模型到底特别在哪?这部分是重点,JoyVoice的优势全靠这些技术撑着,每个创新都针对性解决了前面说的痛点:2.1 端到端架构(E2E-Transformer-DiT):打破“两阶段”的壁垒之前的两阶段模型像“各干各的”:AR模型生成token,流匹配(FM)模型再转声学特征,中间没沟通。JoyVoice直接把两者“绑在一起”联合训练:
- AR模型用Qwen大模型初始化,它的隐藏状态会直接传给FM模型当输入,这样梯度能双向传递——AR不仅要学好预测token,还得考虑“FM能不能用好这些信息重建声学特征”,从根源上解决了“信息瓶颈”和“优化不一致”的问题。
- 好处很实在:不用依赖离散token里的少量说话人信息,能自动学说话人特征和语义的关联,所以不用提前标“谁什么时候说话”,就能生成1-8个说话人的长对话;而且联合训练让语音的可懂度更高,实验里WER比两阶段模型低不少。
2.2 MM-Tokenizer:高效又能“抓两头”的编码器Tokenizer是把语音转成模型能懂的表示,JoyVoice的这个Tokenizer厉害在“低码率还不丢信息”:
- 基于Whisper-large-v3改造,加了FSQ量化(一种离散化方法)和CNN下采样,能做到12.5Hz的低码率(比常见的25Hz少一半),推理效率高。
- 用“多任务训练”:不仅学ASR(语音转文字),还学SER(情感识别)、AED(音频事件检测)这些,损失是“语义损失+声学重建损失”——既保证能理解语音的意思,又能还原声学细节,所以12.5Hz的性能和25Hz差不多,不会因为压缩丢太多信息。
之前的模型处理多轮对话,是把每句话拆开来合成,容易断流。JoyVoice反其道而行:
- 把整个对话做成“连续序列”,输入包含3部分:说话人标签+嵌入(比如“Speaker1”和它的特征)、所有文本token、所有语音token,不用显式标“哪句是谁说的”。
- 靠Transformer的注意力机制,模型会自动把说话人、文本内容、语音特征对应起来,能抓住跨轮的韵律(比如上个人说完,下个人的语气衔接),长对话的连贯性直接拉满。
- 动态块流匹配 :为了支持“边生成边播放”的流式场景,把LLM的输出分成小块,用“因果掩码”保证当前块只看前面的内容;训练时随机块大小,推理时想调大调小都可以,适应不同延迟需求(比如实时通话要小 block,录播可以大block)。
- 不用文本前端 :传统TTS要专门处理多音字、生僻字,JoyVoice靠大规模数据增强(比如故意加各种文本错误、生僻字样本),再用Qwen初始化,直接“硬抗”复杂文本,不用额外的预处理模块,鲁棒性强。
- 课程学习 :先训单说话人短音频(最多1分钟),打好基础;再训长音频(最多5分钟)和多说话人数据,循序渐进,避免模型一开始就“学懵”。
- 声学强化学习(APO):针对语音token级优化——生成多个候选语音序列,选那些“转文字完全没错”(CER=0)的当“好样本”,有错的当“差样本”,用DPO(直接偏好优化)的思路训模型,减少发音错误和不自然的输出。
实验做得很全面,从Tokenizer到多说话人任务都测了,先说说实验的“基本盘”,再看关键结果。
- 训练数据 :多语言(中、英、日、韩,中英语占90%以上),分两类:
- 短音频(BaseData):30秒内的单说话人片段,用来打基础;
- 长音频(LongData):30秒到5分钟,包含1-8个说话人,图4就是长音频的说话人分布——1个说话人占46.73%,越多说话人占比越少,4个以上只有0.21%不到,这也解释了后面4说话人任务稍差的原因。
- 模型对比 :除了JoyVoice(端到端),还做了个两阶段的基线(JoyVoice-Cascade),都用Qwen2.5-0.5B初始化AR模型,FM模型用3亿参数的DiT;注意,Cascade只训了单说话人数据,不支持多说话人。
- 优化设置 :AdamW优化器,暖身10000步,峰值学习率1e-4,其他参数都是常规操作。
3.2 关键实验结果:从Tokenizer到多说话人,全是SOTA先明确几个关键指标:
- CER/WER: 字符/词错误率,越低说明语音转文字越准(内容一致性好);
- cpWER: 结合了说话人分割的WER,专门测多说话人场景——不仅要看内容对不对,还要看“谁的话有没有分到别人头上”。
(1)MM-Tokenizer的性能:低码率也能打上表对比了MM-Tokenizer和Whisper-large-v3的音频理解能力(ASR、SER这些),结果是:不管25Hz还是12.5Hz,MM-Tokenizer的CER都更低,SS更高,说明它既能懂语义,又能保声学特征。下表是在SEED-TTS-Eval(常用的TTS基准)上的零样本结果:
- 25Hz下,MM-Tokenizer的端到端版(E2E)比传统的S³-Tokenizer好太多,比如中文测试集(test-zh)的CER只有0.97,SS 0.836;
- 就算降到12.5Hz,E2E版依然能打——英文测试集(test-en)的WER 1.63,难例集(test-hard)的CER 6.07,比两阶段的Cascade稳多了,证明低码率没丢关键信息。
表3对比了JoyVoice和其他SOTA模型(比如Seed-TTS、CosyVoice3):
- JoyVoice比自己的两阶段基线(JoyVoice-Cascade)好:test-zh的CER从1.13降到0.97(相对提升14.2%),test-hard从6.07降到5.55(提升8.6%);
- 加了RL的版本(JoyVoice-CascadeRL)更猛:test-zh的CER直接干到0.73,是所有模型里最低的;
- 流式版(JoyVoice-Streaming)也没拉胯:和基础版性能差不多,还提升了test-hard的SS(说话人相似度),说明“边生成边播”也能保质量;
- 加speaker embedding(说话人嵌入)会让CER稍高一点,但SS明显提升——比如JoyVoice+llm spk embed的test-zh SS 0.838,模仿得更像了。
这是JoyVoice的核心优势,用的是他们自己建的基准(JoyVoice-MSMT-eval),包含2-4说话人、1-5分钟的中英对话,结果在表5:
- JoyVoice在所有场景下都是第一:比如2说话人中文的CER 1.44、cpCER 1.88,比VibeVoice-7B(1.60⁄7.57)好太多;2说话人英文的WER 3.36、cpWER 3.61,也是最优;
- 唯一小遗憾:4说话人的cpWER比2、3说话人差(比如中文4spk的cpCER 13.34),主要是训练数据里4+说话人的样本太少(图4里占比不到1%),后续补数据就能改善。
下面是JoyVoice和其他模型在多个基准上的CER/WER对比,横轴是不同任务(比如seed-zh、2spk-zh、seed-en),纵轴是错误率。能看出来: JoyVoice在几乎所有任务上错误率都最低,比如2spk-zh的CER 1.44,比VibeVoice-7B的1.60、Mooncast的7.57都低;
- 有些模型不支持某些任务(比如多说话人),错误率直接标100,而JoyVoice全支持,且表现稳定。
他们还试了多说话人微调(mSFT):选5个说话人,总共12小时数据(每个2-3小时),对比“全参数微调”和“LoRA微调”(参数高效微调):
- 数据少(比如不到1小时)的时候,LoRA更好,不容易过拟合;
- 数据够的话,全参数微调效果稍好,但LoRA更省资源,实际用的时候可以按需选。
结论和局限:JoyVoice很能打,但还有进步空间
- 支持8说话人、5分钟长对话,是目前少有的能处理复杂多说话人场景的模型;
- 端到端架构、MM-Tokenizer、无文本前端这些设计,兼顾了质量、效率和鲁棒性;
- 在SEED-TTS-Eval和多说话人基准上都是SOTA,不管是内容一致性、说话人相似度,还是长对话的韵律连贯性,都比现有模型好。
- 4个以上说话人合成质量会下降:主要是训练数据里这类样本太少,后续要补更多多说话人对话数据;
- RL还没完全做完:目前只优化了发音错误,后续要靠RL提升长对话的稳定性和情感表达(比如开心、生气的语气);
- 不支持音乐和音频事件:现在只能生成纯语音,想支持音乐、环境音,还得搞通用的音频tokenizer和架构。
最后提一句,论文里给了demo链接( https://jea-speech.github.io/JoyVoice),感兴趣的话可以去听听实际效果,直观感受下多说话人长对话的合成质量~
阿里Fun-ASR技术报告更新v4版本,新增Nano轻量化版本,支持语种扩增到31种  NTT新成果:All-in-One ASR统一三模型双模式,手机等轻量设备落地更轻松  卡内基梅隆大学等团队改造SLM,实现高质量歌声合成  LLM音频离散化最新进展综述【2025/12/12】  用语音+文本联合训练,搞定跨域口语对话状态跟踪(DST) 
|