Fish Speech:多语言零样本语音克隆,TTS 领域的新一代开源标杆
📖 简介
📝 详细介绍
开源 TTS 长期卡在同一个取舍上:要么接闭源 API,按字符付费、音色和延迟都不由你控制;要么自己训音色,准备几小时标注数据、跑一晚上微调,换一个说话人重来一遍。Fish Speech 把这件事压缩到一段 10~30 秒的参考音频 + 一次前向推理,而且不需要音素标注、不需要强制对齐,中英日韩等十几种语言共用一套模型。它是目前少数在"开箱效果"和"可自部署"之间没做太多妥协的项目。
GitHub 数据
| 指标 | 数值 |
|---|---|
| 仓库 | fishaudio/fish-speech |
| Stars | 32,944 |
| Forks | 2,849 |
| 主要语言 | Python |
| 开源协议 | Other(非标准协议,代码与权重条款需分别核对) |
| 最近提交 | 2026-09-16 |
| 官方主页 | https://speech.fish.audio |
项目背景
Fish Speech 由 Fish Audio 团队开发。这个团队在 Bert-VITS2 时期就积累了大量中文 TTS 的工程经验,也清楚传统流水线的痛点在哪里:文本前端要 G2P、要分词、要多音字规则,中文还得处理变调;后端要音素对齐、要时长模型、要声学模型 + 声码器两段式推理。每一环都能调,但每一环也都会成为跨语言扩展的瓶颈——加一门语言,等于重写一套前端规则。
他们的解法是绕开整条链路:不预测音素,直接预测离散音频 token。文本用 BPE 切分,音频用自研 codec 量化成 token 序列,剩下的交给一个自回归语言模型。这样"支持新语言"退化成一个数据问题,而不是工程问题。项目以 SOTA 开源 TTS 为目标,主页 speech.fish.audio 提供在线试听和 API 形态的托管版本,仓库里则是完整的训练与推理代码。
核心功能解析
1. 零样本音色克隆,无需微调
给一段 10~30 秒的干净音频,模型直接从中提取音色特征,合成时用同一音色说目标语言。跨语种也成立——用中文参考音频念英文、用英文参考音频念中文,口音会带着参考说话人的特征,而不是硬切回"标准播音腔"。对做多语言内容分发的团队来说,这意味着一个配音演员的声音资产可以低成本复用到其他语种。
2. 覆盖十多种语言,共用一套权重
没有语言分支、没有 per-language 前端。中、英、日、韩、法、德、西、意、阿拉伯等语种在同一个模型里处理,中英混读基本不用做特殊切分。代价是模型对文本的"发音常识"依赖训练数据分布,生僻专有名词和罕见字偶尔会读错,这时候靠参考音频里的语速和韵律也救不回来。
3. 本地 API 服务 + 微调支持
官方提供常驻的推理服务,接口形态接近 OpenAI 的语音接口,方便接进现有后端;如果零样本效果不够稳(比如需要固定情绪、固定口播风格),可以用 LoRA 在自有数据上微调,几张消费级卡就能跑。
curl -X POST http://127.0.0.1:8080/v1/tts \
-H "Content-Type: application/json" \
-d '{
"text": "今天天气不错,我们出去走走。",
"reference_audio": "<base64 编码的 10~30 秒参考音频>"
}' \
--output out.wav
快速上手
# 环境:Python 3.10+,建议 CUDA 12.x,显存 6GB 起
git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech
pip install -e .
# 下载官方权重
python -m tools.download_model --model fish-speech-1.5
# 起一个本地 TTS 服务
python -m tools.api_server --listen 0.0.0.0:8080
微调的数据准备很朴素,一份"音频路径 + 文本"的清单即可,不需要音素标签和时长标注:
data/my_speaker/
├── wav/ # 10~30 分钟干净单人录音,建议原始采样率 ≥ 24kHz
│ ├── 0001.wav
│ └── 0002.wav
└── lab.list # 每行一条:音频路径 + 文本
1.x 各版本之间 CLI 参数有过调整,上面的命令以仓库当前 main 分支的 README 为准。
技术亮点
真正让 Fish Speech 拉开差距的是它把 TTS 建模成两级自回归问题,而不是传统的"声学模型 + 声码器"。
第一级是 slow AR:一个基于 Transformer 的因果语言模型,输入文本 token 与音频 semantic token 的交错序列,自回归预测下一个语义 token。它承担了传统方案里"文本前端 + 时长模型 + 韵律预测"的全部职责——音素、重音、停顿这些信息不是被规则显式指定的,而是在训练中被隐式学到的。
第二级是 fast AR:以 slow AR 的输出为条件,一次性并行生成更细粒度的 acoustic token,喂给 codec 解码器还原波形。这个拆分解决的是自回归 TTS 的老问题——如果所有 token 都串行预测,延迟和长文本稳定性都会崩;把序列拆成"语义层慢速、声学层快速"两层,既保住了语言建模的质量,又把推理步数压下来。
底层的 codec(VQGAN 系)是另一处关键设计。它把音频压成每秒几十个 token 的离散序列,压缩比足够高,序列长度才落进语言模型能稳定建模的范围;同时重建质量要够好,否则量化噪声会直接体现在音色相似度上。离散 token 还带来一个隐性收益:音频和文本可以拼进同一个词表,用同一套 Transformer 训练,多模态扩展的成本极低。
代价也要说清楚:放弃了音素约束,就等于放弃了发音的强可控性。多音字、生僻词、数字符号的读法只能靠模型猜,工程上要配合 repetition penalty、top-p 和文本规范化来兜底。另外权重通常附带非商用条款,商用前必须逐条看 LICENSE 和模型卡,别默认"GitHub 开源 = 随便用"。
同类项目对比
| 项目 | 零样本克隆 | 文本前端 | 语言覆盖 | 权重许可 | 微调门槛 |
|---|---|---|---|---|---|
| Fish Speech | 支持,10~30s 参考音频 | 无音素,BPE 直接建模 | 十多种,共用一套权重 | 非标准/偏非商用,需核对 | LoRA,单卡可跑 |
| GPT-SoVITS | 支持,但微调后更稳 | 需要 G2P,中文前端较重 | 中英日韩粤为主 | MIT | 主流用法,数据要求低 |
| CosyVoice 2 | 支持 | 无音素,token 建模 | 中英日韩等 | Apache 2.0 | 支持 |
| F5-TTS | 支持 | 无音素,字级建模 | 中英为主 | 代码与权重条款不同 | 支持 |
| XTTS-v2 | 支持 | 需要音素化 | 十余种 | 非商用模型许可 | 支持 |
差距主要在两点:一是多语言不做前端分支,扩展语言不用改代码;二是零样本开箱即用,不需要像 GPT-SoVITS 那样先花半小时微调才有可用的音色。反过来,如果业务对发音准确率要求到"每个数字都不能错"的程度,带 G2P 的方案反而更可控。以上均为各项目当前公开声明的口径,落地前请自行确认最新许可。
总结
如果你需要一个可自部署、跨语种、拿到参考音频就能出声的 TTS 基座,Fish Speech 目前是开源里最省事的选择之一;但如果你的场景要求发音零错误或明确商用授权,先用小样本压测一遍再决定。
适合的人:做多语言内容配音/播客工具的开发者、需要私有化部署语音合成的团队、以及想拿一个 codec + 自回归架构做二次研究的算法工程师。不太适合的人:只想调个云端接口、不想碰 GPU 的纯应用层开发者——那种情况下直接用官方托管 API 更划算。
AI 项目推荐
AI 音频- 标签
- #语音合成 #TTS #语音克隆 #多语言 #开源
- 浏览
- 👁️ 3
- 发布日期
- 2026-10-05