Fish Audio Docs
API 參考文字轉語音
返回主站

非同步作業

建立並輪詢非同步 TTS 作業。

非同步作業

使用非同步 TTS 作業進行長文字、批次產生、Webhook 式工作流程和 UI 流程,使用者可以在音訊仍在處理時離開頁面。

建立工作

POST /api/open/v1/speech/tts/jobs
Authorization: Bearer FISHAUDIO_API_KEY
Content-Type: application/json

### 要求

{
  "text": "Hello from Fish Audio.",
  "voiceId": "00a1b221-6137-4b73-ad62-b0cbce134167",
  "modelId": "fishaudio-s2pro",
  "format": "mp3"
}

將文字哈希、請求的語音和傳回的任務 ID 保留在資料庫中。如果您的工作執行緒在建立後崩潰,則透過任務 ID 進行輪詢比建立第二個作業更安全。

範例使用公共系統測試語音00a1b221-6137-4b73-ad62-b0cbce134167。驗證連線後將其替換為您首選的語音 ID。

curl https://fishaudio.org/api/open/v1/speech/tts/jobs \
  -H "Authorization: Bearer FISHAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello from Fish Audio.","voiceId":"00a1b221-6137-4b73-ad62-b0cbce134167","modelId":"fishaudio-s2pro","format":"mp3"}'

回覆

建立端點傳回帶有任務物件的202 Accepted。確切的任務欄位可以演變,但客戶端至少應該儲存 ID 和狀態。

{
  "id": "task_123",
  "status": "queued"
}

找工作

GET /api/open/v1/speech/tts/jobs/{taskId}
Authorization: Bearer FISHAUDIO_API_KEY

當可以產生短暫的音訊 URL 時,成功的任務包括 audioUrl。失敗的任務包括錯誤代碼或訊息。將 queuedprocessing 視為非終止狀態並進行回退輪詢。

計費和積分

非同步作業可能會在任務建立或完成期間保留或消耗積分,具體取決於啟用的模型。除非使用者明確要求第二個輸出,否則不要建立重複作業作為重試策略。儲存任務 ID 並從中復原。

對於批次處理,請在新增大量任務之前限制您這邊的並發並檢查設定檔。如果一項任務因積分不足而失敗,請暫停該批次的 rest,直到帳戶所有者解決餘額問題。

錯誤

狀態意義行動
400無效的文字、語音、模型或輸出格式修復有效負載
401認證失敗停止輪詢並刷新憑證
402學分或配額不足暫停隊列
404此 API 金鑰未知任務 ID檢查您是否儲存了相同帳號的回傳 ID
429建立或輪詢請求過多退出並保留任務 ID