Microsoft AI: MAI-Voice-2.1-Flash
MAI-Voice-2.1-Flash de Microsoft AI genera voz expresiva en 23 idiomas para aplicaciones de voz interactivas. Admite streaming, varios hablantes y control de la interpretación por oración, con una biblioteca de voces seleccionadas.
Sobre el modelo
Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.
MAI-Voice-2.1-Flash es el modelo de conversión de texto a voz mediante instrucciones de Microsoft AI, diseñado para una interacción hablada con respuesta rápida. Su fabricante lo orienta a asistentes de voz, conversaciones de atención al cliente y menús telefónicos. Genera voz natural y expresiva en veintitrés idiomas, con control sobre el tono y la interpretación. Flash es la versión orientada a la respuesta en directo; MAI-Voice-2.1, con un nombre independiente, da prioridad a la expresión detallada y la fidelidad en contenido más largo.
Texto, hablante e idioma
La entrada es el guion que se va a pronunciar, con una voz seleccionada e instrucciones expresivas opcionales en SSML. El catálogo de voces gestionadas distingue el hablante, la configuración regional y la versión del modelo. Harper y Grant son ejemplos de hablantes con nombre y entradas específicas por idioma. Utilice el texto previsto en el idioma de destino y seleccione su configuración regional adecuada; un saludo preparado en inglés y una explicación en español son pasajes hablados independientes, cada uno con su propia redacción.
La ficha del modelo documenta una identidad de voz coherente entre los idiomas compatibles y varios hablantes para diálogos. Esto puede servir a una aplicación que necesite un narrador reconocible en mensajes localizados o un diálogo breve con papeles distintos. Asigne explícitamente las frases a los hablantes previstos y mantenga esas asignaciones estables. El audio es la versión hablada de ese guion, en lugar de una respuesta nueva compuesta a partir de una pregunta abierta.
Tono y estilo de habla
Microsoft documenta el control de la emoción y la interpretación por oración y por turno mediante SSML. Los estilos disponibles dependen de la voz seleccionada. El catálogo gestionado incluye estilos de tarea como narrator, educational y customer_call_center, además de estilos expresivos para hablantes concretos. Por ejemplo, la entrada de Harper de EE. UU. incluye joyful y relieved. Elija un estilo compatible con la voz, en lugar de asumir que todos los hablantes aceptan el mismo conjunto.
Una frase práctica de asistencia es: «Puedo ayudarte a encontrar el documento adecuado. Dime su título o describe el tema». Mantenga la petición lo bastante breve para que un oyente pueda actuar y elija una interpretación calmada o alentadora adecuada para la interacción. Para una actividad de aprendizaje, escriba la explicación y la siguiente pregunta como unidades habladas independientes. La expresividad sirve al significado cuando el guion deja claro el cambio de intención.
Streaming y entrega de audio
La ficha del modelo Flash documenta específicamente salida en streaming para diálogos en directo, incluidos flujos que gestionan que el oyente hable mientras se reproduce una respuesta. La aplicación puede reproducir el audio a medida que llega y coordinar la interrupción y el siguiente turno. Así, el momento de emisión del mensaje hablado forma parte de la interacción, en lugar de exigir que todas las respuestas se preparen primero como grabaciones completas.
El fabricante permite especificar el formato de salida en el flujo de síntesis. Su ejemplo publicado produce un archivo MP3 mono a 24 kHz y 160 kbit/s. Es una configuración de salida documentada, no una restricción fija de formato nativo. Elija una representación de audio que acepte la ruta de reproducción prevista y mantenga disponibles el hablante y la redacción pronunciada para revisar el resultado.
Modo opcional de voz de referencia
El modo de voz personalizada de Microsoft puede reproducir la voz de un hablante que haya dado su consentimiento a partir de un clip de referencia de cinco a sesenta segundos, sin ajuste fino. La ficha del modelo recomienda una interpretación conversacional natural con energía moderada, porque la referencia afecta a la interpretación generada. Este modo tiene un proceso independiente de aprobación del fabricante y consentimiento grabado; las voces predefinidas de la biblioteca constituyen una vía de preparación distinta.
Para una referencia destinada a definir un narrador de marca, utilice un pasaje limpio y representativo y decida qué interpretación debe trasladarse al nuevo guion. Para voz predefinida, prepare los nombres, los comandos y las frases reales en el idioma de destino que utilizará la aplicación. Escuche esos pasajes con la voz seleccionada y revise la transición entre turnos. El resultado útil es una interacción hablada expresiva con un hablante elegido de forma intencionada, texto claro y audio adecuado para el entorno de reproducción del oyente.
Ailoot Ultra · Síntesis de voz POST /v1/audio/speech microsoft/mai-voice-2.1-flash
microsoft/mai-voice-2.1-flashPrimeros pasos
MAI-Voice-2.1-Flash de Microsoft AI genera voz expresiva en 23 idiomas para aplicaciones de voz interactivas. Admite streaming, varios hablantes y control de la interpretación por oración, con una biblioteca de voces seleccionadas.
- Entradas aceptadas
- Texto
- Resultados
- Audio
Disponible en Ailoot · entradas y métodos
Ailoot Ultra · Síntesis de voz POST /v1/audio/speech
- Tipos de entrada
text- Tipos de salida
audio- Formato de salida
- mp3
| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObligatorio | Valores y límites microsoft/mai-voice-2.1-flash | Predeterminado— |
Campoinput | Tipostring | RequisitoObligatorio | Valores y límites Longitud mínima: 1 Unidad: caracteres Unicode | Predeterminado— |
Campovoice | Tipostring | RequisitoObligatorio | Valores y límites cs-CZ-Grant:MAI-Voice-2.1-Flash, cs-CZ-Harper:MAI-Voice-2.1-Flash, da-DK-Grant:MAI-Voice-2.1-Flash, da-DK-Harper:MAI-Voice-2.1-Flash, de-DE-Grant:MAI-Voice-2.1-Flash, de-DE-Harper:MAI-Voice-2.1-Flash, de-DE-Klaus:MAI-Voice-2.1-Flash, de-DE-Mia:MAI-Voice-2.1-Flash, en-AU-Isla:MAI-Voice-2.1-Flash, en-GB-Emily:MAI-Voice-2.1-Flash, en-GB-Harry:MAI-Voice-2.1-Flash, en-IN-Dhruv:MAI-Voice-2.1-Flash, en-IN-Priya:MAI-Voice-2.1-Flash, en-US-Ethan:MAI-Voice-2.1-Flash, en-US-Grant:MAI-Voice-2.1-Flash, en-US-Harper:MAI-Voice-2.1-Flash, en-US-Iris:MAI-Voice-2.1-Flash, en-US-Jasper:MAI-Voice-2.1-Flash, en-US-Olivia:MAI-Voice-2.1-Flash, en-US-Sage:MAI-Voice-2.1-Flash, es-ES-Marta:MAI-Voice-2.1-Flash, es-MX-Alejo:MAI-Voice-2.1-Flash, es-MX-Grant:MAI-Voice-2.1-Flash, es-MX-Harper:MAI-Voice-2.1-Flash, es-MX-Valeria:MAI-Voice-2.1-Flash, fi-FI-Grant:MAI-Voice-2.1-Flash, fi-FI-Harper:MAI-Voice-2.1-Flash, fr-FR-Grant:MAI-Voice-2.1-Flash, fr-FR-Harper:MAI-Voice-2.1-Flash, fr-FR-Marc:MAI-Voice-2.1-Flash, fr-FR-Soleil:MAI-Voice-2.1-Flash, hi-IN-Arjun:MAI-Voice-2.1-Flash, hi-IN-Dhruv:MAI-Voice-2.1-Flash, hi-IN-Grant:MAI-Voice-2.1-Flash, hi-IN-Harper:MAI-Voice-2.1-Flash, hi-IN-Kavya:MAI-Voice-2.1-Flash, hi-IN-Priya:MAI-Voice-2.1-Flash, hu-HU-Bence:MAI-Voice-2.1-Flash, hu-HU-Grant:MAI-Voice-2.1-Flash, hu-HU-Harper:MAI-Voice-2.1-Flash, hu-HU-Levente:MAI-Voice-2.1-Flash, hu-HU-Lilla:MAI-Voice-2.1-Flash, hu-HU-Reka:MAI-Voice-2.1-Flash, id-ID-Grant:MAI-Voice-2.1-Flash, id-ID-Harper:MAI-Voice-2.1-Flash, it-IT-Grant:MAI-Voice-2.1-Flash, it-IT-Harper:MAI-Voice-2.1-Flash, it-IT-Luca:MAI-Voice-2.1-Flash, it-IT-Rosa:MAI-Voice-2.1-Flash, ko-KR-Grant:MAI-Voice-2.1-Flash, ko-KR-Haena:MAI-Voice-2.1-Flash, ko-KR-Harper:MAI-Voice-2.1-Flash, ko-KR-Junho:MAI-Voice-2.1-Flash, nb-NO-Grant:MAI-Voice-2.1-Flash, nb-NO-Harper:MAI-Voice-2.1-Flash, nl-NL-Grant:MAI-Voice-2.1-Flash, nl-NL-Harper:MAI-Voice-2.1-Flash, nl-NL-Sander:MAI-Voice-2.1-Flash, pl-PL-Grant:MAI-Voice-2.1-Flash, pl-PL-Harper:MAI-Voice-2.1-Flash, pt-BR-Caio:MAI-Voice-2.1-Flash, pt-BR-Grant:MAI-Voice-2.1-Flash, pt-BR-Harper:MAI-Voice-2.1-Flash, pt-BR-Luana:MAI-Voice-2.1-Flash, pt-BR-Pedro:MAI-Voice-2.1-Flash, pt-BR-Rafael:MAI-Voice-2.1-Flash, pt-PT-Grant:MAI-Voice-2.1-Flash, pt-PT-Harper:MAI-Voice-2.1-Flash, pt-PT-Rui:MAI-Voice-2.1-Flash, ro-RO-Andrei:MAI-Voice-2.1-Flash, ro-RO-Elena:MAI-Voice-2.1-Flash, ro-RO-Grant:MAI-Voice-2.1-Flash, ro-RO-Harper:MAI-Voice-2.1-Flash, ro-RO-Ioana:MAI-Voice-2.1-Flash, ro-RO-Radu:MAI-Voice-2.1-Flash, ru-RU-Grant:MAI-Voice-2.1-Flash, ru-RU-Harper:MAI-Voice-2.1-Flash, ru-RU-Lev:MAI-Voice-2.1-Flash, ru-RU-Masha:MAI-Voice-2.1-Flash, sv-SE-Grant:MAI-Voice-2.1-Flash, sv-SE-Harper:MAI-Voice-2.1-Flash, th-TH-Grant:MAI-Voice-2.1-Flash, th-TH-Harper:MAI-Voice-2.1-Flash, th-TH-Krit:MAI-Voice-2.1-Flash, th-TH-Nattapong:MAI-Voice-2.1-Flash, tr-TR-Aydin:MAI-Voice-2.1-Flash, tr-TR-Elif:MAI-Voice-2.1-Flash, tr-TR-Grant:MAI-Voice-2.1-Flash, tr-TR-Harper:MAI-Voice-2.1-Flash, vi-VN-Grant:MAI-Voice-2.1-Flash, vi-VN-Harper:MAI-Voice-2.1-Flash, zh-CN-Bo:MAI-Voice-2.1-Flash, zh-CN-Grant:MAI-Voice-2.1-Flash, zh-CN-Harper:MAI-Voice-2.1-Flash, zh-CN-Lan:MAI-Voice-2.1-Flash, zh-CN-Mei:MAI-Voice-2.1-Flash, zh-CN-Wei:MAI-Voice-2.1-Flash | Predeterminado— |
Camporesponse_format | Tipostring | RequisitoObligatorio | Valores y límites mp3 | Predeterminado— |
Combinaciones de materiales de entrada
text_to_speech · Obligatorio: input
Parámetros del método y ciclo de vida
| Parámetro | Contrato |
|---|---|
Parámetrocontent_type | Contratoapplication/json |
Parámetrorequired | Contratomodel, input, voice, response_format |
Parámetrovoice_ids | Contratocs-CZ-Grant:MAI-Voice-2.1-Flash, cs-CZ-Harper:MAI-Voice-2.1-Flash, da-DK-Grant:MAI-Voice-2.1-Flash, da-DK-Harper:MAI-Voice-2.1-Flash, de-DE-Grant:MAI-Voice-2.1-Flash, de-DE-Harper:MAI-Voice-2.1-Flash, de-DE-Klaus:MAI-Voice-2.1-Flash, de-DE-Mia:MAI-Voice-2.1-Flash, en-AU-Isla:MAI-Voice-2.1-Flash, en-GB-Emily:MAI-Voice-2.1-Flash, en-GB-Harry:MAI-Voice-2.1-Flash, en-IN-Dhruv:MAI-Voice-2.1-Flash, en-IN-Priya:MAI-Voice-2.1-Flash, en-US-Ethan:MAI-Voice-2.1-Flash, en-US-Grant:MAI-Voice-2.1-Flash, en-US-Harper:MAI-Voice-2.1-Flash, en-US-Iris:MAI-Voice-2.1-Flash, en-US-Jasper:MAI-Voice-2.1-Flash, en-US-Olivia:MAI-Voice-2.1-Flash, en-US-Sage:MAI-Voice-2.1-Flash, es-ES-Marta:MAI-Voice-2.1-Flash, es-MX-Alejo:MAI-Voice-2.1-Flash, es-MX-Grant:MAI-Voice-2.1-Flash, es-MX-Harper:MAI-Voice-2.1-Flash, es-MX-Valeria:MAI-Voice-2.1-Flash, fi-FI-Grant:MAI-Voice-2.1-Flash, fi-FI-Harper:MAI-Voice-2.1-Flash, fr-FR-Grant:MAI-Voice-2.1-Flash, fr-FR-Harper:MAI-Voice-2.1-Flash, fr-FR-Marc:MAI-Voice-2.1-Flash, fr-FR-Soleil:MAI-Voice-2.1-Flash, hi-IN-Arjun:MAI-Voice-2.1-Flash, hi-IN-Dhruv:MAI-Voice-2.1-Flash, hi-IN-Grant:MAI-Voice-2.1-Flash, hi-IN-Harper:MAI-Voice-2.1-Flash, hi-IN-Kavya:MAI-Voice-2.1-Flash, hi-IN-Priya:MAI-Voice-2.1-Flash, hu-HU-Bence:MAI-Voice-2.1-Flash, hu-HU-Grant:MAI-Voice-2.1-Flash, hu-HU-Harper:MAI-Voice-2.1-Flash, hu-HU-Levente:MAI-Voice-2.1-Flash, hu-HU-Lilla:MAI-Voice-2.1-Flash, hu-HU-Reka:MAI-Voice-2.1-Flash, id-ID-Grant:MAI-Voice-2.1-Flash, id-ID-Harper:MAI-Voice-2.1-Flash, it-IT-Grant:MAI-Voice-2.1-Flash, it-IT-Harper:MAI-Voice-2.1-Flash, it-IT-Luca:MAI-Voice-2.1-Flash, it-IT-Rosa:MAI-Voice-2.1-Flash, ko-KR-Grant:MAI-Voice-2.1-Flash, ko-KR-Haena:MAI-Voice-2.1-Flash, ko-KR-Harper:MAI-Voice-2.1-Flash, ko-KR-Junho:MAI-Voice-2.1-Flash, nb-NO-Grant:MAI-Voice-2.1-Flash, nb-NO-Harper:MAI-Voice-2.1-Flash, nl-NL-Grant:MAI-Voice-2.1-Flash, nl-NL-Harper:MAI-Voice-2.1-Flash, nl-NL-Sander:MAI-Voice-2.1-Flash, pl-PL-Grant:MAI-Voice-2.1-Flash, pl-PL-Harper:MAI-Voice-2.1-Flash, pt-BR-Caio:MAI-Voice-2.1-Flash, pt-BR-Grant:MAI-Voice-2.1-Flash, pt-BR-Harper:MAI-Voice-2.1-Flash, pt-BR-Luana:MAI-Voice-2.1-Flash, pt-BR-Pedro:MAI-Voice-2.1-Flash, pt-BR-Rafael:MAI-Voice-2.1-Flash, pt-PT-Grant:MAI-Voice-2.1-Flash, pt-PT-Harper:MAI-Voice-2.1-Flash, pt-PT-Rui:MAI-Voice-2.1-Flash, ro-RO-Andrei:MAI-Voice-2.1-Flash, ro-RO-Elena:MAI-Voice-2.1-Flash, ro-RO-Grant:MAI-Voice-2.1-Flash, ro-RO-Harper:MAI-Voice-2.1-Flash, ro-RO-Ioana:MAI-Voice-2.1-Flash, ro-RO-Radu:MAI-Voice-2.1-Flash, ru-RU-Grant:MAI-Voice-2.1-Flash, ru-RU-Harper:MAI-Voice-2.1-Flash, ru-RU-Lev:MAI-Voice-2.1-Flash, ru-RU-Masha:MAI-Voice-2.1-Flash, sv-SE-Grant:MAI-Voice-2.1-Flash, sv-SE-Harper:MAI-Voice-2.1-Flash, th-TH-Grant:MAI-Voice-2.1-Flash, th-TH-Harper:MAI-Voice-2.1-Flash, th-TH-Krit:MAI-Voice-2.1-Flash, th-TH-Nattapong:MAI-Voice-2.1-Flash, tr-TR-Aydin:MAI-Voice-2.1-Flash, tr-TR-Elif:MAI-Voice-2.1-Flash, tr-TR-Grant:MAI-Voice-2.1-Flash, tr-TR-Harper:MAI-Voice-2.1-Flash, vi-VN-Grant:MAI-Voice-2.1-Flash, vi-VN-Harper:MAI-Voice-2.1-Flash, zh-CN-Bo:MAI-Voice-2.1-Flash, zh-CN-Grant:MAI-Voice-2.1-Flash, zh-CN-Harper:MAI-Voice-2.1-Flash, zh-CN-Lan:MAI-Voice-2.1-Flash, zh-CN-Mei:MAI-Voice-2.1-Flash, zh-CN-Wei:MAI-Voice-2.1-Flash |
Parámetroresponse_format | Contratomp3 |
Parámetromax_input_characters | Contratonull |
Parámetroother_options | Contratofalse |
Parámetroinput | Contratotexto UTF-8 exacto; recuento de caracteres Unicode sin normalización |
Parámetromaterial_types | Contratotext |
Ciclo de vida: synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · task_id real devuelto o registro de la biblioteca multimedia
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Selecciona una voz exacta de este perfil de modelo.
Los caracteres de entrada y los segundos de audio son métricas de consumo diferentes.
Planes
Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.
- Modo rápido
- Sin especificar Cuando se selecciona el modo rápido
- Modo flex
- Sin especificar Cuando se selecciona el modo flex
- Esfuerzo máximo de razonamiento
- Sin especificar Cuando el esfuerzo máximo de razonamiento utiliza el ajuste predeterminado (default)
Tarifas de Ailoot
Precios por configuración
Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.
| Configuración | Tabla de tarifas | Cantidad facturable | Unidad de facturación | Cargo |
|---|---|---|---|---|
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Cantidad facturable— | Unidad de facturación— | Cargo Entrada · Tokens de entrada — / 1K tokens Salida · Tokens de salida — / 1K tokens Entrada · Lectura de caché — / 1K tokens Entrada · Escritura en caché — / 1K tokens Entrada · Escritura en caché, 1 hora — / 1K tokens |
| ConfiguraciónUltra | Tabla de tarifas— | Cantidad facturableCada punto de código Unicode cuenta como un carácter, incluidos los caracteres Han. | Unidad de facturaciónpor 1K caracteres de entrada | Cargo Entrada · carácter de entrada $0.03 por 1K caracteres de entrada |
Detalles de la tarifa de referencia
Las tablas de referencia del modelo no cambian la selección del método, las estimaciones de coste ni los cargos. Los cargos aplicados usan las tarifas del método Ailoot seleccionado.
Microsoft AI: MAI-Voice-2.1-Flash
Precios por configuración
| Configuración | Condiciones de facturación | Cargo |
|---|---|---|
| ConfiguraciónMicrosoft AI: MAI-Voice-2.1-Flash · Configuración predeterminada | Condiciones de facturaciónConfiguración predeterminada | Cargo Entrada · Caracteres de entrada 0,00003 US$ por carácter de entrada |
Ailoot reserva un importe estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. Cómo funcionan la reserva y la liquidación →
Solicitudes de ejemplo
Ailoot Ultra · Síntesis de voz
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "microsoft/mai-voice-2.1-flash", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["cs-CZ-Grant:MAI-Voice-2.1-Flash", "cs-CZ-Harper:MAI-Voice-2.1-Flash", "da-DK-Grant:MAI-Voice-2.1-Flash", "da-DK-Harper:MAI-Voice-2.1-Flash", "de-DE-Grant:MAI-Voice-2.1-Flash", "de-DE-Harper:MAI-Voice-2.1-Flash", "de-DE-Klaus:MAI-Voice-2.1-Flash", "de-DE-Mia:MAI-Voice-2.1-Flash", "en-AU-Isla:MAI-Voice-2.1-Flash", "en-GB-Emily:MAI-Voice-2.1-Flash", "en-GB-Harry:MAI-Voice-2.1-Flash", "en-IN-Dhruv:MAI-Voice-2.1-Flash", "en-IN-Priya:MAI-Voice-2.1-Flash", "en-US-Ethan:MAI-Voice-2.1-Flash", "en-US-Grant:MAI-Voice-2.1-Flash", "en-US-Harper:MAI-Voice-2.1-Flash", "en-US-Iris:MAI-Voice-2.1-Flash", "en-US-Jasper:MAI-Voice-2.1-Flash", "en-US-Olivia:MAI-Voice-2.1-Flash", "en-US-Sage:MAI-Voice-2.1-Flash", "es-ES-Marta:MAI-Voice-2.1-Flash", "es-MX-Alejo:MAI-Voice-2.1-Flash", "es-MX-Grant:MAI-Voice-2.1-Flash", "es-MX-Harper:MAI-Voice-2.1-Flash", "es-MX-Valeria:MAI-Voice-2.1-Flash", "fi-FI-Grant:MAI-Voice-2.1-Flash", "fi-FI-Harper:MAI-Voice-2.1-Flash", "fr-FR-Grant:MAI-Voice-2.1-Flash", "fr-FR-Harper:MAI-Voice-2.1-Flash", "fr-FR-Marc:MAI-Voice-2.1-Flash", "fr-FR-Soleil:MAI-Voice-2.1-Flash", "hi-IN-Arjun:MAI-Voice-2.1-Flash", "hi-IN-Dhruv:MAI-Voice-2.1-Flash", "hi-IN-Grant:MAI-Voice-2.1-Flash", "hi-IN-Harper:MAI-Voice-2.1-Flash", "hi-IN-Kavya:MAI-Voice-2.1-Flash", "hi-IN-Priya:MAI-Voice-2.1-Flash", "hu-HU-Bence:MAI-Voice-2.1-Flash", "hu-HU-Grant:MAI-Voice-2.1-Flash", "hu-HU-Harper:MAI-Voice-2.1-Flash", "hu-HU-Levente:MAI-Voice-2.1-Flash", "hu-HU-Lilla:MAI-Voice-2.1-Flash", "hu-HU-Reka:MAI-Voice-2.1-Flash", "id-ID-Grant:MAI-Voice-2.1-Flash", "id-ID-Harper:MAI-Voice-2.1-Flash", "it-IT-Grant:MAI-Voice-2.1-Flash", "it-IT-Harper:MAI-Voice-2.1-Flash", "it-IT-Luca:MAI-Voice-2.1-Flash", "it-IT-Rosa:MAI-Voice-2.1-Flash", "ko-KR-Grant:MAI-Voice-2.1-Flash", "ko-KR-Haena:MAI-Voice-2.1-Flash", "ko-KR-Harper:MAI-Voice-2.1-Flash", "ko-KR-Junho:MAI-Voice-2.1-Flash", "nb-NO-Grant:MAI-Voice-2.1-Flash", "nb-NO-Harper:MAI-Voice-2.1-Flash", "nl-NL-Grant:MAI-Voice-2.1-Flash", "nl-NL-Harper:MAI-Voice-2.1-Flash", "nl-NL-Sander:MAI-Voice-2.1-Flash", "pl-PL-Grant:MAI-Voice-2.1-Flash", "pl-PL-Harper:MAI-Voice-2.1-Flash", "pt-BR-Caio:MAI-Voice-2.1-Flash", "pt-BR-Grant:MAI-Voice-2.1-Flash", "pt-BR-Harper:MAI-Voice-2.1-Flash", "pt-BR-Luana:MAI-Voice-2.1-Flash", "pt-BR-Pedro:MAI-Voice-2.1-Flash", "pt-BR-Rafael:MAI-Voice-2.1-Flash", "pt-PT-Grant:MAI-Voice-2.1-Flash", "pt-PT-Harper:MAI-Voice-2.1-Flash", "pt-PT-Rui:MAI-Voice-2.1-Flash", "ro-RO-Andrei:MAI-Voice-2.1-Flash", "ro-RO-Elena:MAI-Voice-2.1-Flash", "ro-RO-Grant:MAI-Voice-2.1-Flash", "ro-RO-Harper:MAI-Voice-2.1-Flash", "ro-RO-Ioana:MAI-Voice-2.1-Flash", "ro-RO-Radu:MAI-Voice-2.1-Flash", "ru-RU-Grant:MAI-Voice-2.1-Flash", "ru-RU-Harper:MAI-Voice-2.1-Flash", "ru-RU-Lev:MAI-Voice-2.1-Flash", "ru-RU-Masha:MAI-Voice-2.1-Flash", "sv-SE-Grant:MAI-Voice-2.1-Flash", "sv-SE-Harper:MAI-Voice-2.1-Flash", "th-TH-Grant:MAI-Voice-2.1-Flash", "th-TH-Harper:MAI-Voice-2.1-Flash", "th-TH-Krit:MAI-Voice-2.1-Flash", "th-TH-Nattapong:MAI-Voice-2.1-Flash", "tr-TR-Aydin:MAI-Voice-2.1-Flash", "tr-TR-Elif:MAI-Voice-2.1-Flash", "tr-TR-Grant:MAI-Voice-2.1-Flash", "tr-TR-Harper:MAI-Voice-2.1-Flash", "vi-VN-Grant:MAI-Voice-2.1-Flash", "vi-VN-Harper:MAI-Voice-2.1-Flash", "zh-CN-Bo:MAI-Voice-2.1-Flash", "zh-CN-Grant:MAI-Voice-2.1-Flash", "zh-CN-Harper:MAI-Voice-2.1-Flash", "zh-CN-Lan:MAI-Voice-2.1-Flash", "zh-CN-Mei:MAI-Voice-2.1-Flash", "zh-CN-Wei:MAI-Voice-2.1-Flash"]')
if voice not in allowed: raise SystemExit("Choose an accepted voice ID from this exact model profile")
p["voice"]=voice
p["response_format"]="mp3"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o speech.mp3
Recibir y guardar resultados
Ailoot Ultra · Síntesis de voz
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Otras consultas de contenido
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
Conserva todos los resultados completados
Conserva todas las respuestas, archivos y partes de contenido completos recibidos.
Conserva el resultado binario completo y las cabeceras. Si se devuelve JSON o varias salidas, conserva todos los elementos de datos y descarga el recurso de cada URL firmada real.
Si es necesario revisar la respuesta original
Conserva el operation_id/X-Client-Request-ID original para la conciliación sin volver a enviar la solicitud; no hay una ruta dedicada para consultar periódicamente el audio.
Campos de respuesta
| Campo | Tipo |
|---|---|
Campobinary audio | Tipobytes |
Camporesponse headers | Tipoheaders |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta400 · invalid_request_error | CondiciónCampos obligatorios, representación del material o valor del parámetro no válidos | Siguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación. |
Respuestaserver_error | CondiciónLa respuesta devuelta indica que la operación o el resultado requiere una comprobación | Siguiente pasoConserva el ID original de operación o tarea devuelto, las cabeceras de la solicitud y la respuesta; continúa con las lecturas admitidas de esa operación original. No vuelvas a enviar la solicitud de creación. |
Alias
Alias del modelo
Ailoot Ultra microsoft/mai-voice-2.1-flash
Alias de rutas de métodos
Usa las rutas de método indicadas arriba.
ID de modelo relacionados
FAQ · Microsoft AI: MAI-Voice-2.1-Flash
- ¿Qué entradas y resultados están disponibles?
POST /v1/audio/speech·microsoft/mai-voice-2.1-flash:text→audio- ¿Qué campos utiliza la solicitud?
POST /v1/audio/speech·microsoft/mai-voice-2.1-flash:model,input,voice,response_format