Fish Audio Drama 3 上车 SGLang-Omni:首帧音频百毫秒内,主打 16 人配多角色长文

Fish Audio 今天挂出了新一代 TTS 模型 Drama 3,直接把自己定位成「多角色、长内容」的配音工具。一句话概括它的存在感:一段文本里最多带 16 个说话人,长的稿件自动分块、可以按块流式出音频,而且首帧音频在单路请求时能压到 100 ms 以内。这不是那种「听起来还行但只能念单句」的玩具,它是奔着有声内容生产流水线去的。

模型本身的规格是 35B 总参数、每 token 只激活 3B 的 MoE 文本主干,混合了全注意力和线性注意力;音频侧用了 10 个 codebook、按整个序列因果解码的 Codebook-MTP 解码器,MoE 专家用 FP8,其余权重保持 bf16。从发布第一天就挂在 SGLang-Omni 上,装好即用,不用自己拼推理栈。

真正让人提神的,是它那套围绕「场景」和「编辑」设计的玩法。说话人用 <|speaker:0|> 到 <|speaker:15|> 的标签写进文本里,一个请求就能生成 16 个人的对话。参考音频只给一段 3.9 秒的 en0 就能克隆声线。还有两个挺实在的机制:一是 [sighs]、[laughs] 这类点标签,直接写进文本里、放在事件该落的位置,让叹气、笑声落在正确的时间点,不用后期手动对齐;二是「编辑即续写」——你把前面生成的 VQ token 当上下文丢回去,它就能把「星期三中午交」改成「星期四中午交」再改成「下午五点交」,几轮改稿在同一个上下文里链起来。

这个编辑功能对真正做产线的人挺值钱。以前多角色配音改一句词,要么整段重录、要么靠人去对齐时间轴;现在把历史 take 塞回 prompt 就能定点修正,情绪和音色不用重新找。

性能这块,官方给了 H200 上的流式数据。单路并发首帧音频 p50 是 88.9 ms,已经够「边说边出」的体验;并发 16 路时音频生成速度约是回放速度的 2.7 倍,并发 64 路时平均 RTF 也才 0.80。比较有意思的一个配置差异是 vocoder 放哪:放在引擎所在 GPU 上,256 路并发时词器满载、新流的首帧音频得排队;挪到第二块 GPU 之后,256 路并发吞吐提升了约 72%、中位 TTFA 降了 37%。官方建议,需要同时跑大量并发流、又要短首帧延迟的部署,就选这个布局。这类「放哪块卡」的取舍能写进部署文档,说明它不是演示型 demo,而是真按生产环境调过的。

模型挂在 Hugging Face 上,过去一个月下载 839 次,附带 1 个微调版、14 个量化版,14 个 Space 在用,技术报告一天前刚发布。许可证用的是 Fish Audio Community License,商用前记得先翻一下条款。

对做有声书、播客、游戏配音、短视频口播这类内容的人,Drama 3 把「多角色 + 长文 + 定点编辑」揉到了一起,配合 SGLang-Omni 能直接跑流式服务,比以前的单句 TTS 高了一个层级。目前看到的局限是它更适合「按既定脚本产音频」而不是即兴对话,真正想要实时聊天的场景还得再等。要上手,先去读它那份 SGLang-Omni Cookbook,装环境、起服务、跑流式 API 的例子都有。

相关链接:
- Fish Audio Drama 3 模型页
- Drama 3 SGLang-Omni Cookbook
- SGLang-Omni
- Technical Report
- Fish Speech GitHub