SPEECH TO TEXT CON TENSORFLOW I

Uno de los resultados del proyecto DIA4RA, que estamos actualmente desarrollando en datahack y cuyo objetivo es dotar a un robot humanoide 鈥淧epper鈥, de una serie de capacidades cognitivas que le permitan asistir a personas con Alzh茅imer, ha sido la creaci贸n de un modelo de speech to text, es decir, un software que convierte la voz humana a texto, gracias al uso de t茅cnicas de deep learning.

Dentro del proyecto DIA4RA, este modelo es el encargaddo de transcribir la voz humana a texto, de modo que otros modelos y sistemas implementados en el robot puedan interpretar lo que dicen los humanos que se dirigen a 茅l. As铆, este modelo es fundamental para la operativa de la m谩quina de estados, encargada de definir los diferentes estados que puede adoptar el robot y de la orquestaci贸n de todos los modelos y sistemas implicados en el funcionamiento del robot.

speech to text con tensorflow

A priori, uno puede pensar que para hacer esto se podr铆a recurrir a alguno de los servicios cognitivos disponibles en la red, y no tener que embarcarse en el desarrollo de un modelo de deep learning, con todas las implicaciones que ello conlleva. Sin embargo, en datahack se decidi贸 optar por la creaci贸n de un modelo Speech to Text propio, por la siguientes razones:

  • Adquirir m谩s experiencia y conocimiento en el campo de la Inteligencia Artificial (IA)
  • Crear un servicio cognitivo propio, que no solo sirva para este proyecto sino que tambi茅n sea la base para otros que puedan hacer uso de esta tecnolog铆as, por ejemplo, chatbots y control remoto de drones.
  • Ser independientes a la hora de hacer uso de este tipo de servicio cognitivo.
  • Dar m谩s valor y prestigio a la marca datahack, como una de empresas impulsoras del desarrollo e investigaci贸n de la Inteligencia Artificial para las personas.
  • Evitar que los datos recopilados por el robot vayan al Cloud, algo que puede ser cr铆tico en este tipo de proyectos por tema de privacidad de los individuos.

Trabajando con informaci贸n secuencial

El Speech to Text es un caso de uso donde se trabaja con informaci贸n secuencial, es decir, una serie o sucesi贸n de cosas que siguen un orden y/o guardan entre s铆 una determinada relaci贸n.

Tradicionalmente este tipo de informaci贸n se ha tratado con redes neuronales recurrentes (Recurrent Neural Networks o RNN), redes neuronales con memoria que se usan para trabajar con informaci贸n secuencial.

En este tipo redes la neuronas se disponen de forma secuencial, una a continuaci贸n de la otra. Cada una de ellas representa un momento temporal y tienen la capacidad de pasar la informaci贸n recopilada a la siguiente. As铆, a la hora de hacer las predicciones (O),聽 se tendr谩 en cuenta tanto el vector de entrada (X) como un vector de estado (h). As铆, teniendo en cuenta el siguiente gr谩fico, para predecir Ot se tendr谩 en cuenta Xt聽 y ht-1, vector de estado resultante de la etapa anterior. Adem谩s de predecir el valor de Ot , se generar铆a un nuevo vector de estado ht que ser铆a usado en la siguiente etapa (h+1). Esto se ir铆a repitiendo de forma sucesiva.

speech to text con tensorflow

Figura 1 – Disposici贸n de las neuronas y flujo de informaci贸n en una capa de RNN

Un problema de las Redes Neuronales Recurrentes y su soluci贸n

Uno de los problemas de las Redes Neuronales Recurrentes (RNN) es que sufren lo que se conoce como el short-term memory, es decir, funcionan muy bien cuando la informaci贸n 煤til est谩 pr贸xima al estado actual, pero su rendimiento va empeorando conforme esta se va alejando, es decir, no capturan bien las long-term dependencies, dependencias de larga distancia. Esto se debe a que con secuencias muy largas (m谩s de 100 elementos), sufren lo que se conoce como vanishing gradient y tienden a 鈥渙lvidar鈥 el principio de las mismas. As铆, teniendo en cuenta el siguiente ejemplo:

El gato, que ya hab铆a comido mucho pollo con verduras, estaba lleno.

Podr铆a ocurrir que al llegar al verbo 鈥渆staba鈥, la RNN puede haber olvidado el principio de la frase y no sea capaz de ver que esta relacionado con la palabra 鈥済ato鈥.

Para minimizar este problema se usan: las GRU (Gated Recurrent Unit) y las LSTM (Long-Short Term Memory), dos tipos especiales de neuronas que cuentan con una c茅lula de memoria, que les permite capturar mucho mejor las long-term dependencies. Y las聽 BRNN (Bidirectional Recurrent Neural Networks), que tienen en cuenta tanto la informaci贸n anterior como聽 posterior a la hora de hacer una predicci贸n en el momento actual.

Todo esto se puede combinar y crear BRNN con GRU o LSTM, con un aumento considerable de la capacidad de computaci贸n requerida durante el entrenamiento de la red neuronal.

Todo esto, aplicado al Speech to text…

En el caso del Speech To Text, donde la entrada es una secuencia y la salida tambi茅n, se pueden reducir los costes de computaci贸n, haciendo uso de la arquitectura seq2seq. Est谩 se caracteriza por tener una estructura encoder-decoder compuesta por dos Redes Neuronales Recurrentes, que usan LSTM o GRU (normalmente m谩s la primera) y trabajan de forma que la primera red (encoder) memoriza el audio, codific谩ndolo en un vector de contexto o sentence embedding, y la segunda red (decoder) y la segunda genera el texto correspondiente, a partir del vector de contexto que ha creado la primera.

speech to text con tensorflow

Figura 2 – Estructura encoder(verde) – decoder(morado)

Aunque esta estructura mejora los costes de computaci贸n, tiene el problema de que cuando la secuencia de audio entrante es muy larga, la red neuronal encoder tiende a olvidar la primera parte de la mismas, tras concluir su procesamiento. Para resolver esto, surgieron los mecanismos de atenci贸n.

De los mecanismos de atenci贸n y de m谩s cosas hablaremos en el pr贸ximo post.

Muchas gracias por vuestra atenci贸n, 隆valga la redundancia! 馃檪


Javier Moralo,聽Data & AI Creative de datahack


dia4ra cdtiEl proyecto empresarial de DATAHACK CONSULTING SL., denominado 鈥淒ESARROLLO DE INTELIGENCIA ARTIFICIAL EN ROBOTS APLICADOS AL TRATAMIENTO DEL ALZHEIMER Y LA DEMENCIA鈥 y n煤mero de expediente聽00104725 / SNEO-20171211 ha sido subvencionado por聽el CENTRO PARA EL DESARROLLO TECNOL脫GICO INDUSTRIAL (CDTI)

M脕STER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendr谩s amplios conocimientos sobre las herramientas y t茅cnicas anal铆ticas necesarias para la modelizaci贸n de los principales retos de negocio, con el fin de mejorar la toma de decisiones a trav茅s de los datos y el conocimiento.

Deja un comentario

Datahack logo