docs
API

Audio

Markdown

Synthèse vocale (TTS) et reconnaissance vocale (STT) au format OpenAI Audio.

Guide complet
POSThttps://api.ailoot.ai/v1/audio/speech
Audio
# 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
200 OK · transcription
{
  "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-key ou x-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-hd et les autres speech-…) : identifiant de voix MiniMax (lettres latines, chiffres, _ et -, jusqu’à 128 caractères). Pour qwen-audio-3.0-tts-plus par défaut longanlingxin, pour les modèles Gemini TTS : Kore.

  • response_formatstringfacultatif

    MiniMax : uniquement mp3 ; qwen-audio-3.0-tts-plus — mp3, wav ou pcm ; Gemini TTS : wav ou json (lien vers le fichier).

La réponse est un fichier audio (pour MiniMax : audio/mpeg). La facturation se fait par caractère de texte ou par token, comme indiqué dans le catalogue.

Reconnaissance vocale

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

    Fichier audio WAV au format multipart/form-data. qwen-asr, qwen-asr-latest et qwen-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 renseignez pas ce paramètre).

Le champ language n’est pas utilisé par ces modèles. Réponse : {"text": "…"}. La facturation dépend de 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 passées dans la chaîne de requête 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."}}

Lisez les événements de réponse jusqu’à response.done et ses données finales de consommation (usage) ; les erreurs sont transmises par l’événement error. La facturation repose sur les tokens de texte et d’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 d’appel de fonctions, 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).

Des questions ? Envoyez-nous le Request ID et une description : nous vous aiderons à y voir plus clair.Contacter l’assistance