← 返回 2026-10-14

Fish Audio Drama 3:面向可导演表演的开源语音生成模型 Fish Audio Drama 3 Technical Report

Dawei Han, Shidong Li, Shijia Liao, Jiahua Liu, Songting Liu, Qingzheng Wang, Yuxuan Wang, Xin Chen, Yifan Cheng, Tianyu Li, Gangin Park, Xuehao Yang, Chang Zeng, Haoyang Zhang, Ruoyi Zhang, Xiangyu Zhang 📅 2026-10-13 👍 17 2026-11-11 18:30
人类偏好强化学习 推理系统优化 文本转语音 混合专家 MoE 线性注意力 语音生成

35B MoE 语音模型统一导戏、改戏、配音、编辑与流式合成,仅用单一人类偏好奖励对齐

前置知识

RVQ 音频 tokenizer 与语义/残差码本

把波形离散成 token 的编解码器。Drama 3 沿用 S2 的 DAC 系 tokenizer:44.1 kHz 音频每帧编成 10 个码本;码本 0 是语义码(映射进 Qwen3.5 词表的 4,096 个语义 token),码本 1–9 是逐级叠加声学细节的残差 RVQ 码。

全文的架构设计(部分码本融合、码本-MTP 解码器沿码本轴堆叠)与损失函数都围绕'每帧 10 个码本'这一结构展开,不理解它就无法理解模型如何表示和生成音频。

混合专家(MoE)

把前馈网络换成多个并列的'专家'网络,由路由器为每个 token 只选少数专家计算。Drama 3 每层 MoE 有 256 个专家,每 token 路由到 8 个,外加一个所有 token 共享的专家;35B 总参数中每 token 仅激活约 3B,以稀疏性同时换取容量与速度。

解释了 35B 模型为何能高速解码:推理引擎把专家存成块缩放 FP8(每参数 1 字节),且与 RL rollout 共用同一数值格式,是效率章节与部署方案的关键。

Gated DeltaNet 与线性注意力

线性注意力用固定大小的循环状态替代随上下文增长的 KV 缓存,Gated DeltaNet 是其门控 delta 规则变体,以常数状态携带历史。Drama 3 骨干按 3:1 混合 Gated DeltaNet 层与门控全注意力层:每 4 层仅 1 层保留 KV 缓存,其余靠常数状态压缩历史。

这是适配长导演会话(参考与历史 take 累积数千音频 token)的骨干基础,也是推理引擎大量核融合优化(Gated DeltaNet decode/prefill)的作用对象。

多 token 预测(MTP)与码本-MTP 解码器

MTP 指一次前向同时预测多个未来 token(如 DeepSeek-V3 的浅层模块)。Drama 3 把该思想搬到码本轴:13 层解码器(4 共享 + 9 逐码本)沿码本轴堆叠,每层注入上一层刚选出的码并输出下一码,同时沿时间对整个序列做因果注意力,隐状态逐层向上传递。

码本-MTP 解码器是本文最核心的架构创新,直接替代 S2 的 Fast AR 模块,是理解音质、克隆与推理速度提升的钥匙。

GRPO 与基于人类偏好的强化学习

GRPO 对每个 prompt 采样一组答案,用组内奖励的相对优势替代价值网络来更新策略。本文配套训练一个以 Bradley–Terry 损失拟合人类成对偏好的奖励模型,把原始分数经冻结锚标准化、截断到 $[-3,3]$ 后转成组内期望胜率作为奖励,且不使用 KL 惩罚。

第 3.3 与 5.2 节是论文训练与论证的重心:'删除全部规则奖励、只用单一偏好奖励'这一反常规设计的合理性问题,要靠这套机制与 Expresso 消融实验来支撑。

CUDA Graph、核启动开销与 Prefill–Decode 分离

GPU 上每个 kernel 启动有固定成本;CUDA Graph 把整步录制后重放,消除主机逐个发核的开销,但对已图表化的小批量解码,剩余瓶颈是'几乎不搬数据却耗时的辅助核'。Prefill–Decode 分离把 prefill 与逐帧解码放到不同 GPU,新请求不再让正在播放的流停顿。

第 4 章解释了'271 帧/秒从哪里来',是理解这类模型级系统论文方法论(核普查、A/B 验证、负载建模)的必经之路。

研究动机

语音合成的驱动力正从'读准文本'转向'表演'。有声书、广播剧、影视游戏配音、互动角色等应用要求模型按导演意图交付台词:怎么念要用自然语言描述、多次试录后迭代打磨、放进多角色场景与其他角色配合、个别词念错时只修那一处。上一代 Fish Audio S2 已支持行内指令与多说话人,但遗留四个硬伤。其一,架构不适配长导演会话:参考音频与历史 take 累积数千个音频 token,S2 的全注意力骨干必须全部看见,而其逐帧 Fast AR 模块只能通过单个骨干状态间接感知参考音频,音色等细节在传递中丢失。其二,控制是一次性的:指令只塑造一次生成,无法对已生成的 take 在下一轮给意见重录。其三,生成全有或全无:长 take 里改一个词就得整段重生成,其余音频全变。其四,后训练优化的是代理指标:现有 TTS 强化学习普遍奖励低词错率(WER)和高说话人相似度(SIM),而富有表现力的表演恰恰合法地偏离两者——论文以 Expresso 数据量化:带笑声的朗读使 WER 上升 0.79 个百分点,耳语使 SIM 降低 0.310,相似度奖励在 62.0%–99.7% 的配对中偏好平淡的默认读法。

本文的目标是本文的目标是构建一个围绕'可导演表演'(directed performance)的开源语音生成模型 Fish Audio Drama 3,把导演工作流完整搬进一个模型:从一条或多条参考片段为角色定音色;跟随点标签([laughs])、范围标签(...)、风格前缀和自由发挥的导演意见等自然语言指导;当 take 不合意时,在下一轮给出'[softer and warmer versus previous]'式的相对意见即可多轮改戏,且历史 take 保留在上下文中;为多角色场景一次性配音,同一音色可跨语言说话;对已有录音做局部填空编辑,只重生成出错窗口、保留周围音频;支持逐句和流式的长音频合成,文本边到边说。工程上还要求单卡解码速度远超 21.5 帧/秒的播放速率以支撑流式服务,并公开全部权重,降低表现力语音生成的研究与应用门槛。

与已有工作不同的是,本文的独特之处在于把'任务多样性、架构、训练目标'三者围绕同一 token 流重新设计。任务上,克隆、导戏、多轮改戏、场景配音、填空编辑、流式合成全部写成同一种 ChatML 式对话,损失只覆盖助手轮——不需要为每个任务单独建模或加适配器。架构上,作者没有沿用'帧内小深度 transformer'这一主流路线(S2 的 Fast AR 即属此类),而是把 DeepSeek-V3 式 MTP 的'层沿深度堆叠、隐状态向上传递'搬到码本轴:九个声学码本各配一个全宽度层,所有层沿时间对整个序列做因果注意力,参考音频的细粒度声学码直接进入每一层。训练目标上,作者大胆删除全部规则奖励(WER 奖励、说话人相似度、音质模型),只用一个在'校准锚定、有界截断'分数下运行的学习型人类偏好奖励模型,让奖励作弊保持可观测;并以'大批次、少步数、无 KL 惩罚'的 GRPO 稳定对齐。系统上,RL rollout 与线上服务共用同一套 FP8 专家数值,训练与部署一体化设计。

核心方法

直觉:导演需要'看得见全剧的演员',因此每个声学码的预测都直接关注整个序列,而非经一个压缩状态。技术上,模型沿用 S2 的音频 tokenizer(每帧 10 个码本、约 21.5 帧/秒,码 0 为语义码,其余为逐级加细的残差 RVQ 码),骨干从 Qwen3.5-35B-A3B 初始化:40 层混合结构按 3:1 堆叠 Gated DeltaNet 线性注意力层与门控全注意力层,仅 1/4 层保留 KV 缓存;每层 FFN 均为 MoE,每 token 路由到 256 个专家中的 8 个外加共享专家,35B 总参数仅激活约 3B。无音频编码器,参考音频只以 token 进入。骨干在每个音频帧位置预测下一帧语义码 $q^{(0)}_{t+1}$,13 层码本-MTP 解码器(4 共享层 + 9 逐码本层)在同一位置补齐九个声学码;反馈给骨干的只有码 0/1 的融合嵌入 $x_t=\frac{1}{\sqrt{2}}(E_{LM}[s(q^{(0)}_t)]+E^{(1)}[q^{(1)}_t])$,码 2–9 绕过骨干、直接注入解码器第一共享层,以抑制 exposure bias。

核心创新是码本-MTP 解码器对'码本轴'的处理方式。编解码语言模型历来三种做法:在主流中延迟/展平码本;帧内放一个小的深度 transformer(VALL-E、S2 Fast AR);或对每个码本阶段各跑一个全序列模型。Drama 3 属第三类但合成为单个解码器:四个共享层把骨干末层隐状态、被补全帧的语义码嵌入、以及骨干从未见过的输入帧码 2–9 之和熔成一个表示,随后九个逐码本层依次注入上一层刚选出的码 $e^{(4+k)}_t=E_c^{(k)}[q^{(k-1)}_{t+1}]$、输出下一码 $q^{(k)}_{t+1}$。与 Fast AR 的本质区别有三:上下文上,每层都沿时间因果关注整个序列(含参考音频全部十个码本),参考音色等细节直达每个码本预测,而非只经一个投影状态;训练上,它直接跑在骨干自己的序列上,复用 RoPE 与注意力掩码,一次额外因果过即并行训练所有帧的所有码本;容量上,每个码本独享全宽度层、嵌入表、输出头与贯穿全序列的 KV 缓存。第二项创新是后训练只用一个学习型偏好奖励,其校准锚定、截断于 $[-3,3]$ 的分数让整批漂移保持可见,天然抑制奖励作弊。

方法步骤详情

①预训练:阶段 1–2 用 8K 序列(文本文档、多轮 TTS 对话;指令/参考在系统轮、文本在用户轮、音频在助手轮,损失只算助手轮),数百 B token、80 语种,阶段 2 批次翻倍;阶段 3 升 16K,加长合成/流式/填空,打包 128K 行,Muon 优化器;损失 $\mathcal{L}=\mathcal{L}_{text}+0.5\mathcal{L}_{sem}+0.5\mathcal{L}_{cb}$ 桶内均值。②SFT:32K 序列、[Reference N] 参考块,教点/范围标签、风格前缀、导演意见、多轮改戏与多说话人配音;配方按留出语音 NLL 挑选。③奖励模型:同架构更小语音 LM(训至阶段 2)加标量头,Bradley–Terry 损失拟合人类偏好。④GRPO:每 prompt 温度 1 采 8 条,RM 分数经冻结锚标准化截断 $[-3,3]$ 转组内胜率;无 KL,<0.05 标准差组丢弃,$\epsilon_{low}=0.2$、$\epsilon_{high}=0.28$;每步 1,536 prompt,恒定学习率、无权重衰减、短日程,解码器冻结。

技术新颖性

与已有工作的本质差异有三层。架构层:在 codec-LM 处理码本轴的三类做法中(主流内延迟/展平;帧内小深度 transformer;每码本各跑全序列模型),本文的码本-MTP 是第三类中首个把逐码本层做成全宽度、沿时间对骨干自身序列做因果注意力、并像 DeepSeek-V3 的 MTP 模块那样向上传递隐状态的单一解码器;其训练布局直接复用骨干的 RoPE 与掩码,一次额外因果过并行训练所有帧的全部码本,而 Fast AR 需单独的逐帧码本序列;每个码本独享嵌入、层、输出头与贯穿全序列的 KV 缓存(KV 层总数 23 对 S2 的 36 反而更少)。训练层:部分码本融合(只反馈码 0/1)在保留粗粒度声学视野的同时抑制 exposure bias;删光规则奖励、只用单一校准偏好奖励,是对'TTS RL = WER 奖励 + SIM 奖励'惯例的反常规设计,并以大批次少步数日程规避奖励过优化。系统层:RL rollout 与线上服务共用同一块缩放 FP8 专家数值;核优化以同机 A/B 实测为准,甚至否决了'单测更快'的融合核(14.5µs 对被替换核的 7.5µs)。

Fish Audio Drama 3 architecture.
Figure 2: Fish Audio Drama 3 architecture.
Drama 3 training pipeline.
Figure 3: Drama 3 training pipeline.
Per-frame sequential path after the backbone step.
Figure 4: Per-frame sequential path after the backbone step.
Shape-driven kernel optimization loop.
Figure 5: Shape-driven kernel optimization loop.
Schematic timelines of streaming on one GPU (a) and with prefill–decode disaggregation (b).
Figure 6: Schematic timelines of streaming on one GPU (a) and with prefill–decode disaggregation (b).

实验结果

效率:H200 单流解码 271 帧/秒(S2 177),每帧读权重 6.0/15.6 GB,FP8 专家较 BF16 快 36%,PD 分离使单卡承载 10→24 路。奖励消融(Expresso):给出方向后 RM 在 62.2% 耳语对、64.4% 笑声对中偏好风格化读法,无方向仅 10.6%/27.1%。Seed-TTS-Eval:RL 使首 take 失败率 2.82%→1.24%、3.40%→1.84%,CER/WER 降至 1.00/2.20。克隆:LibriSpeech-PC WER 1.85、UTMOS 4.31,三参考 SIM 0.605→0.633;MiniMax 24 语集中文 CER 0.63、英文 WER 1.13、德 0.48、荷 0.59、土 0.52 全表最低。编辑:中文插入/替换 SIM 0.909/0.898、删除 WER 7.82 最优;对比 Cartesia Sonic-3,中文 WER 3.69 对 8.64。改戏(Step-Audio-Edit):风格 76.5→81.8(超 EditX 63.8),情绪与副语言 58.2/2.32 不敌其 69.3/2.89。

Decoding cost of Drama 3 and S2.
Table 1: Decoding cost of Drama 3 and S2.
Kernel launches and waits removed below CUDA graphs and PDL.
Table 2: Kernel launches and waits removed below CUDA graphs and PDL.
Styled versus default human readings in Expresso.
Table 3: Styled versus default human readings in Expresso.
SFT checkpoint and Drama 3 on Seed-TTS-Eval.
Table 4: SFT checkpoint and Drama 3 on Seed-TTS-Eval.
Cloning from one or three references on LibriSpeech-PC test-clean.
Table 5: Cloning from one or three references on LibriSpeech-PC test-clean.
MiniMax Multilingual Testset, error rate (%).
Table 6: MiniMax Multilingual Testset, error rate (%).
Ming-Freeform basic split under the CosyEdit protocol.
Table 7: Ming-Freeform basic split under the CosyEdit protocol.
Ming-Freeform WER (%) against Cartesia Sonic-3.
Table 8: Ming-Freeform WER (%) against Cartesia Sonic-3.
Step-Audio-Edit benchmark.
Table 9: Step-Audio-Edit benchmark.
查看结构化数据
任务指标本文基线提升
单流流式解码(H200) 帧率(帧/秒) 271 Fish Audio S2:177 +53%;且每帧读权重约 6.0 GB 对 15.6 GB,参数量却是对方 7 倍多
Seed-TTS-Eval 中文(RL 前 vs 后,首 take) CER (%) 1.00 SFT 检查点:1.66 −39.8%;首 take 信号检查失败率 2.82%→1.24%
Seed-TTS-Eval 英文(RL 前 vs 后,首 take) WER (%) 2.20 SFT 检查点:3.49 −37.0%;失败率 3.40%→1.84%;最终 take 1.54 对 1.60
MiniMax 多语言克隆—中文 CER (%) 0.63 OmniVoice 1.01 / Fish Audio S2 0.73 / ElevenLabs v4 0.66 全表最低(较 OmniVoice −37.6%)
MiniMax 多语言克隆—英文 WER (%) 1.13 OmniVoice 1.56 / ElevenLabs v4 1.56 全表最低(−27.6%);另德语 0.48、荷兰语 0.59、土耳其语 0.52 亦全表最低
Ming-Freeform 中文编辑(三类平均,basic split) WER (%) 3.69 Cartesia Sonic-3 infill:8.64 −57.3%,中文错误率不到对方一半
Ming-Freeform 中文插入/替换 SIM 0.909 / 0.898 CosyEdit2:0.89 / 0.89 均为最高;中文删除 WER 7.82 亦为最低(CosyEdit2 8.23)
Step-Audio-Edit 多轮风格修订(第 3 轮) 风格准确率 (%) 81.8 Step-Audio-EditX:63.8 +18.0 个百分点(情绪与副语言事件仍落后对方)
LibriSpeech-PC 多参考克隆 SIM 0.633(三参考) 单参考 0.605;OmniVoice 0.729 较单参考 +0.028,UTMOS 4.31 超 OmniVoice/CosyVoice 3 的 4.28,但仍低于 OmniVoice
Seed-TTS-Eval 英文流式 vs 非流式 WER (%) / SIM 1.86 / 0.640 非流式:1.83 / 0.640 流式几乎零质量损失(1,088 句测试集)

局限与改进

作者承认且数据可见的局限:多参考克隆 SIM 0.633 仍明显低于 OmniVoice 0.729 与 Qwen3-TTS 0.704,多参考增益有限(+0.028);Step-Audio-Edit 上情绪准确率(58.2 对 69.3)与副语言事件(2.32 对 2.89)不敌专用的 Step-Audio-EditX,说明单一偏好奖励在多目标间做了折中;粤语 CER 高达 22.70(OmniVoice 17.71),希腊语、日语、韩语等语言也不是最优,多语言覆盖不均。我的补充观察:其一,改戏与副语言评测完全依赖 Gemini-2.5-Pro 打分,LLM 裁判偏差未经人类听测交叉验证,全文没有任何 MOS 或人耳测试;其二,多个基线数字引自各自论文、评分管线不一,只有四家由作者统一重跑,可比性有折扣;其三,多说话人场景、长合成、流式文本输入等主打能力没有公开基准,论文只展示输入格式;其四,训练数据仅有'数百 B token、约 80 语言'的粗略描述,奖励模型的偏好数据规模与标注协议完全未披露;其五,RL 期间码本-MTP 解码器冻结,九个声学码从未被偏好目标直接优化。

独立分析的弱点

独立分析的弱点及改进方向:①单一奖励模型是多目标折中的单点——情绪准确率落后专用编辑模型 11 个百分点,可给 RM 增加多头/多维属性输出并在 GRPO 中按任务族加权组合,或对情绪类请求微调独立奖励头;②改戏依赖上下文里旧的 take 音频,历史越长 exposure bias 越重(模型倾向模仿自己采样出的码),目前只反馈码 0/1 部分缓解,可研究对历史 take 做重加权、噪声增强或定期裁剪上下文;③多参考克隆收益小,说明把多条参考简单拼进上下文的利用率低,可引入参考检索、注意力池化或先做说话人表征聚合再注入;④部署形态偏重:PD 分离需要多卡,核优化深度绑定 H200/B300 与特定矩阵 shape,迁移新硬件成本高,可投入编译器式自动调优以降低维护负担;⑤评测量表偏 WER/SIM 与 LLM 裁判,缺少韵律自然度、导演服从度的人类评分,容易高估实际听感;⑥删光规则奖励后,内容忠实度这类硬约束只剩信号检查加重新生成兜底,极端情况(幻觉、漏句)缺乏机制保障,可在 RM 中显式加入内容一致性维度而非退回规则奖励。

未来方向

作者提出的方向:把 Drama 3 作为表现力、可导戏语音生成的开放基座(权重已在 GitHub/HuggingFace 发布,推理经 SGLang-Omni 提供),并鼓励用户在 fish.audio 上亲自导戏。基于本文成果可自然延伸:①解冻码本-MTP 解码器参与 RL,让九个声学码也被偏好直接塑形,有望补齐副语言与情绪短板;②把 RM 扩展为可解释的多维奖励(情绪强度、节奏、音色一致性分项),支撑更细粒度的导演控制乃至'自动导演 agent';③与对话系统结合做低延迟全双工语音交互——流式文本输入已就绪,还差流式听觉与打断机制;④把'表演'从语音扩展到视频数字人与口型同步;⑤为多说话人场景配音构建公开基准(多角色、跨语言同声、长剧本一致性),填补本文自己指出的评测空白;⑥研究大批次少步数 RL 与单一偏好奖励的 scaling 规律,并覆盖更多低资源语言(粤语等失败案例是现成切入点);⑦利用 3B 激活的稀疏性蒸馏端侧模型,让消费级设备实时导戏。

复现评估

开源情况:模型权重在 GitHub(fishaudio/fish-speech)与 HuggingFace(fishaudio/drama-3)公开,官方称其为总参数最大的开放权重语音模型,推理可经 SGLang-Omni 运行。评测可复现性较好:三个基准(MiniMax Multilingual、Ming-Freeform、Step-Audio-Edit)公开且有官方脚本与评判 prompt,ASR(Whisper、Paraformer)与说话人模型(WavLM-large + ECAPA)均为公开模型;但 ElevenLabs/Inworld/Soniox/Cartesia 等基线需自购 API 重跑。主要缺口:训练数据、奖励模型及其偏好标注均未发布,'数百 B token'的预训练意味着全量复现需数十张 H200/B300 级 GPU 运行数周,只有资源充足的团队可行。相比之下,基于开放权重做下游微调或本地部署推理门槛中等:单卡 H200 即可 271 帧/秒流式服务,RTX PRO 6000 生产部署也被验证。总体评级:推理复现容易、微调可行、从头训练困难。

相似论文推荐