Fish Audio API实战:5分钟接入AI语音合成

· 小白基础技术分享

为什么选Fish Audio而不是ElevenLabs?

Fish Audio在2026年初完成 $5200万融资 后迅速崛起。其自研的 S1 模型在第三方盲测中以 66%胜率 碾压 ElevenLabs V3 等行业头部选手,字错率(CER)仅 0.4%——这个数据在中文语音合成领域是目前公开可查的最佳水平。

Fish Audio API实战:5分钟接入AI语音合成封面

但对开发者而言,最诱人的是接入体验:REST API + 官方 Python/JS SDK + 10秒录音即可完成声音克隆。更难得的是,Fish Audio的TTS与声音克隆共享同一套API端点——也就是说,你用系统内置声音还是自己克隆的声音,代码逻辑完全一致,只是 `reference_id` 不同。从零到发出第一段AI语音,真的只需5分钟。本文带你一步步实操,每段代码都可以直接复制运行。


第一步:注册并获取API Key

访问 [fish.audio](https://fish.audio) 注册账号(支持Google/GitHub快捷登录)。新用户注册后会获得一定的免费调用额度,足够开发和测试使用。进入 开发者面板,点击”创建新应用”,填写应用名称(如”我的第一个TTS工具”),选择TTS类型。创建成功后,系统会生成一个唯一的API Key。

⚠️ **关键提醒**:API Key 绝对不能提交到公开Git仓库!一旦泄露,任何人都可以用你的额度。最佳实践是立即设置环境变量,代码中通过 `os.environ` 读取而非硬编码:

export FISH_AUDIO_KEY="sk-your-api-key-here"

将上述命令加入 `~/.bashrc` 或 `~/.zshrc` 使其持久化。


第二步:安装SDK

Fish Audio提供了官方Python SDK,一条命令搞定:

pip install fish-audio-sdk

验证安装是否成功:

python3 -c "from fishaudio import FishAudio; print('SDK ready')"

第三步:基础文字转语音(TTS)

以下代码完成一次完整的TTS调用——从文本到MP3文件:

from fishaudio import FishAudio
from fishaudio.utils import save
import os

# 使用环境变量中的API Key
client = FishAudio(api_key=os.environ.get("FISH_AUDIO_KEY"))

# 选择系统内置声音并生成语音
audio = client.tts.convert(
    text="欢迎使用Fish Audio语音合成服务,这是你的第一条AI生成的语音。",
    reference_id="03397b4c"  # 系统内置的中文女声ID
)
save(audio, "output.mp3")
print("语音文件已保存为 output.mp3")

`reference_id` 可以换成你在Fish Audio平台创建或克隆的任何声音ID。系统提供数十个内置声音,覆盖中、英、日、韩等8种语言。如果你不确定用哪个声音,可以在 Fish Audio 网页端的”声音市场”中试听并挑选。每个声音都有唯一ID,复制即可使用。对于中文场景,`03397b4c` 和 `07c8f7a1` 是两个质量很高的内置女声,`0f2b3e9d` 则是稳重的男声——建议先用这几个测试。


第四步:情绪控制——让语音拥有温度

Fish Audio 的一大亮点是情绪标签系统。与传统TTS只能输出”平铺直叙”的机器声不同,Fish Audio通过在文本中嵌入英文情绪关键词,模型会自动调整语气、语速和音调。这对于有声书制作、游戏配音和虚拟主播场景尤其有价值。

以下是多种情绪混合控制的示例代码:

# 多种情绪混合控制
audio = client.tts.convert(
    text="(excited) 这个功能实在太强大了!(calm) 让我来仔细演示一下具体怎么用。(confident) 你一定会爱上它的。",
    reference_id="your-custom-voice-id"
)
save(audio, "emotional_demo.mp3")

支持的情绪标签包括:`(excited)`、`(calm)`、`(nervous)`、`(confident)`、`(sad)`、`(angry)`、`(whisper)` 等。


第五步:声音克隆

只需 10秒 参考音频即可完成高质量克隆。你可以在网页端上传音频(路径:控制台 → 声音克隆 → 上传样本),也可以调用克隆API。克隆完成后系统会返回一个唯一的 `voice_id`,将其填入 `reference_id` 参数即可永久使用。

关键点:声音克隆并不是每次TTS调用都重新分析音频。克隆是一次性的——你录10秒样本,系统生成一个声音模型,之后所有TTS调用直接引用这个模型ID。所以延迟和普通TTS完全一样,不会因为使用克隆声音而变慢。

# 上传参考音频进行克隆(通过网页端或API)
# 克隆完成后获得 voice_id,后续直接使用
audio = client.tts.convert(
    text="这是我的克隆声音在说话,几乎和原声没有区别。",
    reference_id="your-cloned-voice-id"  # 克隆后获得的唯一ID
)
save(audio, "cloned_result.mp3")

克隆一次即可永久使用,不需要每次调用都重新上传。


常见问题与解决方案

**问题一**:`reference_id` 返回 404 → 确认在 Fish Audio 控制台已成功创建/克隆声音,且 ID 字符串完全一致(区分大小写)。

**问题二**:中文文本中的情绪标签后出现英文发音 → 这是已知局限,尽量避免在中文文本内混合大量英文。情绪标签不被朗读,纯英文标签不会触发此问题。

**问题三**:免费套餐API调用超限 → 免费层有每日调用频率限制。生产环境建议升级 **Pro 套餐**(支持流式输出、更高并发)。


Fish Audio 已成为中文语音合成领域最值得关注的API方案。从注册到生成第一段个性化语音,5分钟绰绰有余——剩下的时间,去创造吧。

🔥 关注LC智趣厅


— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn

Scroll to Top
微信公众号:LC智趣厅

扫码关注微信公众号
LC智趣厅