Kokoro sigue apareciendo por todas partes: lideró Hacker News, encabeza los rankings abiertos de Texto a voz, y los creadores siguen preguntando si un modelo de 82 millones de parámetros que corre en una CPU común realmente puede reemplazar una API de voz de pago. Así que lo instalamos, lo ejecutamos en una laptop y generamos las muestras que puedes reproducir abajo. Este es un análisis práctico: qué es Kokoro, qué tan bien suena en realidad, las dos trampas de configuración que nos hicieron perder tiempo y cuándo conviene más una herramienta alojada. Fuente: github.com/hexgrad/kokoro (Apache-2.0).
¿Qué es Kokoro y quién lo creó?
Kokoro es un modelo de Texto a voz de pesos abiertos publicado por hexgrad como Kokoro-82M. El titular está en el nombre: 82 millones de parámetros, diminuto para los estándares de 2026, lo suficientemente pequeño como para correr en un teléfono, y aun así produce una narración natural y expresiva. Está basado en la línea de StyleTTS 2 y se lanzó bajo la licencia permisiva Apache-2.0, así que realmente es gratis para uso comercial.
Al 2026-07-11, el repo principal hexgrad/kokoro tiene alrededor de 7,900 estrellas en GitHub. Lo ejecutamos con el runtime ONNX de la comunidad thewh1teagle/kokoro-onnx (alrededor de 2,600 estrellas, MIT), que es la forma más fácil de correrlo en CPU sin instalar PyTorch.
Revisando el archivo real de pesos, contamos 54 voces integradas que abarcan 9 grupos de idioma y acento: inglés estadounidense y británico, español, francés, hindi, italiano, japonés, portugués brasileño y chino mandarín. Las voces de inglés estadounidense son, claramente, las más pulidas.
Lo ejecutamos de verdad (Apple M3 Pro, solo CPU)
Sin GPU, sin nube: solo una MacBook Pro con un M3 Pro y 18 GB de RAM. Aquí va el relato honesto, paso a paso.
Instalación y pesos
El paquete de Python se instala en segundos: pip install kokoro-onnx soundfile. Pero aquí está la primera trampa: el paquete de pip incluye el código, no el modelo. Tienes que descargar dos archivos a mano desde la página de releases de kokoro-onnx en GitHub: kokoro-v1.0.onnx (310 MB) y voices-v1.0.bin (27 MB). El quickstart pasa esto por alto, así que la primera ejecución falla con un error de archivo faltante hasta que descargues los pesos.
El bug de ruta de espeak-ng (el que de verdad nos hizo perder tiempo)
Kokoro convierte texto en fonemas con espeak-ng. En la primera síntesis nos apareció esto:
Error processing file '/Users/runner/work/espeakng-loader/.../espeak-ng-data/phontab': No such file or directoryEsa ruta /Users/runner/work/ lo delata: el wheel de pip espeakng-loader incluye un libespeak-ng que se compiló en CI con una ruta de datos codificada que no existe en tu máquina. La parte frustrante: configurar una variable de entorno ESPEAK_DATA_PATH no sirve de nada, porque kokoro-onnx nunca la lee; toma la ruta de datos directamente del loader incluido.
La solución que funcionó: instala espeak-ng como sistema y apunta a Kokoro explícitamente a través de su EspeakConfig:
brew install espeak-ng # macOS; apt install espeak-ng on Linux
from kokoro_onnx import Kokoro, EspeakConfig
cfg = EspeakConfig(
lib_path="/opt/homebrew/lib/libespeak-ng.dylib",
data_path="/opt/homebrew/share/espeak-ng-data",
)
k = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin", espeak_config=cfg)Después de eso, la generación simplemente funciona. Si alguna vez peleaste con este error exacto phontab: No such file, esa es la solución.
Velocidad (medida, en caliente)
Solo con CPU, el modelo carga en alrededor de 1.7 segundos, y la síntesis es cómodamente más rápida que en tiempo real. Un párrafo de narración de 22 segundos se renderizó en 3.5 segundos, con un factor de tiempo real de alrededor de 0.16×, aproximadamente seis veces más rápido que la reproducción. Las frases cortas regresan en uno o dos segundos. Para un modelo tan pequeño en una laptop, es un rendimiento realmente usable en producción. Aquí está la forma de onda real de ese render del párrafo:

Muestras que generamos (sin editar)
Cada clip de abajo lo produjimos nosotros con Kokoro en la CPU M3 Pro descrita arriba: salida cruda del modelo, sin limpieza ni postprocesamiento. Reprodúcelos y evalúa la calidad por tu cuenta.
Generado por VisionStory con Kokoro-82M vía kokoro-onnx, 2026-07-11. Nota la pista obvia: esto es una pista de voz limpia, pero es solo una voz. No hay rostro, no hay movimiento de labios, no hay presentador en pantalla. Esa brecha es todo el punto de la siguiente sección.
Veredicto honesto: fortalezas y límites reales
Lo que de verdad nos impresionó:
- La calidad por byte es notable. Para 82 millones de parámetros, las voces de inglés estadounidense son naturales y expresivas, lo bastante cerca del TTS de pago como para que la mayoría no lo note en un clip corto.
- De verdad corre en CPU, rápido. Seis veces más rápido que tiempo real en una laptop sin GPU es la gran ventaja, y se cumple.
- Realmente gratis y amigable para uso comercial. Apache-2.0 sin cobro por carácter. Para locución de alto volumen, esa economía es difícil de superar.
En lo que falla (y es real):
- Sin clonación de voz. Obtienes 54 voces fijas preconfiguradas. No puedes clonar tu propia voz ni la de un cliente; si ese es tu caso de uso, Kokoro es un callejón sin salida.
- La calidad en inglés depende de espeak-ng, lo que implica el bug de empaquetado de arriba, además de algún nombre, marca o acrónimo pronunciado mal de vez en cuando.
- El texto largo requiere dividirlo manualmente. Hay un límite de longitud de fonemas por llamada, así que tienes que partir guiones largos tú mismo y luego unir el audio.
- Las voces que no son en inglés pueden salir bien o mal, notablemente más variables que el set principal de inglés estadounidense.
- Entrega un WAV “pelado”. Sin marcas de tiempo por palabra, sin visemas: nada para impulsar el lip-sync de fábrica.
- Es solo voz. Sin rostro, sin video. Para obtener un presentador parlante, debes combinar Kokoro con un sistema aparte de lip-sync o de avatar y manejar tú mismo la sincronización.
Alojar Kokoro tú mismo vs. una herramienta alojada: ¿cuál deberías elegir?
Kokoro y una herramienta de avatares alojada resuelven mitades distintas del problema. Kokoro te da una voz; una herramienta como VisionStory te da un presentador parlante: voz, rostro y lip-sync en una sola salida. Aquí va la comparación honesta.
| Kokoro (autoalojado) | VisionStory (alojado) | |
|---|---|---|
| Costo | Gratis (tu propio hardware) | Suscripción / Créditos |
| Configuración | pip + pesos de 330 MB + arreglo de espeak-ng | Ninguna: corre en el navegador |
| Qué obtienes | Solo pista de voz (WAV) | Video de avatar parlante (voz + rostro + lip-sync) |
| Clonación de voz | No: 54 preajustes | Sí: clona tu propia voz |
| Velocidad por clip | ~0.16× en tiempo real en CPU (segundos) | Segundos, alojado: sin cómputo local |
| Uso comercial | Sí (Apache-2.0) | Sí (según el plan) |
| Mantenimiento | Tú parcheas espeak, dependencias y el chunking | Ninguno |
| Ideal cuando | Solo necesitas una pista de voz gratis y sabes programar | Necesitas un video parlante terminado, rápido |
Elige Kokoro si solo necesitas una voz en off gratis, te sientes cómodo en Python y vas a encargarte del rostro y el lip-sync por separado (o no necesitas rostro en absoluto). Elige una herramienta alojada si necesitas la voz unida a un presentador que haga lip-sync, o necesitas clonar la voz de una persona específica; Kokoro no puede hacer ninguna de las dos.
Lo que Kokoro nos enseñó
La lección real de ejecutar Kokoro es que la voz se está commoditizando. Un modelo de 82 MB en una laptop ahora produce voces en off lo bastante buenas para trabajo real, gratis. Si la única promesa de tu producto era “hacemos Texto a voz”, ese foso defensivo ya no existe.
La parte difícil, que todavía no está resuelta, es todo lo que viene después de la voz: convertir una pista de audio en un rostro parlante creíble: lip-sync preciso, expresión, movimiento de cabeza y un timing que se mantenga coherente. Esa es exactamente la capa en la que trabajamos. Así que nuestra conclusión no es “no uses Kokoro”: es un motor de voz legítimamente bueno. Es que una voz por sí sola es la mitad de un video. Si quieres la otra mitad, VisionStory convierte una foto y un guion en un presentador parlante con lip-sync en un solo paso; y si tienes una voz específica que igualar, también puede clonarla.
