dokumentasi
API

Audio

Markdown

Sintesis suara dari teks (TTS) dan pengenalan ucapan (STT) dalam format OpenAI Audio.

Panduan lengkap
POSThttps://api.ailoot.ai/v1/audio/speech
Audio
# sintesis ucapan
curl https://api.ailoot.ai/v1/audio/speech \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "qwen-audio-3.0-tts-plus", "input": "Selamat siang! Ini contoh sintesis ucapan.", "voice": "longanlingxin"}' \
  --output speech.mp3

# pengenalan
curl https://api.ailoot.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -F model=qwen-asr \
  -F file=@meeting.wav
200 OK · pengenalan ucapan
{
  "text": "Selamat siang, rekan-rekan. Mari mulai dengan hasil minggu ini…"
}

Autentikasi

  • Authorizationheaderwajib

    Kunci dalam format Bearer sk-…. Header yang juga dapat digunakan: x-api-key atau x-goog-api-key.

Sintesis suara: isi permintaan

  • modelstringwajib

    Model sintesis suara: gemini-3.8-flash-tts, qwen-audio-3.0-tts-plus, speech-2.8-turbo, gemini-3.8-flash-lite-tts, speech-2.8-hd, gemini-3.1-flash-tts-preview, speech-2.6-turbo, speech-2.6-hd, speech-02-turbo, speech-02-hd.

  • inputstringwajib

    Teks yang akan dibacakan. Untuk model MiniMax — kurang dari 10 000 karakter; untuk qwen-audio-3.0-tts-plus — hingga 600.

  • voicestring

    Suara. Wajib untuk model MiniMax (speech-2.8-hd dan model lain dalam seri speech-…): ID suara MiniMax (huruf Latin, angka, _ dan -, hingga 128 karakter). Untuk qwen-audio-3.0-tts-plus nilai defaultnya longanlingxin, untuk model Gemini TTS — Kore.

  • response_formatstringopsional

    MiniMax — hanya mp3; qwen-audio-3.0-tts-plus — mp3, wav atau pcm; Gemini TTS — wav atau json (tautan file).

Respons berupa file audio (untuk MiniMax — audio/mpeg). Biaya dihitung per karakter teks atau per token, sesuai keterangan dalam katalog.

Pengenalan ucapan

POSThttps://api.ailoot.ai/v1/audio/transcriptions
  • filefilewajib

    File audio WAV dalam multipart/form-data. qwen-asr, qwen-asr-latest dan qwen-audio-3.0-asr-flash: PCM WAV utuh tanpa kompresi hingga 5 menit, ukuran file sekitar maksimal 7,5 MB (dalam base64 — hingga 10 MB). asr-1.0: PCM WAV hingga 500 detik dan 50 MB. gemini-3.5-transcribe: WAV hingga 64 MB.

  • modelstringwajib

    Model pengenalan ucapan: gemini-3.5-transcribe, qwen-audio-3.0-asr-flash, asr-1.0.

  • response_formatstringopsional

    Hanya json (atau tidak perlu diisi).

Kolom language tidak digunakan oleh model-model ini. Respons: {"text": "…"}. Biaya dihitung berdasarkan durasi rekaman (detik, menit, atau jam — setiap model memiliki satuannya sendiri).

Suara waktu nyata

Untuk qwen-audio-3.0-realtime-plus buka WebSocket wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus dengan header Authorization: Bearer <API_KEY>. Kirim kunci dari sisi server: kunci dalam query string tidak diterima. Tunggu session.created dengan model yang dipilih, lalu kirim pengaturan, pesan, dan response.create. Berikut tiga frame teks JSON berurutan untuk respons teks dalam sesi audio:

{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"Jawab dengan singkat."}}

Baca peristiwa respons hingga response.done beserta usage akhirnya; kesalahan dikirim melalui peristiwa error. Biaya dihitung berdasarkan token teks dan audio untuk setiap respons yang dikonfirmasi. Input audio: peristiwa input_audio_buffer.append dengan audio — base64 PCM16 mono 16 kHz; lalu input_audio_buffer.commit dan response.create. Output audio — PCM16 mono 24 kHz. Frame biner tidak diterima dalam sesi ini.

Peristiwa klien yang didukung: session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. conversation items hanya mendukung pesan/teks; function tools, web search, dan voiceprint tidak didukung. Batas sesi: 600 detik, 20 respons, 20 history turns, 2000 byte instructions, dan 8000 byte teks klien. Idle timeout bergantung pada konfigurasi (default 60 detik).

Masih ada pertanyaan? Kirim Request ID dan penjelasannya — kami akan membantu.Hubungi dukungan