POST https://api.acedata.cloud/fish/tts。
申請流程
要使用 Fish TTS API,首先到 Ace Data Cloud 控制台 取得您的 API Token,留作備用。
如果你尚未登入或註冊,會自動跳轉到登入頁面邀請你註冊和登入,完成後會自動返回目前頁面。
一個 API Token 即可呼叫平台所有服務,無需為每個服務單獨申請。 首次申請會贈送免費額度,可免費體驗;額度不足時可在 控制台 儲值通用餘額。
📘 完整文件:Fish TTS API →
請求標頭
請求體欄位
一次性複製只接受 HTTPS 音訊 URL,不接受 MessagePack、Base64、data URI 或帶憑據的 URL。參考音訊建議 10–270 秒;Studio 使用更保守的 10–60 秒範圍。
範例 1:最小請求(text + format=mp3)
audio_url 指向本平台 CDN,可直接 GET 下載或在 <audio> 中播放。最終成功回應還會返回頂層 cost,其中 amount 是本次實際扣除的 Credits;如有帳戶折扣,list_amount 表示折扣前額度。連結長期可用,但仍建議在你自己的儲存裡留一份。
範例 2:使用複製音色 reference_id
下面用 Fish 平台上一個公開的西班牙語音色(_id 可透過 Fish Model Query 檢索取得):
範例 3:一次性即時聲音複製(references)
將參考音訊放在公開 HTTPS 地址,並提供其中實際說出的準確原文。該聲音只用於本次合成,不會建立長期模型:
範例 3:調節語速 / 音量(prosody)
speed 大於 1 加快,小於 1 減慢;volume 單位 dB,0 表示不變,正數增益,負數衰減。
範例 5:切換模型 + 控制位元率
透過 HTTP 標頭model: s1 切換至穩定型模型,請求主體中加上 mp3_bitrate: 128 控制 MP3 位元率:
範例 6: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 和本次最終計費的頂層 cost。初始任務確認尚未完成合成,因此不包含 cost。
callback_url 會收到如下形式:
task_id 拉取結果;終態記錄的 response.cost 與回呼中的 cost 一致,詳見該文件。
錯誤處理
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。
