dokumentation
API

Audio

Markdown

Talsyntes (TTS) och taligenkänning (STT) i OpenAI Audio-format.

Fullständig guide
POSThttps://api.ailoot.ai/v1/audio/speech
Audio
# Talproduktion
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": "God dag! Det här är ett exempel på talproduktion.", "voice": "longanlingxin"}' \
  --output speech.mp3

# Igenkänning
curl https://api.ailoot.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -F model=qwen-asr \
  -F file=@meeting.wav
200 OK · taligenkänning
{
  "text": "God dag, kollegor. Vi börjar med veckans resultat…"
}

Autentisering

  • Authorizationheaderobligatoriskt

    Nyckel i formatet Bearer sk-…. Även följande headers kan användas x-api-key eller x-goog-api-key.

Talsyntes: anropskropp

  • modelstringobligatoriskt

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

  • inputstringobligatoriskt

    Text att läsa upp. För MiniMax-modeller gäller färre än 10 000 tecken; för qwen-audio-3.0-tts-plus — högst 600.

  • voicestring

    Röst. Krävs för MiniMax-modeller (speech-2.8-hd och andra speech-…): ett röst-ID från MiniMax (latinska bokstäver, siffror, _ och -, högst 128 tecken). För qwen-audio-3.0-tts-plus är standardvärdet longanlingxin, för Gemini TTS-modeller — Kore.

  • response_formatstringvalfritt

    MiniMax — endast mp3; qwen-audio-3.0-tts-plus — mp3, wav eller pcm; Gemini TTS — wav eller json (länk till filen).

Svaret är en ljudfil (för MiniMax — audio/mpeg). Debitering sker per texttecken eller token, enligt katalogen.

Taligenkänning

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

    WAV-ljudfil i multipart/form-data. qwen-asr, qwen-asr-latest och qwen-audio-3.0-asr-flash: en fullständig, okomprimerad PCM WAV-fil på högst 5 minuter, ungefär högst 7,5 MB (i base64 — högst 10 MB). asr-1.0: PCM WAV på högst 500 sekunder och 50 MB. gemini-3.5-transcribe: WAV på högst 64 MB.

  • modelstringobligatoriskt

    Taligenkänningsmodell: gemini-3.5-transcribe, qwen-audio-3.0-asr-flash, asr-1.0.

  • response_formatstringvalfritt

    Endast json (eller utelämna fältet).

Fältet language används inte av dessa modeller. Svar: {"text": "…"}. Debitering sker efter inspelningens längd (sekunder, minuter eller timmar — varje modell har sin egen enhet).

Röst i realtid

För qwen-audio-3.0-realtime-plus öppnar du en WebSocket wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus med headern Authorization: Bearer <API_KEY>. Skicka nyckeln från serversidan: en nyckel i query string godtas inte. Vänta på session.created med den valda modellen och skicka sedan inställningarna, ett meddelande och response.create. Nedan visas tre JSON-textramar i följd för ett textsvar i en ljudsession:

{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"Var kortfattad."}}

Läs svarshändelser fram till response.done och dess slutliga usage; fel skickas som händelsen error. Debitering sker efter text- och ljudtoken för varje bekräftat svar. Ljudindata: händelsen input_audio_buffer.append med audio — base64 PCM16 mono 16 kHz; därefter input_audio_buffer.commit och response.create. Ljudutdata är PCM16 mono 24 kHz. Binära ramar godtas inte i den här sessionen.

Klienthändelser som stöds: session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. Samtalsobjekt (conversation items) — endast meddelanden/text; funktionsverktyg, webbsökning och voiceprint stöds inte. Sessionsgränser: 600 sekunder, 20 svar, 20 historikomgångar, 2000 byte instructions och 8000 byte klienttext. Tidsgränsen vid inaktivitet beror på konfigurationen (standard: 60 sekunder).

Har du fler frågor? Skicka Request ID och en beskrivning, så hjälper vi dig.Kontakta supporten