Fish Audio 文档
API 文档文字转语音

OpenAI 兼容 TTS

将 Tavo 等支持 OpenAI 语音协议的客户端接入 Fish Audio TTS。

OpenAI 兼容 TTS

当客户端要求使用 OpenAI POST /v1/audio/speech 协议时,可以调用本接口。该接口适用于 Tavo 的「TTS 自定义 OpenAI 协议模型」等第三方集成。

如果直接开发 Fish Audio 原生集成,并需要完整请求能力,请使用文字转语音(同步)

端点

POST /v1/audio/speech
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

完整地址:

https://fishaudio.org/v1/audio/speech

请仅在可信服务端或第三方平台受保护的 API 凭证字段中保存密钥。建议为每个客户或集成单独创建 API Key,以便独立监控和撤销。

请求字段

{
  "model": "fishaudio-s21pro-flash",
  "input": "你好,这是一段 Fish Audio 语音测试。",
  "voice": "00a1b221-6137-4b73-ad62-b0cbce134167",
  "response_format": "mp3",
  "speed": 1
}
字段类型必填说明
modelstringFish Audio 引擎模型 ID,例如 fishaudio-s21pro-flash
inputstring待合成文本
voicestring 或 object音色 ID 字符串,或 { "id": "00a1b221-6137-4b73-ad62-b0cbce134167" } 对象
response_formatstringmp3wavpcm,默认 mp3
speednumber语速范围 0.52,默认 1

音色 ID 可通过 GET /api/open/v1/voices 获取。快速验证接口联通时,可以使用系统测试音色 00a1b221-6137-4b73-ad62-b0cbce134167model 必须使用 Fish Audio 支持的 TTS 模型 ID;OpenAI 的 tts-1 等模型名不会自动映射为 Fish Audio 模型。

部分第三方客户端会自动读取 OpenAI 兼容音色列表。此时可以调用:

GET /v1/audio/voices
Authorization: Bearer YOUR_API_KEY

响应中的 voices[].id 可直接作为语音生成请求的 voice

成功响应

请求成功后返回音频二进制:

HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-OpenAPI-Quota-Remaining: 987988
X-OpenAPI-Credits-Used: 12

<binary audio data>

客户端应根据 Content-Type 播放或保存音频。错误响应为 JSON,并与原生同步接口共用相同的鉴权、API 额度和生成逻辑。

curl 示例

curl -X POST "https://fishaudio.org/v1/audio/speech" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "fishaudio-s21pro-flash",
    "input": "你好,这是一段 Fish Audio 语音测试。",
    "voice": "00a1b221-6137-4b73-ad62-b0cbce134167",
    "response_format": "mp3",
    "speed": 1
  }' \
  --output speech.mp3

接入 Tavo

如果需要在 Tavo 中配置 API Key、Base URL、模型、音色和角色语音绑定,请阅读独立的 Tavo 接入 Fish Audio TTS 教程

错误行为

状态码场景处理方式
400文本、音色、模型、格式或语速无效修正请求后再调用
401API Key 缺失或无效检查或更换该集成使用的 Key
402API 额度不足补充额度后再生成
429请求频率超过限制使用指数退避重试
500TTS 生成失败注意重复扣费风险,仅做有限次数重试