¿Cómo funciona el reconocimiento automático del habla?

Diego Campos Sobrino
SoldAI
Published in
6 min readMar 21, 2018

Introducción

Desde tiempo atrás ha sido de gran interés para el ser humano la posibilidad de entablar comunicación verbal con las máquinas. La ciencia ficción nos ha dado muchos ejemplos y la realidad poco a poco nos acerca a ese futuro. Para que esto sea posible es necesario que las máquinas escuchen y entiendan nuestro lenguaje y la primera parte de ese proceso es el reconocimiento automático del habla.

Los sistemas de reconocimiento automático del habla (automatic speech recognition o speech-to-text) son aquellos que traducen expresiones y enunciados de su forma hablada a texto. Este reconocimiento no conlleva la interpretación y entendimiento del significado del texto, ya que esta tarea es realizada posteriormente, en caso de que la aplicación lo requiera, mediante técnicas de Procesamiento de Lenguaje Natural.

La contraparte del reconocimiento automático del habla, la síntesis del habla (speech synthesis o text-to-speech), se refiere al proceso en el cual una computadora convierte el texto en sonidos sintéticos que emulan el habla humana.

Figura 1. Sistema de comunicación verbal humano-máquina

Son varias las causas que hacen del reconocimiento automático del habla una tarea compleja, por ejemplo la variabilidad en el estilo, ya sea conversacional o de lectura; las condiciones acústicas del canal de comunicación y el ruido ambiental; las características del parlante y el vocabulario específico.

El habla es un proceso dinámico continuo y no una secuencia de sonidos elementales, por lo que a diferencia del texto escrito no tiene una clara distinción entre sus partes (palabras o frases). Además, los humanos por lo general no reconocen el lenguaje sino que lo interpretan directamente tomando en cuenta el conocimiento contextual en el que se encuentran.

Proceso de Reconocimiento

La unidad fundamental del sonido hablado es el fonema y a su realización física se le conoce como fono. A un fonema le pueden corresponder varios fonos equivalentes denominados alófonos, ya que su articulación puede variar dependiendo de los fonemas circundantes.

Por ejemplo el fonema /d/ en español cuenta con por lo menos dos alófonos:

  • La pronunciación oclusiva (que impide la salida del aire) [d] presente en la palabra toldo.
  • La pronunciación fricativa (que permite la salida del aire por los costados) [đ] encontrada en la palabra todo.

Las palabras están conformadas por uno o más fonemas en secuencia, que al ser emitidos por un humano, pueden ser grabados como una señal acústica continua; siendo el objetivo de un sistema de reconocimiento del habla el inferir las palabras originales pronunciadas por el humano a partir de dicha señal.

Para lograr lo anterior, comúnmente se utiliza un enfoque probabilístico en el que la señal hablada corresponde a una secuencia de palabras con cierta probabilidad. Al evaluar diferentes secuencias de palabras de acuerdo a las propiedades fonéticas de la señal y al conocimiento lingüístico sobre la contigüidad de las palabras, así como la gramática para la correcta formación de las frases, se da una puntuación a cada frase candidata, eligiéndose como resultado aquella que tenga la mejor puntuación.

El esquema tradicional de un sistema típico de reconocimiento del habla consiste en los siguientes pasos:

  • Pre-procesamiento (incluye segmentación de la señal).
  • Extracción de rasgos característicos (features).
  • Decodificación, empleando diccionarios con modelos acústicos y de lenguaje.
  • Pos-procesamiento del resultado.
Figura 2. Esquema de un sistema de reconocimiento del habla típico

Pre-procesamiento.

La señal sonora es grabada y discretizada con cierta frecuencia (usualmente 16 kHz aunque en líneas telefónicas la frecuencia normalmente está limitada a 8 kHz) y se le aplican ciertos filtros para reducir el ruido de fondo y magnificar las diferencias entre diferentes tipos de vocalización. También se trata de segmentar la señal identificando las partes de silencio entre frases.

Extracción de rasgos característicos.

Para extraer rasgos se divide la señal en ventanas de tiempo (frames) usualmente de 25 ms cada una con una superposición de 10 ms entre ellas. A la señal acústica dentro de cada ventana se le aplican ciertas transformaciones matemáticas, como Fourier y coseno discreto, además de otros filtros y procesos de normalización para obtener un vector de coeficientes representativo de la señal.

Figura 3. División de la señal acústica en ventanas de tiempo superpuestas

Decodificación.

En esta etapa se calcula cual es la secuencia de palabras más probable de corresponder a la señal representada por los vectores de rasgos característicos. Para ello se consideran tres diferentes fuentes de información:

  • Un modelo acústico, típicamente un Modelo Oculto de Markov asociado a cada fonema o palabra.
  • Un diccionario, consistente en una lista de palabras y los fonemas que las conforman.
  • Un modelo de lenguaje, con probabilidades de palabras y secuencias de ellas.

Tomando los vectores de rasgos característicos como las observaciones O, se busca la secuencia de palabras W que maximice la probabilidad a posteriori P(W|O), lo cual matemáticamente se representa de la siguiente forma:

Usando la regla de Bayes para resolver la ecuación obtenemos:

Si ignoramos el denominador común para todas las observaciones obtenemos la ecuación fundamental de reconocimiento del habla:

La ecuación anterior tiene como componentes el modelo acústico P(O|W) que describe la distribución de las observaciones dada una secuencia de palabras y el modelo del lenguaje P(W) basado únicamente en la secuencia de palabras. La secuencia de palabras que resulte con mayor puntuación es aquella que se postula como la transcripción del habla estimada.

Pos-procesamiento.

El resultado de la decodificación no tiene que limitarse a seleccionar la frase con mejor puntuación como el resultado definitivo, sino que puede producir una lista con las mejores frases candidatas. Durante el pos-procesamiento pueden realizarse ajustes empleando fuentes adicionales de información específica a cierto contexto o utilizando algoritmos más precisos pero costosos computacionalmente, que modifiquen la hipótesis final.

Evaluación de los resultados

Una vez obtenido un resultado ¿cómo podemos evaluar la eficacia de un sistema de reconocimiento?

La métrica más utilizada para medir el desempeño de un sistema de reconocimiento de voz se conoce como WER, que son las siglas en inglés de word error rate, lo cual podría traducirse como “porcentaje de palabras erróneas”. Esta medida calcula el número mínimo de inserciones, borrados y sustituciones de palabras necesarias para convertir la frase postulada por el sistema de reconocimiento en la frase real transcrita.

Una medida de menor popularidad se denomina SER (sentence error rate), que juzga sentencias completas calculando la proporción de frases que contienen error contra el total de sentencias evaluadas. Otro factor a considerar cuando se evalúa sistemas de reconocimiento del habla es la velocidad de procesamiento o latencia, la cual cobra mayor relevancia cuando se trabaja con aplicaciones en tiempo real.

Aplicaciones y expectativas

Algunos ejemplos de aplicaciones donde resulta útil el reconocimiento automático del habla son las siguientes:

  • Sistemas de dictado.
  • Interfaz de asistentes personales.
  • Subtitulado automático.
  • Transcripción de mensajes de audio.
  • Búsqueda por voz.
  • Traducción automática.

En la actualidad está cobrando auge el uso de redes neuronales profundas para este tipo de aplicaciones, aunque hasta el momento los mejores resultados se han obtenido con sistemas híbridos que combinan arquitecturas neuronales con modelos markovianos. Algunos de los problemas en los que se requiere mejorar son los siguientes:

  • Reconocimiento de ruido de fondo.
  • Acentos regionales.
  • Errores semánticos.
  • Separación de múltiples fuentes.
  • Variaciones de hardware.
  • Contexto.
  • Latencia.

Si consideramos además que la investigación que va a la vanguardia de estos sistemas se enfoca en el idioma inglés, entonces todavía es mayor el salto requerido para adaptar estas mejoras al español y tener sistemas confiables y precisos en nuestro idioma.

El reconocimiento del habla es un área de oportunidad con un gran campo de aplicación por lo que se continúan persiguiendo mejoras en su desempeño. Para quienes se interesen en experimentar con su propio sistema de reconocimiento existen herramientas de software libre que permiten hacerlo, como por ejemplo CMU Sphinx y Kaldi. Otras herramientas son específicas de alguna parte del sistema como puede ser la generación de modelos de lenguaje a partir de corpus de texto. Además, también es posible descargar material de audio para entrenamiento en un lenguaje específico a partir de audio-libros, videos y películas.

Ésta y otras publicaciones similares en el Blog de SoldAI

--

--

Diego Campos Sobrino
SoldAI
Editor for

Machine Learning Human Learner at SoldAI Research