¡Clonación de Voz 5 veces más Rápida! | Tortoise-TTS-Fast | Tutorial

Find AI Tools
No difficulty
No complicated process
Find ai tools

¡Clonación de Voz 5 veces más Rápida! | Tortoise-TTS-Fast | Tutorial

Contenido

  1. Introducción 🌞
  2. Clonación de Voz con el modelo Tardis TS 🔊
  3. Preparación del entorno de trabajo 🛠️
  4. Configuración y personalización del Tardis TDS Fast 💻
  5. Proceso de inferencia más rápido 🚀
  6. Mejoras en la calidad del habla 🎙️
  7. Generación de voz para otros idiomas 🌍
  8. Solución de problemas comunes ⚠️
  9. Conclusión y próximos pasos 🏁

1. Introducción 🌞

Al amanecer, cuando los rayos del sol iluminan nuestro vasto planeta, un nuevo día comienza y con él, los maravillosos misterios del mundo natural vuelven a despertar. En este video, te mostraré cómo puedes clonar cualquier voz utilizando el modelo Tardis TS. Sé que muchos de ustedes han estado utilizando el modelo Taurus TDS en el pasado, y definitivamente tienen algunas preguntas. "¿No puede el modelo ser más rápido?" Y desafortunadamente, ese es el motivo por el que se llama Taurus TDS. Sin embargo, hay una nueva biblioteca llamada Tardis TDS Fast, y hoy te mostraré dos aspectos destacados. Podremos generar voz más de cinco veces más rápido y, además, hay una interfaz web para que sea mucho más sencillo y no tengas que lidiar con métodos complicados. Ahora puedes usar la interfaz web para clonar cualquier voz y generar habla con ella.

2. Clonación de Voz con el modelo Tardis TS 🔊

Antes de comenzar a generar habla, quiero que entiendas cómo fue posible mejorar la velocidad de inferencia y cómo funciona el modelo que vamos a utilizar, ya que todavía estamos utilizando el modelo Taurus TDS pero se han realizado algunos cambios en el código para que la inferencia sea mucho más rápida. Veamos cómo se logró esto, porque considero que una mejora de más del cinco veces en la velocidad de inferencia es muy impresionante. Aquí puedes ver las principales contribuciones de este repositorio al modelo Taurus, y los autores afirman que esperan una mejora en la velocidad de 5 a 10 veces más rápida que el proyecto original. Ahora, veamos qué opciones se agregaron al modelo Tardis TS para lograr una inferencia más rápida. Tenemos una caché de claves y valores (KV cache) y, en caso de que eso suene un poco críptico para ti, tal vez deberías ver mi video sobre atención, ya que estos son los vectores clave y de valor a los que se hace referencia. Para comprender mejor esto, echemos un vistazo al modelo de difusión o al proceso de eliminación de ruido de nuestro modelo de difusión, que en realidad ocurre bajo el capó del modelo Taurus TDS. Básicamente, comenzamos con un ruido gaussiano aleatorio y luego agregamos, en cada paso de eliminación de ruido, nuestras latencias de condicionamiento, que son las incrustaciones de voz. Entonces, básicamente, representamos las características de la voz que deseamos clonar en un vector y lo usamos como condición al eliminar el ruido. También agregamos el texto, por lo que básicamente guiamos el paso de eliminación de ruido con un token de texto y las incrustaciones de habla o voz, para que el modelo termine generando habla para el texto dado, utilizando una voz específica. Y si no estás pensando "esos son imágenes y en realidad estamos generando habla", tienes toda la razón. El modelo utiliza espectrogramas mas-factogramas que pueden verse como este. Lo que realmente sucede es que tomamos nuestra muestra de audio de longitud de onda y la transformamos al dominio espectral para obtener una representación que puede verse así. Esto se alinea con la forma en que los humanos percibimos la voz y es una representación más efectiva o eficiente del audio de longitud de onda. Pero no quiero profundizar demasiado en este tema, solo quiero que sepas que podemos tomar esas representaciones y convertirlas nuevamente a un archivo de habla o un archivo de audio de longitud de onda. Ahora, volvamos a nuestra caché de claves y valores (KV cache). Lo que realmente sucede dentro de esas diferentes etapas de eliminación de ruido es que a menudo aplicamos atención dentro del transformador. Entonces, básicamente, en cada una de las etapas de eliminación de ruido, calcularemos los vectores clave y valor, aunque técnicamente no están cambiando en comparación con el paso anterior. Entonces, lo que actualmente estamos haciendo es guardar muchos cálculos almacenando nuestros vectores clave y valor durante la etapa de eliminación de ruido. Y aquí es donde se gasta el 90% de la inferencia del modelo Taurus. Esto puede no Sonar muy fascinante, pero para mi experimentación, definitivamente es la mejora más grande en la biblioteca Taurus TDS Fast. Creo que el concepto de la caché KV se aplicó por primera vez en el modelo GPT-2 o GPT-3, y como puedes imaginar, esto implica un pequeño sacrificio porque nuestros requisitos de memoria aumentan un poco, ya que tenemos que almacenar los vectores clave y valor. Pero por otro lado, nuestra inferencia se vuelve mucho más rápida, especialmente para secuencias más largas. Si tienes texto de entrada largo, el impacto de usar la caché KV aumentará aún más. El siguiente cambio que se realizó es la media precisión de inferencia. Este es un concepto que hemos visto considerablemente en modelos de lenguaje grandes recientemente, donde incluso podemos ejecutarlos en nuestra computadora local. La idea detrás de esto es simplemente almacenar los pesos del modelo utilizando menos bits por número. En lugar de usar, por ejemplo, 32 bits para representar un número flotante, en esta implementación usaremos solo 16 bits, lo que equivale a la mitad de la precisión. En general, nuestra inferencia es menos precisa, pero se asume que la calidad de audio percibida del habla generada es casi tan buena como en el modo de precisión completa, mientras que la inferencia es mucho más rápida utilizando solo la mitad de la precisión para calcular y recorrer los pesos del modelo. No quiero hablar mucho más sobre esta opción porque el autor también afirma aquí que la media precisión actualmente versus las salidas es significativa, así que siéntete libre de experimentar con esta opción, pero bajo tu propio riesgo. Otra cosa que agrega el repositorio es un solucionador DPM, que mostré antes, este proceso del modelo de difusión, donde básicamente comenzamos con un ruido aleatorio gaussiano y generamos paulatinamente una imagen que tiene menos y menos ruido hasta que obtengamos una imagen de Alta fidelidad. Como puedes ver aquí, tenemos uno, dos, tres, cuatro, cinco, seis pasos para eliminar todo el ruido de la imagen, mientras que en la práctica a menudo aplicas muchos más pasos para generar un nuevo mas-factograma o una imagen. El solucionador DPM es básicamente una mejora de este proceso de eliminación de ruido, que nos permite generar una imagen como esta utilizando muchos menos pasos de eliminación de ruido. Para explicarlo mejor, aquí puedes ver cómo se vería una imagen después de 10 pasos de eliminación de ruido en un modelo de difusión clásico, mientras que en comparación con el solucionador DPM, después de 10 pasos, ya tienes una imagen de alta fidelidad. Básicamente, para alcanzar la misma calidad o fidelidad en una imagen utilizando el solucionador DPM, necesitamos muchos menos pasos de eliminación de ruido en comparación con un modelo de difusión clásico. Pero el uso del solucionador DPM disminuye la velocidad de inferencia del modelo, como puedes ver en este estudio del autor. Sin embargo, al utilizar el solucionador DPM, potencialmente podemos obtener la mejor calidad de habla, por lo que en caso de que la calidad del habla sea más importante que el tiempo de inferencia para ti, utilizar el solucionador DPM podría ser una buena opción. Y por último, el repositorio te permite habilitar o deshabilitar la descarga de la CPU, lo cual es básicamente que el modelo Taurus TDS se compone de varios modelos y cada vez que se utiliza un modelo específico, se cargan los pesos en la memoria de la GPU para calcular la inferencia con ese modelo específico. Por ejemplo, para obtener las incrustaciones de nuestras muestras de audio, tenemos un modelo diferente al de la eliminación de ruido y a la generación del habla. Básicamente, lo que esta opción nos permite hacer de manera predeterminada es que el modelo descargue las partes que no se usan para ahorrar memoria en la GPU. Es decir, el modelo se ajusta a las GPUs con menor capacidad de memoria, pero supongamos que tienes 24 gigabytes o incluso más, en ese caso, deshabilitar la descarga de la CPU te ayudaría, ya que, por supuesto, la carga y descarga de los pesos del modelo requiere un poco de tiempo. Si la memoria de la GPU no es un problema para ti y tienes una GPU con 10, 24 o más gigabytes, esta podría ser una opción para mejorar aún más el tiempo de inferencia del modelo.

3. Preparación del entorno de trabajo 🛠️

Antes de comenzar a usar la interfaz web, primero debemos configurar nuestro entorno para que se instalen todas las dependencias y módulos necesarios. Como siempre, debemos crear un entorno virtual y, para esto, utilizaremos MiniConda. Y para ejecutar el modelo, necesitaremos una GPU Nvidia. Si no tienes una, no te preocupes, compartiré un enlace a un servicio en línea donde podrás usar una GPU de Google. Como siempre, también compartiré todos los comandos que utilizaré en este artículo, que también vincularé en la descripción. Primero, descargaremos e instalaremos MiniConda. Luego, clonaremos el repositorio que he creado y nos moveremos a la carpeta creada. Algunas personas han tenido problemas recientemente al ejecutar el modelo Tardis TDS, así que siguiendo los pasos de configuración de este entorno virtual y con los comandos que utilicé, definitivamente también debería funcionar en tu computadora. Ahora, crearemos el entorno virtual al que llamaremos TDS Fast y utilizaremos Python 3.8 para Ello. Luego, una vez que esto esté listo, activaremos nuestro nuevo entorno ejecutando el siguiente comando: conda activate TDSFast. Ya que necesitaba GCC en este entorno para compilar archivos reales, instalé GCC. Este paso es opcional, pero en caso de que encuentres errores al instalar el repositorio, tal vez debas volver a este paso. Luego, instalaremos PyTorch para CUDA versión 11.7. Este paso también podría ser opcional, pero en el pasado, también tuve algunos problemas al instalar la biblioteca de Tardis TDS, por eso estoy ejecutando este comando, pero podría ser opcional, no estoy 100% seguro de ser honesto. Luego de completar esto, que podría llevar un poco más de tiempo, instalaremos todos los módulos necesarios para el repositorio de Tardis TDS Fast. Finalmente, instalaremos el módulo de Python para Ngrok, que nos permitirá servir la interfaz web en nuestra computadora. Dado que estoy trabajando en esta GPU en la nube, no puedo acceder al servidor web local, por lo que tengo que usar un proxy para poder acceder a la interfaz web a través de Internet. Si estás trabajando en tu computadora local, no tendrás que preocuparte por esto, ya que podrás acceder a la interfaz web en tu propio equipo. En el cuaderno de Colab, estoy utilizando el repositorio llamado "localtunnel", que es una forma agradable de evitar registrarse en Ngrok. Dado que Node.js y npm no se instalaron en este entorno y ya tenía una cuenta en Ngrok, solo usé Ngrok en este caso. Sin embargo, si lo deseas, puedes instalar npm y luego usar "localtunnel". De esta manera, podrías evitar configurar una cuenta en Ngrok y, en cambio, simplemente instalar el módulo de Python para Ngrok ejecutando el siguiente comando: pip install pyngrok. A continuación, deberás especificar tu token de autenticación para Ngrok ejecutando ngrok authtoken y aquí en la interfaz de usuario obtendrás el token de autenticación. Luego, simplemente copia el token; no te preocupes, restableceré el token posteriormente, así que no te esfuerces en probarlo. Ahora que tienes el token de autenticación, vamos a configurarlo. Lamento haber cometido un error anteriormente, pero ahora ya está corregido. Ahora ejecutaremos ngrok http 8501 y utilizaremos localhost para servir la interfaz web. Luego, iniciaremos la interfaz web ejecutando el siguiente comando: Streamlit run app.py. Dado que nuestro agente de Ngrok se ejecuta en segundo plano, generalmente nos muestra la URL pública a la que se puede acceder a nuestra interfaz web. Dado que se ejecuta en segundo plano, no podemos verla directamente, por lo que debo ir al panel de control del agente en Ngrok para obtener la dirección URL. Simplemente haz clic en "Visit site" para acceder a la interfaz web.

4. Configuración y personalización del Tardis TDS Fast 💻

Una vez que nuestro entorno de trabajo esté listo y en ejecución, podrás ver que he agregado una opción para cargar archivos de audio y crear nuevas voces en la interfaz web. Esto significa que es una solución todo en uno. Si aún no tienes muestras de audio, no te preocupes, no las muestro en este video, pero asegúrate de ver mi otro video donde te muestro cómo grabar tu propia voz utilizando la herramienta Audacity, y también te enseño cómo configurarla para obtener los mejores resultados. El autor del modelo Taurus TDS original menciona que las buenas fuentes de audio serían, por ejemplo, videos de YouTube en los que no haya mucho ruido de fondo. También recomienda tener al menos tres clips de audio. Otro aspecto importante es guardar tus muestras de audio en formato WAV con formato de punto flotante y una frecuencia de muestreo de 22 kHz. Si no estás seguro de cómo hacerlo, simplemente sigue los pasos de mi otro video que mencioné antes y allí aprenderás cómo hacerlo. Ahora, verás que he subido las muestras de audio de mi voz y voy a agregarlas como una nueva voz llamada "Martin". Luego, puedes hacer clic en el botón "Crear voz" y, como podrás ver, la voz se ha agregado. Aquí, simplemente seleccionaremos la nueva voz "Martin" y el preset "Ultra rápido". Esta es la opción más rápida para generar habla que aún tiene una calidad decente o buena. También tenemos otros presets, como el modelo antiguo de Taurus TDS, y también tenemos una configuración de alta calidad. Además, tenemos opciones avanzadas, donde podemos generar múltiples candidatos para un texto dado y luego decidir cuál es el mejor para nosotros. Incluso hay una mejoría en el modo de promedio latente, que es básicamente cómo se calcula la representación vectorial que caracteriza tus muestras de voz. Aparentemente, también hay mejoras en este repositorio que aún no he explorado, pero aquí puedes seleccionar el muestreador que deseas utilizar. Como vimos, la inferencia es más rápida con los dos primeros, pero si deseas tener un habla de mayor calidad, puedes utilizar el muestreador DPM. También vi que se recomienda al menos 20 pasos utilizando el muestreador DPM, e incluso podrías usar 30, que es lo mejor según el autor. Aquí tienes las otras opciones que vimos anteriormente, como la opción de caché KV, que está activada, la media precisión está deshabilitada y todavía estamos en baja VRAM. Si deseas realizar cálculos más rápidos, puedes desactivar esta opción. Además, aplicaremos el "voice fixer" para mejorar ligeramente y eliminar cualquier ruido de fondo al habla generada. Eso es todo, y ahora puedes escribir "start" para comenzar la generación de habla. Ahora se generará un candidato, como mencioné, si deseas generar más, simplemente aumenta el número de candidatos aquí. Como puedes ver, esto fue muy rápido. Generamos cinco segundos de habla en solo ocho segundos. Si recuerdas cuánto se tardó con el modelo original de Taurus TDS, esto es una gran mejora y estoy seguro de que a muchos les gustará. Ahora, escuchemos el audio generado.

5. Proceso de inferencia más rápido 🚀

La capacidad expresiva de los Transformadores Autoregresivos es simplemente increíble. Los adoro absolutamente.

6. Mejoras en la calidad del habla 🎙️

Para las personas cuyo inglés es su lengua materna, es muy probable que el habla generada con su voz suene más similar a ellos mismos que en mi caso, ya que tengo un acento alemán. Sin embargo, puedo decir que en general suena decente en mi caso. Para probar esto, he creado una muestra de audio para una persona muy famosa. Sin embargo, no te diré su nombre, pero por favor, escribe en los comentarios quién crees que es. Vamos a verificar qué tan buenas son en realidad las capacidades de clonación de voz del modelo Taurus. Escuchemos el siguiente audio.

7. Generación de voz para otros idiomas 🌍

Muchos de ustedes me han preguntado si es posible generar habla en otros idiomas además del inglés usando el modelo Taurus TDS. Desafortunadamente, hasta ahora eso no era posible, pero ahora existe un repositorio que nos permite ajustar el modelo Taurus TDS para otros idiomas. Usando el indicador AR checkpoint, puedes utilizar tu modelo Taurus TDS ajustado en este repositorio, lo cual es muy interesante y ofrece una mejora adicional. Además, también se ha agregado el "voice fixer", que es un modelo de restauración del habla que mejora ligeramente la calidad del habla generado y elimina cualquier ruido de fondo.

8. Solución de problemas comunes ⚠️

En caso de que encuentres problemas para ejecutar el modelo Taurus TDS, los siguientes pasos te ayudarán a resolver esos problemas comunes:

  • Verifica que todas las dependencias estén instaladas correctamente.
  • Reinicia tu entorno virtual y asegúrate de que todas las bibliotecas se hayan cargado correctamente.
  • Asegúrate de tener suficiente VRAM disponible para ejecutar el modelo sin problemas.
  • Revisa los archivos de registro y mensajes de error para obtener más información sobre el problema específico.
  • Si el problema persiste, intenta reinstalar todas las bibliotecas y las dependencias del modelo Taurus TDS.

9. Conclusión y próximos pasos 🏁

En conclusión, esta nueva versión del modelo Taurus TDS, llamado Tardis TDS Fast, ha mejorado significativamente la velocidad de inferencia, permitiéndote generar habla en un tiempo notablemente más corto. La incorporación de nuevas características, como la caché de claves y valores, la media precisión de inferencia y el solucionador DPM, ha contribuido a esta mejora en la velocidad y calidad del habla generada. Además, la interfaz web proporcionada en este repositorio facilita el proceso de clonación de voz y generación de habla. Sin embargo, recuerda que aún existen algunas limitaciones, como la calidad del habla generada y su precisión en la reproducción de tu voz específica. En futuras actualizaciones, es posible que se realicen mejoras adicionales para abordar estas limitaciones y brindar una experiencia aún mejor al clonar voces y generar habla. ¡Espero que hayas disfrutado de esta guía y que puedas aprovechar al máximo este emocionante avance tecnológico!

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.