Español (Argentina)

Kokoro no para de aparecer — fue #1 en Hacker News, lidera rankings open 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 paga. Así que lo instalamos, lo corrimos en una notebook y generamos las muestras que podés reproducir abajo. Esto es un análisis práctico: qué es Kokoro, qué tan bien suena en la 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 hizo?

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 chico como para correr en un teléfono — y aun así produce una narración natural y expresiva. Está construido sobre el linaje de StyleTTS 2 y se publica bajo la licencia permisiva Apache-2.0, así que es realmente gratis para uso comercial.

Al 2026-07-11, el repo principal hexgrad/kokoro tiene alrededor de 7,900 estrellas en GitHub. Nosotros lo ejecutamos mediante el runtime comunitario ONNX thewh1teagle/kokoro-onnx (unas 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 idiomas y acentos — 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 corrimos de verdad (Apple M3 Pro, solo CPU)

Sin GPU, sin nube — solo una MacBook Pro con M3 Pro y 18 GB de RAM. Acá va el paso a paso honesto.

Instalación y pesos

El paquete de Python se instala en segundos: pip install kokoro-onnx soundfile. Pero acá está la primera trampa — el paquete de pip trae el código, no el modelo. Tenés que descargar a mano dos archivos desde la página de releases de kokoro-onnx en GitHub: kokoro-v1.0.onnx (310 MB) y voices-v1.0.bin (27 MB). La guía rápida pasa esto por alto, así que la primera ejecución falla con un error de archivo faltante hasta que bajás los pesos.

El bug de ruta de espeak-ng (el que nos hizo perder tiempo de verdad)

Kokoro convierte texto en fonemas con espeak-ng. En la primera síntesis nos encontramos con esto:

Error processing file '/Users/runner/work/espeakng-loader/.../espeak-ng-data/phontab': No such file or directory

Esa ruta /Users/runner/work/ es una pista clarísima: el wheel de pip espeakng-loader empaqueta una libespeak-ng compilada en CI con una ruta de datos hardcodeada que no existe en tu máquina. Lo más frustrante: configurar la variable de entorno ESPEAK_DATA_PATH no hace nada, porque kokoro-onnx nunca la lee — toma la ruta de datos directamente del loader empaquetado.

La solución que nos funcionó: instalá un espeak-ng real del sistema y apuntá Kokoro explícitamente a eso mediante 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 te 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 unos 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 — un factor de tiempo real de alrededor de 0.16×, aproximadamente seis veces más rápido que la reproducción. Las oraciones cortas vuelven en uno o dos segundos. Para un modelo tan chico en una notebook, es un rendimiento realmente utilizable en producción. Acá está la forma de onda real de ese render del párrafo:

Forma de onda de un párrafo de narración de 22 segundos que generamos con Kokoro en una CPU M3 Pro

Muestras que generamos (sin editar)

Cada clip de abajo lo produjimos nosotros con Kokoro en el CPU M3 Pro descrito arriba — salida cruda del modelo, sin limpieza, sin post-procesado. Reproducilos y evaluá la calidad vos mismo.

af_sarah — American English
am_michael — American English
bf_emma — British English
Narración más larga (af_sarah, 22 segundos) — el párrafo que benchmarkeamos arriba

Generado por VisionStory con Kokoro-82M vía kokoro-onnx, 2026-07-11. Fijate en la pista obvia: es una pista de voz limpia — pero es solo una voz. No hay cara, no hay movimiento de labios, no hay presentador en pantalla. Ese hueco es todo el punto de la próxima 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 suficientemente cercanas a un TTS pago como para que la mayoría no lo note en un clip corto.
  • Realmente corre en CPU, y rápido. Seis veces más rápido que el tiempo real en una notebook sin GPU es la gran característica, y se mantiene.
  • De verdad gratis y apto para uso comercial. Apache-2.0 sin cobro por carácter. Para voz en off de alto volumen, esa economía es difícil de superar.

En lo que se queda corto — y esto es real:

  • No hay clonación de voz. Tenés 54 voces preset fijas. No podés clonar tu propia voz ni la voz de un cliente — si ese es tu caso de uso, Kokoro no te sirve.
  • La calidad del inglés depende de espeak-ng, lo que implica el bug de empaquetado de arriba, más algún nombre, marca o sigla mal pronunciada de vez en cuando.
  • El texto largo requiere fragmentación manual. Hay un límite de longitud de fonemas por llamada, así que tenés que dividir guiones largos y unir el audio.
  • Las voces no inglesas pueden salir bien o mal — con una variabilidad notablemente mayor que el set principal de inglés estadounidense.
  • Entrega un WAV pelado. Sin timestamps por palabra, sin visemas — nada para manejar lip-sync de fábrica.
  • Es solo voz. Sin cara, sin video. Para obtener un presentador hablando, tenés que combinar Kokoro con un sistema separado de lip-sync o avatares y manejar la sincronización vos mismo.

Autoalojar Kokoro vs una herramienta alojada: ¿cuál te conviene?

Kokoro y una herramienta de avatar alojada resuelven mitades diferentes del problema. Kokoro te da una voz; una herramienta como VisionStory te da un presentador hablando — voz, cara y lip-sync en una sola salida. Acá va el trade-off honesto.

 Kokoro (autoalojado)VisionStory (alojado)
CostoGratis (tu propio hardware)Suscripción / créditos
Configuraciónpip + pesos de 330 MB + arreglo de espeak-ngNinguna — corre en el navegador
Qué obtenésSolo pista de voz (WAV)Video de avatar parlante (voz + cara + lip-sync)
Clonación de vozNo — 54 presetsSí — cloná tu propia voz
Velocidad por clip~0.16× en tiempo real en CPU (segundos)Segundos, alojado — sin cómputo local
Uso comercialSí (Apache-2.0)Sí (según el plan)
MantenimientoVos parcheás espeak, deps, chunkingNinguno
Mejor cuandoSolo necesitás una pista de voz gratis y podés codearNecesitás un video parlante terminado, rápido

Elegí Kokoro si solo necesitás una voz en off gratis, te sentís cómodo con Python y vas a resolver la cara y el lip-sync por separado (o directamente no necesitás cara). Elegí una herramienta alojada si necesitás la voz unida a un presentador que haga lip-sync, o necesitás 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 correr Kokoro es que la voz se está comoditizando. Un modelo de 82 MB en una notebook hoy produce voces en off lo suficientemente buenas para trabajo real, gratis. Si la única promesa de tu producto era "hacemos texto a voz", esa ventaja ya desapareció.

La parte difícil, todavía sin resolver, es todo lo que viene después de la voz: transformar una pista de audio en una cara hablando convincente — lip-sync preciso, expresión, movimiento de cabeza y timing que se sostenga. Exactamente esa es la capa en la que trabajamos. Por eso nuestra conclusión no es "no uses Kokoro" — es un motor de voz legítimamente bueno. El punto es que una voz por sí sola es la mitad de un video. Si querés la otra mitad, VisionStory convierte una foto y un guion en un presentador hablando con lip-sync en un solo paso, y si tenés una voz específica que igualar, también puede clonarla.

Preguntas frecuentes

  • Sí. Kokoro se publica bajo la licencia Apache-2.0, que permite el uso comercial, y no hay cobro por carácter. Solo pagás por tu propio cómputo, que puede ser un CPU común.