Fish Speech:用两条路径打造更出色的声音
大多数克隆模型只提供一条定制声音的路径:放入一段参考音频,然后期待零样本结果足够好。Fish Audio 推出的开源文字转语音项目 Fish Speech 则给了你第二种选择——当零样本克隆不够精准时,直接针对某个声音微调模型——同时还提供了远超平淡旁白的情绪和风格控制能力。
什么是 Fish Speech?
Fish Speech 采用 DualAR 架构,也就是双自回归 Transformer 设计,并使用远超 100 万小时的多语言音频进行训练。该项目的 1.5 版本覆盖 13 种语言,包括英语、中文和日语,并在独立基准测试中取得了亮眼成绩:TTS Arena ELO 得分为 1339(当时位列开源模型第一),英语词错误率为 3.5%、字符错误率为 1.2%,中文字符错误率为 1.3%。
该项目在 1.5 版本之后仍在持续演进。此后,Fish Audio Text to Speech 在 OpenAudio 系列下推出了更新一代模型,如今的旗舰模型是 Fish Audio S2——它使用超过 1000 万小时的音频进行训练,目前在 EmergentTTS-Eval、Seed-TTS Eval 和 Audio Turing Test 等评测中位居前列。如果你专门寻找的是 Fish Speech 1.5,它依然是一个真正可靠、更轻量且可以自行托管的选择;如果你优先考虑纯粹的质量和精细的情绪控制,那么 S2 就是为此打造的新一代模型。
不只二选一:零样本克隆与微调兼得
相比许多专注声音克隆的竞品,这是 Fish Speech 最鲜明的特点。零样本克隆的工作方式和你预期的一样:只需一段 10 到 30 秒的参考音频,无需任何训练步骤,就足以捕捉说话者的音色、风格和大致的情绪倾向。但在此基础上,Fish AI Text to Speech 还支持真正的微调:当一个声音需要达到零样本克隆无法稳定实现的精准度或一致性时——例如反复使用的品牌声音,或贯穿长篇项目的特定角色——你可以直接使用自己的音频数据微调基础模型,而不必接受参考音频碰巧生成的结果。
这种双路径方法在实际使用中很重要:零样本克隆速度快,对大多数一次性需求已经足够;但如果一个声音必须在数百次生成中都保持可靠,而不是只生成一个片段,制作团队往往会选择微调。
真正精细的情绪控制
许多 TTS 模型最多只提供一个“夸张程度”滑块,而 Fish Audio S2 支持通过直接写入文本的自然语言标签,在子词级别控制韵律和情绪——例如 [whisper]、[excited] 或 [angry]——让同一句话可以在说到一半时改变语气,而不是给整段音频套用同一种情绪设置。该模型还原生支持多说话者、多轮对话生成,并在训练过程中依据多种奖励信号评估自己的输出,包括语义准确性、指令遵循度、声学质量和音色相似度。这也是为什么它的情绪表达能够站得住脚,而不像是在原本平淡的旁白上生硬地贴了一个标签。
由于底层 Dual-AR 架构在结构上与标准语言模型相似,S2 还原生支持连续批处理、分页 KV 缓存和前缀缓存等高吞吐量 LLM 推理技术。如果你需要大规模处理生成请求,而不是偶尔运行单个片段,这会是一项很有意义的优势。
Fish Speech 入门
- 根据优先事项选择版本。 Fish Speech 1.5 更轻量、文档完善,适合在配置适中的硬件上自行托管;Fish Audio S2 则是当前的旗舰模型,追求最高质量和精细的情绪控制。
- 克隆代码仓库。 运行
git clone https://github.com/fishaudio/fish-speech,即可获得目标版本的代码、文档和安装说明。 - 根据模型需求检查硬件。 Fish Speech 1.5 至少需要大约 12GB 显存(生产工作负载建议 24GB);在确定部署方案前,请先确认你的 GPU 是否符合要求。
- 先尝试零样本克隆。 提供一段 10–30 秒的参考音频并直接生成,无需训练;然后再判断你的使用场景是否真的需要微调。
- 仅在零样本不够精准时进行微调。 如果某个特定声音需要在大量内容中保持一致,请按照项目的微调文档操作,而不是反复使用同一段参考音频重新生成,然后期待结果自然变得一致。
- 生产环境部署 S2 时使用 SGLang 或 vLLM-Omni 服务器。 两者都提供了专门面向 Fish Audio S2 的文档,并会利用其类似 LLM 的架构,实现显著高于基础推理脚本的吞吐量。
获得更好结果的技巧
- 让参考音频长度匹配你的目标。 在 10–30 秒范围内,较短的音频通常已足够进行快速零样本测试;如果结果不够稳定,这就意味着你应该转向微调,而不是不断尝试更长的参考音频。
- 有目的地使用情绪标签,不要处处都用。 在每句话中都加入
[whisper]或[excited]会稀释效果——只在表达确实需要变化的具体位置使用标签。 - 不要跳过许可证审查。 Fish Speech 的模型权重历来采用偏研究用途、倾向非商业使用的许可证发布(1.5 权重使用 CC BY-NC-SA,S2 使用 Fish Audio 自己的研究许可证)。在任何商业部署之前,都要仔细阅读当前条款,因为它们与 MIT 或 Apache 2.0 这类宽松许可证存在实质区别。
- 如果内容会自然切换语言,就利用混合语言处理能力。 Fish Speech 无需额外配置,就能流畅朗读中英文混合文本;这对于双语脚本很有用,不必分别生成两段音频后再进行拼接。
- 选择之前,用你的实际内容测试两个版本。 TTS Arena 排名和已发布的错误率是有用的初步信号,但声音质量取决于内容——在确定生产流程前,请使用你特有的脚本风格测试 1.5 和 S2。
Fish Speech 与其他专注克隆的模型对比
| Fish Speech (1.5 / S2) | Chatterbox | CosyVoice3 | |
|---|---|---|---|
| 零样本克隆 | 支持,参考音频 10–30 秒 | 支持,参考音频 5–10 秒 | 支持,参考音频 3–10 秒 |
| 微调支持 | 支持,原生功能 | 不是主要工作流 | 不是主要工作流 |
| 情绪控制 | 子词级标签(S2) | 夸张程度参数 | 基于指令 |
| 语言 | 13 种(1.5)/ 更多(S2) | 英语(多语言版:23 种) | 9 种语言 + 18 种中文方言 |
| 架构 | 双自回归 Transformer | 基于扩散 | 监督式语义 Token |
| 许可证 | 研究用途/倾向非商业使用 | MIT | 开放,提供托管 API |
Fish Speech 的独特定位,是服务于那些需要声音一致性超出单段参考音频保障范围的团队——微调路径正是大多数单一用途零样本克隆模型完全不具备的差异化能力。
常见问题
Fish Speech 1.5 和 Fish Audio S2 有什么区别?
Fish Speech 1.5 是同一项目发展脉络中较早、更轻量的版本,非常适合在配置适中的硬件上自行托管。Fish Audio S2 是当前的旗舰模型,使用多得多的数据进行训练,并通过自然语言标签提供更精细的情绪控制,目前在多项独立 TTS 评测中名列前茅。
Fish Speech 真的可以微调,还是只能进行零样本克隆?
两者都支持。零样本克隆无需训练步骤,只需一段 10–30 秒的参考音频即可工作;如果你需要某个特定声音达到零样本克隆无法稳定实现的一致性,则可以使用微调。
Fish Audio S2 的情绪标签如何使用?
你可以把 [whisper]、[excited] 或 [angry] 等自然语言标签直接放入输入文本,模型会在句子中的对应位置调整表达方式,而不是对整段输出应用同一种情绪设置。
Fish Speech 可以免费商用吗?
不要想当然,请仔细检查当前许可证。Fish Speech 1.5 的权重以 CC BY-NC-SA 许可证(非商业)发布,Fish Audio S2 则受 Fish Audio 自己的研究许可证约束——两者都不像 MIT 或 Apache 2.0 那样宽松,因此商业部署条款需要直接核实。
自行托管 Fish Speech 需要什么硬件?
Fish Speech 1.5 至少需要大约 12GB 显存,生产工作负载建议使用 24GB;S2 的训练规模更大,通常意味着更高的硬件需求,请查看当前文档了解它的具体要求。
在浏览器中把文字转换为语音
如果你希望完成相近的“文字 → 单人语音”流程,可以使用 Echora 的文字转语音。输入最多 5,000 个字符,选择内置音色或已保存的自定义音色,按需添加支持的表达标签并调整语音稳定度,然后试听结果并下载生成的 MP3。