Silero, un sistema de síntesis de voz de red neuronal
Hace varios dias se dio a conocer la liberación de una nueva versión pública del sistema de síntesis de voz de red neuronal Silero Text-to-Speech, cuyo objetivo principal del proyecto es crear un sistema moderno de síntesis de voz de alta calidad que no sea inferior a las soluciones comerciales de las corporaciones y que esté disponible para todos sin el uso de costosos equipos de servidor.
Los modelos se distribuyen bajo la licencia GNU AGPL, pero la empresa que desarrolla el proyecto no revela el mecanismo para entrenar modelos. Para iniciar, se puede usar PyTorch y marcos que admitan el formato ONNX.
Actualmente, Silero cuenta con modelos en Inglés, Español, Alemán, Ruso, Francés, Ucraniano, Tartaro, Uzbeko, Bashkir, entre otros.
La síntesis de voz en Silero se basa en el uso de algoritmos de redes neuronales modernos profundamente modificados y métodos de procesamiento de señales digitales.
Se observa que el principal problema de las soluciones de redes neuronales modernas para la síntesis de voz es que, a menudo, solo están disponibles como parte de las soluciones en la nube pagas y los productos públicos tienen requisitos de hardware elevados, son de menor calidad o no son productos terminados y listos para usar. Por ejemplo, para ejecutar sin problemas una de las nuevas arquitecturas populares de síntesis de extremo a extremo, VITS, en modo de síntesis (es decir, no para entrenamiento de modelos), se requieren tarjetas de video con más de 16 gigabytes de VRAM.
Contrariamente a la tendencia actual, las soluciones de Silero se ejecutan con éxito incluso en 1 subproceso x86 de un procesador Intel con instrucciones AVX2. En 4 subprocesos de procesador, la síntesis le permite sintetizar de 30 a 60 segundos por segundo en modo de síntesis de 8 kHz, en modo de 24 kHz – 15-20 segundos y en modo de 48 kHz – alrededor de 10 segundos.
Principales novedades de la nueva versión de Silero
En esta nueva versión que se presenta se destaca que el tamaño del modelo se reduce 2 veces a 50 megabytes, ademas de que los modelos se han vuelto 10 veces más rápidos y por ejemplo, en el modo de 24 kHz, pueden sintetizar hasta 20 segundos de audio por segundo en 4 hilos de procesador.
Ademas de ello los modelos saben cómo hacer una pausa, pueden aceptar párrafos completos de texto como entrada, se admiten etiquetas SSML y que todas las opciones de voz para un idioma se empaquetan en un solo modelo.
Tambien se destaca que Synthesis funciona a la vez en tres frecuencias de muestreo para elegir: 8, 24 y 48 kilohercios, se resuelven los «problemas de los niños»: inestabilidad y omisión de palabras y se agregaron banderas para controlar la colocación automática de acentos y la colocación de la letra «ё».
Por otra parte, tambien se menciona que hay algunos problemas sistémicos inherentes a la síntesis de Silero y son:
- A diferencia de las soluciones de síntesis más tradicionales como RHVoice , la síntesis de Silero carece de integración con SAPI, clientes fáciles de instalar e integraciones con Windows y Android.
- La velocidad, aunque sin precedentes para una solución de este tipo, puede no ser suficiente para la síntesis sobre la marcha en procesadores débiles de alta calidad.
- La solución automática de estrés no maneja homógrafos y aún comete errores, pero esta falla se solucionará en versiones futuras.
- La versión actual de la síntesis no funciona en procesadores sin instrucciones AVX2 (o necesita cambiar específicamente la configuración de PyTorch), porque uno de los módulos dentro del modelo está cuantificado.
- La versión actual de la síntesis esencialmente tiene la única dependencia de PyTorch.
- libtorch disponible para plataformas móviles es mucho más engorroso que el tiempo de ejecución de ONNX, pero aún no se proporciona la versión ONNX del modelo.
Finalmente se menciona que para la próxima versión se publicará en un futuro próximo con los siguientes cambios:
- La tasa de síntesis aumentará de 2 a 4 veces más.
- Se actualizarán los modelos de síntesis para los idiomas de la CEI: kalmuko, tártaro, uzbeko y ucraniano.
- Se agregarán modelos para idiomas europeos.
- Se agregarán modelos para idiomas indios.
- Se agregarán modelos para inglés.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.