Fish Audio 开源 S2:细粒度控制与生产级串流的完美结合

S2 Pro 已在 Fish Audio App 上线,其开源代码和模型可通过项目的 GitHub 仓库和 HuggingFace 获取。
Fish Audio 已开源 S2,这是一款支持通过自然语言标签(如 [laugh]、[whispers] 和 [super happy])对韵律和情感进行细粒度行内控制的文本转语音(TTS)模型。该系统在约 50 种语言、超过 1000 万小时的音频上进行了训练,结合了强化学习对齐与双自回归架构。此次发布包含模型权重、微调代码以及基于 SGLang 的流式推理引擎。
通过自然语言实现细粒度行内控制
S2 通过在文本中的特定单词或短语位置直接嵌入自然语言指令,实现了对语音生成的 行内控制。S2 不依赖于固定的预定义标签集,而是接受自由形式的文本描述——例如 [whisper in small voice]、[professional broadcast tone] 或 [pitch up]——允许在词级进行开放式的情感控制。
在音频图灵测试(Audio Turing Test)中,S2 在加入指令重写后的后验均值达到了 0.515,而 Seed-TTS 为 0.417,MiniMax-Speech 为 0.387。在 EmergentTTS-Eval 评测中,它对 gpt-4o-mini-tts 基准的综合胜率达到了 81.88%——是所有评估模型中最高的,包括来自 Google 和 OpenAI 的闭源系统。
S2 输入格式示例,展示了带有自由形式自然语言行内标签的多人对话,用于细粒度控制。
统一的配方:来自相同模型的数据清洗与 RL 奖励
S2 的核心架构决策之一是:将用于过滤和标注训练数据的模型,在强化学习(RL)阶段直接复用为奖励模型(Reward Models):
- 语音质量模型在数据过滤期间对音频的信噪比(SNR)、说话人一致性和清晰度等维度进行评分,然后在 RL 期间充当声学偏好奖励。
- 富文本转录 ASR 模型(基于 Qwen3-Omni-30B-A3B 进行持续预训练)在数据清洗过程中生成带有行内副语言标注的增强转录文本,随后通过重新转录生成的音频并与原始提示词对比,提供清晰度和指令遵循奖励。
这种双重用途的设计从结构上消除了预训练数据与训练后目标之间的分布不匹配问题——而这一问题在其他将奖励模型与数据流水线分开训练的 TTS 系统中仍未得到解决。
模型内部:双自回归(Dual-AR)架构
S2 构建在 decoder-only Transformer 之上,并结合了基于 RVQ 的音频编解码器(10 个码本,约 21 Hz 帧率)。将所有码本沿时间轴展开会导致序列长度爆炸 10 倍。S2 通过双自回归(Dual-AR)架构解决了这一问题:
- Slow AR 沿时间轴运行,预测主要的语义码本。
- Fast AR 在每个时间步生成剩余的 9 个残差码本,重建细粒度的声学细节。
这种非对称设计——时间轴方向 40 亿参数,深度轴方向 4 亿参数——在保持推理效率的同时保留了音频保真度。
语音的强化学习对齐
在后期训练(Post-training)中,S2 使用了组相对策略优化(GRPO),选择该算法是为了避免 PPO 式价值模型在长音频上下文中的显存开销。奖励信号结合了多个维度,包括:
- 语义准确性和指令遵循
- 声学偏好评分
- 音色相似度
基准测试结果
S2 在多个公开基准测试中均取得了领先成绩:
| 基准测试 | Fish Audio S2 |
|---|---|
| Seed-TTS Eval — 字错率 (WER, 中文) | 0.54% (全场最佳) |
| Seed-TTS Eval — 字错率 (WER, 英文) | 0.99% (全场最佳) |
| 音频图灵测试 (带指令) | 0.515 后验均值 |
| EmergentTTS-Eval — 胜率 | 81.88% (全场最高) |
| Fish 指令基准 — TAR | 93.3% |
| Fish 指令基准 — 质量 | 4.51 / 5.0 |
| 多语言 (MiniMax 测试集) — 最佳 WER | 11 / 24 种语言 |
| 多语言 (MiniMax 测试集) — 最佳 SIM | 17 / 24 种语言 |
在 Seed-TTS Eval 上,S2 在所有评估模型(包括闭源系统)中实现了最低的 WER:Qwen3-TTS (0.77/1.24)、MiniMax Speech-02 (0.99/1.90)、Seed-TTS (1.12/2.25)。在音频图灵测试中,0.515 的成绩比 Seed-TTS (0.417) 高出 24%,比 MiniMax-Speech (0.387) 高出 33%。在 EmergentTTS-Eval 中,S2 在副语言(91.61% 胜率)、问题(84.41%)和语法复杂度(83.39%)方面表现尤为强劲。
如需更广泛地了解不同方案在情感控制、延迟和多语言支持方面的评估情况,可以参考这份 独立的 AI 语音和音频工具对比。
通过 SGLang 实现生产级串流
由于 S2 的双自回归(Dual-AR)架构在结构上与标准自回归 LLM 同构,因此它只需极少修改即可直接继承来自 SGLang 的所有 LLM 原生服务优化——包括连续批处理(Continuous Batching)、分页 KV 缓存(Paged KV Cache)、CUDA 图重放(CUDA graph replay)以及基于 RadixAttention 的前缀缓存(Prefix Caching)。
在声音克隆方面,S2 将参考音频 Token 置于系统提示词中。SGLang 的 RadixAttention 会自动缓存这些 KV 状态。当在不同请求中复用同一声音时,平均前缀缓存命中率可达 86.4%(峰值超过 90%),这使得参考音频的预填充开销几乎可以忽略不计。
在单台 NVIDIA H200 GPU 上:
- 实时因子 (RTF): 0.195
- 首包音频时间: 约 100 毫秒
- 吞吐量: 在保持 RTF 低于 0.5 的情况下,每秒可处理 3,000+ 声学 Token
有关在云端 H100/H200 GPU 上运行 S2 的分步教程,请参阅 Spheron 的开源 TTS 部署指南。
此次发布的意义
S2 的发布不仅仅是一个模型权重,而是一个完整的系统:包括模型权重、微调代码和生产级推理栈。
有两个设计选择尤为突出。首先,统一的数据与奖励流水线从架构层面消除了预训练与 RL 之间的分布不匹配这一结构性问题,而其他 TTS 系统尚未解决此问题。其次,双自回归架构与标准 LLM 之间的结构同构意味着 S2 可以利用 LLM 服务优化的完整生态系统,而不需要定制化的推理基础设施。
S2 现已通过项目的 GitHub 仓库、SGLang-Omni、HuggingFace 发布,并在 fish.audio 提供交互式演示。


