Fish Speech:多语言零样本语音克隆,TTS 领域的新一代开源标杆

Fish Speech:多语言零样本语音克隆,TTS 领域的新一代开源标杆

AI 音频

📖 简介

Fish Speech 是当前开源 TTS 里少见的"多语言 + 零样本克隆"兼顾方案,32.9k Stars。只需十几秒参考音频就能复刻音色,中英日韩等语言切换不串味,并支持流式推理,是从个人配音到语音产品落地都用得上的合成引擎。

📝 详细介绍

开源 TTS 长期卡在同一个取舍上:要么接闭源 API,按字符付费、音色和延迟都不由你控制;要么自己训音色,准备几小时标注数据、跑一晚上微调,换一个说话人重来一遍。Fish Speech 把这件事压缩到一段 10~30 秒的参考音频 + 一次前向推理,而且不需要音素标注、不需要强制对齐,中英日韩等十几种语言共用一套模型。它是目前少数在"开箱效果"和"可自部署"之间没做太多妥协的项目。

GitHub 数据

指标数值
仓库fishaudio/fish-speech
Stars32,944
Forks2,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