我折腾本地 TTS 一直觉得有两座大山:要么模型小得像个电子喇叭,要么闭源 API 念得再好也绕不开上传文本。所以看到 Fish Audio 把自家旗舰 S2 Pro 连代码带权重一起开源时,第一反应不是兴奋,而是怀疑——这年头「开源版超越闭源」的宣传听得太多,真正落到本地往往又是另一回事。

4B 参数的双自回归架构
Fish Audio S2 Pro 的核心是一个 4B 的「主-从」双自回归模型。它把生成过程拆成两步:
- Slow AR(4B):沿时间轴预测主语义码本,负责说什么、怎么断句、整体韵律;
- Fast AR(400M):在每个时间步并行补齐 9 层残差码本,负责音色细节、呼吸、颤音这些「人声味道」。
这种拆法的好处是,Fast AR 把声学细节打包得很快,Slow AR 只专注语义,整体 RTF(实时率)能压到 0.195 左右。官方在单张 H200 上测得的 TTFA(首包延迟)约 100ms,吞吐量 3000+ tokens/s。注意这是 H200 的数据,普通显卡要打折,但架构本身确实比单一大模型更适合流式。
训练侧的数据量也很夸张:官方说用了超过 1000 万小时 音频,覆盖 80 多种语言。中文、英文、日文被标为 Tier 1,韩文、西班牙文、葡萄牙文等是 Tier 2,下面还有一长串小语种。对中文支持是原生级别,不需要额外 phoneme 或 front-end。
开源 vs 闭源,WER 真赢了
吸引我去看它的不是参数,而是官方 README 里那张评测表。Seed-TTS Eval 的字错率(WER)对比很刺眼:
- Fish Audio S2:中文 0.54%,英文 0.99%;
- Qwen3-TTS:中文 0.77%,英文 1.24%;
- MiniMax Speech-02:中文 0.99%,英文 1.90%;
- Seed-TTS:中文 1.12%,英文 2.25%。
中文和英文两项,开源的 S2 都是全场最低。Audio Turing Test 上 S2 的后验均值 0.515,比 Seed-TTS 的 0.417 高出 24%,比 MiniMax 的 0.387 高出 33%。EmergentTTS-Eval 的综合胜率 81.88%,在副语言(paralinguistics)和句法复杂度两项尤其高。

这些数据不是我测的,是官方论文和 README 里列的。对我这种本地党来说,它至少说明一件事:开源权重的上限正在逼近甚至超过某些闭源 API,前提是你要舍得给显存。
自然语言标签是最大亮点
如果只是发音准,我不会专门写它。S2 Pro 真正好玩的是 15000+ 自然语言控制标签,而且支持自由文本描述。你可以在文本里直接插:
[whisper in small voice]、[excited]、[angry]、[professional broadcast tone]、[pitch up]、[pause]、[laughing]、[sigh]……
这些标签不是只能在句首用,而是可以按字符位置精确嵌入。想做一段「前面正常念、中间突然压低声音、最后笑一下」的音频,理论上一句 prompt 就搞定。这比传统 TTS 的 SSML 或固定情感参数直观得多。
另外它支持 多说话人 和 多轮对话。你上传一段含多个说话人的参考音频,模型会给每个说话人分配 ID,然后你在文本里用 <|speaker:0|>、<|speaker:1|> 切换。长对话还能利用上下文,让后面的语气承接前面的情绪。

怎么跑起来
Fish Audio 提供了几条路:
- 官方文档:speech.fish.audio 有安装和推理教程,支持命令行、WebUI、SGLang server、vLLM Omni server;
- Docker:
fishaudio/fish-speech镜像可以直接拉,适合 NAS 或小主机; - 模型权重:放在 Hugging Face
fishaudio/s2-pro,需要接受 FISH AUDIO RESEARCH LICENSE; - SGLang / vLLM Omni:因为 Dual-AR 结构和大语言模型很像,它能直接复用 Continuous Batching、Paged KV Cache、RadixAttention 这些 LLM 推理优化。
我在 Mac mini 上还没实机跑通 4B 模型,主要还是显存和 CUDA 的问题。S2 Pro 的甜点显然在 Linux + NVIDIA 环境,Mac 用户大概只能先在线 playground 尝尝鲜,或者等社区出更小的蒸馏版。
几个实实在在的坑
1. 许可证不是标准开源。代码和权重都挂在 FISH AUDIO RESEARCH LICENSE 下,不是 Apache/MIT 这种随便用的协议。商用、再分发、改模型都可能受限,部署前必须自己读一遍 LICENSE,别默认它和 LLaMA 一样。
2. 4B 对本地硬件不友好。官方 H200 基准很漂亮,但普通玩家手上多半是 3060/4060/ Mac。想本地实时跑 4B,显存和算力都要够,否则延迟会明显上升。
3. 情感标签不是魔法。15000+ 标签听着很唬人,但自由描述对提示词工程有要求。写得太抽象模型可能get不到,写得太具体又像在写剧本,需要反复试。
4. 参考音频克隆有边界。10-30 秒样本能克隆音色,但如果原音频有噪声、口音重、情绪夸张,克隆出来的稳定性会下降。多说话人功能也需要参考音频里确实包含多人声音。
5. 文档和生态还在追赶。仓库很活跃(7 月 26 日还在推),但 SGLang-Omni、vLLM-Omni 的对接说明对普通用户来说还是偏硬核, Docker 路线相对友好。
适合谁
如果你需要 私有化部署 的高质量 TTS,或者对 音色克隆、情感控制、多说话人 有强需求,S2 Pro 值得认真试。它的评测数据确实站得住脚,开源也意味着不会被 API 额度卡脖子。
但如果你只是偶尔生成几段语音,或者设备只有核显,闭源 API 或更小的模型(比如 MOSS-TTS-Nano、Kokoro 这种)可能更省心。
对我来说,Fish Audio S2 的意义不只是又多了一个开源 TTS,而是它把「开源权重不如闭源」这条默认假设撕开了一道口子。后面如果社区能出一个 1B 左右的蒸馏版,本地跑起来就真的香了。