documentazione
API

Audio

Markdown

Sintesi vocale del testo (TTS) e riconoscimento vocale (STT) nel formato OpenAI Audio.

Guida completa
POSThttps://api.ailoot.ai/v1/audio/speech
Audio
# sintesi 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": "Buongiorno! Questo è un esempio di sintesi vocale.", "voice": "longanlingxin"}' \
  --output speech.mp3

# riconoscimento
curl https://api.ailoot.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -F model=qwen-asr \
  -F file=@meeting.wav
200 OK · riconoscimento
{
  "text": "Buongiorno, colleghi. Iniziamo con i risultati della settimana…"
}

Autorizzazione

  • Authorizationheaderobbligatorio

    Chiave nel formato Bearer sk-…. Sono accettati anche gli header x-api-key oppure x-goog-api-key.

Sintesi vocale: corpo della richiesta

  • modelstringobbligatorio

    Modello di sintesi 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.

  • inputstringobbligatorio

    Testo da convertire in voce. Per i modelli MiniMax meno di 10 000 caratteri, per qwen-audio-3.0-tts-plus fino a 600.

  • voicestring

    Voce. Obbligatoria per i modelli MiniMax (speech-2.8-hd e altri speech-…): identificatore della voce MiniMax (lettere latine, cifre, _ e -, fino a 128 caratteri). Per qwen-audio-3.0-tts-plus il valore predefinito è longanlingxin, per i modelli Gemini TTS — Kore.

  • response_formatstringfacoltativo

    MiniMax — solo mp3; qwen-audio-3.0-tts-plus — mp3, wav oppure pcm; Gemini TTS — wav oppure json (link al file).

La risposta è un file audio (per MiniMax — audio/mpeg). Il pagamento è calcolato sui caratteri del testo o sui token, come indicato nel catalogo.

Riconoscimento vocale

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

    File audio WAV in multipart/form-data. qwen-asr, qwen-asr-latest e qwen-audio-3.0-asr-flash: PCM WAV completo e non compresso, fino a 5 minuti, file fino a circa 7,5 MB (in base64 fino a 10 MB). asr-1.0: PCM WAV fino a 500 secondi e 50 MB. gemini-3.5-transcribe: WAV fino a 64 MB.

  • modelstringobbligatorio

    Modello di riconoscimento: gemini-3.5-transcribe, qwen-audio-3.0-asr-flash, asr-1.0.

  • response_formatstringfacoltativo

    Solo json (oppure non specificarlo).

Il campo language non è utilizzato da questi modelli. Risposta: {"text": "…"}. Il pagamento è calcolato sulla durata della registrazione (secondi, minuti o ore — ogni modello ha la propria unità).

Voce in tempo reale

Per qwen-audio-3.0-realtime-plus apri una connessione WebSocket wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus con l’header Authorization: Bearer <API_KEY>. Trasmetti la chiave dal lato server: le chiavi nella query string non sono accettate. Attendi session.created con il modello scelto, poi invia le impostazioni, il messaggio e response.create. Di seguito tre frame di testo JSON consecutivi per ottenere una risposta testuale in una sessione audio:

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

Leggi gli eventi della risposta fino a response.done e al suo usage finale; gli errori arrivano come evento error. Il pagamento è calcolato sui token testuali e audio di ogni risposta confermata. Input audio: evento input_audio_buffer.append con audio — base64 PCM16 mono 16 kHz; poi input_audio_buffer.commit e response.create. L’output audio è PCM16 mono 24 kHz. In questa sessione non sono accettati frame binari.

Eventi client supportati: session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. Gli elementi conversation items ammettono solo messaggi/testo; function tools, ricerca web e voiceprint non sono supportati. Limiti della sessione: 600 secondi, 20 risposte, 20 turni di cronologia, 2000 byte nel campo instructions e 8000 byte di testo client. Il timeout di inattività dipende dalla configurazione (60 secondi per impostazione predefinita).

Hai altre domande? Invia il Request ID e una descrizione — ti aiuteremo a chiarire il problema.Contatta l’assistenza