Langsung ke konten utama
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.
Sesi realtimeGET /v1/realtimeAnda membutuhkan audio streaming dua arah atau event multimodal realtime.

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

Permintaan speech, transcription, dan translation mengembalikan respons langsung dari HTTP request. Input besar bisa lebih lama dari timeout umum client, jadi gunakan timeout longgar dan simpan request ID untuk dukungan.
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.
import WebSocket from 'ws';

const socket = new WebSocket('wss://api.tokenlab.sh/v1/realtime?model=gpt-realtime', {
  headers: { Authorization: 'Bearer sk-your-api-key' }
});

socket.on('message', (event) => console.log(event.toString()));

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