Crear audio T2A v2
Cuerpo nativo de MiniMax T2A v2: parámetros completos, voces clonadas y streaming SSE; el audio de la respuesta JSON va en hexadecimal.
/v1/t2a_v2Acepta el cuerpo de solicitud de MiniMax T2A v2 tal cual: el código del SDK oficial se reutiliza cambiando la Base URL y la clave; los campos que el gateway no reconoce también se reenvían sin cambios, y la respuesta JSON mantiene la estructura oficial (salvo los errores). Los dos modelos de voz pertenecen al grupo independiente MiniMax Speech oficial; las claves de grupos de chat o de video no pueden llamarlos.
Aquí el gateway solo hace tres cosas: valida model, la longitud de text, stream y output_format; ajusta voice_setting.speed al intervalo oficial; y limita el cuerpo de la solicitud a ≤1 MiB. En los demás campos, los valores fuera del rango oficial reciben 400 del servicio.
data.audio es audio codificado en hexadecimal y extra_info.usage_characters es el número de caracteres facturados. Con stream: true cambia a SSE: cada evento data: {...} lleva un fragmento de audio hexadecimal, y el último bloque tiene data.status igual a 2 e incluye extra_info; si el streaming falla a mitad, se envía un último evento con base_resp y se corta el flujo, sin facturar. Ver Streaming.
Para voces clonadas, use voice_setting.voice_id (o timber_weights[].voice_id). La primera síntesis correcta con la voz cobra una vez la tarifa de clonación, y el detalle del registro de uso muestra una línea adicional voice_clone_activation. Si solo necesita la estructura de OpenAI, use POST /v1/audio/speech.
Encabezados
Bearer sk-…: una clave de API creada en la consola; su grupo debe incluir el modelo solicitado
Parámetros del cuerpoJSON
Distingue mayúsculas, sin alias
Valoresspeech-2.8-hdspeech-2.8-turbo
Texto a sintetizar; separe los párrafos con saltos de línea. Admite marcas de pausa <#x#> (0.01–99.99 segundos), pronunciación en línea e interjecciones; ver la guía de síntesis de voz. La recomendación oficial es usar streaming por encima de 3000 caracteres
Longitud1–10000 caracteres
Con true, la respuesta cambia a SSE
Predeterminadofalse
Opciones de streaming
Con true, el último bloque ya no incluye el audio completo. Se recomienda true en streaming; si no, el último bloque vuelve a enviar todo el audio y, si se anexa directamente, el audio queda duplicado
Predeterminadofalse
Mejora el reconocimiento de ese idioma o dialecto; auto deja que el modelo lo determine. Las voces en cantonés requieren Chinese,Yue. Si no se envía, no se configura
ValoresautoChineseChinese,YueEnglishArabicRussianSpanishFrenchPortugueseGermanTurkishDutchUkrainianVietnameseIndonesianJapaneseItalianKoreanThaiPolishRomanianGreekCzechFinnishHindiBulgarianDanishHebrewMalayPersianSlovakSwedishCroatianFilipinoHungarianNorwegianSlovenianCatalanNynorskTamilAfrikaans
Diccionario de pronunciación
Reglas original/sustitución; varias se aplican a la vez. La sustitución puede ser texto plano (omg/oh my god), kana japonés (una palabra seguida de su lectura en katakana), pinyin con números de tono 1–5 entre paréntesis (una palabra china seguida de /(chu3)(li3)) o IPA (resume/(rɪˈzjuːm))
Ajustes de timbre; se reenvían con la semántica oficial y el gateway no los valida
Grave → brillante
Rango-100–100
Potente → suave
Rango-100–100
Profundo → nítido
Rango-100–100
Efecto de sonido; solo uno a la vez. Con efectos, sin streaming se admiten mp3 / wav / flac; en streaming solo mp3
Valoresspacious_echoauditorium_echolofi_telephonerobotic
Solo admite hex; enviar url devuelve 400
Valoreshex
Predeterminado"hex"
Configuración de voz
ID de voz del sistema o de voz clonada; mayúsculas, espacios y paréntesis se envían tal cual; ver Voces del sistema
Velocidad; intervalo oficial 0.5–2; el gateway ajusta los valores fuera de ese intervalo al límite más cercano
Predeterminado1
Volumen, mayor que 0 y hasta 10
Rango≤ 10Predeterminado1
Tono; 0 es el tono original
Rango-12–12Predeterminado0
Si no se envía, se deduce automáticamente del texto; indíquelo solo cuando necesite fijar la emoción. La documentación oficial solo indica fluent y whisper para la serie 2.6; whisper no se admite explícitamente en Speech 2.8
Valoreshappysadangryfearfuldisgustedsurprisedcalmfluentwhisper
Normaliza la lectura de números en chino e inglés; aumenta un poco la latencia
Predeterminadofalse
Solo chino; las fórmulas van entre $$. Al activarlo, language_boost se fuerza a Chinese
Predeterminadofalse
Configuración de audio
opus es un contenedor Ogg/Opus
Valoresmp3pcmflacwavopus
Predeterminado"mp3"
Frecuencia de muestreo; con opus debe enviarse explícitamente. La documentación oficial no indica un valor predeterminado; su ejemplo usa 32000
Valores80001600022050240003200044100
Tasa de bits; solo se aplica con mp3. La documentación oficial no indica un valor predeterminado; su ejemplo usa 128000
Valores3200064000128000256000
1 mono, 2 estéreo
Valores12
Predeterminado1
Tasa de bits constante; solo se aplica a mp3 en streaming
Predeterminadofalse
Respuesta
200JSON sin streaming; con stream: true es text/event-stream, y el data de cada evento tiene la misma estructura que abajo
Audio codificado en hexadecimal; en streaming, el fragmento de audio de este bloque
2 en el último bloque del streaming
Metadatos del audio y caracteres facturados
Caracteres facturados (valor de referencia): cada carácter Unicode cuenta 1 y cada carácter chino suma 1 más; la puntuación, los espacios, los emoji y las marcas de pausa cuentan 1 cada uno
Duración del audio, en milisegundos
Frecuencia de muestreo
Bytes del audio
Tasa de bits
Número de palabras
Formato de audio, p. ej. mp3
Número de canales
Si tiene éxito, {"status_code": 0, "status_msg": "success"}; los errores no van aquí, sino con un código de estado distinto de 200 y un objeto error
0 si tiene éxito
success si tiene éxito
Errores
model no admitido, text vacío o de más de 10000 caracteres, output_format distinto de hex, ID de voz inexistente, opus sin sample_rate, valores fuera del rango oficial, contenido sensible, etc.missing_api_key / invalid_api_key / api_key_expired)insufficient_quota)model_not_found) o la ruta no pertenece a ese grupo (route_not_found)request body exceeds the 1048576 byte limit (got N bytes)user_concurrency_limit / apikey_concurrency_limit), con Retry-Afterresponse_size_limit_exceeded): use stream: true, acorte el texto o reduzca la tasa de bits