Audio
MarkdownSynthèse vocale (TTS) et reconnaissance vocale (STT) au format OpenAI Audio.
Guide complet
https://api.ailoot.ai/v1/audio/speech# Synthèse vocale
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": "Bonjour ! Voici un exemple de synthèse vocale.", "voice": "longanlingxin"}' \
--output speech.mp3
# Reconnaissance
curl https://api.ailoot.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-F model=qwen-asr \
-F file=@meeting.wav# Reconnaissance vocale
with open("meeting.wav", "rb") as f:
tr = client.audio.transcriptions.create(model="qwen-asr", file=f)
print(tr.text){
"text": "Bonjour, chers collègues. Commençons par le bilan de la semaine…"
}Autorisation
- Authorizationheaderobligatoire
Clé au format
Bearer sk-…. Les en-têtes suivants conviennent également :x-api-keyoux-goog-api-key.
Synthèse vocale : corps de la requête
- modelstringobligatoire
Modèle de synthèse vocale :
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. - inputstringobligatoire
Texte à lire. Pour les modèles MiniMax, moins de 10 000 caractères ; pour
qwen-audio-3.0-tts-plus— jusqu’à 600. - voicestring
Voix. Obligatoire pour les modèles MiniMax (
speech-2.8-hdet les autresspeech-…) : identifiant de voix MiniMax (lettres latines, chiffres,_et-, jusqu’à 128 caractères). Pourqwen-audio-3.0-tts-pluspar défautlonganlingxin, pour les modèles Gemini TTS :Kore. - response_formatstringfacultatif
MiniMax : uniquement
mp3;qwen-audio-3.0-tts-plus—mp3,wavoupcm; Gemini TTS :wavoujson(lien vers le fichier).
La réponse est un fichier audio (pour MiniMax : audio/mpeg). Le paiement se fait par caractère de texte ou par token, comme indiqué dans le catalogue.
Reconnaissance vocale
https://api.ailoot.ai/v1/audio/transcriptions- filefileobligatoire
Fichier audio WAV au format
multipart/form-data.qwen-asr,qwen-asr-latestetqwen-audio-3.0-asr-flash: WAV PCM complet, non compressé, jusqu’à 5 minutes ; fichier d’environ 7,5 Mo au maximum (en base64, jusqu’à 10 Mo).asr-1.0: WAV PCM jusqu’à 500 secondes et 50 Mo.gemini-3.5-transcribe: WAV jusqu’à 64 Mo. - modelstringobligatoire
Modèle de reconnaissance vocale :
gemini-3.5-transcribe,qwen-audio-3.0-asr-flash,asr-1.0. - response_formatstringfacultatif
Uniquement
json(ou ne pas renseigner).
Le champ language n’est pas utilisé par ces modèles. Réponse : {"text": "…"}. Le paiement se fait selon la durée de l’enregistrement (secondes, minutes ou heures : chaque modèle a sa propre unité).
Voix en temps réel
Pour qwen-audio-3.0-realtime-plus ouvrez un WebSocket wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus avec l’en-tête Authorization: Bearer <API_KEY>. Transmettez la clé depuis le serveur : les clés dans la query string ne sont pas acceptées. Attendez session.created avec le modèle choisi, puis envoyez les paramètres, le message et response.create. Voici trois trames textuelles JSON successives pour obtenir une réponse textuelle dans une session audio :
{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"Soyez bref."}}{"type":"conversation.item.create","item":{"type":"message","role":"user","content":[{"type":"input_text","text":"Dites oui."}]}}{"type":"response.create"}Lisez les événements de réponse jusqu’à response.done et ses données usage finales ; les erreurs arrivent dans un événement error. Le paiement porte sur les tokens texte et audio de chaque réponse confirmée. Entrée audio : événement input_audio_buffer.append avec audio — base64 PCM16 mono 16 kHz ; puis input_audio_buffer.commit et response.create. La sortie audio est en PCM16 mono 24 kHz. Les trames binaires ne sont pas acceptées dans cette session.
Événements clients pris en charge : session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. Les éléments de conversation se limitent aux messages et au texte ; les outils de fonction, la recherche web et voiceprint ne sont pas pris en charge. Limites de la session : 600 secondes, 20 réponses, 20 tours de conversation dans l’historique, 2000 octets pour instructions et 8000 octets de texte client. Le délai d’inactivité dépend de la configuration (60 secondes par défaut).