Fish Speech:超越闭源的顶尖 TTS 系统,多语言语音合成的突破之作

Fish Speech:超越闭源的顶尖 TTS 系统,多语言语音合成的突破之作

在文本转语音(TTS)领域,开源系统一直难以超越闭源服务。然而,Fish Audio 推出的 Fish Speech S2 正在改变这一格局——这是在开源和闭源系统中都堪称最佳的 TTS 系统。

Fish Speech S2 在超过 1000 万小时的音频数据上进行训练,覆盖约 50 种语言。它结合了强化学习对齐和双自回归架构,能够生成自然、逼真且情感丰富的语音。

🏆 性能表现:全面超越对手

Fish Speech S2 在多个基准测试中展现了卓越的性能:

Seed-TTS 评测

指标 Fish Audio S2 Qwen3-TTS MiniMax Speech-02 Seed-TTS
WER(中文) 0.54% 0.77% 0.99% 1.12%
WER(英文) 0.99% 1.24% 1.90% 2.25%

Audio Turing Test

  • Fish Audio S2:0.515(后验均值)
  • Seed-TTS:0.417(低 24%)
  • MiniMax-Speech:0.387(低 33%)

EmergentTTS-Eval

  • 总体胜率:81.88%(最高)
  • 副语言学(paralinguistics):91.61% 胜率
  • 问题回答:84.41% 胜率
  • 句法复杂性:83.39% 胜率

多语言性能

在 MiniMax 测试集的 24 种语言中:
- 11 种语言达到最佳 WER
- 17 种语言达到最佳 SIM(相似度)

🎯 核心技术特性

1. 自然语言细粒度控制

S2 通过在文本中的特定单词或短语位置嵌入自然语言指令,实现语音生成的局部控制。

不同于依赖预定义标签集的传统方法,S2 接受自由形式的文本描述:

今天天气真好[laugh],我们可以去公园玩
请小声一点说[whisper in small voice]
用专业的广播语气来说[professional broadcast tone]
提高音调[pitch up]

这意味着你可以用任何自然语言描述来控制语音表现,无需预先定义的标签系统。

2. 双自回归架构

S2 基于仅解码器的 Transformer,结合了基于 RVQ 的音频编解码器(10 个码本,约 21 Hz 帧率)。双自回归架构将生成分为两个阶段:

┌─────────────────────────────────────────────────────────────┐
│                    双自回归架构                             │
├─────────────────────────────────────────────────────────────┤
│  Slow AR(慢速 AR)                                       │
│  - 沿时间轴运行                                           │
│  - 预测主要语义码本                                       │
│  - 4B 参数                                                │
├─────────────────────────────────────────────────────────────┤
│  Fast AR(快速 AR)                                        │
│  - 在每个时间步生成剩余 9 个残差码本                        │
│  - 重构细粒度的声学细节                                     │
│  - 400M 参数                                              │
└─────────────────────────────────────────────────────────────┘

这种不对称设计——时间轴 4B 参数,深度轴 400M 参数——在保持音频保真度的同时,使推理高效。

3. 强化学习对齐

S2 使用**群体相对策略优化(GRPO)**进行后训练对齐。用于过滤和标注训练数据的相同模型直接在 RL 期间作为奖励模型使用——消除了预训练数据和后训练目标之间的分布不匹配。

奖励信号结合了:
- 语义准确性
- 指令遵循度
- 声学偏好评分
- 音色相似度

4. 生产级流式推理

由于双自回归架构在结构上与标准自回归 LLM 同构,S2 直接继承了来自 SGLang 的所有 LLM 原生服务优化:

  • 连续批处理
  • 分页 KV 缓存
  • CUDA Graph 重放
  • 基于 RadixAttention 的前缀缓存

在单个 NVIDIA H200 GPU 上:

指标 性能
实时因子(RTF) 0.195
首音频时间 ~100 ms
吞吐量 3000+ 声学 Token/秒,同时保持 RTF < 0.5

5. 多语言支持

S2 支持高质量多语言文本转语音,无需音素或特定语言的预处理。支持的语言包括:

英语、中文、日语、韩语、阿拉伯语、德语、法语...以及更多!

语言列表在不断扩展,访问 Fish Audio 了解最新发布。

6. 原生多说话人生成

Fish Speech S2 允许用户上传包含多个说话人的参考音频,模型将通过 <|speaker:i|> 标记处理每个说话人的特征。

# 上传包含多个说话人的参考音频
ov add-speaker audio_with_multi_speakers.wav

# 使用说话人 ID 控制生成
<|speaker:0|>你好,我是说话人 A
<|speaker:1|>你好,我是说话人 B
<|speaker:0|>很高兴见到你

这使得单一生成可以包含多个说话人,无需为每个说话人单独上传参考音频。

7. 多轮生成

得益于模型上下文的扩展,模型现在可以使用先前信息来提高后续生成内容的表现力,从而增加内容的自然度。

8. 快速语音克隆

Fish Speech S2 支持使用短参考样本(通常 10-30 秒)进行精确的语音克隆。模型捕获音色、说话风格和情感倾向,产生逼真且一致的克隆语音,无需额外微调。

📦 模型版本

模型 大小 可用性 描述
S2-Pro 4B 参数 HuggingFace 全功能旗舰模型,最大质量和稳定性

🚀 快速开始

安装

使用官方文档轻松上手:

命令行推理

# 安装 Fish Speech
pip install fish-speech

# 运行 TTS
fish-speech --text "你好,世界" --output output.wav --speaker-reference speaker.wav

WebUI 推理

# 启动 WebUI
fish-speech-webui

# 访问 http://localhost:7860

Docker 部署

# 拉取 Docker 镜像
docker pull fishaudio/fish-speech

# 运行容器
docker run -p 7860:7860 fishaudio/fish-speech

SGLang 服务器

对于生产级流式推理,使用 SGLang 服务器:

# 安装 SGLang-Omni
pip install "sglang-omni[fishaudio]"

# 启动服务器
python -m sglang_omni.serve.fishaudio_s2_pro \
  --model-path fishaudio/s2-pro \
  --port 8000

# 调用 API
curl http://localhost:8000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{
    "text": "你好,世界",
    "speaker": "speaker_id"
  }'

详细使用方法请参考 SGLang-Omni README

🎨 高级功能示例

情感控制

text = "今天是个好日子[super happy],阳光明媚,微风不燥"
fish_speech.generate(text, speaker="speaker.wav")

语速控制

text = "请慢一点说[slow down],让我听清楚每一个字"
fish_speech.generate(text, speaker="speaker.wav")

音调变化

text = "注意听我说[pitch up],这很重要[serious]"
fish_speech.generate(text, speaker="speaker.wav")

多角色对话

text = """
<|speaker:0|>你好,请问有什么可以帮你的吗?
<|speaker:1|>我想查询一下我的订单状态
<|speaker:0|>好的,请提供您的订单号
"""
fish_speech.generate(text, speaker_refs=["speaker0.wav", "speaker1.wav"])

📚 技术细节

RVQ 编解码器

Fish Speech 使用残差向量量化(RVQ)编解码器:

  • 10 个码本:分层量化音频
  • 21 Hz 帧率:平衡质量和效率
  • 高效压缩:显著降低模型输入大小

Transformer 架构

  • 仅解码器架构:与 GPT 类似
  • 注意力机制:高效处理长序列
  • 位置编码:支持长上下文

强化学习对齐

  • GRPO 算法:群体相对策略优化
  • 多目标奖励:语义、指令、声学、音色
  • 数据重用:训练数据作为奖励模型

🌟 应用场景

1. 有声读物制作

使用 Fish Speech 快速生成高质量的有声读物,支持多种语言和情感表达。

2. 游戏角色配音

为游戏角色生成自然、生动的语音,支持多角色对话和情感控制。

3. 视频配音

自动为视频内容添加配音,支持同步生成多语言版本。

4. 虚拟助手

为虚拟助手提供自然、流畅的语音交互能力。

5. 无障碍服务

为视障用户提供文本转语音服务,改善访问体验。

6. 语言学习

帮助语言学习者练习听力,提供标准发音示例。

🎯 性能优化建议

GPU 选择

GPU 推荐场景 预期性能
NVIDIA H200 生产环境 RTF < 0.2
NVIDIA A100 高性能需求 RTF < 0.3
NVIDIA 4090 开发测试 RTF < 0.5
NVIDIA 3090 基础需求 RTF < 0.8

批处理优化

  • 使用 SGLang 的连续批处理功能
  • 合理设置批大小以提高吞吐量
  • 使用前缀缓存减少重复计算

内存优化

  • 使用 KV 缓存减少显存占用
  • 合理设置上下文长度
  • 使用半精度浮点数(FP16)推理

📖 许可证声明

许可证声明

本代码库及其关联的模型权重在 FISH AUDIO RESEARCH LICENSE 下发布。详细信息请参考 LICENSE 文件。我们将对任何违反许可证的行为采取行动。

法律免责声明

我们不对代码库的任何非法使用承担任何责任。请参考当地法律关于 DMCA 和其他相关法律的规定。

🔗 相关资源

项目资源

技术论文

社区

🏆 致谢

Fish Speech 站在巨人的肩膀上,感谢以下项目的贡献:

🎯 总结

Fish Speech S2 是一个革命性的开源 TTS 系统:

  • 顶尖性能:在多个基准测试中超越所有闭源和开源系统
  • 自然控制:使用自然语言指令实现细粒度控制
  • 多语言支持:覆盖 50+ 种语言,无需特定预处理
  • 生产级性能:RTF < 0.2,适合实时应用
  • 开源可用:FISH AUDIO RESEARCH LICENSE 下开源

如果你正在寻找一个性能卓越的开源 TTS 系统,Fish Speech 绝对是你的最佳选择。


本文由 cnbugs.com 发布,转载请注明出处。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注