Panduan media

Audio & realtime

Pilih speech, transkripsi, terjemahan, atau WebSocket realtime untuk aplikasi audio.

Beban kerja audio terbagi dua. Gunakan endpoint audio untuk permintaan seperti file, misalnya text-to-speech, transkripsi, dan terjemahan audio. Gunakan endpoint WebSocket realtime ketika pengalaman pengguna membutuhkan audio interaktif latensi rendah atau event multimodal.

Pilih Alur

AlurEndpointGunakan saat
Teks ke suaraPOST /v1/audio/speechAnda membutuhkan file audio dari teks.
TranskripsiPOST /v1/audio/transcriptionsAnda membutuhkan teks dari file audio.
Terjemahan audioPOST /v1/audio/translationsAnda membutuhkan teks terjemahan dari file audio.
Realtime WebSocketWS /v1/realtime?model={model}Anda membutuhkan audio streaming dua arah atau event multimodal realtime melalui WebSocket. GET /v1/realtime biasa hanya mengembalikan metadata.

Temukan Model

Query katalog model sebelum hard-code model. Gunakan daftar rekomendasi untuk speech dan transcription, lalu pastikan dukungan realtime di detail model sebelum membuka 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"

Permintaan Audio Sinkron

Sintesis suara mengembalikan audio dalam respons HTTP. Transkripsi dan terjemahan dapat mengembalikan teks final atau tugas yang diterima. Jika respons berisi ID dan status tugas, simpan ID lalu ikuti poll_url hingga selesai atau gagal. Sediakan waktu cukup untuk berkas besar dan simpan 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

Sesi Realtime

Buka WebSocket dengan model di query string dan API key di header Authorization. Gunakan format event yang didokumentasikan untuk model realtime yang dipilih, lalu tutup socket saat sesi selesai.

Panduan ini hanya mencakup WebSocket subset. TokenLab saat ini tidak menyediakan endpoint REST OpenAI Realtime untuk client secret, translation client secret, Calls, atau manajemen legacy beta session.

Untuk contoh server, instal ws dan atur TOKENLAB_REALTIME_MODEL ke model saat ini yang detailnya menyatakan /v1/realtime. Berikan TOKENLAB_API_KEY lewat lingkungan server; nama saja tidak membuktikan dukungan realtime.

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'));

Penanganan Status

  • Simpan file audio yang dibuat alih-alih mengulang permintaan yang sama saat refresh.
  • Untuk transkripsi dan terjemahan, tampilkan status upload dan pemrosesan meski API call sinkron.
  • Untuk realtime, tangani event close dan reconnect hanya setelah pengguna memulai sesi baru.
  • Jangan taruh API key, URL privat, atau rahasia akun di input teks audio.

Referensi API

TopikReferensi
Buat SpeechBuat Speech
Buat TranskripsiBuat Transkripsi
Buat TerjemahanBuat Terjemahan
WebSocket RealtimeWebSocket Realtime
Daftar ModelDaftar Model
Billing & HargaBilling & Harga

Di halaman ini