Audio
Markdownהקראת טקסט (TTS) וזיהוי דיבור (STT) בפורמט OpenAI Audio.
המדריך המלא
https://api.ailoot.ai/v1/audio/speech# המרת טקסט לדיבור
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": "שלום! זו דוגמה להמרת טקסט לדיבור.", "voice": "longanlingxin"}' \
--output speech.mp3
# תמלול
curl https://api.ailoot.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-F model=qwen-asr \
-F file=@meeting.wav# זיהוי דיבור
with open("meeting.wav", "rb") as f:
tr = client.audio.transcriptions.create(model="qwen-asr", file=f)
print(tr.text){
"text": "שלום, עמיתים לעבודה. נתחיל בסיכום השבוע…"
}אימות
- Authorizationheaderחובה
המפתח בפורמט
Bearer sk-…. אפשר להשתמש גם בכותרותx-api-keyאוx-goog-api-key.
הקראת טקסט: גוף הבקשה
- modelstringחובה
מודל להקראת טקסט:
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. - inputstringחובה
הטקסט להקראה. במודלי MiniMax — פחות מ-10 000 תווים, ובמודל
qwen-audio-3.0-tts-plus— עד 600. - voicestring
קול. חובה במודלי MiniMax (
speech-2.8-hdובמודלים נוספיםspeech-…): מזהה קול של MiniMax (אותיות לטיניות, ספרות,_וכן-, עד 128 תווים). במודלqwen-audio-3.0-tts-plusברירת המחדל היאlonganlingxin, ובמודלי Gemini TTS —Kore. - response_formatstringרשות
MiniMax — רק
mp3;qwen-audio-3.0-tts-plus—mp3,wavאוpcm; Gemini TTS —wavאוjson(קישור לקובץ).
התשובה היא קובץ שמע (ב-MiniMax — audio/mpeg). החיוב הוא לפי תווי הטקסט או לפי טוקנים, כפי שמצוין בקטלוג.
זיהוי דיבור
https://api.ailoot.ai/v1/audio/transcriptions- filefileחובה
קובץ שמע WAV בפורמט
multipart/form-data.qwen-asr,qwen-asr-latestוכןqwen-audio-3.0-asr-flash: PCM WAV מלא ולא דחוס באורך של עד 5 דקות, קובץ בגודל של עד כ-7.5 MB (ב-base64 — עד 10 MB).asr-1.0: PCM WAV באורך של עד 500 שניות ובגודל של עד 50 MB.gemini-3.5-transcribe: WAV בגודל של עד 64 MB. - modelstringחובה
מודל לזיהוי דיבור:
gemini-3.5-transcribe,qwen-audio-3.0-asr-flash,asr-1.0. - response_formatstringרשות
רק
json(או להשמיט את השדה).
השדה language אינו משמש במודלים האלה. התשובה: {"text": "…"}. החיוב הוא לפי משך ההקלטה (שניות, דקות או שעות — לכל מודל יחידה משלו).
קול בזמן אמת
עבור qwen-audio-3.0-realtime-plus יש לפתוח WebSocket wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus עם הכותרת Authorization: Bearer <API_KEY>. יש להעביר את המפתח מצד השרת: מפתח ב-query string אינו מתקבל. יש להמתין לאירוע session.created עם המודל שנבחר, ולאחר מכן לשלוח את ההגדרות, ההודעה ואת response.create. להלן שלוש מסגרות טקסט JSON עוקבות לקבלת תשובת טקסט בסשן שמע:
{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"השב בקצרה."}}{"type":"conversation.item.create","item":{"type":"message","role":"user","content":[{"type":"input_text","text":"אמור כן."}]}}{"type":"response.create"}יש לקרוא את אירועי התשובה עד לאירוע response.done ונתוני ה-usage הסופיים שלו; שגיאות מגיעות באירוע error. החיוב הוא לפי טוקני הטקסט והשמע של כל תשובה שאומתה. קלט שמע: האירוע input_audio_buffer.append עם audio — base64 PCM16 mono 16 kHz; ולאחר מכן input_audio_buffer.commit וכן response.create. פלט השמע הוא PCM16 mono 24 kHz. מסגרות בינאריות אינן מתקבלות בסשן הזה.
אירועי הלקוח הנתמכים: session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. conversation items כוללים רק הודעות וטקסט; function tools, web search ו-voiceprint אינם נתמכים. מגבלות הסשן: 600 שניות, 20 תשובות, 20 history turns, 2000 בתים של instructions ו-8000 בתים של טקסט מהלקוח. Idle timeout תלוי בהגדרות (ברירת המחדל היא 60 שניות).