Implementación de algoritmos de procesamiento de lenguaje

natural para la evaluación de la pronunciación efectiva

en el aprendizaje de lenguas indígenas

Implementation of natural language processing algorithms

for the evaluation of effective pronunciation in the learning of indigenous languages.

Fecha de recepción: 19 de febrero de 2019

Fecha de aceptación: 05 de marzo de 2019

Alberto Israel Castellanos Reyes

Instituto Tecnológico Superior de Coatzacoalcos, Veracruz, México.

reyesaicr@gmail.com

Emmanuel Estrada Rincón

Instituto Tecnológico Superior de Coatzacoalcos, Veracruz, México.

emmanuelestrada544@gmail.com

William López Domínguez

Instituto Tecnológico Superior de Coatzacoalcos, Veracruz, México.

williambozz@gmail.com

Resumen

De acuerdo con un comunicado hecho por el Instituto Nacional de Lenguas Indígena (2013), en México existen 68 lenguas con 364 variantes pertenecientes a 11 familias, lo que nos hace uno de los países con mayor diversidad lingüística del continente. De las casi seis mil lenguas existentes alrededor del mundo, 2500 corren peligro de desaparecer, y entre las naciones con más lenguas amenazadas, México ocupa el quinto lugar, con 144 variantes de lenguas en algún grado de peligro, específicamente 21 en situación crítica, 33 en peligro, 38 en serio peligro y 52 vulnerables. La importancia de la existencia de la diversidad lingüística, radica en su riqueza cultural y filosófica. De esta manera, cada vez que desaparece una lengua indígena, muere una parte de la humanidad junto con la posibilidad de concebir el mundo desde otra perspectiva, sin mencionar que la cultura de la nación se ve comprometida. (Pastrana, P, 2012, págs. 276, 291). Es así como se investigó cómo implementar los algoritmos de procesamiento de lenguaje natural para evaluar y corregir la pronunciación de palabras en lenguas indígenas, tomando como estudio experimental el Mixe bajo, utilizando los símbolos fonéticos correspondientes para asegurar un escalamiento inmediato y preciso.

Palabras clave: Fonética, Lenguas indígenas, PLN

Abstract

According to a statement made by the National Institute of Indigenous Languages (2013), in Mexico there are 68 languages with 364 variants belonging to 11 families, making us one of the countries with the greatest linguistic diversity in the continent. Of the almost six thousand languages existing around the world, 2500 are in danger of disappearing, and among the nations with the most threatened languages, Mexico ranks fifth, with 144 language variants in some degree of danger, specifically 21 in critical situations, 33 in danger, 38 in a high danger and 52 vulnerable. The importance of linguistic diversity lies in its cultural and philosophical richness. In this way, each time an indigenous language disappears, a part of humanity dies along with the possibility of conceiving the world from another perspective, without mentioning that the culture of the nation is compromised(Pastrana, P., 2012, págs. 276, 291). Thus, research was carried out on how to implement natural language processing algorithms to evaluate and correct the pronunciation of words in indigenous languages, taking as an experimental study the Low Mixe, using the corresponding phonetic symbols to ensure immediate and precise scaling.

Keywords: Phonetics, Indigenous Languages, NLP

Introducción

La identidad de un País debe fortalecerse a través del tiempo, promoviendo el respeto y reconocimiento de la existencia e importancia de la multiculturalidad, buscando la preservación de su patrimonio, que se encuentra en sus raíces, historia, tradiciones, folklore, narrativa y lengua materna. Así como la humanidad se construye y se preserva con la transmisión del conocimiento que nos permite “ser humanos” y su respeto e interacción con la naturaleza, los ciudadanos de una Nación deben construir y preservar su identidad.

Las regiones indígenas arraigan las tradiciones más antiguas de nuestra Nación, manteniendo su lengua nativa. En México existen 68 agrupaciones lingüísticas y 364 variantes. El Catálogo de las Lenguas Indígenas Nacionales “establece que las unidades idiomáticas a las que corresponde el reconocimiento gubernamental de lenguas indígenas nacionales son las 364 variantes lingüísticas” (Instituto Nacional de Lenguas Indígenas, 2008, pág. 12).

En el contexto actual de la educación intercultural bilingüe (EIB) en Latinoamérica, se le da gran relevancia a la enseñanza de las lenguas indígenas con la implementación del uso de las TIC, con el fin de promover su preservación. (Guerrero, D. & Dote R., 2016).

Con el interés de apoyar en el aprendizaje a través de la evaluación y corrección de la pronunciación en estudiantes de lenguas indígenas, la presente investigación implementa algoritmos de procesamiento de lenguaje natural para hacer más eficiente este proceso, convirtiéndose en una herramienta que integra inteligencia artificial, fonética y educación.

Planteamiento del problema

El inicio en el aprendizaje de una nueva lengua representa dos grandes retos: aprender a escribir y a hablar correctamente con el uso de ella. Ambas partes mantienen una serie de normas que deben seguirse para poder mantener una comunicación efectiva, y la violación de alguna de ellas puede derivar en problemas de comunicación, lo que determina la importancia de aprender a pronunciar correctamente. No hay nada más frustrante que saber que lo que se dice es gramaticalmente correcto pero que no se comprenda, es decir, aprender a pronunciar correctamente es clave para comunicarse. (Course Finders, 2015)

Para pronunciar bien una palabra en un lenguaje en el que se está incursionando recientemente, es necesario contar con el apoyo de un experto que escuche atentamente la manera en que hablamos y nos pueda sugerir correcciones en caso de ser necesario. Sin embargo, el tener la oportunidad de contar con una figura como ésta por cada lengua que se quiera aprender y a nuestra disposición es complicado.

Para subsanar este problema, se desarrolló un asistente programado que utilice el procesamiento del lenguaje natural (NLP), es decir con la capacidad para comprender el habla humana a medida que se reproduce. Este campo de la ciencia de la computación conocido como inteligencia artificial y lingüística de ordenadores se ocupa de las interacciones entre las computadoras y los lenguajes humanos. Esto incluye la automatización de cualquiera o todas las formas lingüísticas, actividades o métodos de comunicación, como conversación, correspondencia, lectura, composición escrita, publicación, traducción, lectura de labios, etc. (Novoseltseva, 2018)

En el ámbito educativo se comienza a valorar el potencial de esta tecnología que utiliza el procesamiento de leguaje natural, conocida como bots, en su manera de impartir la enseñanza e interactuar con los estudiantes. Estos bots permiten orientar al estudiante, enviarle información, hacer consultas o gestiones relacionadas con sus asignaturas, buscando que representen en un futuro inmediato, mejorar la calidad y los recursos aportados a la formación no presencial. Por tanto, la formación online dará un salto cualitativo y será más accesible y útil para estudiantes y profesionales de la educación. El aprendizaje automático de las máquinas, gracias a la AI, consigue grandes beneficios sociales, si sus aplicaciones se orientan a la formación y a la interactuación de los estudiantes; sin importar sus recursos ni su ubicación. (Universia, 2018)

El desarrollo de este bot resulta en un asistente de pronunciación que dependerá del enriquecimiento de los símbolos fonéticos del modelo de voz que se le agregan en su programación, de tal manera que tiene la capacidad extender su capacidad de evaluación y corrección a cualquier lengua, sin necesidad de nuevas líneas de código al aprovechar las aportaciones de la lingüística y su implementación en la inteligencia artificial.

Diseño Metodológico

La presente investigación es de corte cuantitativo con enfoque exploratorio, al contar con ideas no definidas ni relacionadas específicamente con el problema de estudio (Hernández, Fernández, & P., 2007), para concluir que la aplicación de algoritmos de procesamiento lenguaje natural, específicamente DialogFlow de Google, permite evaluar la pronunciación correcta de palabras en cualquier lengua indígena que cuenten con los símbolos fonéticos del modelo de voz requerido, e incluso sugerir correcciones en la misma. Se aplicó una guía de observación para verificar las respuestas del bot, ante la manera que un individuo pronunciaba las palabras en Mixe bajo con errores intencionales y de manera apropiada, enriqueciendo paulatinamente su diccionario fonético a través de JSON.

Al estudiarse la manera en que opera el agente virtual inteligente de Google Cloud Platform (Plataforma de la nube de Google) llamado DialogFlow, se pudo apreciar que utiliza un algoritmo de uso libre, hasta el momento ampliamente utilizado para el entendimiento de instrucciones en lenguaje natural y disponible con 14 idiomas para ser implementado en la web, en una app y en cualquier dispositivo inteligente. De esta manera, cuando recibe una instrucción por voz, es capaz de buscar los símbolos fonéticos de cada morfema (por separado) que mantiene en su registro de conocimiento y traducirlo para su ejecución, como lo hace Google Now. Como a cualquier otro bot, DialogFlow puede extender su aprendizaje y almacenarlo en la nube para futuras implementaciones, lo que significa que cada vez que se alimenta de diferentes símbolos fonéticos, significa que entenderá un mayor número de palabras en cada una de las lenguas en las que se le proporcione.

La forma de trabajo y entendimiento por parte del bot utilizado en esta investigación es la siguiente: DialogFlow debe recibir un modelo de voz (correspondiente a escritura o audios con la pronunciación de las palabras), el significado de la misma en uno de los idiomas reconocido hasta el momento y su correspondiente fonema o símbolos fonéticos. Cabe señalar que se parte del entendimiento que posee previamente de una base de datos que le proporciona el conocimiento artificial de cada morfema por separado, por lo que únicamente requiere los símbolos fonéticos de la palabra que está “aprendiendo” a escuchar.

Lo anterior permite construir la base de conocimiento del bot, y se recomienda para un mejor uso, de una clasificación de las palabras con las que se está entrenando, no siendo obligatorio, pero sí recomendable.

Una vez terminada esta fase, toca el turno a enviarle los sonidos que deseamos que nos evalúe, es decir, a través del micrófono hablarle al bot para que nos verifique si la pronunciación de una palabra (en este caso en Mixe bajo) fue la apropiada. Para ello es necesario programación del lado del cliente que sea capaz de capturar la voz a evaluarse para enviarla a su vez al algoritmo de DialogFlow para que realice su función, para ello se decidió utilizar una interfaz web capaz de capturar la palabra hablada implementando Speech recogition, una API que reconoce información del micrófono que, en caso de reconocerla como palabra válida, la devuelve en formato de texto. Cabe señalar que el reconocimiento de palabras de Speech recognition no se usó en la presente investigación, debido a que no es posible enriquecer como tal una tabla de símbolos fonéticos, que es lo que se busca aprovechar, la implementación de la lingüística como opción de fácil escalamiento en el aprendizaje de un bot para que pueda entender cualquier lengua indígena. Como es fácil entender, el Speech recognition no podría procesar una palabra en lengua indígena, por lo que sólo se utilizó para enviar el modelo de voz emitido por el hablante y su traducción en texto al DialogFlow para su interpretación y reconocimiento, al mismo tiempo que se aprovecha su característica de filtro de ruido ambiental, lógica programada en su código. Al ser una API, representa una interfaz estándar, garantizando que cualquier dispositivo micrófono sea reconocido y utilizado, al mismo tiempo que Speech recognition proporciona su servicio de manera transparente para el consumidor.

De esta manera se implementó la interfaz de la Web Speech API de javascript (Speech recognition), que gracias a sus características, es capaz de identificar el audio entrante, abortar (SpeechRecognition.abort()) lo correspondiente a ruido ambiental y capturar lo que verdaderamente representa el audio a evaluar. Al momento de la investigación, se cuentan con 50 palabras en Mixe bajo, con su respectivo formato de texto, de las cuales se tienen 10 modelos de voz en audio. La investigación busca confirmar el escalamiento inmediato del bot en el entendimiento de las palabras al alimentar su base de conocimiento, incluso sin la necesidad de modelos de voz en audio, pero siempre con los símbolos fonéticos. Es así como en una primera fase de 3, se le proporcionó al bot, únicamente las palabras con los 10 modelos voz en audio, junto con su significado en español, y sus símbolos fonéticos. En el lado cliente, se dispuso de una interfaz en HTML que permitiera intercambiar información con el DialogFlow, y se implementó el Speech recognition para capturar la palabra a evaluar.

Cada fase se subdividió en 3 momentos, en el primero de ellos, se realizó una prueba en un lugar sin ruido ambiental, ubicando al hablante en una posición ideal para el micrófono interno de la computadora y vocalizando en intervalos pausados, palabras escogidas por la interfaz al azar, de las 10 proporcionadas al bot, 5 de ellas mal pronunciadas y 5 pronunciadas correctamente. El Speech recognition captura la palabra (filtrando el ruido ambiental), la transcribe a texto y la envía al bot que implementa Dialog Flow a través de la API key generada por este último y gracias a la cual es identificado en la nube. El segundo momento se realizó en un lugar con ruido ambiental moderado y con el hablante en una posición ideal para el micrófono, quien pronunció las mismas 5 palabras correctas y 5 mal pronunciadas. En el tercer momento de la primera fase se hizo una prueba con ruido ambiental moderado y el hablante ubicado en una posición no frontal para corroborar la capacidad de la API para filtrar el ruido y capturar los sonidos adecuados.

Cuando el bot recibe la muestra de voz y la palabra en formato de texto proveniente de la API tiene dos opciones para la evaluación del fonema, ejecutadas en el siguiente orden: compara la muestra con el modelo de voz que posee y en caso que no tenga ese modelo, extrae los símbolos fonéticos de la muestra enviada por la API y los compara con los que posee en su base de conocimiento, de tal manera que no es una limitante el no contar con los modelos de voz siempre y cuando se tengan los símbolos fonéticos.

Esto último se demuestra en la segunda fase, en la cual se alimentó el bot que ejecuta en la nube el DialogFlow, con 20 palabras en su base de conocimiento, sin modelo de voz, pero con su significado y sus símbolos fonéticos correspondientes, todos ellos en la lengua Mixe bajo. Al igual que en la primera fase, existieron 3 momentos de evaluación para determinar el comportamiento del filtro de ruido, pero ahora pronunciando 5 palabras de manera correcta de las que no se cuenta con modelos de voz, y 5 palabras pronunciadas erróneamente de manera intencional en un ambiente ideal (sin ruido ambiental y con el hablante en posición adecuada) y con ruido ambiental moderado ubicando al hablante primero en posición ideal y después en una no frontal.

La tercera fase busca determinar que el aprendizaje del bot es inmediato una vez que se alimenta su base de conocimientos correspondiente a sus símbolos fonéticos, por lo que una vez más se alimentó con las restantes 20 palabras con las que se cuentan con sus símbolos fonéticos, procediendo a evaluar de manera inmediata para corroborar la suposición del aprendizaje inmediato. Se realizó la evaluación utilizando nuevamente los tres momentos de las fases anteriores para confirmar la ejecución óptima de la API y el algoritmo de procesamiento de lenguaje natural.

Cabe señalar que cuando se alimenta el bot con los modelos de voz, los significados y los símbolos fonéticos, se genera un JSON (JavaScript Object Notation - Notación de Objetos de JavaScript), que de acuerdo con Douglas Crockford (2010), es un formato estándar (y por lo tanto independiente del lenguaje de programación ) y ligero de intercambio de datos que para las máquinas es fácil de interpretar y generar lo que lo hace ideal para el presente proyecto.

Resultados

A continuación, se presentan los resultados obtenidos de cada fase y los 3 momentos en los que se subdividió cada una de ellas. 1) Primera fase: 10 palabras en Mixe bajo, con modelos de voz, significado y símbolos fonéticos. a) Primer momento: sin ruido ambiental, posición del hablante ideal, 5 palabras correctamente pronunciadas y 5 con errores intencionales. Las palabras pronunciadas correctamente fueron recibidas sin problema por la API Speech Recognition y enviadas al bot que ejecuta Dialog Flow a través de la key correspondiente, quien devolvió a la API la transcripción en texto de la palabra escuchada y validada como correcta, una vez hecha la comparación con los modelos de voz almacenados en su base de conocimiento. Esta transcripción en texto es de suma importancia, porque es la retroalimentación que el hablante recibe, ya que indica lo que el bot entendió de su pronunciación. Cabe señalar que esta retroalimentación al hacerse con base a los modelos de voz, con base en la lengua Mixe bajo. Las palabras pronunciadas con errores intencionales fueron evaluadas como incorrectas por el bot, quien devolvió a la API lo que entendió de la pronunciación recibida y que no tuvo relación adecuada con sus modelos de voz y su significado almacenados en su base de conocimiento, mostrando una retroalimentación diferente a la esperada para que el hablante corrija su pronunciación.

b) Segundo momento: con ruido ambiental moderado, posición del hablante ideal, 5 palabras correctamente pronunciadas y 5 con errores intencionales. Los resultados fueron los mismos de los obtenidos en el momento uno, sin complicaciones, recibiendo retroalimentación efectiva por parte del Dialog Flow y mostrada en la interfaz a través del Speech Recognition, lo que demuestra que la implementación de ambas herramientas funciona de manera correcta aún con la presencia de ruido ambiental, confirmando la capacidad de la API para filtrar eficientemente sonidos fuera del orden. c) Tercer momento: con ruido ambiental moderado y posición del hablante no frontal, 5 palabras correctamente pronunciadas y 5 con errores intencionales. Los resultados fueron los mismos de los obtenidos en el momento uno y momento dos, con una adecuada retroalimentación por parte del bot, lo que demuestra que la implementación de ambas herramientas funciona de manera correcta aún con la presencia de ruido ambiental y siempre y cuando reciba un estímulo de sonido claro aún sin estar junto al micrófono o en una posición específica.

2) Segunda fase: Aparte de las 10 palabras en Mixe bajo con modelo de voz, 20 palabras sin modelo de voz, pero con su significado y sus símbolos fonéticos correspondientes. a) Primer momento: sin ruido ambiental, posición del hablante ideal, 5 palabras correctamente pronunciadas y 5 con errores intencionales (de las 20 sin modelos de voz). Los resultados fueron los mismos de los obtenidos en la primera fase, sin complicaciones, recibiendo retroalimentación efectiva por parte del Dialog Flow y mostrada en la interfaz a través del Speech Recognition, lo que demuestra que se puede prescindir de los modelos de voz y el funcionamiento sigue siendo el esperado tan solo con el uso de los símbolos fonéticos. Es importante señalar que hay palabras que se escriben distinto, pero comparten los mismos símbolos fonéticos porque la manera en que se deben pronunciar es idéntica o muy similar, por lo que el bot puede devolver una transcripción de la palabra recibida no exactamente como se debe escribir en Mixe bajo, pero sí como se debe pronunciar. b) Segundo momento: con ruido ambiental moderado, posición del hablante ideal, 5 palabras correctamente pronunciadas y 5 con errores intencionales (de las 20 sin modelos de voz). Los resultados fueron los mismos de los obtenidos en la primera fase, con retroalimentación correcta, lo que demuestra que la implementación de ambas herramientas funciona de manera correcta con la presencia de ruido ambiental y que mientras se cuente con los símbolos fonéticos, no es necesario contar con modelos de voz. c) Tercer momento: con ruido ambiental moderado y posición del hablante no frontal, 5 palabras correctamente pronunciadas y 5 con errores intencionales (de las 20 sin modelos de voz). Los resultados nuevamente fueron los mismos que el momento uno y momento dos, lo que demuestra que la implementación de ambas herramientas funciona de manera correcta aún con la presencia de ruido ambiental, siempre y cuando reciba un estímulo de sonido claro aún sin estar junto al micrófono o en una posición específica y sin necesidad de contar con modelos de voz. 3) Tercer fase: Aparte de las 10 palabras en Mixe bajo con modelo de voz, 20 palabras sin modelo de voz, pero con su significado y sus símbolos fonéticos correspondientes y 20 nuevas para corroborar el escalamiento inmediato de su base de conocimiento en cuanto a fonética se refiere. Los tres momentos fueron evaluados con 6 palabras, 2 pertenecientes al primer bloque (con modelos de voz), 2 pertenecientes al segundo bloque (con símbolos fonéticos sin modelos de voz), y 2 pertenecientes al tercer bloque (las recientemente ingresadas), se pronunció una de cada bloque de manera correcta y una de cada bloque de manera intencionalmente incorrecta. Los resultados de los 3 momentos fueron efectivos, con retroalimentación adecuada, con efectividad de filtro de ruido eficiente. De esta manera con esta tercera fase se comprueba que en el momento en que el bot recibe nueva base de conocimiento, inmediatamente puede evaluar y retroalimentar nuevas palabras, con un filtro de ruido ambiental eficiente.

Conclusiones

al mismo tiempo que contribuimos a que nuestro México sea multilingüe y rescatemos del peligro a aquellas lenguas que por falta de conocimiento están en peligro de desaparecer. Los resultados obtenidos son satisfactorios, y demuestran que el Speech Recognition es una API capaz de realizar un trabajo de filtro de ruido efectivo, y en colaboración con el agente virtual inteligente de Google DialogFlow se puede contar con un instructor sistematizado capaz de apoyarnos y darnos retroalimentación en cuanto a la pronunciación de lenguas indígenas se refiere, con la posibilidad de escalar de manera inmediata su base de conocimiento con tan solo proporcionarle los símbolos fonéticos y sin la necesidad de tener modelos de voz almacenados, que aunque sí proveen de un funcionamiento aún más efectivo, se puede prescindir de ellos.

Referencias

Course Finders. (19 de Agosto de 2015). Pronunciar un idioma correctamente. Recuperado el 03 de Mayo de 2018, de http://coursefinders.com/es/blog/1259/pronunciar-un-idioma-correctamente

Crockford, D. (2010). Introducción a JSON. Obtenido de How Javascript works: https://www.json.org/json-es.html

Guerrero D. & Dote R. (2016). Las TIC en la enseñanza de la lengua indígena: aprendizaje de una oportunidad. az Revista de educación y cultura.

Hernández, R., Fernández, C., & P., B. (2007). Metodología de la Investigación. México: McGraw-Hill.

Instituto Nacional de Lenguas Indígenas. (2008). CATALOGO de las Lenguas Indígenas Nacionales: Variantes Lingüísticas de México con sus autodenominaciones. México: INALI.

Novoseltseva, E. (11 de Enero de 2018). STARTUPS Y PROYECTOS DE PROCESAMIENTO DEL LENGUAJE NATURAL PARA VER. Recuperado el 29 de Noviembre de 2018, de ApiumHub: https://apiumhub.com/es/tech-blog-barcelona/startups-proyectos-procesamiento-del-lenguaje-natural/

Pastrana P. (2012). Desaparición de las lenguas indígenas. En G. G. al, De la oralidad a la palabra escrita. Estudios sobre el rescate de las voces originarias en el sur de México (págs. 275-291). Chilpancingo, México: El Colegio de Guerrero A.C.

Universia. (02 de Marzo de 2018). 6 aplicaciones de los chatbots en la Educación. Recuperado el 29 de Noviembre de 2018, de Universia.net: http://noticias.universia.net.mx/educacion/noticia/2018/03/02/1158141/6-aplicaciones-chatbots-educacion.html