AIREITER

Configuración local de Ming-3.0-TTS: ¿0.5B o Tiny?

Última actualización: 2026-10-20 02:28:16

Que un modelo se llame “Tiny” no significa que sea la vía más sencilla para usarlo en local. En Ming-3.0-TTS ocurre justo lo contrario: el punto de partida recomendable es el checkpoint denso 0.5B, mientras que Tiny tiene sentido si necesitas generar podcasts con varios hablantes. El gran interrogante es el hardware: InclusionAI documenta pruebas en H800/H20, pero no establece un mínimo para GPU de consumo.

Elige el checkpoint antes de crear el entorno

Ming-3.0-TTS ofrece dos checkpoints con arquitecturas base, dependencias y puntos de entrada distintos. Para una primera instalación, 0.5B es la opción más razonable; Tiny justifica su mayor tamaño cuando la similitud de voz o los diálogos multihablante pesan más que la sencillez de despliegue.

CriterioMing-3.0-tts-0.5BMing-3.0-tts-tiny
ArquitecturaBackbone denso Qwen2.5-0.5BLing V3 MoE, 7.9B totales / 1.3B activos
Clase oficial de APIming_tts.MingTTSming_tiny.MingTinyTTS
CLI principalinfer.pyinfer_tiny.py y scripts de un clic
Entorno de referenciaPyTorch 2.6, CUDA 12.4Python 3.10.15, PyTorch 2.7.1+cu118
Hardware documentadoProbado en H800-80GB y H20-96GH800 recomendado
Motivo exclusivo para elegirloCheckpoint denso más pequeño; mejor precisión en coreano y en controles básicos según las pruebas del proveedorModo podcast multihablante; mejor similitud de hablante en chino/inglés según las pruebas del proveedor
Tamaño publicado del checkpointUnos 2.96 GB, según la comparación de archivos publicada por OrcaRouterUnos 18 GB en Hugging Face

Ambos checkpoints generan audio a 44.1 kHz, admiten siete idiomas y emplean modos de tarea separados para clonación de voz, diseño de voz, emoción, dialecto y otros controles. El repositorio oficial publica ambos bajo licencia MIT e indica que Tiny necesita un entorno dedicado porque sus dependencias fijadas difieren de las de 0.5B.

En Tiny, el nombre describe el cómputo MoE activo, no el peso almacenado. La tarjeta del modelo Tiny indica 7.9B de parámetros en el backbone, aproximadamente 1.3B activos por token y un repositorio de unos 18 GB.

Instalación local: del clon al checkpoint verificado

Una instalación local fiable de Ming-3.0-TTS mantiene los dos modelos en entornos independientes. Clona el código oficial una vez, instala únicamente los requisitos del checkpoint elegido, descarga sus pesos y ejecuta el script de comprobación correspondiente antes de cargar el modelo.

Instalar el entorno de 0.5B

La ruta básica del repositorio es breve:

git clone https://github.com/inclusionAI/Ming-3.0-tts.git
cd Ming-3.0-tts
conda create -n ming-tts python=3.10 -y
conda activate ming-tts
pip install -r requirements.txt

La tarjeta del modelo 0.5B indica que la configuración de referencia usa PyTorch 2.6, CUDA 12.4 y transformers==4.46.3. FlashAttention es opcional; PyTorch SDPA actúa como alternativa. Esa alternativa garantiza compatibilidad, pero el proyecto no publica su impacto en velocidad.

Los números, fechas, unidades y símbolos se procesan mediante normalización de texto FST. Instala la versión fijada de Pynini con Conda:

conda install -c conda-forge pynini==2.1.6

pynini no dispone de una wheel universal. --no_text_normalization permite omitirlo, pero entonces el sintetizador recibe abreviaturas, fechas, números y símbolos sin procesar; úsalo para diagnosticar problemas, no como configuración predeterminada de producción.

Instalar Tiny en un entorno independiente

No instales Tiny sobre el entorno de 0.5B. La configuración oficial fija Python 3.10.15, wheels de CUDA 11.8, PyTorch y torchaudio 2.7.1, además de transformers==4.46.3:

conda create -n ming-tiny python=3.10.15 -y
conda activate ming-tiny
pip install -r requirements-tiny.txt

Tiny utiliza cálculo BF16, un bucle MoE portable y estado recurrente FP32. InclusionAI recomienda una NVIDIA H800, y la documentación no ofrece una ruta compatible para CPU, Apple Silicon, GGUF ni llama.cpp.

Descargar y verificar cualquiera de los checkpoints

La CLI de Hugging Face permite guardar los pesos en un directorio local predecible:

pip install "huggingface_hub[cli]"
hf download inclusionAI/Ming-3.0-tts-0.5B \
  --local-dir Ming-3.0-tts-0.5b
python tools/preflight.py --model_path Ming-3.0-tts-0.5b

Para Tiny, sustituye el ID del modelo y ejecuta su propio verificador:

hf download inclusionAI/Ming-3.0-tts-tiny \
  --local-dir Ming-3.0-tts-tiny
python tools/preflight_tiny.py --model_path Ming-3.0-tts-tiny

Los scripts de comprobación validan la estructura del checkpoint y del tokenizador sin cargar los pesos. Los usuarios de China continental pueden utilizar en su lugar el comando de descarga de ModelScope documentado en el README del proyecto.

Genera un archivo antes de montar el servidor

La primera validación útil consiste en generar un WAV mediante la CLI del repositorio. Para clonar una voz con 0.5B, proporciona el texto objetivo, un WAV de referencia, su transcripción exacta y --use_spk_emb; la transcripción forma parte de la ruta de condicionamiento, no es un metadato opcional.

python infer.py \
  --model_path Ming-3.0-tts-0.5b \
  --task TTS \
  --language_id English \
  --text "The release candidate passed every audio check." \
  --prompt_wav_path reference.wav \
  --prompt_text "This is the exact speech in the reference recording." \
  --use_spk_emb \
  --output output/first.wav

El resultado debería ser un WAV de 44.1 kHz. Si la verificación del checkpoint termina correctamente pero este comando falla, revisa la compatibilidad entre CUDA y PyTorch, así como el archivo de referencia, antes de añadir una interfaz o una capa de servidor. Los repositorios de Hugging Face distribuyen los checkpoints; ambas tarjetas de modelo indican que la inferencia práctica requiere el repositorio independiente de GitHub.

La grabación de referencia debe ser limpia y su transcripción, exacta. La documentación oficial no publica una duración de referencia ideal, así que no conviertas una regla práctica no documentada en un requisito de validación estricto.

Publica Ming-3.0-TTS en un único endpoint de voz

SGLang-Omni puede exponer cualquiera de los checkpoints mediante POST /v1/audio/speech en una sola GPU. El cookbook de SGLang para Ming-3.0-TTS sitúa el preprocesamiento en CPU y el backbone junto al decodificador AudioVAE en la misma GPU.

Inicia uno de los checkpoints:

sgl-omni serve --model-path inclusionAI/Ming-3.0-tts-0.5B

Después, solicita un WAV:

curl http://127.0.0.1:8000/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{
    "model": "inclusionAI/Ming-3.0-tts-0.5B",
    "input": "The local speech endpoint is ready.",
    "response_format": "wav",
    "seed": 123
  }' \
  --output speech.wav

Este endpoint acepta wav, mp3, flac o pcm; WAV es el formato predeterminado. Una entrada vacía devuelve HTTP 400. El campo model debe coincidir con el checkpoint empleado para iniciar el servidor.

No diseñes la reproducción pensando en streaming por tokens. El cookbook de SGLang indica que stream=true sigue esperando a que finalice la generación y devuelve un único cuerpo de respuesta PCM completo. Además, solo admite una grabación de referencia para la clonación; una segunda referencia se rechaza.

Los controles son modos de tarea, no opciones combinables

Los controles de Ming-3.0-TTS se articulan como contratos de tarea separados. Cada solicitud debe elegir la tarea que corresponda al resultado buscado, en vez de mezclar todos los controles disponibles en una llamada.

ObjetivoTarea 0.5BTarea TinyRegla de entrada importante
Clonar una vozTTSseedAudio de referencia y transcripción exacta
Alemán, español, francés, coreano o japonésMULTILINGUALmultilingualReferencia y transcripción; idioma de destino explícito
Risas, suspiros o respiraciones en líneaTTSparalinguisticChino o inglés; usa las etiquetas en línea documentadas
Indicación de interpretación en lenguaje naturalFREEFORMfreeformNo se recomienda usar referencia; no lo combines con otras tareas de control
Diseñar una voz desde textoVOICE_DESIGNvoice_designSin audio de referencia
Establecer emociónEMOTIONemotionAudio de referencia; sin transcripción de referencia
Ajustar velocidad, tono y volumenBASICbasicProporciona los tres controles
Sichuanés o cantonésDIALECTdialectSin language_id
Guion multihablanteNo compatiblepodcastUna referencia y transcripción por hablante; cada línea comienza con speaker_N:

El cookbook oficial indica expresamente que el modo libre no puede combinarse con diseño de voz, voces integradas, emoción, dialecto o atributos básicos. Se admiten varios eventos paralingüísticos en una misma frase, pero las limitaciones del repositorio señalan que la estabilidad sigue siendo menor que con eventos individuales.

Qué demuestran las puntuaciones y qué no

La evidencia pública más sólida posiciona a 0.5B como opción predeterminada y a Tiny como modelo especializado. Los resultados de Artificial Analysis reproducidos en el README oficial sitúan a Ming-3.0-TTS en 1,069 Controlled Voice Elo y un 93.2% de robustez de pronunciación en octubre de 2026, pero esas afirmaciones de clasificación corresponden al modelo 0.5B y no prueban la calidad de Tiny.

Las evaluaciones del proveedor reflejan una diferencia real entre checkpoints. En los datos de evaluación de Seed-TTS, 0.5B registra WER chino/inglés de 0.800%/1.584%, frente a 0.820%/1.666% de Tiny. Tiny obtiene una mayor similitud de hablante en ambos idiomas: 0.781/0.728 frente a 0.758/0.691 de 0.5B. Estas cifras proceden de las tablas de evaluación de InclusionAI, no de una prueba local reproducida.

Tiny no mejora de forma uniforme en sus siete idiomas. La tabla multilingüe oficial informa de un CER coreano del 6.000% para Tiny, frente al 1.728% de 0.5B. Tiny es el único que admite podcasts y registra un CER de podcast del 2.03%, una similitud de hablante condicional de 0.561 y 2.12 UTMOS, aunque InclusionAI también identifica la calidad de audio predicha para podcasts como un área de mejora.

La conclusión práctica es concreta: elige 0.5B para el primer despliegue, para coreano y para reducir la complejidad operativa; evalúa Tiny si necesitas generar podcasts o si su mayor similitud de voz medida con tus propias referencias justifica el checkpoint más grande.

Valida el despliegue en tu propio hardware

Que la instalación oficial funcione no demuestra que sea viable en producción con una GPU de consumo. El criterio de despliegue debería registrar VRAM máxima, tiempo hasta el primer WAV terminado, factor de tiempo real, tasa de fallos y calidad de salida en las condiciones exactas de idioma y audio de referencia que utilizará la aplicación.

“No GGUF/llama.cpp yet, and no consumer-GPU benchmarks.” — @TeksEdge on X

Esta observación encaja con los límites de la evidencia oficial: la documentación de 0.5B menciona sistemas de prueba H800-80GB y H20-96G, mientras que Tiny recomienda H800. Ninguna tarjeta oficial del modelo publica resultados para RTX 4090, RTX 3090, Windows, WSL2, macOS, VRAM mínima o factor de tiempo real.

Aplica esta secuencia de validación:

  1. Ejecuta el script de comprobación correspondiente y conserva su salida junto con la revisión del checkpoint.
  2. Genera un WAV corto mediante una ruta integrada o sin hablante y repite después con el formato de referencia de producción.
  3. Mide la VRAM máxima y el tiempo total para textos de producción cortos, medianos y largos.
  4. Evalúa por separado inteligibilidad e identidad del hablante en todos los idiomas que vayas a publicar.
  5. Prueba cada control necesario como una tarea independiente; descarta configuraciones que dependan de combinaciones no compatibles.
  6. Realiza pruebas de carga del comportamiento de API de forma de onda completa, incluidos los tiempos de espera y la concurrencia.

Sin esas mediciones, “funciona en local” solo significa que la pila de referencia puede cargarse y sintetizar en el hardware de centro de datos documentado.

Preguntas frecuentes sobre Ming-3.0-TTS

¿Puede Ming-3.0-TTS ejecutarse en una RTX 4090 o 3090?

La versión oficial no publica una cifra mínima de VRAM ni benchmarks en GPU de consumo. El checkpoint 0.5B es el punto de partida más plausible, pero verifica localmente la asignación máxima y el factor de tiempo real antes de comprometerte con cualquiera de las dos tarjetas.

¿Ming-3.0-TTS funciona en Windows o macOS?

Los entornos oficiales de referencia son pilas Linux basadas en CUDA. El repositorio oficial no documenta compatibilidad nativa con Windows, WSL2, Apple Silicon, MLX, GGUF ni llama.cpp.

¿Puede usarse Ming-3.0-TTS con fines comerciales?

El código y los checkpoints publicados tienen licencia MIT. Los mantenedores prohíben en sus directrices de uso la suplantación engañosa o no consentida y solicitan etiquetar el habla sintética cuando pueda confundirse con una grabación real.

¿La API de SGLang transmite audio en tiempo real?

No. El comportamiento documentado de stream=true finaliza la generación antes de devolver un único cuerpo de respuesta PCM, por lo que los clientes deben tratarlo como generación de respuesta completa y no como reproducción incremental.

¿Debo usar Ming-3.0-tts-0.5B o Tiny?

Empieza con 0.5B si buscas un checkpoint más pequeño, un despliegue más sencillo, síntesis en coreano y trabajo habitual con un solo hablante. Usa Tiny cuando la generación de podcasts multihablante sea imprescindible o una evaluación local confirme que sus mayores puntuaciones de similitud de hablante en chino/inglés se trasladan a tus voces.