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
| Alur | Endpoint | Gunakan saat |
|---|---|---|
| Teks ke suara | POST /v1/audio/speech | Anda membutuhkan file audio dari teks. |
| Transkripsi | POST /v1/audio/transcriptions | Anda membutuhkan teks dari file audio. |
| Terjemahan audio | POST /v1/audio/translations | Anda membutuhkan teks terjemahan dari file audio. |
| Realtime WebSocket | WS /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.mp3Sesi 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 wsimport 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
| Topik | Referensi |
|---|---|
| Buat Speech | Buat Speech |
| Buat Transkripsi | Buat Transkripsi |
| Buat Terjemahan | Buat Terjemahan |
| WebSocket Realtime | WebSocket Realtime |
| Daftar Model | Daftar Model |
| Billing & Harga | Billing & Harga |