Saltar al contenido

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.

POST/v1/t2a_v2

Acepta 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

Authorization:obligatoriostring

Bearer sk-…: una clave de API creada en la consola; su grupo debe incluir el modelo solicitado

Parámetros del cuerpoJSON

model:obligatoriostring

Distingue mayúsculas, sin alias

Valoresspeech-2.8-hdspeech-2.8-turbo

text:obligatoriostring

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

stream:opcionalboolean

Con true, la respuesta cambia a SSE

Predeterminadofalse

stream_options:opcionalobject

Opciones de streaming

language_boost:opcionalstring

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

pronunciation_dict:opcionalobject

Diccionario de pronunciación

voice_modify:opcionalobject

Ajustes de timbre; se reenvían con la semántica oficial y el gateway no los valida

output_format:opcionalstring

Solo admite hex; enviar url devuelve 400

Valoreshex

Predeterminado"hex"

voice_setting:opcionalobject

Configuración de voz

audio_setting:opcionalobject

Configuración de audio

Respuesta

200JSON sin streaming; con stream: true es text/event-stream, y el data de cada evento tiene la misma estructura que abajo

data:opcionalobject
extra_info:opcionalobject

Metadatos del audio y caracteres facturados

base_resp:opcionalobject

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

Errores

400model 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.
401Falta la clave, la clave no es válida o ha caducado (missing_api_key / invalid_api_key / api_key_expired)
402Se agotó el saldo o la cuota de la clave, del miembro o del departamento (insufficient_quota)
404El modelo no está en el grupo de esta clave (model_not_found) o la ruta no pertenece a ese grupo (route_not_found)
413Cuerpo de la solicitud mayor de 1 MiB: request body exceeds the 1048576 byte limit (got N bytes)
429Se alcanzó el límite de concurrencia de la cuenta o de la clave (user_concurrency_limit / apikey_concurrency_limit), con Retry-After
502Audio mayor de 64 MiB (response_size_limit_exceeded): use stream: true, acorte el texto o reduzca la tasa de bits
503No hay servicio disponible en este momento: reintente con espera progresiva (2 s, 5 s, 15 s, hasta tres veces)

Páginas relacionadas