Audio
MarkdownSíntesis de voz (TTS) y reconocimiento de voz (STT) en el formato OpenAI Audio.
Guía completa
https://api.ailoot.ai/v1/audio/speech# 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# Reconocimiento de voz
with open("meeting.wav", "rb") as f:
tr = client.audio.transcriptions.create(model="qwen-asr", file=f)
print(tr.text){
"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 cabecerasx-api-keyox-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-plusadmite hasta 600. - voicestring
Voz. Obligatoria para los modelos de MiniMax (
speech-2.8-hdy otros modelosspeech-…): identificador de voz de MiniMax (letras latinas, números,_y-, hasta 128 caracteres). Enqwen-audio-3.0-tts-plusel valor predeterminado eslonganlingxin; en los modelos Gemini TTS,Kore. - response_formatstringopcional
MiniMax: solo
mp3;qwen-audio-3.0-tts-plus—mp3,wavopcm; Gemini TTS:wavojson(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
https://api.ailoot.ai/v1/audio/transcriptions- filefileobligatorio
Archivo de audio WAV en
multipart/form-data.qwen-asr,qwen-asr-latestyqwen-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."}}{"type":"conversation.item.create","item":{"type":"message","role":"user","content":[{"type":"input_text","text":"Di sí."}]}}{"type":"response.create"}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).