Chatterbox TTS - modelo open source de conversión de texto a voz
(github.com/resemble-ai)- Chatterbox es la más reciente familia de modelos open source de conversión de texto a voz publicada por Resemble AI, con soporte para clonación de voz y generación de voz multilingüe
- El nuevo Chatterbox Multilingual V3 mantiene un tamaño de modelo de 0.5B, al tiempo que busca mejorar la similitud del hablante, reducir las alucinaciones y lograr voces conversacionales multilingües más naturales
- Chatterbox-Turbo es un modelo de 350M para agentes de voz en inglés de baja latencia, que reduce la generación del decodificador speech-token-to-mel de 10 pasos a 1 paso y soporta etiquetas paralingüísticas como
[laugh]y[cough] - La línea de modelos se divide en Turbo, Multilingual V3, Single Language Pack y el Chatterbox original; el modelo multilingüe soporta 23 idiomas, incluido coreano, y Single Language Pack ofrece 6 ajustes finos dedicados
- Todo el audio generado incluye la marca de agua PerTh de Resemble AI, que según se indica mantiene casi un 100% de precisión de detección incluso después de compresión MP3, edición de audio y manipulaciones comunes
Resumen de Chatterbox TTS
- Chatterbox es una familia de modelos open source de conversión de texto a voz de Resemble AI
- Se ofrecen junto con muestras demo, un Hugging Face Space, evaluación en Podonos y enlace a Discord
Último lanzamiento: Chatterbox Multilingual V3
- Chatterbox Multilingual V3 es el más reciente modelo TTS multilingüe de propósito general de la familia Chatterbox
- V3 mantiene el mismo tamaño de modelo de 0.5B que antes, pero mejora lo siguiente
- similitud del hablante
- reducción de alucinaciones
- voz conversacional más natural en todos los idiomas
- Al igual que V2, apunta a una amplia cobertura de idiomas, pero está diseñado para ofrecer una generación más estable y expresiva
- Es el modelo multilingüe recomendado para quienes quieren un único modelo de clonación de voz que funcione en varios idiomas
Single Language Pack
- Single Language Pack es un conjunto de modelos con ajuste fino dedicado para idiomas prioritarios
- Se usa cuando se necesita un mejor desempeño por idioma que el modelo multilingüe general, un control de calidad más estricto y generación con reconocimiento de dialectos
- Hay 6 modelos dedicados disponibles
Chatterbox-Turbo
- Chatterbox-Turbo es el modelo más eficiente para agentes de voz en inglés de baja latencia
- Usa una arquitectura simplificada de 350M parámetros y está diseñado para generar voz de alta calidad con menos cómputo y menos VRAM que el modelo anterior
- Destila el decodificador speech-token-to-mel, que era el cuello de botella, y reduce la etapa de generación de 10 pasos a 1 paso
- Turbo soporta de forma nativa etiquetas paralingüísticas como
[cough],[laugh]y[chuckle], lo que permite añadir expresiones más realistas - Aunque su caso principal de uso son los agentes de voz de baja latencia, también se indica que es apto para narración y flujos de trabajo creativos
- Se presenta que el servicio comercial de TTS ofrece latencia ultrabaja de menos de 200 ms y es adecuado para uso en producción en agentes, aplicaciones y medios interactivos
Configuración de modelos
| Modelo | Tamaño | Idiomas | Funciones principales | Uso recomendado |
|---|---|---|---|---|
| Chatterbox-Turbo | 350M | English | etiquetas paralingüísticas, bajo cómputo y VRAM | agentes de voz zero-shot, producción |
| Chatterbox-Multilingual V3 | 500M | 23+ | mejora de similitud del hablante, reducción de alucinaciones, voz multilingüe natural | apps globales, localización, clonación de voz entre idiomas |
| Single Language Pack | 500M cada uno | 6 ajustes finos dedicados | control de calidad por idioma y región | apps sensibles a idiomas prioritarios y dialectos |
| Chatterbox | 500M | English | ajuste de CFG y exaggeration | TTS zero-shot general con control creativo |
Instalación y ejecución
- El paquete se instala con
pip install chatterbox-tts - También se soporta instalación desde código fuente
git clone https://github.com/resemble-ai/chatterbox.git cd chatterbox pip install -e . - El entorno de desarrollo y pruebas es Python 3.11 sobre Debian 11, y las versiones de dependencias están fijadas en
pyproject.toml - En el modo de instalación desde código fuente se pueden modificar el código y las dependencias
Forma de uso
- Chatterbox-Turbo carga el modelo con
ChatterboxTurboTTS.from_pretrained(device="cuda")y, para clonación de voz, recibe la ruta del clip de referencia enaudio_prompt_path - El ejemplo de Turbo genera frases que incluyen etiquetas paralingüísticas como
[chuckle] - El modelo general en inglés usa
ChatterboxTTS, y el modelo multilingüe usaChatterboxMultilingualTTS - Multilingual V3 se carga con
ChatterboxMultilingualTTS.from_pretrained(device=device, t3_model="v3")- Para usar un checkpoint heredado de V2, se omite
t3_modelo se pasa"v2"
- Para usar un checkpoint heredado de V2, se omite
- Para sintetizar con otra voz, se especifica un archivo de audio de referencia en
audio_prompt_path - Hay más ejemplos en
example_tts.pyyexample_vc.py
Idiomas soportados
- El modelo general Chatterbox Multilingual soporta los siguientes 23 idiomas
- Arabic
ar - Danish
da - German
de - Greek
el - English
en - Spanish
es - Finnish
fi - French
fr - Hebrew
he - Hindi
hi - Italian
it - Japanese
ja - Korean
ko - Malay
ms - Dutch
nl - Norwegian
no - Polish
pl - Portuguese
pt - Russian
ru - Swedish
sv - Swahili
sw - Turkish
tr - Chinese
zh
- Arabic
Consejos de ajuste para Chatterbox original
- El clip de referencia debe coincidir con la etiqueta de idioma especificada
- De lo contrario, la salida con transferencia de idioma puede heredar la entonación del idioma del clip de referencia
- Para mitigarlo, se ajusta
cfg_weighta0
- Los valores por defecto son
exaggeration=0.5ycfg_weight=0.5, y funcionan bien en la mayoría de prompts e idiomas - Si el hablante de referencia habla rápido, bajar
cfg_weighta alrededor de0.3puede ayudar a controlar la velocidad - Para voces expresivas o dramáticas, se recomienda probar un
cfg_weightbajo yexaggerationde0.7o superior- Un
exaggerationalto tiende a acelerar la velocidad de habla - Reducir
cfg_weightayuda a compensarlo con una velocidad más lenta y cuidadosa
- Un
Marca de agua PerTh integrada
- Todos los archivos de audio generados con Chatterbox incluyen la marca de agua Perth de Resemble AI
- Esta marca de agua es una marca neuronal imperceptible basada en Perceptual Threshold
- Según se indica, se mantiene después de compresión MP3, edición de audio y manipulaciones comunes, conservando casi un 100% de precisión de detección
- La extracción de la marca de agua se realiza con
perth.PerthImplicitWatermarker()yget_watermark()- El resultado se muestra como sin marca de agua
0.0o con marca de agua1.0
- El resultado se muestra como sin marca de agua
Evaluación
- Chatterbox Turbo fue evaluado con Podonos, una plataforma reproducible de evaluación subjetiva de voz
- Los comparativos fueron frente a sistemas TTS competidores, con foco en preferencia general, naturalidad y expresividad
- Se ofrecen reportes públicos de evaluación
- Todas las evaluaciones se realizaron bajo las mismas condiciones y son de acceso público a través de Podonos
Avisos adicionales fuera de la licencia
- El README indica explícitamente: “no uses este modelo para hacer cosas malas”
- También se señala que los prompts se obtuvieron de datos libremente accesibles en internet
1 comentarios
Opiniones de Hacker News
La demo se puede ver aquí: https://resemble-ai.github.io/chatterbox_demopage/
Si no son muestras demasiado seleccionadas, es un lanzamiento bastante bueno. Lo digo siempre, pero al experimentar directamente, el cuello de botella de la IA de voz no era la síntesis de voz, sino la calidad de la transcripción. No sé si eso cambió recientemente
Todavía no probé darle al LLM transcripciones alternativas o puntajes de confianza junto con el texto, pero parece muy probable que también pueda aprovecharlos bien
También hace falta una función para comparar con una lista de frases comunes. Es difícil justificar que un LLM pronuncie mal “live feed” o “live here”
https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2
Lo uso para chat en tiempo real y generación de subtítulos, y en una 3090 procesa un episodio de una serie en menos de un minuto. En mi caso, Whisper tenía demasiadas alucinaciones, y me resultó más útil usarlo como clasificador
Se puede probar gratis aquí: https://huggingface.co/spaces/ResembleAI/Chatterbox
Si quieren modelos más “abiertos”, para clonación de voz aleatoria MaskGCT y MegaTTS3 suenan mejor, y para conversión de voz Seed-VC y MegaTTS3 suenan mejor. Pero el único que tiene código de entrenamiento/ajuste fino es Seed-VC. Si de todos modos tienen que usar un modelo que no pueden ajustar y necesitan una clonación aleatoria que se adapte mejor a su propia voz, conviene usar esos en vez de Chatterbox. MegaTTS3 de ByteDance, en particular, es fuerte. Los investigadores de ByteDance están muy por delante de la mayoría de los equipos de investigación de TTS, excepto ElevenLabs, y tienen mucho más financiamiento, investigadores con doctorado y datos de entrenamiento
Pero convirtió mi acento australiano en uno muy británico, incluso como un acento RP elegante. Suena muy natural, pero no reproduce mi acento. Aun así, si no se trata de imitar realmente a alguien, es sorprendentemente claro y adecuado para la mayoría de los usos de TTS
Chatterbox es excelente
Hice un wrapper de API que también facilita la instalación y soporta Docker: https://github.com/travisvn/chatterbox-tts-api/
Según mi experiencia, es por lejos la mejor opción de clonación de voz que se puede usar localmente
Disculpen si la pregunta es muy básica. Estaba buscando un comando CLI simple para especificar un archivo de texto local en vez de un objeto
inputinline, pero no lo encontré. Agradecería cualquier pistaParece estar hecho para 2.6.
"chatterbox-tts 0.1.2 requires torch==2.6.0, but you have torch 2.7.0+cu128 which is incompatible. chatterbox-tts 0.1.2 requires torchaudio==2.6.0, but you have torchaudio 2.7.0+cu128 which is incompatible."Se indica que todos los archivos de audio generados por Chatterbox incluyen la marca de agua Perth de Resemble AI.
Dicen que es una marca de agua neuronal imperceptible que sobrevive a la compresión MP3, la edición de audio y manipulaciones comunes, y que mantiene una precisión de detección de casi el 100%; pero, si no estoy entendiendo mal, ¿no se puede desactivar fácilmente comentando solo la llamada a
apply_watermarkentts.py? https://github.com/resemble-ai/chatterbox/blob/master/src/ch...Yo pensaba que la clave de una marca de agua así era que estuviera integrada de algún modo en los pesos del modelo, para que no pudiera separarse fácilmente. Si van a publicar un modelo open source y agregar la marca de agua como un paso de posprocesamiento separado, no entiendo para qué ponerla desde el principio
O quizá tenga el propósito de evitar que, desde el punto de vista de los datos de entrenamiento, se mezclen por accidente datos raros
--no-watermark. Pensé que la habían puesto para ofrecerla como una “función” a usuarios downstream que la integraran en un producto más grandeLos líderes del mercado de TTS ya están claros y profundamente instalados, así que empresas como Resemble y Play(HT) tienen que alinearse con fuerza con los desarrolladores ofreciendo los pesos [1]. La marca de agua es un mecanismo para deslindar responsabilidad frente a eso. Sin marca de agua, habría mucha preocupación por usos indebidos, sobre todo desde medios anti-IA como 404Media [2].
[1] Esta es la forma correcta. Hay que ofrecer el código fuente y los pesos, y también una API propia y fine-tuning, para que los desarrolladores no tengan que pasar trabajo. Así podrán recuperar algo de cuota de mercado.
[2] https://www.404media.co/wikipedia-pauses-ai-generated-summar...
Puede ser una pregunta tonta, pero ¿cuál sería el hardware mínimo viable para ejecutarlo?
Por si ayuda, dejo anotados los problemas: con Python 3.13 no funciona, y se resuelve creando un entorno virtual de 3.12 con
uv. Dice que no existe numpy 1.26.4, aunque en realidad sí existe, yuv pipestaba buscando solo en el repositorio de PyTorch. Tuve que pasar la bandera--index-strategypara que revisara otros repositorios también. La versión depip install chatterbox-ttstiene un bug en modo solo CPU, así que hubo que clonar el repositorio de Git, y la versión más reciente de main necesitóprotobuf-compileren Debian. Al final apareció un error de CMake difícil de interpretar, pero parecía que se quejaba de que faltaban los headers de desarrollo de Python. Quiero hacer inferencia, no compilar Python; no sé por qué los necesita.Sé que enojarse no es productivo, pero casi siempre tengo esta experiencia al ejecutar proyectos Python de otros. Te topas con un problema y retrocedes, luego con otro y retrocedes, y después de una hora sigue sin correr
Si el modelo es bueno, es muy probable que alguien encuentre una forma de optimizarlo para correrlo con menos recursos.
Edición: lo probé en una Nvidia 2060 vieja, y el uso máximo de VRAM parece rondar los 5 GB
En su estado base, parece que hace falta hardware de consumo bastante potente para correrlo a una velocidad razonable. Dicho eso, parece haber bastante margen de mejora, y no soy experto.
[1]: https://github.com/resemble-ai/chatterbox/issues/127
Aunque puedas correrlo gratis, si sale más barato alquilarlo, pierde sentido correrlo por tu cuenta
La función de exageración emocional es interesante, pero todavía no he visto nada tan versátil y fácil de “moldear” como ElevenLabs, que puede crear una voz solo con una descripción de la voz deseada.
SparkTTS ofrece algunos parámetros adicionales, y por los placeholders en el código del proyecto de GitHub también parece posible que el modelo mejore para permitir un control emocional más fino. Incluso ahora he tenido cierto éxito metiendo en el texto pistas que inducen con fuerza la cadencia y el tono, y luego volviendo a pasar ese resultado por la conversión de voz para acercarme a lo que quería. Pero es un proceso mucho más engorroso que con ElevenLabs
Funcionó muy bien con acentos muy comunes, pero otros acentos, aunque también son bastante comunes, pueden quedar fijados fácilmente como un acento distinto.
Por ejemplo, algunas grabaciones escocesas salieron con acento australiano, y pasó lo mismo con un acento de Yorkshire bastante leve
¿Estos sistemas ya son lo bastante buenos como para narrar un libro de forma convincente? ¿O después de leer algunos párrafos se desmorona la consistencia de la voz?
Para textos largos, conviene dividirlos en lotes por párrafo, generarlos y luego volver a unirlos al final. Además, si el WAV de muestra one-shot no está muy limpio, Chatterbox a veces emitía al final del audio generado un silbido profano aleatorio. Si estás grabando el Inferno de Dante, podría ser un bonus.
Hay que recordarles periódicamente a amigos y familiares que desconfíen más de las llamadas telefónicas.
Cada vez es más probable que ese amigo que necesita urgentemente tarjetas de regalo de Walmart no sea en realidad tu amigo.
La suplantación se está volviendo tan fácil y barata que, en el futuro cercano, es imposible que no nos inundemos de este tipo de llamadas fraudulentas.
Si interrumpes a mitad de la llamada con “¿puedes hacerme un poema sobre x?”, se detectan de forma confiable. Eso sí, la latencia de respuesta es demasiado evidente.
En una situación real, la otra persona conocería esa contraseña, así que se puede autenticar. En esta nueva era de voces e incluso video con IA, hay que reforzar constantemente la idea de que esa contraseña ayuda a evitar la suplantación.
¿Cuál es el estado del arte actual del TTS multilingüe de código abierto? Kokoro era excelente en inglés, pero todavía estoy buscando buenas soluciones para francés, japonés y alemán.