TokenLab

媒體指南

音訊與即時

為音訊應用選擇語音、轉寫、翻譯或即時 WebSocket 流程。

音訊工作負載分成兩類。文字轉語音、轉寫、音訊翻譯這類檔案式請求使用音訊端點;需要低延遲互動音訊或多模態事件時,使用即時 WebSocket 端點。

選擇流程

流程端點適用場景
文字轉語音POST /v1/audio/speech需要從文字生成音訊檔案。
轉寫POST /v1/audio/transcriptions需要從音訊檔案得到文字。
音訊翻譯POST /v1/audio/translations需要從音訊檔案得到翻譯後的文字。
Realtime WebSocketWS /v1/realtime?model={model}需要透過 WebSocket 傳輸雙向串流音訊或即時多模態事件。一般 GET /v1/realtime 只回傳端點資訊。

發現模型

不要在客戶端硬編碼模型列表。語音和轉寫可使用推薦模型短名單;即時能力需要在開啟 socket 前透過模型詳情確認。

curl "https://api.tokenlab.sh/v1/models?recommended_for=tts" \
  -H "Authorization: Bearer sk-your-api-key"

curl "https://api.tokenlab.sh/v1/models?recommended_for=stt" \
  -H "Authorization: Bearer sk-your-api-key"

同步音訊請求

語音合成在 HTTP 回應中傳回音訊。轉寫與翻譯可能傳回最終文字,也可能傳回已受理的任務。若回應含任務 ID 與狀態而非最終文字,請保存 ID 並依 poll_url 輪詢至完成或失敗。大型檔案應保留足夠逾時時間與 Request ID。

curl -X POST "https://api.tokenlab.sh/v1/audio/speech" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1-hd",
    "voice": "nova",
    "input": "Welcome to TokenLab."
  }' \
  --output speech.mp3

即時會話

開啟 WebSocket 時在查詢參數中傳 model,並在 Authorization header 中傳 API key。事件格式按所選即時模型文件發送;會話結束時主動關閉 socket。

本指南只涵蓋 WebSocket 子集。TokenLab 目前不提供 OpenAI Realtime REST client secret、translation client secret、Calls 或 legacy beta session 管理端點。

執行下方伺服器端範例前,安裝 ws,將 TOKENLAB_REALTIME_MODEL 設為目前模型詳情明確宣告 /v1/realtime 的模型。透過伺服器環境提供 TOKENLAB_API_KEY;不能只憑模型名稱判斷即時支援。

npm install ws
import WebSocket from 'ws';

const model = process.env.TOKENLAB_REALTIME_MODEL;
const apiKey = process.env.TOKENLAB_API_KEY;
if (!model || !apiKey) throw new Error('Set TOKENLAB_REALTIME_MODEL and TOKENLAB_API_KEY');

const url = new URL('wss://api.tokenlab.sh/v1/realtime');
url.searchParams.set('model', model);
const socket = new WebSocket(url, {
  headers: { Authorization: `Bearer ${apiKey}` },
});
socket.on('message', (event) => console.log(event.toString()));
socket.on('error', (error) => console.error(error.message));
process.once('SIGINT', () => socket.close(1000, 'Client stopped'));

狀態處理

  • 保存生成的音訊檔案,刷新頁面時不要重複發起同一請求。
  • 轉寫和翻譯即使是同步呼叫,也應展示上傳和處理中狀態。
  • 即時會話要處理關閉事件,只有使用者重新開始會話時才重連。
  • 不要把 API key、私有 URL 或帳戶密鑰放進音訊文字輸入。

API 參考

主題參考
建立語音建立語音
建立轉寫建立轉寫
建立翻譯建立翻譯
即時 WebSocket即時 WebSocket
列出模型列出模型
計費與價格計費與價格

本頁內容