Reconocimiento del habla (I): análisis espectral

Rubén Rodríguez Abril

El reconocimiento automático de habla es aquel método de transcripción de las señales auditivas realizado algorítmicamente por un ordenador. Sus dos primeras fases, presentadas en este artículo, son la digitalización de la señal (que originariamente es analógica) y el cálculo de su espectro de frecuencias, que es la verdadera huella dactilar de cualquier señal auditiva.

Introducción

El reconocimiento automático de habla (Automated Speech Recognition, ARM) es el conjunto de técnicas utilizadas para transcribir automáticamente los diferentes fonemas y expresiones orales de los lenguajes humanos. Es una disciplina que tiene una amplia utilidad práctica en múltiples áreas como la traducción automática, las retransmisiones en directo, el software de accesibilidad para personas con discapacidad auditiva o, incluso, el espionaje. En los próximos artículos ofreceremos una descripción general de la materia, haciendo énfasis, como es usual, en los sistemas de Aprendizaje Profundo.

A diferencia de los sistemas de NLP que trabajan exclusivamente con el lenguaje escrito, el reconocimiento de los fonemas del lenguaje hablado presenta el problema añadido de tener que transformar las señales auditivas analógicas en información digital que pueda ser procesada por ordenadores. En este proceso de transformación juegan un papel fundamental los procesos de análisis espectral y muestreo, que pasamos a analizar en las secciones siguientes.

Análisis espectral

El espectro de frecuencias o suma de Fourier es el conjunto de intensidades de cada una de las frecuencias básicas que componen una señal ondulatoria, ya sea ésta electromagnética o auditiva.

Se basan en el descubrimiento de Joseph-Louis Fourier de que cualquier función periódica integrable puede ser entendida como una suma de funciones trigonométricas armónicas. Fourier, además de ser un excelente egiptólogo que acompañó a Napoleón a Egipto e impulsó el desciframiento de la escritura jeroglífica publicó en el año 1804 una obra trascendental, la Teoría Analítica del Calor, que contenía su célebre teorema, para el cual se puede dar la siguiente expresión matemática:

f(t) = a0t + Σ[ancos(nωt) + bnsen(nωt)]

donde t es tiempo y ω la frecuencia fundamental de la función; a0, an y bn son constantes denominadas coeficientes de Fourier. El sumatorio se realiza a través parámetro n, desde 1 hasta infinito.

Como el lector puede comprobar, la suma comprende una cantidad infinita de ondas senoidales y cosenoidales, cada una de las cuales oscila a una frecuencia que es múltiplo de la frecuencia fundamental, y que por este motivo se denominan ondas (y frecuencias) armónicas. La forma, estructura y valores de la función f(t) se determinan a partir de los coeficientes de Fourier, que por este motivo también reciben el espectro de frecuencias.

Figura 1: En esta animación, se muestra cómo la función cuadrada (en rojo) puede ser construida a partir de la suma de los seis primeros armónicos (en azul) de la función fundamental. Los coeficientes de Fourier se describen en la función S(f) Fuente: Wikipedia.

Cuando la función (la señal, en este caso) no es periódica, su periodo tiende a infinito y su frecuencia fundamental, a cero. El espectro de frecuencias deviene entonces una función continua denominada transformada de Fourier.

Cada señal auditiva, ya sea la de un instrumento musical, el canto de un pájaro, el sonido del viento, o un fonema humano, tiene su propio espectro de frecuencias, que constituye así una suerte de huella dactilar acústica que permite su reconocimiento por sistemas de inteligencia artificial, como veremos.

Los diagramas que permiten contemplar la evolución del espectro de frecuencias de una señal a lo largo del tiempo se denominan espectrogramas.

Figura 2. Este espectrograma corresponde a la expresión “Oh, no”, pronunciada en lengua inglesa por una niña. El eje de abscisas corresponde al tiempo, el de ordenadas, a las frecuencias. El color señala la intensidad en decibelios de la señal (cuanto más claro el color, más intensa). Fuente: Wikipedia.

Muestreo

Las señales auditivas, que son de naturaleza analógica, deben ser transformadas en digitales. Ello se realiza mediante el procedimiento de muestreo, que consiste en la medición periódica de la intensidad de la señal. Lo que era una función continua se transforma así en una serie de números en coma flotante.

Figura 3. Cada vez que transcurre un periodo de tiempo T, el aparato realiza una medición de la intensidad de la señal. La frecuencia del muestreo, medida en ciclos por segundo o hertzios, es la función inversa de T. Fuente: Wikipedia.

Para que el muestreo sea eficaz, el límite superior del espectro de frecuencias debe ser inferior a la frecuencia de Nyquist, que consiste en la mitad del número de muestras por segundo tomadas por el aparato de medición. Los componentes espectrales que sobrepasen este límite deben ser descartados. De este modo, para poder leer con eficiencia frecuencias de 20.000 hertzios (que es el límite superior del oído humano) es necesario una frecuencia de muestreo de al menos 40.000 mediciones por segundo.

Ventanas de medición

El último paso es el desplazamiento de la ventana de medición a través toda la señal, extrayendo segmentos de la misma. Sobre dichos segmentos se aplica la transformada discreta de Fourier para obtener su espectro de frecuencias. El desplazamiento (stride) suele ser equivalente a 10-15 milisegundos, mientras que la amplitud de la ventana se extiende a 25-30.

Sucede que a menudo el corte abrupto de la señal en los extremos del segmento provoca un problema que se conoce como fuga espectral, y que dificulta el análisis de Fourier. Por este motivo, los segmentos son multiplicados por una función ventana, que hace que la señal tienda a cero en sus extremos, como se muestra en la imagen y en la siguiente ecuación:

f(n) = s(n)v(n)

donde f(n) es la función definitiva, s(n) la señal original y v(n) la función ventana.

Figura 3. Cuando la función ventana (en azul) es rectangular (es decir, consiste en la simple multiplicación por uno de la señal dentro del intervalo), buena parte de su espectro de frecuencias sale fuera del dominio de su transformada discreta de Fourier (en naranja). Esto es lo que se conoce como fuga espectral. Por el contrario, aplicando la función Hanning, los valores de dicha transformada tienden a cero en los extremos. Fuente: Wikipedia.

El algoritmo más utilizado para calcular la transformada discreta de Fourier es FFT (Fast Fourier Transform), cuya exposición va más allá del alcance de este artículo.

Sistemas de aprendizaje profundo

En cada desplazamiento de la ventana, los valores espectrales de la señal se ordenan en un vector al que podríamos denominar vector de Fourier, en honor al  renombrado polímata, egiptólogo y matemático francés. Conforme la ventana se va desplazando se van generando nuevos vectores, que se ordenan en una cadena. Y esta cadena puede servir como entrada a un sistema de aprendizaje profundo.

De este modo, en una RNN transductora (RNN-T), la red, que es recurrente, traduce la cadena de vectores de Fourier en su transcripción escrita, de un modo muy parecido al que sucede con los sistemas de traducción a máquina. En una primera fase, la red codificadora incorpora la información de la cadena de entrada al vector de contexto. En una segunda fase, este vector de contexto es transformado en una cadena de salida. Durante la impresión de cada token, el codificador recibe como entrada su propio estado interno y el token anteriormente impreso.

Dado que la cadena de entrada es mucho más grande que la de salida (en cada segundo se generan cien vectores de Fourier, pero en el mismo periodo tiempo los hablantes humanos sólo pronuncian 10-15 fonemas) se plantea el problema de reducir el tamaño de la cadena de entrada. Esto se hace por medio de un procedimiento denominado submuestreo (subsampling), que en el caso más sencillo consiste en la simple concatenación de vectores, si bien es usual que se realice a través de una red neuronal orientada hacia adelante.

En el caso de los transformers, los diferentes vectores de Fourier se utilizan para formar una matriz de contexto, con la que se alimenta a la red. En los próximos artículos examinaremos modelos de transformers utilizados para el reconocimiento automático de habla.