Las interfaces de voz están cada vez más integradas en nuestro día a día. Dispositivos como Alexa o Google Home, nos permiten a través de una interfaz de voz, realizar diferentes acciones no solo sobre aplicaciones subyacentes como agenda, o listas, sino que cada vez van más allá, posibilitando que nuestro entorno sea cada vez más tecnológico, son verdaderos ecosistemas domóticos.

Pero nuestra relación con estas interfaces de voz no es nueva, de hecho, nos llevan acompañando desde hace tiempo. Todos hemos tenido la ‘típica’ charla con una máquina cuando queremos cambiar la tarifa de nuestro móvil, o cambiar el tipo de póliza de nuestro seguro. O aplicaciones como Siri o Cortana, trabajan en que nuestra relación sea más cercana, y más cálida a las máquinas que cada día más, nos rodean.

Aunque ahora parezca que vivimos una revolución de voz, estas tecnologías llevan un largo recorrido. Dos de las principales tecnologías que se esconden detrás de estos sistemas de entendimiento humano-máquina, son el reconocimiento del habla derivada de la computación lingüística, y el reconocimiento del lenguaje natural.

Reconocimiento del habla (ASR)

El reconocimiento del habla, basa su principal esfuerzo en deducir cuál es la palabra más parecida a la señal de audio de entrada. El proceso de transformación de voz en texto se divide en tres fases, decodificador acústico-fonético, entrenamiento y reconocimiento.

Decodificador acústico-fonético

Partiendo desde la capa más baja, nuestra voz es una onda de presión acústica generada por el aparato fonador humano. Esa onda emitida por nuestra voz, dibuja en el espectro frecuencial una serie de zonas con mayor intensidad. Son las frecuencias que pertenecen a esas zonas de mayor intensidad, los llamados formantes, lo que nos permite distinguir entre una vocal u otra, y los matices de pronunciación que producen los diferentes tipos de consonantes. Estos formantes varían en función de diferentes aspectos, como por ejemplo, la edad. Un ejemplo claro de esto, es que los niños tienen la voz más aguda y los mayores más grave. A pesar de que esto varíe, es la diferencia y relación entre las 3 frecuencias predominantes lo que denota qué vocal se está emitiendo.

Esto nos lleva a lograr una clasificación fonética de los sonidos, dando lugar a un decodificador acústico-fonético.

Entrenamiento

En esta fase se entrena al sistema a partir de muestras de voz y texto, dando lugar a los modelos acústicos y los modelos de lenguaje.

Reconocimiento

Esta es la última fase y donde finalmente se obtiene el texto. En ella se produce la unión entre las dos fases anteriores. A través de la señal acústica de entrada, se compara con los modelos entrenados para obtener como resultado el texto buscado.

Estos sistemas son entrenados, lo que les permite aprender para conseguir el mejor resultado y dar una respuesta correcta para diferentes voces, o distintos acentos.

Tiene que estar preparado para traducir voces bajo entornos ruidosos, así como para usuarios que posean un léxico más amplio, o con pronunciación distinta de una misma palabra de diferentes usuarios.

El resultado final de un sistema de reconocimiento de voz, es obtener un texto resultante a través de una señal de voz en cualquier tipo de situación y usuario.

A pesar de los grandes avances de esta área, posee puntos negativos derivados de una verdadera falta de entendimiento de la información que quiere transmitir un usuario a una máquina. Y es que es necesario no sólo transformar lo que nos está diciendo, sino el contexto y el fin de una instrucción.

Procesamiento lenguaje natural (NLP)

Los sistemas de NLP, o procesamiento del lenguaje natural, utilizan complejos algoritmos para entender al usuario, trabajando las áreas de morfología, sintaxis, semántica, pragmática y mecanismos de tratamiento como métodos de comparación, búsqueda, inferencia aproximada, deducción, etc.

Pero tenemos que partir de qué consideramos lenguaje natural (LN). Y es que el LN va más allá de las reglas gramaticales establecidas por organismos, es una manera de expresión que va evolucionando con la sociedad, incorporando palabras y expresiones.

Arquitectura

La arquitectura de un sistema de procesado NLP se divide en 4 niveles: morfológico, sintáctico, semántico y pragmático.

El primer paso incluye dos niveles, realizando un análisis morfológico y sintáctico. Dando como resultado la comprobación de si la oración proporcionada por el usuario, posee palabras correctas, descartando palabras inventadas o no existentes en el idioma y asegurándose que la estructura sintáctica de las oraciones es la correcta.

Este nivel nos permite descartar palabras no existentes o inventadas a nivel morfológico, así como descartar estructuras sintácticas erróneas.

A continuación, se realiza el análisis semántico, para obtener el significado puro de cada oración, pudiendo ser testeada a través de expresiones booleanas (verdadero / falso).

Finalmente, se realiza el nivel de análisis pragmático. Este nivel alinea el análisis de la oración introducida con el conjunto de oraciones, así como la relación entre ellas, y la situación de las mismas.

Comprensión del lenguaje natural (NLU)

A pesar de la gran evolución de este tipo de procesado, todavía existen diferentes retos en esta área, que no van de la mano de mejoras técnicas, las cuales a pesar de tener que evolucionar, todavía no resultan ineficientes para estos procesados. El reto que tiene hoy en día el procesado del lenguaje natural, es un fondo más psicológico, y es conseguir entender qué quiere realmente el usuario, entender la necesidad que tiene, más allá incluso de cómo lo exprese. De ahí surge la subárea del NLP, denominada NLU, comprensión del lenguaje natural, que trabaja, estas necesidades de entendimiento del lenguaje.

Es necesario que para comprender el lenguaje se analicen no sólo las palabras en sí, sino entender el contexto en el cual son expresadas las oraciones, dependientes no sólo del lenguaje sino, derivado de la procedencia del usuario, o expresiones de índole cultural. Esto puede dar lugar a ambigüedades en el lenguaje, lo que hace necesaria una relación entre entendimiento del significado y entidad que tiene cada una de las palabras empleadas en una oración.

Y es que, el lenguaje es vivo, y tiene muchas variantes contextuales, si pretendemos que una máquina nos entienda, tenemos que ir más allá de la reglas establecidas. Un ejemplo claro aplicable a esto, es el lenguaje que utiliza la gente joven frente al empleado por un sector de mayor edad. Palabras como ‘influencer’ no son entendidas por amplios sectores de la sociedad, pero es necesario que el sistema sea lo suficientemente inteligente para ser capaz de actuar frente a cualquier palabra de entrada, pues esto nos garantizará una mayor cercanía entre máquina-humano.
Así como la manera de expresarse, como por ejemplo el uso de la ‘ironía’ para dar a entender algo que realmente no es lo que dice la frase. O incluso ser capaz de captar la emoción que va detrás de la expresión de una frase.
Son los algoritmos que trabaja el NLU, los que se encargan de dar respuesta a este tipo de retos.

Procesamiento específico por usuario

Adicionalmente los diferentes servicios de desarrollo de aplicaciones para dichas interfaces de voz, nos proveen de herramientas de aprendizaje, con las cuales, podemos obtener un mejor resultado en la interacción con nuestras aplicaciones. Son capaces de aprender, cómo se expresa un usuario en concreto, para adaptar sus modelos de aprendizaje, y ser más exactos en la detección de la acción que quiere realizar el usuario.

Un caso real. Amazon Alexa

Una de las interfaces de voz más extendidas a nivel mundial a día de hoy, es Amazon Alexa. Pero, ¿cuál es la arquitectura de respuesta que tiene Alexa?

Alexa works from Paul Cutsinger’s video
Alexa works from Paul Cutsinger’s video

Inicialmente Alexa recoge la sentencia de acción que le ordenamos con nuestra voz. Esta señal de voz se traduce a texto a través del ASR.

A continuación, el texto traducido se envía al NLU. Donde se determina qué aplicación (skill) de Alexa responderá a dicha oración, y cuáles son los parámetros de entrada que incluye. NLU envía un mensaje de tipo JSON, que contiene los datos de entrada, a la función Lambda que procesa el mensaje.

Tras el procesado de la petición de entrada, la función lambda devolverá una respuesta a la oración de entrada a Alexa, la cual a través de un sistema de traducción de texto a voz, convertirá la respuesta de la aplicación a un mensaje sonoro de respuesta. Esto completará así la comunicación con el dispositivo.

Conclusión

Está claro que las interfaces de voz han llegado para quedarse, y el mercado cada vez desarrolla más productos alrededor de ellas, con el fin de conseguir una mejor comunicación y entendimiento con el entorno tecnológico que nos rodea.
Estamos inmersos en una auténtica revolución es ese sentido, y a pesar de todos los debates éticos que suponen este tipo de nuevas tecnologías cuando llegan, queda patente que suponen un gran avance en muchos aspectos, y mucho más relevantes de lo que pensamos, el futuro nos dirá hacia dónde se dirigen todas estas tecnologías y la madurez que llegan a tener.

Referencias

El reconocimiento automático del habla

Formación de Sonidos Vocales

Procesamiento de lenguaje natural

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

What are ASR, NLU, and TTS?

Procesamiento del lenguaje natural

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete

Estamos comprometidos.

Tecnología, personas e impacto positivo.