callback_url 擴展)上有差異,請求體結構與上游一致。地址為 POST https://api.acedata.cloud/fish/tts。
申請流程
要使用 Fish TTS API,首先到 Ace Data Cloud 控制台 獲取您的 API Token,留作備用。
如果你尚未登錄或註冊,會自動跳轉到登錄頁面邀請你註冊和登錄,完成後會自動返回當前頁面。
一個 API Token 即可調用平台所有服務,無需為每個服務單獨申請。 首次申請會贈送免費額度,可免費體驗;額度不足時可在 控制台 充值通用餘額。
📘 完整文檔:Fish TTS API →
請求頭
請求體字段
字段命名與上游完全一致。除 callback_url 外,其餘字段含義和取值參見 Fish 官方 TTS 文檔。
示例 1:最小請求(text + format=mp3)
audio_url 指向本平台 CDN,可直接 GET 下載或在 <audio> 中播放。鏈接長期可用,但仍建議在你自己的存儲裡留一份。
示例 2:使用克隆音色 reference_id
下面用 Fish 平台上一個公開的西班牙語音色(_id 可通過 Fish Model Query 檢索得到):
示例 3:調節語速 / 音量(prosody)
speed 大於 1 加快,小於 1 減慢;volume 單位 dB,0 表示不變,正數增益,負數衰減。
示例 4:切換模型 + 控制碼率
通過 HTTP 頭model: s1 切換到穩定型模型,請求體中加 mp3_bitrate: 128 控制 MP3 码率:
示例 5:PCM 原始波形
需要在浏览器里做实时拼接、或在客户端做后续处理(混音、变速)的场景,推荐使用pcm:
链接的扩展名跟随请求里的format:mp3得到.mp3,wav与pcm得到.wav(WAV 容器,16 bit PCM)。
异步回调(callback_url)
长文本一次合成可能需要十几秒到几十秒,连接如果中断需要重试。请求体中传 callback_url 后,接口会立即返回 {task_id, started_at},上游真正完成时把完整结果以 POST JSON 形式回调到该 URL,请求体中带同一个 task_id。
callback_url 会收到形如:
task_id 拉取结果,详见该文档。
错误处理
400 token_mismatched:请求参数缺失或不合法(最常见是text为空,或format传了mp3/wav/pcm之外的值)。401 invalid_token:鉴权 token 不存在或无效。429 too_many_requests:触发账号速率限制。500 api_error:服务器内部错误。
message 字段,便于定位是哪个字段不合法,例如:
结论
接入 Fish TTS 的最小代价是:在已有调用api.fish.audio/v1/tts 的代码里把鉴权换成本平台 token,并在请求体里显式带上 format: "mp3"。长文本场景建议使用 callback_url 异步回调;对克隆音色 reference_id 的发现,请配合 Fish Model Query 与 Fish Model Get。
