Técnico

Síntesis de voz y clonación de voz

Share

La síntesis de voz significa literalmente producir voz humana artificial. Presenta muchas aplicaciones prácticas, como la generación de música, la conversión de texto a voz o la guía de sistemas de navegación.

Los enfoques tradicionales para la síntesis de voz implicaban buscar unidades de voz que coincidan con un texto de entrada en una base de datos grande y concatenarlas para producir un archivo de audio. A menudo resultaba en un discurso poco natural y carente de emociones. También se han desarrollado enfoques paramétricos, basados en la idea de que el habla se puede sintetizar combinando características como la frecuencia fundamental y el espectro de magnitud.

Hoy en día, los modelos TTS (conversión de texto a voz) han ido un paso más allá, no solo haciendo que las máquinas hablen, sino también empujándolas a sonar como humanos de diferentes edades y géneros, o incluso a parecerse a la voz de un objetivo.

Leyendo este post descubrirás algunos modelos seleccionados para:

  • Sintetización de formas de onda de espectrograma a audio (vocoder)
  • Conversión de texto a voz
  • Clonación de voz: Flowtron

De espectrograma a audio

Los modelos tradicionales suelen generar formas de onda de audio al pasar la información espectral a través de algoritmos de procesamiento de señales, conocidos como vocoders. Algunos modelos que logran ese propósito son:

  • El algoritmo Griffin-Lim: un método de reconstrucción de fase basado en la redundancia de la transformada de Fourier de corta duración, que se utiliza para recuperar una señal de audio de un espectrograma de solo magnitud. Se implementa en Librosa Biblioteca de Python.
  • Red ondulado: Escrito por Google Deepmind. Presenta una red neuronal basada en PixelCNN para generar formas de onda de audio sin procesar. Su modelo es totalmente probabilístico y autorregresivo, y genera resultados de conversión de texto a voz tanto en inglés como en mandarín. Si bien el modelo original realiza todo el proceso de conversión de texto a voz, los sintetizadores posteriores utilizan una versión modificada de la arquitectura WaveNet para invertir la representación de las características del espectrograma de Mel en muestras de formas de onda en el dominio del tiempo.
    Nota: los modelos autorregresivos son inherentemente seriales y, por lo tanto, no pueden utilizar completamente procesadores paralelos como GPU o TPU.
  • Ondas que brillan: Escrito por NVIDIA. Se trata de una red «basada en el flujo» capaz de generar voz de alta calidad a partir de espectrogramas MEL, combinando información de Resplandor y WaveNet, sin necesidad de regresión automática.

Conversión de texto a voz

Las técnicas más modernas de conversión de texto a voz pertenecen a proveedores de servicios externos, como AWS, Google Cloud y Microsoft Azure, todos los cuales se pagan por uso (no vamos a entrar en detalles sobre ellos). Tienen resultados de última generación, pero no se adaptan a todas las aplicaciones (por ejemplo, voces personalizadas).

Presentamos dos sintetizadores TTS cuyos fundamentos son de interés público y sus implementaciones se pueden encontrar fácilmente. Los modelos están clasificados según el Puntuación media de opinión (MOS), una medida numérica de la calidad general juzgada por humanos de un evento o experiencia en una escala del 1 (malo) al 5 (excelente).

  • Tacotrón: Su canalización toma caracteres como entrada y produce fotogramas de espectrogramas, que luego se convierten en formas de onda de audio. Cuenta con un modelo seq2seq que incluye un codificador, un decodificador basado en la atención y una red de posprocesamiento. Este último se denomina «módulo CBHG» y su objetivo es convertir la salida del decodificador en un objetivo que pueda sintetizarse en formas de onda (un espectrograma). El paso del vocodificador se implementa mediante el algoritmo Griff-Lim descrito anteriormente. Dados los pares (texto, audio), Tacotron se puede entrenar completamente desde cero con una inicialización aleatoria. El modelo está clasificado con un MOS de 3.82/5. No hay ninguna implementación oficial disponible, pero sí varias repositorios se puede acceder.
Conceptos básicos de arquitectura de Tacotron
  • Tacotrón 2: Al igual que Tacotron, presenta un sistema compuesto por una red recurrente de predicción de características secuencia a secuencia que mapea las incrustaciones de caracteres en espectrogramas a escala Mel. A diferencia de este último, le sigue un modelo WaveNet modificado que actúa como un vocoder para sintetizar las formas de onda en el dominio del tiempo a partir de esos espectrogramas. El modelo se basa en un conjunto de datos interno en inglés estadounidense, que contiene 24,6 horas de discurso de un altavoz femenino profesional único. El modelo está clasificado con un MOS de 4.53/5. A Implementación de Pytorch está disponible.
Conceptos básicos de arquitectura de Tacotron2

Clonación de voz

El propósito de la clonación de voz es parecerse a una voz o estilo objetivo en un marco de generación de voz. Estos algoritmos suelen entrenarse con los altavoces deseados y rara vez son fáciles de ajustar con otros altavoces.

Una de las soluciones más prometedoras al momento de escribir este post es Flowtron, el modelo TTS de última generación de NVIDIA. Proporciona una solución de conversión de texto a voz con Tacotron 2 y añade una transferencia de estilo de voz con procesamiento adicional.

Los modelos Flowtron se entrenan previamente con grabaciones de audio de diferentes altavoces y sus correspondientes narraciones de texto. Para introducir nuevos altavoces, es necesario realizar un proceso de ajuste.

El el concepto clave es el siguiente: Flowtron aprende una función invertible que asigna una distribución de las características del habla (espectrogramas mel) a un espacio z latente parametrizado mediante una distribución simple (gaussiana) y condicionado a una muestra de texto de entrada. Sin embargo, podemos generar muestras que contengan características específicas del habla que se manifiestan en el espacio espectrográfico Mel buscando y muestreando la región correspondiente en el espacio z.
El modelo está clasificado con un MOS de 3.67/5.

En términos de inferencia, se puede generar un audio alimentando el modelo con un texto e indicando la identificación del altavoz deseado.

Por un lado, agregar un altavoz nuevo para el modelo es una tarea costosa. Se requieren varias horas de breves grabaciones de audio con sus respectivas transcripciones para afinar un modelo previamente entrenado. Los modelos entrenados con menos datos han mostrado un rendimiento deficiente en la práctica.

Por otro lado, para transferencia de estilo solo se necesitan unas pocas muestras del altavoz objetivo. El modelo logra transferir características de la voz, como la cadencia o el acento del objetivo, a la voz del altavoz modelo.
El repositorio está disponible aquí.

El pipeline de Flowtron

Comentarios finales

Hemos explorado diferentes alternativas para implementar una canalización de conversión de texto a voz, entendiendo los conceptos subyacentes y buscando implementaciones prácticas y soluciones de evaluación comparativa. La publicación tiene como objetivo resumir lo que consideramos las soluciones más poderosas y prometedoras para esta tarea.

Como parte de la investigación, encontramos otros documentos e implementaciones que descartamos (¡y que se mencionan a continuación para ahorrarle tiempo!) :

  • https://github.com/CorentinJ/Real-Time-Voice-Cloning, viene con un descargo de responsabilidad: 'no solo es un desastre configurar el entorno, sino que es posible que los resultados te decepcionen'.
  • Clonación neuronal de voz con algunos ejemplos
    Basado en: esto artículo, afirma lo siguiente:
    'Clonamos las voces de los ponentes de forma independiente del contenido. Esto significa que tenemos que capturar la identidad del hablante en lugar del contenido que habla. Intentamos hacerlo creando un altavoz que incorpore un espacio para los diferentes altavoces». Este proyecto está archivado y su propietario ya no lo mantiene ni lo recomienda.
  • 15.ai, un proyecto del MIT, tiene excelentes resultados, pero aún no se ha publicado ni se ha publicado en código abierto.

Cada viaje de IA comienza con una conversación

Hablemos
Hablemos