Inflect v2: TTS local de texto a forma de onda con 3.96M y 9.36M de parámetros

Inflect v2 ofrece TTS completo en inglés de 24 kHz en dos modelos compactos (3.96M y 9.36M de parámetros) sin vocoder externo. Explore la arquitectura, la evaluación y la implementación en CPU.

Inflect v2: TTS local de texto a forma de onda con 3.96M y 9.36M de parámetros

La síntesis de voz ha estado dominada durante mucho tiempo por API en la nube y modelos pesados que requieren clústeres de GPU. Pero, ¿y si pudieras ejecutar un sistema TTS completo y de sonido natural enteramente en una CPU, con una huella lo suficientemente pequeña como para integrarlo en cualquier aplicación? Eso es exactamente lo que ofrece Inflect v2.

Inflect v2 es un modelo de código abierto, de extremo a extremo, de texto a forma de onda que sintetiza habla en inglés mono de 24 kHz a partir de texto sin procesar. Viene en dos variantes: Inflect-Micro-v2 (9,356,513 parámetros, 37.53 MB FP32) e Inflect-Nano-v2 (3,966,721 parámetros, 15.97 MB FP32). Ambos comparten la misma API de Python y CLI, por lo que puedes cambiar entre ellos sin modificar tu código.

Por qué Inflect v2 es importante

La mayoría de los sistemas TTS modernos dependen de un vocoder separado (como HiFi-GAN) para convertir espectrogramas de mel en formas de onda. Inflect v2 integra el decodificador de forma de onda directamente en el modelo, eliminando la necesidad de un vocoder externo o cualquier componente de inferencia alojado. Esto significa:

  • Inferencia local real: sin llamadas a la nube, sin latencia, sin preocupaciones de privacidad.
  • Dependencias mínimas: solo PyTorch (o ONNX Runtime) y algunas bibliotecas estándar.
  • Salida determinista: las semillas controlan la generación, lo que la hace reproducible para pruebas y evaluación.

Para desarrolladores que crean asistentes de voz, herramientas de accesibilidad o aplicaciones de borde, esto es un cambio de juego. Puedes enviar un pipeline TTS completo en menos de 40 MB de pesos.

Arquitectura: un generador compacto de la familia VITS

Inflect v2 sigue la arquitectura de la familia VITS (Inferencia Variacional con Entrenamiento Adversario para TTS de extremo a extremo), pero con un enfoque en la eficiencia. La ruta de síntesis incluye:

  1. Normalización de inglés y frontend de fonemas: convierte texto sin procesar en fonemas.
  2. Codificador de texto Transformer: codifica la secuencia de fonemas.
  3. Predictor de duración estocástico: predice las duraciones de los fonemas con control de variación.
  4. Alineación monótona: alinea el texto con representaciones de habla latentes.
  5. Generación de habla de variable latente: genera una secuencia de habla latente.
  6. Flujo de acoplamiento residual: refina la representación latente.
  7. Decodificador de 24 kHz con reducción de alias: produce directamente la forma de onda final.

Micro asigna más capacidad a los anchos ocultos y del decodificador, mientras que Nano preserva el mismo contrato de implementación con una red más estrecha. Ambos modelos producen una voz masculina fija en inglés, con semillas deterministas, velocidad de habla y controles de variación de entrega.

Evaluación: Calidad y huella, medidas por separado

Inflect v2 informa métricas que responden a diferentes preguntas, en lugar de colapsarlas en una sola puntuación. Aquí están los datos principales:

Modelo Preferencia de la comunidad ↑ UTMOS22 ↑ WER semántico de dos ASR ↓ Pesos FP32 ↓
Inflect-Micro-v2 66.2% 4.395 3.99% 37.53 MB
Inflect-Nano-v2 63.9% 4.386 4.21% 15.97 MB
  • Preferencia de la comunidad: proviene de escuchas por pares aleatorias y anónimas, normalizadas por apariciones del modelo, con empates contando como media victoria. Es evidencia descriptiva, no MOS formal.
  • UTMOS22: es un predictor de calidad aprendido evaluado en 500 prompts no vistos emparejados por voz.
  • WER semántico: es la media a nivel de corpus con igual peso de Qwen3-ASR y Nemotron 3.5 en 400 prompts no vistos emparejados. Whisper large-v3 se excluye del titular debido a fallos de inserción pesada en parte del conjunto de comparación.

Perfil de implementación en CPU

En una referencia de CPU mejorada de Hugging Face administrada (8 vCPU, 32 GB de RAM) con cuatro hilos de framework, 100 prompts fijos Modern400 y tres pasadas (excluyendo la primera pasada de construcción de caché), Inflect midió:

  • Micro: RTF 0.1593 (6.28x tiempo real)
  • Nano: RTF 0.0933 (10.72x tiempo real)

Eso significa que Nano puede sintetizar una oración de 10 segundos en menos de un segundo en una CPU típica, impresionante para un modelo completamente local.

Comenzando: Ejecútalo localmente

Clonar el repositorio y ejecutar tu primera síntesis es sencillo:

git clone https://github.com/owenawsong/Inflect.git
cd Inflect
python -m pip install -r requirements.txt

python examples/download_and_speak.py \
  --model micro \
  --text "Una voz local completa puede caber en casi cualquier lugar." \
  --output inflect.wav

La primera ejecución descarga y almacena en caché el modelo seleccionado de Hugging Face. Cambia --model micro a --model nano sin cambiar la interfaz.

También puedes renderizar ambos modelos con el mismo prompt y semilla para comparar:

python examples/compare_models.py \
  --text "La misma oración, renderizada por ambos modelos Inflect." \
  --output-dir comparison

Usando la API de Python

Desde un repositorio de modelos, puedes usar la clase InflectTTS directamente:

from inference import InflectTTS

tts = InflectTTS(".", device="cpu")
sample_rate, waveform = tts.synthesize(
    "El modelo devuelve una forma de onda completa.",
    speed=1.0,
    variation=0.667,
    seed=7,
)
tts.save("El mismo runtime puede escribir un WAV directamente.", "sample.wav", seed=7)

La entrada larga se divide en límites sensibles a la puntuación, se sintetiza fragmento por fragmento y se une con pausas controladas. Esto limita el uso de memoria; no es una pasada planificada globalmente ni transmisión acústica.

Alcance y limitaciones

Inflect v2 es un lanzamiento de pesos abiertos, pero es importante saber qué hace y qué no hace.

Soportado:

  • Inferencia local FP32 de PyTorch en CPU y CUDA
  • Inferencia de ONNX Runtime para paquetes ONNX publicados
  • Una voz masculina fija en inglés por modelo
  • Semillas deterministas, velocidad de habla y variación de entrega
  • Fragmentación de texto largo sensible a la puntuación
  • Generación completa de forma de onda a través de API de Python y CLI

No reclamado:

  • Clonación de voz, hablantes seleccionables, voces femeninas o habla multilingüe
  • Transmisión acústica o tiempo hasta el primer audio medido
  • Exportaciones GGUF, Core ML, TFLite, FP16 o cuantizadas a enteros
  • Uso para comunicación médica, legal, de emergencia o crítica para accesibilidad

Documentación y comunidad

El repositorio incluye documentación completa: una guía de implementación, metodología de evaluación, detalles de arquitectura, un informe técnico y una guía para la adaptación de idiomas y voces fijas (incluyendo preparación de datos, entrenamiento y exportación).

Inflect v2 tiene licencia Apache-2.0, con componentes de terceros incluidos que conservan sus propios avisos. Fue diseñado y desarrollado independientemente por Owen Song, y la comunidad puede unirse a través del Discord de Inflect.

Reflexiones finales

Inflect v2 demuestra que el TTS de alta calidad no requiere modelos masivos ni infraestructura en la nube. Con 3.96M de parámetros y un rendimiento de CPU de 10.72x en tiempo real, es una excelente opción para desarrolladores que desean integrar habla de sonido natural en sus aplicaciones sin sacrificar rendimiento o privacidad.

Ya sea que estés construyendo un asistente de voz, una herramienta de accesibilidad o simplemente experimentando con TTS moderno, Inflect v2 vale la pena probarlo. Clona el repositorio, ejecuta los ejemplos y escucha por ti mismo lo que un modelo compacto puede hacer.

Fuente

owenawsong/Inflect: Inflect es un modelo de síntesis de voz ligero y de alta calidad diseñado para ofrecer audio sorprendentemente natural con una huella mínima. Es un trabajo en progreso activo centrado en iteración rápida, fuerte calidad de voz e integración simple para desarrolladores que experimentan con sistemas TTS modernos.