API 文档文字转语音
Fish Audio 兼容 TTS
使用 fish.audio 风格的 POST /v1/tts 契约接入 Fish Audio API,适配 RikkaHub 等客户端。
Fish Audio 兼容 TTS
当客户端硬编码了 fish.audio 的 POST /v1/tts 请求形态时,请使用本接口。它会把请求映射到 Fish Audio Open TTS 流水线,并继续使用你的 Fish Audio API Key 完成鉴权、额度与计费。
若要接入原生 Open API,优先使用 同步 HTTP。若客户端走 OpenAI POST /v1/audio/speech,请使用 OpenAI 兼容 TTS。
接口
POST /v1/tts
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
model: s2.1-pro完整 URL:
https://fishaudio.org/v1/tts如果第三方应用要求填写类似 https://api.fish.audio 的 Fish Audio API Base,请改成 https://fishaudio.org,路径仍保持 /v1/tts。
请把 API Key 放在客户端的受保护凭据字段中。建议为每个应用单独创建 Key,便于监控与吊销。
请求
{
"text": "Hello from Fish Audio.",
"reference_id": "00a1b221-6137-4b73-ad62-b0cbce134167",
"format": "mp3",
"temperature": 0.7,
"top_p": 0.7,
"normalize": true,
"prosody": {
"speed": 1
}
}| 字段 / 请求头 | 类型 | 必填 | 说明 |
|---|---|---|---|
model 请求头 | string | 否 | fish.audio 引擎标签,例如 s2.1-pro、s2.1-pro-flash、s2-pro |
text | string | 是 | 待合成文本 |
reference_id | string | 是 | Fish Audio 音色 ID;服务端不会静默回落默认音色 |
format | string | 否 | mp3、wav 或 pcm;不支持的值(如 opus)会降级为 mp3 |
prosody.speed | number | 否 | 语速,范围 0.5–2;也支持顶层 speed |
temperature | number | 否 | 映射为 Fish Audio stability(0.5–1.5) |
top_p | number | 否 | 映射为 Fish Audio similarity(0.5–1.5) |
normalize | boolean | 否 | 映射为文本规范化 |
chunk_length | number | 否 | 仅为兼容客户端而接受,服务端忽略 |
latency | string | 否 | 仅为兼容客户端而接受,服务端忽略 |
model 请求头映射
model 请求头 | Fish Audio 引擎模型 ID |
|---|---|
s2.1-pro | fishaudio-s21pro |
s2.1-pro-free | fishaudio-s21pro-free |
s2.1-flash | fishaudio-s21-flash |
s2.1-pro-flash | fishaudio-s21pro-flash |
s2-pro | fishaudio-s2pro |
s1 / s1-mini | fishaudio-s1 |
speech-1.5 / 1.6 | fishaudio-s1 |
未知请求头会被忽略,并使用服务端默认引擎。你也可以直接在请求头中发送原生引擎 ID,例如 fishaudio-s21pro-flash。
音色 ID 可通过 GET /api/open/v1/voices 获取。联调时可先用公共系统音色 00a1b221-6137-4b73-ad62-b0cbce134167。
响应
成功时返回二进制音频:
HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-OpenAPI-Quota-Remaining: 987988
X-OpenAPI-Credits-Used: 12
<binary audio data>错误为 JSON,鉴权、额度与生成行为与 同步 HTTP 一致。
curl 示例
curl -X POST "https://fishaudio.org/v1/tts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "model: s2.1-pro" \
-d '{
"text": "Hello from Fish Audio.",
"reference_id": "00a1b221-6137-4b73-ad62-b0cbce134167",
"format": "mp3",
"prosody": { "speed": 1 }
}' \
--output speech.mp3接入 RikkaHub
API Key、Base URL、模型与音色的配置步骤见 RikkaHub 接入指南。
错误
| 状态 | 含义 | 处理建议 |
|---|---|---|
400 | 文本无效、缺少 reference_id 或 JSON 错误 | 修正请求后再试 |
401 | API Key 缺失或无效 | 检查或更换集成 Key |
402 | API 额度不足 | 充值后再生成 |
429 | 触发频率限制 | 指数退避后重试 |
500 | TTS 生成失败 | 仅在了解重复计费风险后重试 |