2026年3月9日,Fish Audio 开源了 S2-Pro,一个在多个基准测试中超越闭源系统的 TTS 模型。模型权重、训练代码和推理引擎全部开源。
自然语言控制
S2-Pro 支持自由形式的内联控制。你可以在文本中直接用自然语言描述想要的效果:
-
[whisper in small voice]- 小声耳语 -
[professional broadcast tone]- 专业播音腔调 -
[pitch up]- 提高音调 -
[laughing]- 笑声
系统支持 15,000+ 种标签,覆盖情感、语气、音量、节奏。不需要学习固定的标签集,想到什么就写什么。
训练数据
1000 万小时音频,80+ 种语言。包括日语、英语、中文、韩语、西班牙语、葡萄牙语、阿拉伯语、俄语、法语、德语,以及瑞典语、意大利语、土耳其语等 60+ 种其他语言。
不需要音素标注或语言特定的预处理。
基准测试
| 测试 | S2-Pro | 对比 |
|---|---|---|
| Seed-TTS Eval 中文 WER | 0.54% | 最低 |
| Seed-TTS Eval 英文 WER | 0.99% | 最低 |
| Audio Turing Test | 0.515 | vs Seed-TTS 0.417 |
| EmergentTTS-Eval | 81.88% | 最高 |
在 Seed-TTS 评估中,S2-Pro 的词错误率低于 Qwen3-TTS (0.77/1.24)、MiniMax Speech-02 (0.99/1.90) 和 Seed-TTS (1.12/2.25)。
Dual-AR 架构
模型分两层生成音频:
Slow AR (4B 参数):沿时间轴预测主要语义码本
Fast AR (400M 参数):在每个时间步生成剩余 9 个残差码本
这种设计让推理速度快,同时保持音频质量。
强化学习对齐
S2-Pro 用 GRPO 做后训练。关键点:用于过滤训练数据的模型,直接作为强化学习的奖励模型。这消除了预训练和后训练之间的分布差异。
奖励信号包括:
- 语义准确性
- 指令遵循
- 声学偏好
- 音色相似度
生产推理
Dual-AR 架构和标准 LLM 结构相同,可以直接用 SGLang 的优化:
- 连续批处理
- 分页 KV 缓存
- CUDA 图重放
- RadixAttention 前缀缓存
单张 H200 GPU 性能:
- RTF: 0.195
- 首音频延迟: ~100ms
- 吞吐量: 3,000+ tokens/s
声音克隆场景下,SGLang 自动缓存参考音频的 KV 状态。同一声音重复使用时,前缀缓存命中率平均 86.4%(峰值 >90%)。
实用功能
声音克隆:用短参考样本(通常 10-30 秒)克隆声音。捕捉音色、说话风格、情感倾向。
多说话人:上传包含多个说话人的参考音频,模型通过 <|speaker:i|> token 处理。单次生成可以包含多个说话人。
多轮对话:模型利用上文信息改善后续生成的表现力。
开源内容
- 模型权重:HuggingFace
- 训练和微调代码
- SGLang 推理引擎
- GitHub:fish-speech
- 技术报告 PDF
许可证:Fish Audio Research License
- 研究和非商业使用免费
- 商业使用需单独许可(business@fish.audio)
快速开始
安装
git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech
pip install uv
uv sync
命令行
python -m fish_speech.text_to_speech \
--text "你好,我是 Fish Audio S2-Pro" \
--reference_audio reference.wav \
--output output.wav
WebUI
python -m fish_speech.webui
Docker
docker pull fishaudio/fish-speech:latest
docker run -it --gpus all fishaudio/fish-speech:latest
SGLang 服务器
生产环境推荐用 SGLang:
https://github.com/sgl-project/sglang-omni
链接:
Top comments (0)