docs
API

Audio

Markdown

Síntesis de voz (TTS) y reconocimiento de voz (STT) en el formato OpenAI Audio.

Guía completa
POSThttps://api.ailoot.ai/v1/audio/speech
Audio
# Síntesis de voz
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": "¡Buenos días! Este es un ejemplo de síntesis de voz.", "voice": "longanlingxin"}' \
  --output speech.mp3

# Transcripción
curl https://api.ailoot.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -F model=qwen-asr \
  -F file=@meeting.wav
200 OK · transcripción
{
  "text": "Buenos días, compañeros. Empezaremos con el resumen de la semana…"
}

Autenticación

  • Authorizationheaderobligatorio

    Clave en formato Bearer sk-…. También se admiten las cabeceras x-api-key o x-goog-api-key.

Síntesis de voz: cuerpo de la solicitud

  • modelstringobligatorio

    Modelo de síntesis de voz: 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.

  • inputstringobligatorio

    Texto que se va a convertir en voz. Los modelos de MiniMax admiten menos de 10 000 caracteres; qwen-audio-3.0-tts-plus admite hasta 600.

  • voicestring

    Voz. Obligatoria para los modelos de MiniMax (speech-2.8-hd y otros modelos speech-…): identificador de voz de MiniMax (letras latinas, números, _ y -, hasta 128 caracteres). En qwen-audio-3.0-tts-plus el valor predeterminado es longanlingxin; en los modelos Gemini TTS, Kore.

  • response_formatstringopcional

    MiniMax: solo mp3; qwen-audio-3.0-tts-plus — mp3, wav o pcm; Gemini TTS: wav o json (enlace al archivo).

La respuesta es un archivo de audio (en MiniMax, audio/mpeg). Se factura por caracteres de texto o por tokens, según lo indicado en el catálogo.

Reconocimiento de voz

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

    Archivo de audio WAV en multipart/form-data. qwen-asr, qwen-asr-latest y qwen-audio-3.0-asr-flash: PCM WAV completo sin comprimir de hasta 5 minutos, con un tamaño aproximado máximo de 7,5 MB (hasta 10 MB en base64). asr-1.0: PCM WAV de hasta 500 segundos y 50 MB. gemini-3.5-transcribe: WAV de hasta 64 MB.

  • modelstringobligatorio

    Modelo de reconocimiento: gemini-3.5-transcribe, qwen-audio-3.0-asr-flash, asr-1.0.

  • response_formatstringopcional

    Solo json (o se puede omitir).

El campo language no se utiliza en estos modelos. Respuesta: {"text": "…"}. Se factura por la duración de la grabación (segundos, minutos u horas, según la unidad de cada modelo).

Voz en tiempo real

Para qwen-audio-3.0-realtime-plus , abre un WebSocket en wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus con la cabecera Authorization: Bearer <API_KEY>. Envía la clave desde el servidor: no se admiten claves en la cadena de consulta. Espera a recibir session.created con el modelo seleccionado y, después, envía la configuración, el mensaje y response.create. A continuación se muestran tres tramas de texto JSON consecutivas para obtener una respuesta de texto en una sesión de audio:

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

Lee los eventos de respuesta hasta response.done y su usage final; los errores llegan en un evento error. Se factura por los tokens de texto y audio de cada respuesta confirmada. Entrada de audio: evento input_audio_buffer.append con audio en base64 PCM16 mono de 16 kHz; después, input_audio_buffer.commit y response.create. Salida de audio: PCM16 mono de 24 kHz. Esta sesión no admite tramas binarias.

Eventos de cliente admitidos: session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. Los elementos de conversación solo admiten mensajes y texto; no se admiten herramientas de función, búsquedas web ni huellas de voz. Límites de sesión: 600 segundos, 20 respuestas, 20 turnos de historial, 2000 bytes de instructions y 8000 bytes de texto del cliente. El tiempo de espera por inactividad depende de la configuración (60 segundos de forma predeterminada).

¿Tienes alguna pregunta? Envíanos el Request ID y una descripción; te ayudaremos a resolverla.Contactar con soporte