Reconocimiento del lenguaje hablado en Mozilla Common Voice – Parte I.

Reconocimiento de voz en Mozilla Common Voice - Parte I.

Foto de Sebastian Unrau en Unsplash

Una de las tareas de IA más desafiantes es identificar el idioma del hablante con el fin de realizar una posterior conversión de voz a texto. Este problema puede surgir, por ejemplo, cuando personas que viven en el mismo hogar y hablan diferentes idiomas utilizan el mismo dispositivo de control de voz, como un candado de garaje o un sistema de hogar inteligente.

En esta serie de artículos, intentaremos maximizar la precisión de reconocimiento de lenguaje hablado utilizando el conjunto de datos Mozilla Common Voice (MCV). En particular, compararemos varios modelos de redes neuronales entrenados para distinguir entre alemán, inglés, español, francés y ruso.

En esta primera parte, discutiremos la selección de datos, el preprocesamiento y la incrustación.

Selección de datos

MCV es, con mucho, el conjunto de datos de voz disponible más grande públicamente, que comprende grabaciones cortas (duración promedio = 5.3 s) en hasta 112 idiomas.

Para nuestra tarea de reconocimiento de idioma, elegimos 5 idiomas: alemán, inglés, español, francés y ruso. Para alemán, inglés, español y francés, consideramos solo acentos etiquetados en MCV como Deutschland Deutsch, United States English, España y Français de France, respectivamente. Para cada idioma, seleccionamos un subconjunto de grabaciones de adultos entre muestras validadas.

Utilizamos una división de entrenamiento/validación/prueba con 40K/5K/5K clips de audio por idioma. Para obtener una evaluación objetiva, nos aseguramos de que los oradores (client_id) no se superpusieran entre los tres conjuntos. Al dividir los datos, primero llenamos los conjuntos de prueba y validación con grabaciones de oradores poco representados, luego asignamos los datos restantes al conjunto de entrenamiento. Esto mejoró la diversidad de los oradores en los conjuntos de validación/prueba y condujo a una estimación más objetiva del error de generalización. Para evitar que un solo orador domine en el conjunto de entrenamiento, limitamos el número máximo de grabaciones por client_id a 2000. En promedio, obtuvimos 26 grabaciones por orador. También nos aseguramos de que el número de grabaciones de mujeres coincida con el número de grabaciones de hombres. Finalmente, aumentamos el tamaño del conjunto de entrenamiento si el número resultante de grabaciones era inferior a 40K. La distribución final se muestra en la siguiente figura.

Distribución de clases en el conjunto de entrenamiento (imagen del autor).

El dataframe resultante con la división indicada está disponible aquí.

Preprocesamiento de datos

Todos los archivos de audio MCV se proporcionan en formato .mp3. Aunque .mp3 es excelente para el almacenamiento compacto de música, no es ampliamente compatible con bibliotecas de procesamiento de audio, como librosa en Python. Por lo tanto, primero debemos convertir todos los archivos a .wav. Además, la frecuencia de muestreo original de MCV es de 44 kHz. Esto implica una frecuencia de codificación máxima de 22 kHz (según el teorema de Nyquist). Esto sería excesivo para una tarea de reconocimiento de lenguaje hablado: en inglés, por ejemplo, la mayoría de los fonemas no superan los 3 kHz en el habla conversacional. Por lo tanto, también podemos reducir la frecuencia de muestreo a 16 kHz. Esto no solo reducirá el tamaño del archivo, sino que también acelerará la generación de incrustaciones.

Ambas operaciones se pueden ejecutar en un solo comando utilizando ffmpeg:

ffmpeg -y -nostdin -hide_banner -loglevel error -i $input_file.mp3 -ar 16000 $output_file.wav

Ingeniería de características

La información relevante generalmente se extrae de los clips de audio mediante el cálculo de incrustaciones. Consideraremos cuatro incrustaciones más o menos comunes para tareas de reconocimiento de voz / reconocimiento de lenguaje hablado: espectrograma mel, MFCC, RASTA-PLP y GFCC.

Espectrograma Mel

Los principios de los espectrogramas mel se han discutido ampliamente en VoAGI. También se puede encontrar un tutorial paso a paso sobre espectrogramas mel y MFCC aquí.

Para obtener el espectrograma mel, la señal de entrada se somete primero a un filtrado de preénfasis. Luego, se realiza una transformada de Fourier en ventanas deslizantes aplicadas consecutivamente a la forma de onda obtenida. Después, la escala de frecuencia se transforma a la escala mel, que es lineal con respecto a la percepción humana de los intervalos. Finalmente, se aplica un banco de filtros de triángulos superpuestos al espectro de potencia en escala mel para imitar cómo el oído humano percibe el sonido.

MFCC

Los coeficientes mel están altamente correlacionados, lo cual puede ser indeseable para algunos algoritmos de aprendizaje automático (por ejemplo, es más conveniente tener una matriz de covarianza diagonal para los modelos de mezcla gaussiana). Para decorrelacionar los bancos de filtros mel, se obtienen los coeficientes cepstrales de frecuencia mel (MFCC) calculando la Transformación de Coseno Discreta (DCT) de las energías de los filtros logarítmicos. Por lo general, solo se utilizan unos pocos primeros MFCC. Los pasos exactos se describen aquí.

RASTA-PLP

La Predicción Lineal Perceptual (PLP) (Hermansky y Hynek, 1990) es otra forma de calcular los embebidos para los fragmentos de música.

Las diferencias entre PLP y MFCC se encuentran en los bancos de filtros, la preénfasis de igual loudness, la conversión de intensidad a loudness y en la aplicación de la predicción lineal (Hönig et al., 2005).

Descripción general de las técnicas PLP y MFCC (de Hönig et al., 2005)

Se informó que PLP es más robusto que MFCC cuando hay una discrepancia acústica entre los datos de entrenamiento y prueba (Woodland et al., 1996).

En comparación con PLP, RASTA-PLP (Hermansky et al., 1991) realiza un filtrado adicional en el dominio espectral logarítmico, lo que hace que el método sea más robusto a las distorsiones espectrales lineales introducidas por los canales de comunicación.

GFCC

Se informó que los coeficientes cepstrales de frecuencia gammatone (GFCC) son menos sensibles al ruido que MFCC (Zhao, 2012; Shao, 2007). En comparación con MFCC, los filtros gammatone se calculan en la escala de ancho de banda rectangular equivalente (en lugar de la escala mel) y se aplica la operación de raíz cúbica (en lugar del logaritmo) antes de calcular la DCT.

La figura a continuación muestra una señal de ejemplo junto con sus diferentes embebidos:

Ejemplo de archivo de audio y sus embebidos (imagen del autor)

Comparación de embebidos

Para elegir el embebido más eficiente, entrenamos la red LSTM de atención de De Andrade et al., 2018. Por razones de tiempo, solo entrenamos la red neural con 5K fragmentos.

La figura a continuación compara la precisión de validación para todos los embebidos.

Rendimiento de diferentes embebidos en el conjunto de datos de 5K (imagen del autor).

Entonces, los espectrogramas mel con los primeros 13 bancos de filtros tienen un rendimiento similar a RASTA-PLP con model_order=13.

Es interesante destacar que los espectrogramas mel superan a MFCC. Esto concuerda con afirmaciones anteriores (ver aquí y aquí) de que los espectrogramas mel son una mejor opción para los clasificadores de redes neuronales.

Otra observación es que el rendimiento generalmente disminuye para un mayor número de coeficientes. Esto puede deberse al sobreajuste, ya que los coeficientes de alto orden a menudo representan características relacionadas con el hablante que no son generalizables al conjunto de prueba, donde se eligen diferentes hablantes.

Debido a limitaciones de tiempo, no probamos ninguna combinación de embebidos, aunque previamente se observó que podrían proporcionar una precisión superior.

Dado que los espectrogramas mel son mucho más rápidos de calcular que RASTA-PLP, utilizaremos estos embebidos en experimentos futuros.

En la Parte II ejecutaremos varios modelos de redes neuronales y elegiremos el que clasifique los idiomas mejor.

Referencias

  • De Andrade, Douglas Coimbra, et al. “A neural attention model for speech command recognition.” arXiv preprint arXiv:1808.08929 (2018).
  • Hermansky, Hynek. “Perceptual linear predictive (PLP) analysis of speech.” the Journal of the Acoustical Society of America 87.4 (1990): 1738–1752.
  • Hönig, Florian, et al. “Revising perceptual linear prediction (PLP).” Ninth European Conference on Speech Communication and Technology. 2005.
  • Hermansky, Hynek, et al. “RASTA-PLP speech analysis.” Proc. IEEE Int’l Conf. Acoustics, speech and signal processing. Vol. 1. 1991.
  • Shao, Yang, Soundararajan Srinivasan, and DeLiang Wang. “Incorporating auditory feature uncertainties in robust speaker identification.” 2007 IEEE International Conference on Acoustics, Speech and Signal Processing-ICASSP’07. Vol. 4. IEEE, 2007.
  • Woodland, Philip C., Mark John Francis Gales, and David Pye. “Improving environmental robustness in large vocabulary speech recognition.” 1996 IEEE International Conference on Acoustics, Speech, and Signal Processing Conference Proceedings. Vol. 1. IEEE, 1996.
  • Zhao, Xiaojia, Yang Shao, and DeLiang Wang. “CASA-based robust speaker identification.” IEEE Transactions on Audio, Speech, and Language Processing 20.5 (2012): 1608–1616.