Fish Speech:开源 TTS 的天花板,10 秒克隆任意声音

语音合成这件事,曾经是大厂的专属游乐场。现在,一个开源项目用 2700 万行代码和 1000 万小时音频数据,把这道门彻底踹开了。


一、它解决了什么问题?

长期以来,高质量 TTS(文字转语音)领域存在几道根深蒂固的门槛:

1. 效果差距悬殊。 开源方案的自然度、情感丰富度与 ElevenLabs、Azure TTS 等商业产品相比,始终有一道明显的"听感鸿沟"。

2. 语音克隆门槛高。 想克隆一个人的声音,要么需要大量干净的录音数据,要么需要专门的微调流程,普通人根本玩不转。

3. 多语言处理麻烦。 传统 TTS 依赖音素词典和语种特定的预处理,切换语言就要换模型,中英混读更是老大难。

4. 情感控制粗糙。 生成语音只能控制语速、音调等基础参数,想让模型"笑着说"或"悄悄耳语",基本没有门路。

Fish Speech 的出现,把这四道门同时打开了。


二、Fish Speech 是什么?

Fish Speech 是由 Fish Audio 团队开源的 SOTA 级文字转语音系统,目前 GitHub 已获 2.7 万 Star,是当前开源 TTS 领域最受关注的项目之一。

最新版本为 Fish Audio S2,它在以下几项核心基准测试中击败了包括闭源系统在内的所有对手:

基准测试 Fish Audio S2 对比(最强闭源)
Seed-TTS Eval WER(中文) 0.54% Qwen3-TTS 0.77%
Seed-TTS Eval WER(英文) 0.99% MiniMax Speech-02 0.99%
Audio Turing Test 0.515 Seed-TTS 0.417(低 24%)
EmergentTTS-Eval 胜率 81.88%

简单说:在语音自然度的"图灵测试"中,听 Fish Speech S2 生成的语音,超过一半的人认为是真人录音。
在这里插入图片描述

核心技术亮点

① 双自回归架构(Dual-AR)

S2 将语音生成拆分为两个阶段:慢速 AR(4B 参数)负责沿时间轴预测语义编码,快速 AR(400M 参数)在每个时间步填充 9 个残差编码本。这种非对称设计在保证音质的同时,大幅提升了推理效率。

② 强化学习对齐(GRPO)

S2 采用 GRPO 进行后训练对齐,奖励信号同时包含语义准确性、指令遵循、音质偏好和音色相似度,让模型生成的语音更加稳定、自然。

③ 自然语言情感标签

这是 S2 最直观的惊喜功能。你可以在文本中任意位置插入自由格式的控制标签,比如:

今天的新闻[用播音腔]来了——[laugh]其实我也不知道该说什么。

支持 [laugh][whispers][super happy][悲伤] 等任意自然语言描述,精确控制到词级别。

④ 零样本声音克隆

只需 10~30 秒的参考音频,S2 即可克隆对应音色,无需任何微调或额外训练。

⑤ 50+ 语言,无需音素

S2 直接处理原始文本,不依赖任何音素词典或语种预处理,中英日韩法德阿拉伯语等 50+ 语言开箱即用,中英混读无缝切换。

⑥ 原生多说话人生成

一次请求中即可生成多位说话人的对话,通过 <|speaker:0|> <|speaker:1|> 等 token 控制,无需分别上传参考音频。


三、怎么用?

方式 A:直接体验(最快,0 配置)

访问官方在线演示:fish.audio,输入文本即可试听,也可上传参考音频体验声音克隆。


方式 B:本地部署(自托管)

硬件要求: GPU 显存 ≥ 24GB(推理),Linux / WSL 环境。

⚠️ 注意:S2 旗舰版需要 24GB 显存,RTX 3060(12GB)建议使用 S1-mini(0.5B 蒸馏版,HuggingFace 可下载)。

Step 1:克隆仓库

git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech

Step 2:安装依赖(以 Conda 为例)

# 安装系统依赖
apt install portaudio19-dev libsox-dev ffmpeg

# 创建虚拟环境
conda create -n fish-speech python=3.12
conda activate fish-speech

# 安装 GPU 版本(按你的 CUDA 版本选择 cu126/cu128/cu129)
pip install -e .[cu129]

Step 3:启动 WebUI

# 直接启动
python -m tools.run_webui

# 或使用 Docker(推荐生产环境)
docker compose --profile webui up

打开浏览器访问 http://localhost:7860,即可使用图形界面进行 TTS 和声音克隆。

Step 4:API 调用(集成到自己的应用)

# 启动 API 服务器
docker compose --profile server up
# 访问地址:http://localhost:8080

也可以使用官方 Python SDK:

pip install fish-audio-sdk
from fish_audio_sdk import Session, TTSRequest

session = Session("YOUR_API_KEY")  # fish.audio 申请免费 key
with open("output.mp3", "wb") as f:
    for chunk in session.tts(TTSRequest(text="你好,世界!")):
        f.write(chunk)

方式 C:声音克隆完整流程

  1. 准备 10~30 秒的干净参考音频(WAV/MP3,无背景噪音)
  2. 在 WebUI 中上传参考音频
  3. 输入目标文本,点击生成
  4. 下载输出音频

就这三步,不需要任何训练或微调。


四、总结

Fish Speech S2 代表了当前开源 TTS 的最高水准。它不只是在某一项指标上领先,而是在语音自然度、情感控制、多语言支持、声音克隆速度、推理效率这五个维度上同时达到或超越了闭源商业系统的水平——而且完全开源、可本地部署、无数据上传风险。

对于内容创作者,它是一个极低成本的专业配音工具;对于开发者,它是一个可以直接接入产品的语音合成引擎;对于研究者,它提供了完整的训练和微调链路。

唯一的门槛,是推理旗舰版 S2 对显存有较高要求(24GB)。显存受限的用户可以先用 S1-mini 过渡,或直接调用 fish.audio 的云端 API。

一句话评价:TTS 领域的 Llama 时刻,已经到来。


项目地址: https://github.com/fishaudio/fish-speech
在线体验: https://fish.audio
文档: https://speech.fish.audio
许可证: Fish Audio Research License(商业使用需联系授权)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐