Audio
MarkdownSintesis suara dari teks (TTS) dan pengenalan ucapan (STT) dalam format OpenAI Audio.
Panduan lengkap
https://api.ailoot.ai/v1/audio/speech# 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# pengenalan ucapan
with open("meeting.wav", "rb") as f:
tr = client.audio.transcriptions.create(model="qwen-asr", file=f)
print(tr.text){
"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-keyataux-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-hddan model lain dalam serispeech-…): ID suara MiniMax (huruf Latin, angka,_dan-, hingga 128 karakter). Untukqwen-audio-3.0-tts-plusnilai defaultnyalonganlingxin, untuk model Gemini TTS —Kore. - response_formatstringopsional
MiniMax — hanya
mp3;qwen-audio-3.0-tts-plus—mp3,wavataupcm; Gemini TTS —wavataujson(tautan file).
Respons berupa file audio (untuk MiniMax — audio/mpeg). Biaya dihitung per karakter teks atau per token, sesuai keterangan dalam katalog.
Pengenalan ucapan
https://api.ailoot.ai/v1/audio/transcriptions- filefilewajib
File audio WAV dalam
multipart/form-data.qwen-asr,qwen-asr-latestdanqwen-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."}}{"type":"conversation.item.create","item":{"type":"message","role":"user","content":[{"type":"input_text","text":"Katakan ya."}]}}{"type":"response.create"}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).