EchoraEchora
Volver a los modelos

GLM-TTS: la respuesta de Zhipu, lista para producción, al TTS chino «suficientemente bueno»

4 de septiembre de 2026
•
7 min de lectura

Muchos modelos TTS open source son demostraciones de investigación disfrazadas con un README de GitHub. GLM-TTS, publicado por Zhipu AI en colaboración con la Universidad de Tsinghua, se creó desde el principio con otro objetivo: el despliegue en producción. Clona una voz a partir de un clip de 3 segundos, controla la emoción y la pronunciación con auténtica precisión y se entrenó con unas 100 000 horas de datos, una cantidad comparativamente moderada, pese a lo cual consiguió resultados de vanguardia en varios benchmarks abiertos; la eficiencia importa tanto como la calidad pura.

¿Qué es GLM-TTS?

GLM-TTS es un sistema de texto a voz open source y de nivel industrial desarrollado por investigadores de Zhipu AI y la Universidad de Tsinghua. Se basa en una arquitectura de dos etapas: un modelo de lenguaje autorregresivo que convierte texto en tokens, seguido de un modelo de flow matching que transforma esos tokens en una forma de onda. Esta combinación —modelo de lenguaje para el contenido y la estructura, flow matching para la realización acústica— sigue un patrón general similar al de otros sistemas TTS modernos, pero GLM-TTS se distingue por una serie concreta de decisiones de ingeniería enfocadas en la producción: un tokenizador de voz optimizado, un marco de entrenamiento por aprendizaje por refuerzo ajustado para varias dimensiones de calidad a la vez y herramientas ligeras para desplegar voces personalizadas sin volver a entrenar el modelo completo.

Bajo el capó: el LLM se une al flow matching

La primera etapa es un modelo de lenguaje autorregresivo basado en la arquitectura Llama que convierte el texto de entrada, combinado con un embedding del hablante, en una secuencia de tokens de voz. Un modelo CAMPPlus extrae ese embedding del hablante en el frontend del sistema: proporciónale cualquier clip de referencia de entre 3 y 10 segundos y GLM-TTS reproducirá inmediatamente el timbre y la prosodia de esa voz, sin necesidad de realizar un ajuste fino para cada hablante.

La segunda etapa toma esos tokens y los convierte en audio real mediante un Diffusion Transformer con flow matching continuo. Convierte la secuencia de tokens en espectrogramas mel de alta calidad antes de que un vocoder genere la forma de onda final. El propio tokenizador de voz de GLM-TTS se optimizó específicamente incorporando restricciones de frecuencia fundamental (tono), lo que ayuda a explicar por qué la precisión tonal y la calidad general del habla se mantienen pese a una escala de entrenamiento comparativamente moderada de 100 000 horas.

Aprendizaje por refuerzo GRPO: optimizar tres aspectos a la vez

Esta es la contribución técnica más distintiva de GLM-TTS, y merece la pena entender por qué importa. La mayoría de los entrenamientos de TTS optimizan un único objetivo dominante —normalmente la inteligibilidad o la similitud con el hablante— y tratan otras cualidades, como la expresividad emocional, como algo secundario. GLM-TTS utiliza en cambio un marco de aprendizaje por refuerzo con varias recompensas basado en GRPO (Group Relative Policy Optimization) que optimiza conjuntamente la precisión de la pronunciación, la similitud con el hablante y la prosodia expresiva, en lugar de hacerlo de manera secuencial o aislada. Esa optimización conjunta es el mecanismo concreto que permite a GLM-TTS evitar el carácter plano y «mecánico» que afecta a muchas salidas TTS que pronuncian las palabras correctamente desde un punto de vista técnico, pero no suenan como una persona hablando de verdad.

Control emocional y paralingüístico

A partir de ese mismo marco de RL, GLM-TTS puede generar interpretaciones emocionales concretas —alegres, tristes o enfadadas— junto con sonidos paralingüísticos naturales, como risas y respiraciones, directamente como parte de la generación y no mediante un posprocesamiento separado. Se trata de una expresividad impulsada por aprendizaje por refuerzo, no de un parámetro emocional fijo, lo que ayuda a que la interpretación resultante parezca más vinculada orgánicamente al contenido real que la que podría producir una simple etiqueta de estilo.

Phoneme-in: pronunciación precisa sin renunciar a la flexibilidad

GLM-TTS admite un esquema híbrido de entrada de fonemas y texto denominado «Phoneme-in», que permite mezclar notación fonética explícita directamente en una entrada de texto normal. Está dirigido específicamente al problema de los caracteres polifónicos y las palabras poco frecuentes que hace tropezar a muchos sistemas TTS —cuando un carácter o una palabra concretos tienen varias opciones de pronunciación— y ofrece una forma directa y precisa de fijar la lectura correcta solo para la palabra o frase problemática, sin tener que transcribir fonéticamente una oración completa.

Personalización de voz basada en LoRA

Para los escenarios de despliegue que necesitan una voz personalizada concreta y coherente más allá de lo que la clonación zero-shot puede ofrecer de forma fiable, GLM-TTS permite una personalización eficiente en parámetros mediante LoRA (Low-Rank Adaptation), un método ligero de ajuste fino que adapta el modelo a una voz objetivo sin el coste y la complejidad de volver a entrenar toda la red. Es el punto medio práctico entre una clonación zero-shot «suficientemente buena» y un proceso completo de entrenamiento personalizado.

Rendimiento y streaming

Gracias a su decodificador basado en flow matching, GLM-TTS admite inferencia en streaming de forma nativa y, en una RTX 4090, el sistema funciona a una velocidad aproximada de entre 3 y 5 veces el tiempo real. Es lo bastante rápido para asistentes en directo, diálogos de personajes de videojuegos y comentarios en streaming, casos en los que esperar a que termine de generarse un clip completo no es una opción.

Primeros pasos con GLM-TTS

  1. Comprueba primero tu hardware. GLM-TTS está diseñado para Python 3.10–3.12 y requiere una GPU NVIDIA con al menos 8 GB de VRAM, además de un kit de herramientas CUDA operativo; reserva unos 9 GB de espacio en disco para los pesos del modelo. La inferencia en CPU es posible, pero resulta muchísimo más lenta: calcula entre 5 y 15 minutos por generación, en lugar de los pocos segundos que necesita una GPU.
  2. Descarga los pesos del modelo. Usa huggingface-cli download zai-org/GLM-TTS --local-dir ckpt o descárgalos desde ModelScope con modelscope download --model ZhipuAI/GLM-TTS --local-dir ckpt si esa fuente es más rápida en tu ubicación.
  3. Instala las dependencias. Configura un entorno de Python 3.10–3.12 e instala los paquetes indicados en el archivo requirements.txt del proyecto antes de ejecutar cualquier script de inferencia.
  4. Ejecuta una generación básica. python glmtts_inference.py --data=example_zh --exp_name=_test --use_cache recorre el flujo de ejemplo documentado con los datos de muestra incluidos.
  5. Añade la opción --phoneme para controlar la pronunciación con precisión. Cuando necesites fijar una lectura concreta para un carácter polifónico o una palabra poco frecuente, activar las funciones de fonemas mediante esta opción te da acceso a la entrada híbrida de fonemas y texto, en lugar de depender de la inferencia predeterminada basada solo en texto.
  6. Prueba la aplicación Gradio para hacer comprobaciones rápidas. Sube un clip de referencia, escribe el texto, ajusta parámetros de generación como temperature y top_p y escucha directamente el resultado, en lugar de programar manualmente cada prueba.

Consejos para obtener mejores resultados

  • Utiliza un clip de referencia de entre 3 y 10 segundos que esté realmente limpio. Como el embedding del hablante de CAMPPlus hace la mayor parte del trabajo en la clonación zero-shot, el ruido de fondo o una mala grabación en el clip de referencia degradarán la reproducción del timbre más que con otras arquitecturas.
  • Recurre a Phoneme-in específicamente para caracteres polifónicos y palabras poco frecuentes, no para guiones completos. Está pensado como una herramienta de corrección puntual: mezclar notación fonética solo donde la pronunciación es realmente ambigua mantiene el flujo de trabajo más sencillo que transcribir fonéticamente frases enteras sin necesidad.
  • Utiliza la personalización con LoRA cuando el resultado zero-shot no sea lo bastante uniforme. Si una voz concreta debe sonar de forma fiable en un gran volumen de contenido y no solo en un clip, la vía de LoRA es más práctica que confiar repetidamente en que la clonación zero-shot acierte cada vez.
  • Adapta la GPU a tus necesidades de latencia. La cifra documentada de 3–5 veces el tiempo real corresponde específicamente a una RTX 4090; si vas a desplegar el sistema en un hardware más modesto, mide el rendimiento real antes de comprometerte con un caso de uso en tiempo real o en streaming.
  • No dependas de la inferencia en CPU para nada que sea sensible al tiempo. Dada la diferencia de entre 5 y 15 minutos por generación entre el rendimiento de CPU y GPU, la inferencia en CPU queda limitada de manera realista a usos offline y no interactivos, en lugar de aplicaciones en directo.

GLM-TTS frente a otros modelos open source potentes para chino

GLM-TTSCosyVoice3GPT-SoVITS
Organización responsableZhipu AI + Universidad de TsinghuaAlibaba (FunAudioLLM)RVC-Boss (independiente)
Clonación zero-shotSí, referencia de ~3–10 segundosSí, referencia de ~3–10 segundosSí, 5 segundos
Método de entrenamientoRL GRPO con varias recompensas (pronunciación + similitud + prosodia conjuntamente)Entrenamiento supervisadoSupervisado + ajuste fino opcional
Control de emocionesImpulsado por RL (alegría/tristeza/enfado, risas, respiración)Basado en instruccionesNo es una función específica
Corrección de pronunciaciónEntrada híbrida Phoneme-inInpainting de pronunciaciónAnotación manual
StreamingSí, nativoSíNo
LicenciaApache 2.0 (código) / MIT (pesos)Abierto, con API alojada disponibleMIT

La contribución específica de GLM-TTS consiste en tratar la pronunciación, la similitud con el hablante y la prosodia emocional como objetivos que se optimizan conjuntamente, en lugar de hacerlo en secuencia. Es una diferencia en la metodología de entrenamiento menos visible que una función llamativa, pero representa exactamente el tipo de decisión de ingeniería que distingue un sistema realmente listo para producción de una buena demostración de investigación.

Preguntas frecuentes

¿Quién desarrolló GLM-TTS?

GLM-TTS fue desarrollado por Zhipu AI en colaboración con la Universidad de Tsinghua y se publicó como open source en diciembre de 2025.

¿Cuánto audio de referencia necesita GLM-TTS para clonar una voz?

Entre 3 y 10 segundos aproximadamente. Un modelo CAMPPlus extrae el embedding del hablante, lo que permite realizar la clonación zero-shot sin necesidad de ajuste fino para cada hablante.

¿Qué es GRPO en el contexto de GLM-TTS?

Es Group Relative Policy Optimization, un marco de aprendizaje por refuerzo que GLM-TTS utiliza para optimizar conjuntamente durante el entrenamiento la precisión de la pronunciación, la similitud con el hablante y la prosodia expresiva, en lugar de tratarlas como objetivos separados y secuenciales.

¿Se puede utilizar GLM-TTS gratuitamente con fines comerciales?

Sí. El código de GLM-TTS se publica bajo la licencia Apache 2.0 y los pesos del modelo bajo la licencia MIT; ambas permiten el uso comercial.

¿Qué hardware necesito para ejecutar GLM-TTS?

Una GPU NVIDIA con al menos 8 GB de VRAM, el kit de herramientas CUDA instalado, Python 3.10–3.12 y aproximadamente 9 GB de espacio en disco para los pesos del modelo. La inferencia en CPU funciona, pero es bastante más lenta.

Genera una voz similar desde un audio de referencia

Para un flujo con un objetivo similar, utiliza la Clonación de voz de Echora. Sube una grabación de tu propia voz o una que tengas permiso explícito para usar, introduce hasta 5.000 caracteres de texto nuevo y genera una voz parecida a la referencia.

Crear una voz clonada →