docs
API

Audio

Markdown

Text-to-Speech (TTS) und Spracherkennung (STT) im OpenAI-Audio-Format.

Vollständiger Leitfaden
POSThttps://api.ailoot.ai/v1/audio/speech
Audio
# Sprachausgabe
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": "Guten Tag! Dies ist ein Beispiel für die Sprachausgabe.", "voice": "longanlingxin"}' \
  --output speech.mp3

# Erkennung
curl https://api.ailoot.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -F model=qwen-asr \
  -F file=@meeting.wav
200 OK · Spracherkennung
{
  "text": "Guten Tag zusammen. Beginnen wir mit den Ergebnissen der Woche…"
}

Authentifizierung

  • Authorizationheadererforderlich

    Schlüssel im Format Bearer sk-…. Alternativ funktionieren die Header x-api-key oder x-goog-api-key.

Sprachausgabe: Anfragekörper

  • modelstringerforderlich

    Sprachausgabemodell: 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.

  • inputstringerforderlich

    Text für die Sprachausgabe. Bei MiniMax-Modellen weniger als 10 000 Zeichen, bei qwen-audio-3.0-tts-plus bis zu 600.

  • voicestring

    Stimme. Bei MiniMax-Modellen erforderlich (speech-2.8-hd und weiteren speech-…): MiniMax-Stimmen-ID (lateinische Buchstaben, Ziffern, _ und -, bis zu 128 Zeichen). Bei qwen-audio-3.0-tts-plus standardmässig longanlingxin, bei Gemini-TTS-Modellen Kore.

  • response_formatstringoptional

    MiniMax unterstützt nur mp3; qwen-audio-3.0-tts-plus — mp3, wav oder pcm; Gemini TTS unterstützt wav oder json (Link zur Datei).

Die Antwort ist eine Audiodatei (bei MiniMax audio/mpeg). Abgerechnet wird nach Textzeichen oder Tokens, wie im Katalog angegeben.

Spracherkennung

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

    WAV-Audiodatei in multipart/form-data. qwen-asr, qwen-asr-latest und qwen-audio-3.0-asr-flash: vollständiges, unkomprimiertes PCM-WAV bis zu 5 Minuten, Dateigrösse ungefähr bis zu 7,5 MB (in base64 bis zu 10 MB). asr-1.0: PCM-WAV bis zu 500 Sekunden und 50 MB. gemini-3.5-transcribe: WAV bis zu 64 MB.

  • modelstringerforderlich

    Spracherkennungsmodell: gemini-3.5-transcribe, qwen-audio-3.0-asr-flash, asr-1.0.

  • response_formatstringoptional

    Nur json (oder weglassen).

Das Feld language wird von diesen Modellen nicht verwendet. Antwort: {"text": "…"}. Abgerechnet wird nach Aufnahmedauer (Sekunden, Minuten oder Stunden — jedes Modell hat seine eigene Einheit).

Echtzeit-Sprachmodus

Für qwen-audio-3.0-realtime-plus öffnen Sie einen WebSocket wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus mit dem Header Authorization: Bearer <API_KEY>. Übermitteln Sie den Schlüssel serverseitig: Schlüssel im Query-String werden nicht akzeptiert. Warten Sie auf session.created mit dem gewählten Modell und senden Sie anschliessend die Einstellungen, die Nachricht und response.create. Unten stehen drei aufeinanderfolgende JSON-Text-Frames für eine Textantwort innerhalb einer Audiositzung:

{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"Fasse dich kurz."}}

Lesen Sie die Antwortereignisse bis response.done und dessen abschliessende usage-Angabe; Fehler erscheinen im Ereignis error. Abgerechnet werden die Text- und Audiotokens jeder bestätigten Antwort. Audioeingabe: Ereignis input_audio_buffer.append mit audio — base64 PCM16 mono 16 kHz; anschliessend input_audio_buffer.commit und response.create. Audioausgabe: PCM16 mono 24 kHz. Binäre Frames werden in dieser Sitzung nicht akzeptiert.

Unterstützte Client-Ereignisse: session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. conversation items unterstützen nur Nachrichten/Text; function tools, web search und voiceprint werden nicht unterstützt. Sitzungslimits: 600 Sekunden, 20 Antworten, 20 history turns, 2000 Byte instructions und 8000 Byte Client-Text. Der Idle-Timeout hängt von der Konfiguration ab (standardmässig 60 Sekunden).

Noch Fragen? Schicken Sie uns die Request ID und eine Beschreibung — wir helfen Ihnen weiter.Support kontaktieren