文字轉語音 API 參考
透過 Gate.AI 文字轉語音接口提交文字並同步生成音訊。預設回傳二進位音訊;設定 stream_format=sse 時會逐幀回傳 speech.audio.delta,並在 speech.audio.done 末幀攜帶 usage 與 model_extend。
| 欄位 | 值 |
|---|---|
| Base URL | https://api.gate.ai/openai/v1 |
| 認證 | Authorization: Bearer <API_KEY> |
| 格式 | OpenAI 相容;使用 JSON 請求主體,預設回傳二進位音訊,可透過 SSE 串流回傳音訊分片 |
語音接口路徑位於 /openai/v1 下;語音轉文字與文字轉語音為同步能力,不回傳 job_id,也不需要輪詢。TTS 預設二進位回應中的計費資訊會記錄在控制台 Generations。
文字轉語音
POST
/audio/speech提交待合成文字並同步回傳音訊。預設響應體為二進位音訊流,Content-Type 隨 response_format 變化;SSE 模式會回傳 base64 音訊分片與末幀計費資訊。
請求參數
| 名稱 | 位置 | 類型 | 必填 | 說明 |
|---|---|---|---|---|
| Authorization | header | string | 是 | Gate.AI API Key。格式:Bearer <API_KEY> |
| Content-Type | header | string | 是 | 請求主體格式:application/json |
請求主體
| 名稱 | 類型 | 必填 | 說明 |
|---|---|---|---|
| model | string | 是 | 文字轉語音模型 ID,目前僅支援 gpt-4o-mini-tts |
| input | string | 是 | 待合成文字 |
| voice | string | 是 | 發音人,如 alloy |
| response_format | string | 否 | 輸出音訊格式,如 wav、mp3;預設 wav |
| stream_format | string | 否 | 設為 sse 時回傳 text/event-stream;speech.audio.delta 幀包含 base64 音訊分片,speech.audio.done 幀包含 usage 與 model_extend |
示例
text
1{2 "model": "gpt-4o-mini-tts",3 "input": "今天天气很好,我们一起去海边散步吧。",4 "voice": "alloy",5 "response_format": "mp3"6}返回欄位說明
| 名稱 | 類型 | 說明 |
|---|---|---|
| audio bytes | binary | 預設回傳的音訊二進位資料 |
| speech.audio.delta | SSE event | SSE 音訊分片事件,攜帶 base64 編碼的音訊片段 |
| speech.audio.done | SSE event | SSE 結束事件,攜帶 usage 與 model_extend |
| usage | object | 文字轉語音用量;二進位回應場景下由網關寫入後台記錄,SSE 末幀回傳 |
| model_extend.cost | string | 實際計費金額(USD),扣款以 model_extend.cost 為準 |
回傳範例
json
1HTTP/1.1 200 OK2Content-Type: audio/mpeg34(binary audio bytes)回傳結果
| 狀態碼 | 狀態碼含義 | 說明 | 資料模型 |
|---|---|---|---|
| 200 | OK | 成功,同步回傳轉寫結果、音訊資料或 SSE 事件。 | AudioResponse |
| 400 | Bad Request | 請求參數錯誤、請求主體格式錯誤,或缺少 model / file / input 等必填欄位。 | OpenAIErrorResponse |
| 401 | Unauthorized | API Key 無效或缺失。 | OpenAIErrorResponse |
| 402 | Payment Required | 餘額不足。 | InsufficientBalanceResponse |
| 404 | Not Found | 模型不存在,或語音端點未啟用。 | OpenAIErrorResponse |
| 413 | Payload Too Large | 上傳檔案或請求主體過大。 | OpenAIErrorResponse |
| 429 | Too Many Requests | 請求過於頻繁,請降低呼叫頻率。 | OpenAIErrorResponse |
| 500 | Internal Server Error | 服務內部錯誤。 | OpenAIErrorResponse |
| 502 | Bad Gateway | 上游語音服務失敗。 | OpenAIErrorResponse |