CosyVoice: el modelo que replanteó qué debe ser un "token de voz"
Convierte texto y grabaciones en obras que se escuchan
Doblaje, stems, covers y efectos de sonido, todo en el navegador.
- Texto a voz, y también clonación de voz
- Separa pistas, o genera un cover
- Regístrate para escuchar primero y decidir después
Para 2024, la mayoría de los modelos TTS zero-shot basados en LLM —entre ellos VALL-E— compartían la misma suposición de fondo: representar el habla como tokens aprendidos de forma no supervisada y dejar que un modelo de lenguaje los predijera como predice texto. El equipo FunAudioLLM de Alibaba examinó esa suposición y la cuestionó directamente. CosyVoice construyó sus tokens de voz a partir de un modelo multilingüe de reconocimiento de voz, y la mejora resultante en precisión de contenido y fidelidad de clonación de voz fue lo que situó al modelo en el mapa y sentó la base arquitectónica sobre la que más tarde construirían CosyVoice 2 y 3.
¿Qué es CosyVoice?
CosyVoice es un modelo open source de texto a voz multilingüe y zero-shot, desarrollado por FunAudioLLM, el equipo de investigación de IA de voz de Alibaba. Lanzado como un modelo de 300 millones de parámetros, introdujo un enfoque escalable de clonación de voz basado en LLM que podía reproducir la voz de un hablante desde un clip de referencia corto sin ningún fine-tuning, una capacidad que aún era relativamente novedosa en el TTS open source cuando se publicó.
CosyVoice admite cinco idiomas —chino, inglés, japonés, cantonés y coreano— y se distribuye en tres checkpoints distintos según lo que necesites:
- CosyVoice-300M — el modelo base zero-shot y entre idiomas, más adecuado para clonar una voz arbitraria a partir de un clip de referencia.
- CosyVoice-300M-SFT — ajustado de forma supervisada con un conjunto fijo de voces de alta calidad; cambia flexibilidad de clonación por una salida más consistente y lista para producción con un repertorio de voces conocido.
- CosyVoice-300M-Instruct — añade control mediante instrucciones en lenguaje natural sobre el estilo de habla, para dirigir velocidad, emoción y dialecto con prompts de texto descriptivos en lugar de usar solo un clip de audio de referencia.
La innovación central: tokens semánticos supervisados
Este es el detalle que realmente explica por qué CosyVoice se comporta como lo hace, y vale la pena entenderlo en vez de pasarlo por alto.
Los sistemas TTS anteriores basados en LLM representaban el habla con tokens extraídos de forma no supervisada: en esencia, el modelo aprendía a comprimir audio en unidades discretas sin que se le dijera qué significaban lingüísticamente. El equipo de investigación de CosyVoice siguió otra vía: derivó los tokens de voz de las representaciones internas de un modelo multilingüe de reconocimiento de voz, insertando un paso de cuantización vectorial en su codificador. Como ese modelo fuente se entrenó para comprender contenido hablado, los tokens resultantes contienen una alineación semántica y textual explícita que los tokens no supervisados no tienen.
El beneficio práctico, confirmado en las evaluaciones publicadas por el equipo, fue doble: una consistencia de contenido significativamente mejor (la voz generada dice de forma más fiable lo que el texto realmente dice) y mejor similitud del hablante en clonación zero-shot, en comparación con enfoques de tokens no supervisados como el de VALL-E. En una evaluación directa frente a ChatTTS, contemporáneo y de escala similar, CosyVoice también mostró muchos menos errores de inserción y eliminación; en particular, evitó el problema de la "fuga de hablante", donde fragmentos de la voz de otro hablante se filtran a la salida generada.
En términos de arquitectura, la generación ocurre en dos fases: un modelo de lenguaje autorregresivo convierte texto en estos tokens semánticos, y un modelo condicional de flow matching los convierte en un espectrograma mel que un vocoder renderiza después en la forma de onda final.
Primeros pasos con CosyVoice
- Clona con submódulos. CosyVoice depende del proyecto Matcha-TTS como submódulo git, así que usa
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git; un clon estándar dejará fuera componentes necesarios. - Configura el entorno e instala las dependencias. Crea un entorno Python dedicado (se recomienda Conda) y ejecuta
pip install -r requirements.txt; usar el mirror de PyPI de Alibaba acelera notablemente el proceso si instalas desde China. - Elige el checkpoint adecuado para tu tarea. Descarga
CosyVoice-300Mpara clonación zero-shot o entre idiomas,CosyVoice-300M-SFTsi basta un repertorio fijo de voces de alta calidad, oCosyVoice-300M-Instructsi necesitas control de estilo en lenguaje natural. - Instala opcionalmente el recurso de frontend de texto. El paquete
CosyVoice-ttsfrdmejora la normalización de texto (números, fechas y abreviaturas) y conviene añadirlo si tu texto de entrada aún no está limpio y en forma hablada. - Inicia la WebUI para probar antes de integrar. Ejecutar
python3 webui.py --port 50000 --model_dir pretrained_models/CosyVoice-300Mabre una interfaz de Gradio donde puedes probar directamente la clonación de voz al subir un clip de referencia e introducir texto objetivo.
Consejos para mejores resultados
- Haz que el checkpoint se adapte al trabajo, no al revés. Forzar el modelo SFT a clonar voces arbitrarias, o el modelo base a hacer narración fija de alta calidad, va en contra de aquello para lo que se ajustó cada checkpoint: elige primero el checkpoint según tu caso de uso.
- Usa el modelo Instruct cuando el estilo importe más que una voz clonada concreta. Si tu prioridad es controlar la interpretación —ritmo, emoción y acento— en lugar de reproducir la voz exacta de una persona, los prompts de estilo en lenguaje natural de
CosyVoice-300M-Instructson más directos que intentar extraer estilo de un modelo solo de clonación. - Entrega clips de referencia limpios y bien grabados. Como los tokens supervisados de CosyVoice son sensibles al contenido real del habla, el audio de referencia ruidoso o de baja calidad degrada la precisión de clonación de forma más visible que con un enfoque de tokens puramente acústicos.
- Preprocesa el texto con el paquete ttsfrd para números y fechas. El texto sin procesar que contiene dígitos, abreviaturas o fechas se beneficia del frontend opcional de normalización de texto en vez de pasarse al modelo tal cual.
- Considera CosyVoice 1.0 como la referencia no streaming. Si tu proyecto necesita específicamente generación streaming de baja latencia, esa capacidad se introdujo en CosyVoice 2; esta versión original se adapta mejor a la generación sin conexión, donde la latencia de la expresión completa no es una restricción.
CosyVoice en contexto
| CosyVoice (2024) | Modelos estilo VALL-E | ChatTTS | |
|---|---|---|---|
| Tipo de token de voz | Supervisado (de un modelo ASR) | No supervisado (p. ej., Encodec) | No supervisado |
| Consistencia del contenido | Fuerte, ventaja de tokens semánticos | Propenso a desviarse del contenido | CER comparable, más errores de inserción/eliminación |
| Fuga de hablante | No observada | Puede ocurrir | Ocurrió con más frecuencia en la evaluación |
| Parámetros | 300M | Varía | Escala comparable |
| Control de estilo | Variante Instruct (prompts en lenguaje natural) | Limitado | Limitado |
| Streaming | No compatible (introducido en CosyVoice 2) | Varía | No es el foco |
La contribución de CosyVoice no fue la escala: con 300M de parámetros, era modesto incluso para los estándares de 2024. Fue demostrar que cómo representas los tokens de voz importa tanto como el tamaño del modelo. Esa apuesta arquitectónica es lo que las posteriores versiones CosyVoice 2 y CosyVoice 3 siguieron desarrollando.
Preguntas frecuentes
¿Quién desarrolló CosyVoice?
CosyVoice fue desarrollado por FunAudioLLM, el equipo de investigación de IA de voz dentro de Alibaba Group, y publicado como proyecto open source en GitHub.
¿Qué diferencia los tokens de voz de CosyVoice de los de otros modelos TTS?
CosyVoice deriva sus tokens de un modelo multilingüe de reconocimiento de voz en vez de aprenderlos de forma no supervisada, dando a los tokens una alineación semántica explícita con el texto; esto mejora la precisión de contenido y la similitud del hablante frente a los enfoques de tokens no supervisados.
¿Qué checkpoint de CosyVoice debo usar?
Usa el modelo base CosyVoice-300M para clonación de voz zero-shot o entre idiomas, CosyVoice-300M-SFT para un conjunto fijo de voces de alta calidad preajustadas, o CosyVoice-300M-Instruct si necesitas control en lenguaje natural sobre el estilo de habla.
¿CosyVoice admite generación streaming?
No, no en esta versión original. La síntesis streaming se introdujo en CosyVoice 2, que se basó en la arquitectura de tokens de este modelo con un diseño consciente de fragmentos para una salida de menor latencia.
¿CosyVoice es gratuito para uso comercial?
Sí. El código y los pesos del modelo CosyVoice están disponibles abiertamente en GitHub y Hugging Face para despliegue local y desarrollo posterior.
Prueba una función comparable de clonación de voz
CosyVoice está disponible a través de su implementación open source y herramientas de la comunidad. Si quieres explorar la clonación de voz en el navegador, prueba Clonación de voz como una función comparable. No es CosyVoice ni ejecuta el modelo CosyVoice, pero te permite probar un flujo de clonación de voz similar sin configurar el modelo localmente.
Clona únicamente voces que te pertenezcan o para las que tengas permiso explícito.