Modelo hı́brido fonético-neural para corrección en sistemas de reconocimiento del habla

Mario Campos Soberanis
SoldAI
Published in
7 min readSep 8, 2020

Esta es una versión resumida del artículo: “Modelo hı́brido fonético-neural para corrección en sistemas de reconocimiento del habla”, el cual se presentó en el Congreso Mexicano de Inteligencia Artificial 2020.

1. Introducción

Los Sistemas de Reconocimiento del Habla (ASR por sus siglas en
inglés) han madurado hasta el punto de contar con implementaciones comerciales de calidad, sin embargo, presentan un alto rango de error en dominios específicos, lo cual impide que esta tecnología sea adoptada ampliamente por industrias con necesidades particulares de lenguaje.

Los ASR se integran generalmente de tres módulos relativamente independientes: modelo acústico, modelo de diccionario y modelo de lenguaje. En fechas recientes también han cobrado auge los modelos extremo a extremo de aprendizaje profundo, en donde la división modular no es tan clara.

A menudo los ASR se distribuyen como cajas negras, en donde los usuarios tienen poco control sobre el modelo de reconocimiento de lenguaje, lo que impide optimizarlos utilizando datos de audio propios.

Los modelos de poscorrección son una estrategia viable para corregir los errores producidos por los ASR de propósito general.

Se ha experimentado con diferentes metodologías para realizar la corrección posprocesamiento de ASR cerrados incluyendo modelos de lenguaje y corrección fonética.

En este post vamos a delinear una estrategia de poscorrección para sistemas ASR combinando un modelo de corrección fonética con un clasificador generado por medio de una red neuronal profunda.

2.- Corrección fonética (PhoCo)

Para el desarrollo de esta investigación se utilizó el algoritmo de corrección fonética (PhoCo por sus siglas en inglés), el cual consiste en transformar el texto transcrito a una representación fonética y comparar segmentos de ésta, con versiones fonéticas de palabras y frases comunes en el dominio de aplicación para su posible reemplazo. Estas palabras y frases son denominadas contexto. La comparación se realiza utilizando un umbral de similitud de distancia de Levenshtein, que determina si una corrección es sugerida o no.

Para el diseño del modelo híbrido se utilizaron representaciones fonéticas del Alfabeto Fonético Internacional (IPA) y una versión de worldbet (Wbet) adaptada al español de México.

De igual manera, el algoritmo permite utilizar diferentes estrategias de selección de candidatos. Para la experimentación se utilizaron configuraciones de ventana deslizante (Win) y selección incremental por caracteres (Let) como son descritos en nuestro artículo: “Optimización evolutiva de contextos para la corrección fonética en sistemas de reconocimiento del habla.”

3. Clasificador neural

Para poder descubrir patrones de error en la corrección fonética, se empleó una red neuronal recurrente, que recibe como entrada la transcripción original del ASR, la frase de corrección candidata proporcionada por el PhoCo junto con los hiperparámetros del algoritmo.

La salida de la red neuronal es un número binario que indica si se debe realizar la corrección propuesta.

Las redes neuronales recurrentes, se han utilizado con éxito en clasificación y descubrimiento de patrones de texto, por lo que se modeló el proceso de rectificación para el algoritmo de corrección fonética mediante una red neuronal recurrente.

La arquitectura de la red neuronal se diseñó para robustecer la detección de patrones de texto y el seguimiento de dependencias a corto y largo plazo:

  • Una capa de embeddings de tamaño 128
  • Una capa LSTM de 60 unidades ocultas
  • Una capa de Max pooling
  • Una capa densa de 50 unidades ocultas
  • Una capa densa de activación sigmoide de 1 unidad

La arquitectura utilizada se ilustra en la Fig. 1, en donde se muestra el procesamiento de las diferentes capas de la red hasta producir una salida binaria, mediante una única neurona con activación sigmoide.

Fig 1. Arquitectura de la red neuronal

4. Algoritmo híbrido

El algoritmo híbrido se realizó ejecutando la corrección neuronal descrita en la sección anterior, al algoritmo de corrección fonética (PhoCo). La idea es proporcionar un mecanismo de control para las posibles sustituciones erróneas que pudiera realizar el PhoCo. Este enfoque permite adoptar estrategias más agresivas de corrección haciendo posible que el clasificador neuronal controle los errores de corrección (falsos positivos).

El algoritmo consiste en realizar la corrección fonética de manera estándar y posteriormente evaluar la corrección candidata, junto con la transcripción original del ASR en el clasificador neural. Si el clasificador neural predice un valor mayor a 0.5 se realiza a la corrección, en caso contrario se utiliza la transcripción del ASR.

5. Experimentos

La base de datos utilizada para entrenar el algoritmo, proviene de un caso de un bot de televenta de refrescos desarrollado por SoldAI, el cual se encuentra en producción en este momento.

Los audios fueron transcritos a su valor real por un agente humano.

La base de datos se conformó utilizando las grabaciones reales las cuales fueron proporcionadas al ASR de Google para generar una transcripción hipotética de ASR y a su vez esa transcripción fue proporcionada al PhoCo con diferentes parámetros de umbral, representación fonética y método de selección de candidatos.

Como resultado, se obtuvo una base de datos de 46,080 ejemplos para entrenar los algoritmos descritos.

Para el entrenamiento del clasificador neural se dividió la base de datos aumentada en conjuntos de entrenamiento, validación y prueba en porcentajes de 80, 10 y 10 respectivamente.

Se utilizó el conjunto de entrenamiento para iterar diferentes modelos de redes neuronales empleando técnicas de regularización dropout, con distintos parámetros de probabilidad. Sobre cada uno de los modelos se calcularon métricas de accuracy, precision, recall y F1 en el modelo entrenado y en los datos de validación.

Una vez que se obtuvo el mejor modelo en el conjunto de validación, se procedió a evaluar el mismo en el conjunto de datos de prueba, para reportar las métricas de accuracy, precision, recall, F1 y AUC.

6. Resultados

La red neuronal profunda se entrenó durante dos épocas con una técnica de mini batches de tamaño 64, utilizando 36,863 datos.

En la Fig. 2 se muestra la gráfica de la accuracy del modelo después del entrenamiento de cada uno de los lotes. La gráfica muestra irregularidades debido a las particularidades de los diferentes lotes, sin embargo, se puede apreciar un crecimiento sostenido, con un salto abrupto alrededor del lote 550, estabilizándose cerca del 0.9646.

Fig. 2 Accuracy de la red neuronal

Una vez entrenado el mejor modelo neuronal se realizó la evaluación del mismo visualizando el área bajo la curva ROC cubierta por el modelo cuando realiza predicciones sobre el conjunto de prueba, misma que se ilustra en la Fig. 3 en donde se puede notar que se obtuvieron resultados satisfactorios cubriendo un 99% del área bajo la curva.

Fig. 3 AUC score del test set

Utilizando el modelo entrenado se calcularon métricas antes mencionadas, utilizando el conjunto de prueba, el cual constaba de 4,607 ejemplos. Los resultados para las diferentes clases (0 y 1), así como el promedio realizado con la estrategia macro average se presentan en la Fig. 4.

Fig 4. Métricas de desempeño del clasificador neural

Se puede apreciar que se obtuvieron altos valores para todas las métricas superando el 95% en cada una de ellas. Llama particularmente la atención, el valor macro average F1 el cual es de 98%, siendo este un indicador de una alta eficiencia para el modelo del clasificador neural.

Una vez entrenado el clasificador neural, se procedió a calcular el Word Error Rate (WER), el cual es una métrica útil para medir los errores cometidos por sistemas ASR.

Los WER promedio de acuerdo a los diferentes umbrales son tomados del total de los 46,080 ejemplos. Cada uno de los valores de los umbrales utilizados para experimentar cuenta con 3,840 ejemplos. En la tabla de la Fig. 5, se muestran los WER promedio para los distintos umbrales así como la reducción relativa del WER obtenida por el algoritmo híbrido fonético-neural. La línea base obtenida mediante el ASR de Google, presentó un WER de 0.338, por lo que las reducciones relativas se realizan tomando ese valor como referencia.

Fig 5. Resultados del WER relativo y absoluto

7. Conclusiones

A partir de los resultados obtenidos en la experimentación, se muestra la utilidad del algoritmo híbrido de corrección fonética-neural para reducir los errores de la transcripción de Google. Se observa que el algoritmo híbrido logra reducir el WER relativo hasta en un 43.9%.

Se muestra una mejora consistente del algoritmo de corrección fonético-neural sobre la transcripción del ASR de Google, así como del algoritmo de corrección fonética simple.

La red neuronal recurrente, resultó una excelente estrategia para el modelado de patrones de lenguaje en dominios específicos, exhibiendo un F1 score de 0.98, así como un 99% de área bajo la curva ROC.

El corrector fonético es una estrategia viable para la corrección de errores en ASR comerciales, sin embargo, con la aplicación del clasificador neural y el algoritmo híbrido se consigue reducir aún más el WER consiguiendo una mejora en el WER relativo de 43.9%.

Este tipo de mejoras resultan importantes en ASR de uso comercial donde se necesitan grados de precisión cada vez más altos.

Dado que tanto el algoritmo de corrección fonética como el clasificador neural, son modelos computacionalmente escalables, se pueden emplear técnicas de integración de servicios web para realizar la poscorrección en sistemas ASR comerciales existentes.

Publicado originalmente en el blog de SoldAI.

--

--