Saltar al contenido

Texto a voz con Tacotron-2 y FastSpeech usando ESPnet.

septiembre 29, 2021
0jgq2Pn0MslfymMtc

Texto a voz con Tacotron-2 y FastSpeech usando ESPnet.

Una guía para principiantes sobre el texto neuronal al habla de un extremo a otro.

Sayak Misra

2 de septiembre de 2020·5 min de lectura

0*jgq2Pn0MslfymMtc

Text-to-speech (TTS) como su nombre indica, lee texto en voz alta. Toma palabras escritas como entrada y las convierte en audio. TTS puede ayudar a cualquiera que no quiera esforzarse por leer un libro, blog o artículo. En este artículo, veremos cómo podemos crear un motor TTS considerando que no sabemos nada sobre TTS.

Arquitectura de texto a voz

El diagrama anterior es una representación simplista de la arquitectura que vamos a seguir. Examinaremos todos y cada uno de los componentes en detalle y usaremos ESPnet marco para el propósito de implementación.

Interfaz

1*VckdA 0MUyNMFnDpRl3KAg

Ess principalmente tres componentes:

  1. Etiquetador POS: Hace el etiquetado de parte del discurso del texto de entrada.
  2. Tokenizar: Convertir una oración en palabras.
  3. Pronunciación: Divide el texto de entrada en fonemas, según la pronunciación. p. ej. Hola, ¿cómo estás → HH AH0 L OW, HH AW1 AA1 RY UW1. Esto se hace mediante un convertidor de grafema a fonema, en este caso estamos usando un modelo G2P (Grafema a fonema) preentrenado neuronal. Este modelo está diseñado para convertir grafemas del inglés (ortografía) en fonemas (pronunciación). Para ilustrar simplemente el funcionamiento de este modelo G2P, podemos decir que consulta un diccionario si queremos saber la pronunciación de alguna palabra y si la palabra no está almacenada en el diccionario, usa un modelo seq2seq basado en TensorFlow para predecir los fonemas. .

Regresor de secuencia a secuencia:

1*yEs H8efenNXR9X7ObXAug

Usaremos un regresor secuencial a secuencia preentrenado que ingresa características lingüísticas (fonemas) y genera características acústicas (espectrograma Mel). Aquí usaremos Tacotron-2 (Google’s) y Fastspeech (Facebook’s) para esta operación. así que echemos un vistazo rápido a ambos:

Tacotron-2

1*Lh2VPtnPelIl n3wBAvFJw

Tacotron es un sistema de síntesis de voz impulsado por IA que puede convertir texto en voz. La arquitectura de red neuronal de Tacotron 2 sintetiza la voz directamente a partir del texto. Funciona basándose en la combinación de red neuronal convolucional (CNN) y red neuronal recurrente (RNN).

FastSpeech

1*bsKfId8FiwAKnou7q3zniA

(a), (b) Transformador de avance:

FastSpeech adopta una nueva estructura de transformador de alimentación directa, descartando el marco convencional de codificador-atención-decodificador, como se muestra en la figura anterior. El componente principal del transformador de alimentación directa es el bloque del transformador de alimentación directa (bloque FFT, como se muestra en la Figura (b)), que consta de atención propia y convolución 1D. Los bloques FFT se utilizan para la conversión de secuencia de fonemas a secuencia de espectrograma mel, con norte bloques apilados en el lado del fonema y en el lado del espectrograma mel, respectivamente. De manera única, hay un regulador de longitud en el medio, que se utiliza para salvar la discrepancia de longitud entre las secuencias de fonema y espectrograma mel. (Nota: los fonemas son los sonidos pequeños y distintos del habla).

(c) Regulador de longitud:

El regulador de longitud del modelo se muestra en la figura anterior. Como la longitud de la secuencia de fonemas es menor que la de la secuencia del espectrograma mel, un fonema corresponde a varios espectrogramas mel. El número de espectrogramas mel que se alinea con un fonema se llama duración del fonema. El regulador de longitud expande la secuencia oculta de fonemas de acuerdo con la duración para que coincida con la longitud de una secuencia de espectrograma mel. Podemos aumentar o disminuir la duración del fonema proporcionalmente para ajustar la velocidad de la voz y también podemos cambiar la duración de las fichas en blanco para ajustar la pausa entre palabras con el fin de controlar parte de la prosodia.

(d) Predictor de duración:

El predictor de duración es muy crítico para que el regulador de longitud pueda determinar la duración de cada fonema. Como se muestra en la figura anterior, el predictor de duración consta de una convolución 1D de dos capas y una capa lineal para predecir la duración. El predictor de duración se apila en el bloque FFT en el lado del fonema y se entrena conjuntamente con FastSpeech a través de una función de pérdida de error cuadrático medio (MSE). La etiqueta de la duración del fonema se extrae de la alineación de la atención entre el codificador y el decodificador en un modelo de maestro autorregresivo.

Generador de formas de onda / codificador de voz:

1* Bo eFuG1KOGz Rytqeo6Q

Usaremos un modelo seq-a-seq pre-entrenado que ingresa características acústicas (Mel-spectogram) y genera una forma de onda (Audio). Aquí usaremos el codificador de voz WaveGAN paralelo. Aquí un red generativa adversaria (GAN) architechture se utiliza para generar las formas de onda a partir de los mel-spectograms, más sobre esta arquitectura se puede encontrar aquí.

Implementación

Hemos implementado la arquitectura anterior usando ESPnet estructura. Proporciona una estructura asombrosa para implementar fácilmente todos los modelos previamente entrenados e integrarlos. Aquí está el cuaderno de la implementación completa de Text-to-Speech.

Conclusión

Hemos implementado un sistema TTS neuronal, utilizando varios modelos previamente entrenados de Tacotron-2, Fastspeech, Parallel WaveGAN, etc. Podemos probar otros modelos que podrían producir resultados aún mejores.

Referencias

  1. https://github.com/kan-bayashi/ParallelWaveGAN
  2. https://github.com/espnet/espnet
  3. https://www.microsoft.com/en-us/research/blog/fastspeech-new-text-to-speech-model-improves-on-speed-accuracy-and-controllability/
  4. https://ai.googleblog.com/2017/12/tacotron-2-generating-human-like-speech.html
  5. http://media.speech.zone/images/Interspeech2017_tutorial_Merlin_for_publication_watermarked_compressed_v2.pdf
  6. https://arxiv.org/pdf/1910.11480.pdf
close