86
UNIVERSIDAD POLIT ´ ECNICA DE MADRID ESCUELA T ´ ECNICA SUPERIOR DE INGENIER ´ IA DE SISTEMAS INFORM ´ ATICOS DEPARTAMENTO DE INTELIGENCIA ARTIFICIAL TRABAJO DE FIN DE GRADO GRADO EN INGENIER ´ IA DE COMPUTADORES Sistema de Reconocimiento de Comandos por Voz Basado en Redes de Neuronas LSTM Autor: Juan Manuel Vicente Cabero Tutor: Francisco Serradilla Garc´ ıa Junio 2018

TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

UNIVERSIDAD POLITECNICA DE MADRID

ESCUELA TECNICA SUPERIOR DE INGENIERIA DE SISTEMAS

INFORMATICOS

DEPARTAMENTO DE INTELIGENCIA ARTIFICIAL

TRABAJO DE FIN DE GRADO

GRADO EN INGENIERIA DE COMPUTADORES

Sistema de Reconocimiento de Comandos por

Voz Basado en Redes de Neuronas LSTM

Autor:

Juan Manuel Vicente Cabero

Tutor:

Francisco Serradilla Garcıa

Junio 2018

Page 2: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Abstract

Artificial Intelligence has experienced a huge growth in the last few years,

thanks to the increase in computing power and the emergence of tools that

allow complex calculations to be performed more efficiently. In addition, the

rise of smartphones has increased the volume of data generated by users,

opening up a range of new possibilities for the application of Artificial Inte-

lligence in consumer electronics. Among these applications are virtual assis-

tants, which allow the execution of certain instructions by voice command

recognition. This project aims to develop a Recurrent Neural Network, spe-

cifically a LSTM network, capable of recognizing 24 instructions, to test the

effectiveness of LSTM networks in Automatic Speech Recognition (ASR) and

to provide the basis for a future virtual assistant. The system will take as

input audio files in WAVE format, pre-process the acoustic signal and extract

the features of interest, which will serve as input for the neural network.

The output from the network will be a vector of 24 integers, one for each

class, with all of them being ’0’ except the class predicted by the network

with the highest percentage of confidence, which will take the value ’1’. The

system will interpret this vector and display the name of the analyzed file,

the command it contains and the command predicted by the network.

Page 3: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Resumen

La Inteligencia Artificial ha experimentado un gran crecimiento durante los

ultimos anos, gracias al aumento de la capacidad de computo y la apari-

cion de herramientas que permiten realizar calculos complejos de una forma

mas eficiente. Ademas, el auge de los smartphones ha permitido aumentar el

volumen de datos generados por los usuarios, abriendo un abanico de nue-

vas posibilidades en cuanto a la aplicacion de la Inteligencia Artificial en

la electronica de consumo. Una de estas aplicaciones son los asistentes vir-

tuales, que permiten la ejecucion de determinadas instrucciones mediante el

reconocimiento de comandos por voz. Este proyecto tiene como objetivo el

desarrollo de una Red de Neuronas Recurrente del tipo LSTM, capaz de re-

conocer 24 instrucciones, para comprobar la efectividad de las redes LSTM

en el Reconocimiento del Habla (ASR); ası como suponer la base para un

futurible asistente virtual. El sistema tomara como entrada ficheros de audio

en formato WAVE, realizara el preprocesado de la senal acustica y extraera

los atributos de interes, que serviran como entrada para la red de neuronas.

La salida de la red sera un vector de 24 enteros, uno por cada clase, siendo

todos ellos ’0’ salvo la clase predicha por la red con un mayor porcentaje de

confianza, que tomara el valor ’1’. El sistema interpretara este vector y mos-

trara por pantalla el nombre del fichero analizado, el comando que contiene

y el comando predicho por la red.

Page 4: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Dedicatoria

A Andrea y mi familia, por brindarme a lo largo de todos estos anos un

apoyo que ha sido fundamental para afrontar las dificultades que he encon-

trado en el camino, y para crecer como persona.

A Fran, Alvaro y Diego, cuya companıa me ha permitido crecer como pro-

fesional durante mi etapa universitaria, y a quienes considero mis ingenieros

de referencia.

Page 5: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Indice general

Lista de figuras VI

Lista de tablas VIII

1. Introduccion 1

1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2. Impacto social . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Fundamentos teoricos 4

2.1. Inteligencia Artificial . . . . . . . . . . . . . . . . . . . . . . . 4

2.2. Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3. Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.4. Redes de Neuronas . . . . . . . . . . . . . . . . . . . . . . . . 6

2.5. Redes de Neuronas Recurrentes . . . . . . . . . . . . . . . . . 7

2.6. Long Short-Term Memory . . . . . . . . . . . . . . . . . . . . 8

2.6.1. Descartando informacion: Forget gate layer . . . . . . . 11

2.6.2. Anadiendo nueva informacion . . . . . . . . . . . . . . 11

2.6.3. Actualizando el cell state . . . . . . . . . . . . . . . . . 12

2.6.4. Generando la salida . . . . . . . . . . . . . . . . . . . . 14

2.7. Aprendizaje supervisado . . . . . . . . . . . . . . . . . . . . . 15

2.7.1. Algoritmo de aprendizaje: Backpropagation . . . . . . . 15

II

Page 6: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.8. Funciones de activacion . . . . . . . . . . . . . . . . . . . . . . 16

2.8.1. Tanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.8.2. Softmax . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.9. Metricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.9.1. Precision . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.9.2. Perdida . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.10. Optimizacion del descenso de gradiente . . . . . . . . . . . . . 19

2.10.1. Adagrad . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.10.2. Adam . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.11. Regularizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.11.1. Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.11.2. L2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.12. Procesado de audio . . . . . . . . . . . . . . . . . . . . . . . . 22

2.12.1. Preenfasis . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.12.2. Enmarcado . . . . . . . . . . . . . . . . . . . . . . . . 24

2.12.3. Funcion de ventana de Hamming . . . . . . . . . . . . 25

2.12.4. Transformada de Fourier de Tiempo Reducido (STFT ) 26

2.12.5. Bancos de filtros de Escala Mel . . . . . . . . . . . . . 27

2.12.6. Coeficientes Cepstrales en Frecuencias de Mel (MFCCs) 29

2.12.7. Normalizacion . . . . . . . . . . . . . . . . . . . . . . . 30

3. Herramientas 31

3.1. Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.1.1. Speech Recognition . . . . . . . . . . . . . . . . . . . . 32

3.1.2. Keyword Spotting . . . . . . . . . . . . . . . . . . . . . 33

3.2. Librerıas de manipulacion de datos . . . . . . . . . . . . . . . 34

3.2.1. NumPy . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.2.2. SciPy Library . . . . . . . . . . . . . . . . . . . . . . . 35

III

Page 7: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

3.2.3. Pandas . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.3. Librerıas de Machine Learning . . . . . . . . . . . . . . . . . . 36

3.3.1. SciKit-Learn . . . . . . . . . . . . . . . . . . . . . . . . 36

3.3.2. PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.3.3. Theano . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.3.4. TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . 37

3.3.5. Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.4. Lenguaje de programacion . . . . . . . . . . . . . . . . . . . . 38

3.5. Entorno de desarrollo . . . . . . . . . . . . . . . . . . . . . . . 39

3.6. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4. Diseno 41

4.1. Descripcion del problema . . . . . . . . . . . . . . . . . . . . . 41

4.1.1. Preprocesado . . . . . . . . . . . . . . . . . . . . . . . 42

4.1.2. Particion del dataset . . . . . . . . . . . . . . . . . . . 43

4.1.3. Entrenamiento de la red de neuronas . . . . . . . . . . 44

4.2. Estructura del proyecto . . . . . . . . . . . . . . . . . . . . . . 45

4.3. Arquitectura de la Red de Neuronas . . . . . . . . . . . . . . . 46

5. Experimentacion 47

5.1. Primer alcance: Speech Recognition . . . . . . . . . . . . . . . 47

5.2. Segundo alcance: Keyword Spotting . . . . . . . . . . . . . . . 49

5.2.1. Modelo 1 . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.2.2. Modelo 7 . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.2.3. Modelo 15 . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.2.4. Modelo 18 . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.2.5. Modelo 19 . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.2.6. Modelo 20 . . . . . . . . . . . . . . . . . . . . . . . . . 60

IV

Page 8: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

5.2.7. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.3. Evaluacion de resultados . . . . . . . . . . . . . . . . . . . . . 65

6. Conclusiones 66

7. Futuros Proyectos 68

7.1. Streams de audio con ruido . . . . . . . . . . . . . . . . . . . 68

7.2. Integracion con una aplicacion final . . . . . . . . . . . . . . . 69

7.3. Aumento del conjunto de comandos . . . . . . . . . . . . . . . 69

7.4. Comparativa de arquitecturas . . . . . . . . . . . . . . . . . . 70

Bibliografıa 71

V

Page 9: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Indice de figuras

2.1. Representacion de una RNN. Fuente: Colah’s blog . . . . . . . 8

2.2. Notacion de los diagramas para las celdas LSTM. Fuente: Co-

lah’s blog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3. Representacion detallada de una celda LSTM. Fuente: Colah’s

blog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4. Representacion del estado de celda (cell state). Fuente: Colah’s

blog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.5. Representacion de una puerta (gate). Fuente: Colah’s blog . . 10

2.6. Representacion de la capa forget gate. Fuente: Colah’s blog . . 12

2.7. Representacion de las capas de actualizacion del cell state.

Fuente: Colah’s blog . . . . . . . . . . . . . . . . . . . . . . . 13

2.8. Representacion de las operaciones de actualizacion del cell sta-

te. Fuente: Colah’s blog . . . . . . . . . . . . . . . . . . . . . . 13

2.9. Representacion de la generacion de la salida. Fuente: Colah’s

blog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.10. Representacion de la funcion Tangente Hiperbolica. Fuente:

Wikipedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.11. Senal de audio contenida en un fichero WAVE. Fuente: Haytham

Fayek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

VI

Page 10: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.12. Senal de audio tras aplicar el filtro de preenfasis. Fuente: Hayt-

ham Fayek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.13. Representacion de la funcion de ventana de Hamming. Fuente:

Haytham Fayek . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.14. Representacion de un banco de filtros en escala Mel. Fuente:

Haytham Fayek . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.15. Espectrograma de la senal de ejemplo. Fuente: Haytham Fayek 28

2.16. Representacion de los MFCCs obtenidos de la senal de ejem-

plo. Fuente: Haytham Fayek . . . . . . . . . . . . . . . . . . . 29

2.17. Representacion de los MFCCs normalizados. Fuente: Haytham

Fayek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.1. Descripcion del problema. . . . . . . . . . . . . . . . . . . . . 42

4.2. Representacion de la arquitectura de la red de neuronas. . . . 46

5.1. Metricas del modelo 7. . . . . . . . . . . . . . . . . . . . . . . 53

5.2. Metricas del modelo 15. . . . . . . . . . . . . . . . . . . . . . 55

5.3. Metricas del modelo 18. . . . . . . . . . . . . . . . . . . . . . 57

5.4. Metricas relativas del modelo 18. . . . . . . . . . . . . . . . . 58

5.5. Metricas del modelo 19. . . . . . . . . . . . . . . . . . . . . . 60

5.6. Metricas del modelo 20. . . . . . . . . . . . . . . . . . . . . . 61

5.7. Metricas relativas del modelo 20. . . . . . . . . . . . . . . . . 62

5.8. Muestra de la salida de la ejecucion de Test-app.ipynb. . . . 64

VII

Page 11: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Indice de tablas

5.1. Resultados del modelo 7. . . . . . . . . . . . . . . . . . . . . . 52

5.2. Resultados del modelo 15 . . . . . . . . . . . . . . . . . . . . . 54

5.3. Resultados del modelo 18. . . . . . . . . . . . . . . . . . . . . 56

5.4. Resultados del modelo 19 . . . . . . . . . . . . . . . . . . . . . 59

5.5. Resultados del modelo 20 . . . . . . . . . . . . . . . . . . . . . 61

5.6. Ficheros mal clasificados en la fase de pruebas. . . . . . . . . . 64

VIII

Page 12: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Capıtulo 1

Introduccion

En los ultimos anos se ha producido un crecimiento de la inversion en el

campo de la Inteligencia Artificial, aprovechando el aumento de la capacidad

de computo y la aparicion de herramientas que mejoran la eficiencia a la hora

de trabajar con calculos complejos, o bien que simplifican la realizacion de

los mismos, tales como CUDA o TensorFlow respectivamente.

Esta circunstancia, junto al auge de los smartphones, ha permitido que

comiencen a desarrollarse soluciones comerciales basadas en Inteligencia Ar-

tificial que puedan ser usadas por un gran volumen de usuarios. Entre estas

soluciones se encuentran los asistentes virtuales.

Las grandes empresas del sector tecnologico han apostado recientemen-

te por el desarrollo de asistentes virtuales, pudiendo encontrar disponibles

soluciones de Apple (Siri), Microsoft (Cortana), Google (Google Assistant y

Google Now), Amazon (Alexa) y Samsung (Bixby), entre otras. Los disposi-

tivos compatibles para cada una de las soluciones anteriores dependen direc-

tamente de los intereses de su correspondiente empresa. No obstante, todas

ellas tienen el mismo objetivo: permitir al usuario la realizacion de accio-

1

Page 13: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

nes mediante comandos por voz, tales como busquedas en Internet, agendar

eventos en el calendario o la creacion de alarmas.

El reconocimiento de comandos por voz puede englobarse de forma gene-

ral dentro del Reconocimiento del Habla (Speech Recognition) y, dentro de

esta disciplina, la actuacion de dichos comandos como disparadores de deter-

minadas acciones se conoce como Keyword Spotting. Si bien las arquitecturas

mas sencillas para tal finalidad se basan en Redes de Neuronas Convolu-

cionales, desde 2014 han comenzado a recuperar protagonismo las Redes de

Neuronas Recurrentes y, mas en concreto, las LSTM [5], en parte gracias a la

publicacion de artıculos que explicaban su funcionamiento de una forma mas

simplificada [6] que las originales, y al incremento de la potencia de computo

del hardware comercial.

1.1. Objetivos

El objetivo de este proyecto es el diseno, implementacion y entrenamiento

de una red de neuronas basada en LSTM que permita reconocer el comando

dictado, de 24 posibles, por un determinado locutor, tomando como entrada

un fichero de audio en formato WAVE.

Para el entrenamiento, se ha hecho uso del dataset Speech Commands v2,

de Google, que contiene 35 posibles comandos, de los cuales hemos seleccio-

nado los 24 que nos pueden resultar interes. Una vez entrenado, utilizamos

el modelo para realizar predicciones a modo de prueba sobre un conjunto

de 47 ficheros, 2 por cada comando, elegidos aleatoriamente entre todo el

dataset, mostrando por pantalla el nombre, la etiqueta y la prediccion para

cada fichero.

2

Page 14: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

La finalidad del proyecto es demostrar las capacidades de las celdas LSTM

para Keyword Spotting frente a las Redes de Neuronas Convolucionales (CNN ),

las utilizadas habitualmente para este tipo de aplicaciones.

1.2. Impacto social

Los asistentes virtuales mencionados anteriormente, como Alexa o Siri,

permiten el control de dispositivos electronicos mediante la voz. Para la ma-

yorıa de usuarios, esto supone una mera comodidad que reduce la necesidad

de escribir o realizar cualquier otra interaccion con la pantalla.

No obstante, es necesario recordar que hay usuarios que no pueden inter-

actuar con normalidad con estos dispositivos. Algunos usuarios tienen pro-

blemas de vision que les impiden enfocar correctamente a una distancia tan

corta como la de un movil, otros pueden tener dificultades debido a que el

tamano de las letras o de los diferentes menus de las interfaces graficas son

demasiado pequenos, o incluso pueden carecer de la capacidad de ver en su

totalidad.

Mas alla de los problemas de vision, hay usuarios que tampoco pueden

hacer un uso normal de los dispositivos debido a problemas de psicomo-

tricidad o a otras formas de discapacidad fısica. Para todos estos usuarios,

la posibilidad de que un dispositivo reconozca una serie de comandos que

realicen determinadas acciones basicas les permite hacer uso de los mismos

sin depender de otra persona, haciendoles ganar autonomıa y mejorando su

calidad de vida.

3

Page 15: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Capıtulo 2

Fundamentos teoricos

El Keyword Spotting, como parte del reconocimiento del habla (Speech

Recognition), se basa principalmente en la utilizacion de Redes de Neuronas,

pudiendo englobarse dentro del campo del Deep Learning, a su vez com-

prendido dentro del Machine Learning o Aprendizaje Automatico, y de la

Inteligencia Artificial, respectivamente. El conocimiento de estos conceptos,

ası como su correspondiente base matematica, resultan fundamentales para

el entendimiento del proyecto, sus objetivos, sus recursos y sus limitaciones.

El presente capıtulo introduce todos los conceptos considerados de in-

teres en el ambito del proyecto, ası como el estado del arte del campo del

reconocimiento del habla.

2.1. Inteligencia Artificial

El termino Inteligencia Artificial (IA) fue utilizado por primera vez por

John McCarthy en el ano 1956. La IA engloba la realizacion de tareas carac-

terısticas de la inteligencia humana por parte de maquinas, entiendiendolas

4

Page 16: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

como aquellas cuya realizacion resulta simple para las personas y que, a su

vez, resultan difıciles de describir [1, 2].

2.2. Machine Learning

Para solucionar los problemas planteados por el amplio campo de la Inteli-

gencia Artificial, es necesario dotar a los sistemas de conocimiento. El Apren-

dizaje Automatico o Machine Learning comprende todas aquellas tecnicas y

algoritmos que permiten que los sistemas adquieran su propio conocimiento

mediante la extraccion de patrones de datos no procesados.

La introduccion del Machine Learning permitio la utilizacion de maquinas

para resolver problemas que requerıan conocimiento del mundo real, ası como

la toma de decisiones aparentemente subjetivas [1]. Entre los problemas que

pueden resolver algoritmos simples de Machine Learning estan el filtrado de

emails considerados como correo basura o spam, o la clasificacion de 3 especies

de plantas de la familia Iridaceae, cuyas componentes se conocen comunmente

como lirios, mediante la utilizacion del Iris Dataset [3] recopilado por Ronald

Fisher en 1936 [4].

El funcionamiento de los algoritmos de Aprendizaje Automatico depende

en gran medida del formato de representacion de los datos que se les propor-

ciona, dado que este define los fragmentos en los que se pueden dividir los

datos, llamados atributos o features.

5

Page 17: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.3. Deep Learning

El Aprendizaje Profundo o Deep Learning es uno de los muchos posibles

enfoques del Machine Learning, como tambien lo son los arboles de decision y

la agrupacion (clustering), entre otros. Se basa en el entendimiento del mun-

do como una jerarquıa de conceptos, permitiendo a las maquinas aprender

conceptos complejos en base a otros mas simples con los que tengan relacion.

Si representamos esta jerarquıa de conceptos en forma de grafo obtenemos

uno de gran profundidad, en lo que respecta al numero de capas, dando lugar

al nombre de Deep Learning [1].

2.4. Redes de Neuronas

Las Redes de Neuronas (Neural Networks, NN ), tambien conocidas como

Redes de Neuronas Artificiales (Artificial Neural Networks, ANN ), son mo-

delos matematicos que permiten solucionar problemas siguiendo el enfoque

del Deep Learning. Su estructura se basa en grafos divididos en capas, com-

puestas por una serie de nodos (neuronas), que se interconectan permitiendo

fluir la informacion, de forma que cada neurona aprende a identificar un de-

terminado concepto (atributo), filtrandose ası la informacion hasta obtener

una salida.

Las Redes de Neuronas deben disenarse en funcion del problema a re-

solver y del formato de los datos con los que se pretende realizar la ingesta

al modelo. No obstante, independientemente de la topologıa (Feedforward,

Recurrente) y la arquitectura de la red, esta siempre tiene un mınimo de dos

capas, correspondiendose con la entrada de datos y la salida de los resultados.

6

Page 18: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Ademas, puede tener un numero indefinido de capas ocultas.

Tras disenar la arquitectura, es necesaria la adaptacion del modelo para

que reconozca los atributos de los datos que recibe y que filtre correctamente

la informacion. Esta fase de adaptacion, conocida como entrenamiento, se

basa en el reajuste de los pesos de las conexiones entre neuronas basandose

en un conjunto de datos, con el mismo formato de representacion que los

que seran proporcionados cuando el modelo se encuentre en funcionamiento,

entendiendose como la utilizacion del modelo para realizar predicciones en

base a los datos introducidos. Para el entrenamiento se pueden utilizar di-

versos metodos de aprendizaje (supervisado, no supervisado, por refuerzo) y

algoritmos de reajuste de pesos, aunque generalmente se recurre al Algoritmo

de Retropropagacion o Backpropagation.

2.5. Redes de Neuronas Recurrentes

Las Redes de Neuronas con topologıa Recurrente (Recurrent Neural Net-

work, RNN ) son aquellas que, ademas de presentar interconexiones con pro-

pagacion de informacion de una determinada capa hacia las siguientes, per-

miten interconexiones con capas anteriores. Entendiendo la representacion

de una red de neuronas como un grafo, las redes recurrentes son aquellas que

permiten la presencia de bucles. Generalmente, estas conexiones se suelen

utilizar como retroalimentacion, de forma que la salida de una capa determi-

nada se propaga hacia la primera capa oculta, haciendola funcionar a modo

de capa de entrada.

El objetivo perseguido por esta topologıa es la capacidad de modelizar

7

Page 19: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

secuencias de datos x1, . . . , xn, permitiendo escalar la red a secuencias de

entrada de un tamano mucho mayor del que puede resultar practico para

redes sin esta especializacion. Ademas, la mayorıa de las redes recurrentes

permiten procesar secuencias de longitud variable [1].

Figura 2.1: Representacion de una RNN. Fuente: Colah’s blog

En la figura 2.1 encontramos un diagrama que muestra, de forma simplifi-

cada, la arquitectura de una red recurrente. La capa de entrada se representa

como xt y la capa de salida como ht, siendo t en ambas el instante temporal;

mientras que A representa las capas ocultas de la red. A la derecha de la

figura podemos ver una version ”desenrrollada”de la red, en la que el bucle

se representa como una secuencia temporal, teniendo por tanto una secuen-

cia de entrada x1, . . . , xt y una de salida h1, . . . , ht, en este caso siendo t el

instante actual.

2.6. Long Short-Term Memory

Dentro de las diversas tipologıas de Redes de Neuronas Recurrentes exis-

tentes, nuestro proyecto se basa en la utilizacion de las denominadas redes

Long Short-Term Memory (LSTM) [5]. Estas redes se caracterizan por que

8

Page 20: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

su unidad atomica es la celda LSTM, a diferencia de las redes de neuronas

tradicionales cuya unidad atomica es la neurona.

Las celdas LSTM pretenden dotar a la red de la capacidad de ”memo-

rizar”, permitiendo mantener un contexto a largo plazo y no unicamente el

actual a la hora de calcular la salida de cada celda [6]. Esta funcion de me-

moria es la que se denomina el estado de celda, que determina la informacion

a almacenarse en una celda LSTM determinada. Cada celda LSTM esta for-

mada por 4 capas de una Red de Neuronas estandar, que interactuan entre

sı mediante determinadas operaciones que detallaremos a continuacion.

En la figura 2.2 detallamos la notacion a seguir en todos los diagramas

de la presente seccion.

Figura 2.2: Notacion de los diagramas para las celdas LSTM.Fuente: Colah’s blog

La idea principal detras de las celdas LSTM es el estado de celda (cell

state), representado en la figura 2.4. Es un flujo de informacion que atraviesa

la red de principio a fin, experimentando unicamente algunas operaciones

lineales, que facilitan que la informacion fluya inmutable por la red cuando

sea conveniente.

9

Page 21: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 2.3: Representacion detallada de una celda LSTM.Fuente: Colah’s blog

Figura 2.4: Representacion del estado de celda (cell state).Fuente: Colah’s blog

Para controlar el cell state se recurre a estructuras llamadas puertas (ga-

tes), compuestas de una capa sigmoide de Red Neuronal y un producto de

funciones entre la salida de dicha capa y el contenido del cell state. Podemos

ver una representacion de esta estructura en la figura 2.5.

Figura 2.5: Representacion de una puerta (gate). Fuente: Colah’s blog

10

Page 22: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

La capa sigmoide produce una salida con un valor entre 0 y 1, describien-

do en que medida debe dejarse pasar el componente en cuestion, pudiendo

entender el valor como un porcentaje.

En los siguientes apartados, detallaremos el flujo que sigue la informacion

a traves de una celda LSTM hasta producir la salida, con el fin de comprender

plenamente su funcionamiento.

2.6.1. Descartando informacion: Forget gate layer

La capa de puerta de olvido, comunmente conocida por su nombre en

ingles forget gate layer, es el primer paso a realizar para decidir que infor-

macion del cell state debe conservarse. La forget gate consiste unicamente de

una capa sigmoide, que toma como entradas la salida del estado anterior ht−1

y la entrada del estado actual xt, produciendo como salida ft. La funcion de

la capa forget gate queda definida en la ecuacion (2.1).

ft = σ(Wf · [ht−1, xt] + bf ) (2.1)

En la ecuacion anterior, Wf representa la matriz de pesos de la capa en

cuestion, y bf representa el (bias) de la misma.

2.6.2. Anadiendo nueva informacion

Tras la capa forget gate, el siguiente paso en el flujo de informacion es la

decision de que nueva informacion se anade al cell state. Este paso se divide

en dos partes: una capa sigmoide, denominada capa de puerta de entrada o

11

Page 23: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 2.6: Representacion de la capa forget gate. Fuente: Colah’s blog

input gate layer, y una capa tanh. La capa input gate, cuya funcion queda

definida en la ecuacion (2.2), se encargara de determinar que valores van a

ser actualizados.

it = σ(Wi · [ht−1, xt] + bi) (2.2)

Por su parte, la capa tanh crea, mediante la funcion definida en la ecua-

cion (2.3), un vector de nuevos valores candidatos (Ct) a ser anadidos al

estado.

Ct = tanh (WC · [ht−1, xt] + bC) (2.3)

2.6.3. Actualizando el cell state

Una vez ejecutados los pasos anteriores, es el momento de aplicar las

actualizaciones al cell-state, transformando Ct−1 en Ct. Multiplicaremos el

estado anterior por el resultado de la capa forget gate para olvidar la in-

formacion que corresponda y, a continuacion, agregamos la informacion que

12

Page 24: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 2.7: Representacion de las capas de actualizacion del cell state.Fuente: Colah’s blog

hemos decidido anadir mediante la capa input gate de los posibles candidatos

obtenidos en la capa tanh.

Las actualizaciones a aplicar en el cell state Ct quedan definidas en la

ecuacion (2.4).

Ct = ft ∗ Ct + it ∗ Ct (2.4)

Figura 2.8: Representacion de las operaciones de actualizacion del cell state.Fuente: Colah’s blog

13

Page 25: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.6.4. Generando la salida

Por ultimo, debe determinarse la salida de la celda en funcion del cell state

y de la salida del estado anterior ht−1, realizandose este proceso mediante 2

operaciones.

En primer lugar, debemos ejecutar la capa output gate (ot), nuevamente

de tipo sigmoide, que toma como entrada ht−1. y queda definida en la ecuacion

(2.5). A continuacion, se filtra el cell state mediante la aplicacion de la funcion

tanh para reajustar la escala de los valores de esta entre -1 y 1. Por ultimo,

se realiza el producto de funciones del resultado de tanh y ot para obtener

la salida del estado actual ht, tal y como se define en la ecuacion 2.6.

ot = σ(Wo · [ht−1, xt] + bo) (2.5)

ht = ot ∗ tanh (Ct) (2.6)

Figura 2.9: Representacion de la generacion de la salida.Fuente: Colah’s blog

14

Page 26: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.7. Aprendizaje supervisado

Una vez definidos todos los componentes de la arquitectura de la red de

neuronas, es necesario determinar la metodologıa de aprendizaje a aplicar

para el entrenamiento de la misma. Podemos optar por aprendizaje supervi-

sado, no supervisado o por refuerzo.

Por la naturaleza de los datos con los que se realiza la ingesta, y a fin

de disminuir lo maximo posible el tiempo de entrenamiento, la opcion mas

adecuada de las 3 planteadas anteriormente es la del aprendizaje supervisado.

Esta metodologıa se basa en proporcionar a la red un conjunto de datos

de entrada junto con el conjunto de salidas esperadas, dotandola de un cono-

cimiento a priori de los resultados que deberıa obtener para cada conjunto de

atributos. Permite un aprendizaje mas rapido que las otras dos metodologıas

al conocer de antemano la categorıa de cada entrada, buscando los patrones

comunes entre los ficheros de una misma clase.

2.7.1. Algoritmo de aprendizaje: Backpropagation

Para realizar el entrenamiento de la red, es necesario comparar la salida

esperada de la red con la salida obtenida. El objetivo es minimizar el error en

la salida mediante el reajuste de los pesos de las conexiones entre neuronas.

Para este fin es necesario recurrir a un algoritmo que tome el error de

la salida y reajuste los pesos en consecuencia. El algoritmo mas utilizado,

y al que recurrimos en este proyecto, es el algoritmo de retropropagacion o

Backpropagation.

15

Page 27: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Este algoritmo parte de la salida obtenida por la red, y comienza a re-

ajustar los pesos propagando su error hacia atras, de forma iterativa, hasta

llegar a la capa de entrada.

Las Redes de Neuronas Recurrentes presentan el problema del Desvane-

cimiento de Gradiente (Vanishing Gradient) [7], al reducirse el gradiente en

estas propagaciones hacia atras de forma paulatina hasta llegar a 0, provo-

cando un estancamiento en el entrenamiento de la red; aunque este problema

queda solventado con la introduccion de celdas LSTM debido a su capacidad

para mantener los contextos a largo plazo.

2.8. Funciones de activacion

Tal y como se ha mencionado anteriormente, cada nodo (neurona) tiene

una funcion de activacion que permite determinar cual debe ser su salida en

base a la entrada recibida. Generalmente, todas las neuronas de una misma

capa utilizan la misma funcion de activacion por lo que, dependiendo del tipo

de capa y de la finalidad de la red, se debe optar por unas u otras funciones

de activacion. Esta eleccion tambien influye en el tiempo de entrenamiento,

dado que algunas funciones requieren mas tiempo de computo que otras para

su proceso.

En esta seccion introducimos las funciones de activacion utilizadas en la

arquitectura final de nuestra solucion.

16

Page 28: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.8.1. Tanh

La utilizacion de la funcion Tangente Hiperbolica (tanh) en las celdas

LSTM se ve motivada por el paper original de Hochreiter et al. [5], donde se

presentan las redes LSTM recurriendo en sus celdas a la funcion de activacion

que nos ocupa. Esta funcion queda definida por la grafica representada en la

figura 2.10.

Figura 2.10: Representacion de la funcion Tangente Hiperbolica.Fuente: Wikipedia

La funcion de activacion tanh se considero ideal para su utilizacion en las

redes LSTM debido a la necesidad de que la segunda derivada de la funcion

de activacion fuese capaz de mantener su valor durante un cierto periodo de

tiempo antes de llegar a 0, para poder dotar a las celdas de la capacidad de

retener contextos a largo plazo.

El principal inconveniente de la funcion tanh es el alto coste de compu-

tacion que requiere para su calculo respecto a otras funciones. Sigue siendo el

estandar en las redes LSTM por la ausencia de alternativas que cumplan las

caracterısticas necesarias. No obstante, se han encontrado algunas referencias

a la funcion Softsign, la cual es menos propensa a la saturacion (desvane-

17

Page 29: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

cimiento de gradiente) y permite mantener contextos a largo plazo con un

coste de computo menor que tanh, reduciendose notablemente el tiempo de

entrenamiento [8].

2.8.2. Softmax

Nuestra solucion al problema se plantea como un clasificador de multiples

clases, en el que cada entrada pertenece a una unica clase. Esto hace ideal

la utilizacion de la funcion Softmax, dado que esta nos devuelve una lista

de probabilidades de pertenencia a cada una de las posibles clases, sumando

un total del 100 %, y asignando la salida a la clase con mayor probabilidad.

Dada su naturaleza, unicamente es utilizada en la capa de salida de la red.

2.9. Metricas

La construccion de un modelo de Machine Learning requiere de la aplica-

cion de metricas que nos permitan cuantificar los resultados obtenidos. Las

metricas a evaluar se eligen en base a la naturaleza del problema a resolver

y a las funciones de activacion utilizadas, aunque se pueden distinguir dos

tipos de metricas que resultaran de interes, y que exponemos en esta seccion.

2.9.1. Precision

En primer lugar, es conveniente conocer la proporcion de aciertos en el

total de predicciones del modelo. Hay diferentes metricas que nos permiten

conocer este dato dado que, en ocasiones, la naturaleza del problema hace

18

Page 30: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

que el cociente entre aciertos y el total no sea suficiente para determinar la

calidad del desempeno del modelo.

El alcance actual de nuestro proyecto define un clasificador sin ningun

requerimiento especial, por lo que optamos por utilizar la version por defecto

de la precision (accuracy) proporcionada por Keras.

2.9.2. Perdida

La perdida nos permite conocer la evolucion del error en las predicciones

del modelo, resultando la metrica mas fiable para monitorizar el entrenamien-

to de la red. Cuanto menor sea su valor, mayor capacidad de generalizacion

tiene el modelo.

Dado que utilizamos la funcion de activacion Softmax en la capa de sali-

da, la funcion de perdida mas adecuada es categorical crossentropy, ya

que que su valor se incrementa en funcion a la divergencia de la prediccion

respecto al valor esperado. Se diferencia de la funcion binary crossentropy

en que nos permite trabajar con mas de una clase.

2.10. Optimizacion del descenso de gradiente

Una vez definidos los parametros de la arquitectura y las metricas a uti-

lizar para cuantificar el desempeno del modelo, resulta de interes recurrir a

algoritmos que modifiquen durante el entrenamiento, y de forma automati-

ca, los valores de los hiperparametros, como la tasa de aprendizaje, en base

a los resultados que se obtienen en cada momento. El fin de estos algorit-

19

Page 31: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

mos es optimizar la evolucion del descenso de gradiente, en la busqueda de

la convergencia de la funcion de perdida. El algoritmo a utilizar depende

de la naturaleza del problema, y de los hiperparametros cuya modificacion

consideremos de interes para optimizar los resultados.

En esta seccion introducimos los dos algoritmos de optimizacion de des-

censo de gradiente que hemos valorado para el desarrollo del proyecto. Ambos

permiten modificar automaticamente la tasa de aprendizaje, aunque final-

mente nos decantamos por la utilizacion de Adam, debido a las caracterısticas

que exponemos en los siguientes apartados.

2.10.1. Adagrad

Adagrad [9] es un algoritmo que adapta el valor de la tasa de aprendizaje

en base a los parametros, realizando actualizaciones mas pequenas (reduccion

de la tasa de aprendizaje) para parametros asociados a atributos con una

ocurrencia frecuente, y grandes (aumento de la tasa de aprendizaje) ante

atributos infrecuentes [10]. Esto permite que al inicio del entrenamiento,

cuando la funcion de perdida aun esta lejos de converger, se pueda tomar

una tasa de aprendizaje alta debido a que los atributos aun son infrecuentes;

y que, a medida que avanza el mismo, se disminuya progresivamente el valor

de la tasa de aprendizaje para alcanzar la convergencia.

La principal debilidad de Adagrad es su acumulacion de los cuadrados

de los gradientes, que lleva al estancamiento de la tasa de aprendizaje y,

eventualmente, a tomar un valor infinitesimal proximo a 0, impidiendo que

el modelo adquiera nuevo conocimiento [10].

20

Page 32: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.10.2. Adam

Adam (Adaptive Moment Estimation) [11] pretende mitigar la principal

debilidad de Adagrad mediante la reduccion exponencial de la media de los

cuadrados de los gradientes anteriores, como tambien hacen Adadelta [12] y

RMSProp [10].

El factor diferencial de Adam frente a otros algoritmos de optimizacion del

descenso de gradiente es que, ademas de lo expuesto anteriormente, mantiene

una reduccion exponencial de la media de los gradientes anteriores, y no solo

de sus cuadrados. Los autores muestran empıricamente que Adam reporta

un buen funcionamiento, y que obtiene resultados favorables en comparacion

a otros algoritmos de adaptacion del aprendizaje [11].

2.11. Regularizacion

Las tecnicas de regularizacion permiten mitigar el sobreentrenamiento

mediante la penalizacion de los modelos complejos, actuando sobre los datos

o sobre las conexiones de la red, en funcion de la tecnica en cuestion. En esta

seccion introducimos las dos tecnicas de regularizacion que hemos valorado

durante el desarrollo del proyecto.

2.11.1. Dropout

La tecnica de Dropout [13] consiste en desechar sistematicamente un por-

centaje determinado de las conexiones de la capa donde se aplique, lo que se

ha probado como una medida simple y efectiva para mitigar el sobreentrena-

miento.

21

Page 33: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Hemos recurrido a la tecnica de Dropout en las capas LSTM de nuestro

modelo, tanto sobre las conexiones entre capas como sobre las conexiones

recurrentes, desechando un 20 % (valor por defecto) de las conexiones en

cada caso.

2.11.2. L2

La tecnica de regularizacion L2 [14] nos permite cuantificar la compleji-

dad de los modelos, definiendose como la suma de los cuadrados de todos

los pesos de los atributos, como se muestra en la ecuacion (2.7). En esta

formula, los pesos cercanos a 0 tienen un efecto practicamente despreciable

en la complejidad del modelo, aumentandose notablemente el impacto en la

complejidad cuanto mayores sean esos pesos.

L2 regularization term = ||w||22 = w21 + w2

2 + . . .+ w2n (2.7)

A pesar de haberse valorado, finalmente no se ha considerado necesaria su

aplicacion debido a la obtencion de buenos resultados aplicando unicamente

Dropout.

2.12. Procesado de audio

De forma previa a la ingesta de datos a la red, estos deben pasar por una

fase de preprocesado que permita extraer los atributos o features de interes,

dado que la red no puede trabajar con los datos en bruto, es decir, con los

ficheros de audio como entrada.

22

Page 34: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

A la hora de preprocesar los datos se puede optar por dos enfoques:

obtener los espectrogramas y disenar una red que trabaje con imagenes con

entrada, o bien tratarlos como secuencias de vectores de numeros en coma

flotante (floats). Dado el objetivo perseguido por nuestro proyecto, se opta

por el segundo enfoque.

El procesado de audio requiere una serie de operaciones [15] , a realizar

de forma secuencial, sobre la senal contenida en cada uno de los ficheros

WAVE que componen el dataset. Esta seccion expone detalladamente en que

consisten dichas operaciones.

2.12.1. Preenfasis

El primer paso a realizar sobre la senal de audio es un filtro de preenfasis,

con el objetivo de amplificar las frecuencias altas. Este filtrado nos permite

equilibrar el espectro de frecuencias, dado que las frecuencias altas suelen

tener, generalmente, magnitudes inferiores que las frecuencias bajas; evitar

problemas numericos en el calculo de la transformada de Fourier que se reali-

zara posteriormente; ası como puede mejorar la relacion senal/ruido (SNR).

En la figura 2.11 podemos observar una senal de ejemplo, sobre la que ob-

servaremos los resultados de aplicacion de las siguientes operaciones.

El filtrado puede aplicarse a una senal x tal y como se define en la ecuacion

(2.8), siendo α el coeficiente de filtro, que suele tomar un valor de 0,95 o 0,97.

En nuestro caso, tomaremos α = 0,97.

y(t) = x(t)− αx(t− 1) (2.8)

23

Page 35: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 2.11: Senal de audio contenida en un fichero WAVE.Fuente: Haytham Fayek

En la figura 2.12 podemos observar la senal de ejemplo tras aplicar el

filtro de preenfasis, siendo apreciables a simple vista los cambios en la forma

de onda.

Figura 2.12: Senal de audio tras aplicar el filtro de preenfasis.Fuente: Haytham Fayek

2.12.2. Enmarcado

Una vez aplicado el preenfasis es necesario dividir la senal en marcos de

tiempo reducido, dado que las frecuencias en una senal cambian con el paso

del tiempo por lo que, en la mayorıa de los casos, no tiene sentido aplicar la

transformada de Fourier sobre la senal completa ya que perderıamos contor-

nos de frecuencia a lo largo del tiempo. Para evitarlo, podemos asumir que

las frecuencias en una senal son estacionarias en cortos periodos de tiempo,

24

Page 36: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

por lo que podemos aplicar la transformada de Fourier sobre estos marcos de

tiempo para obtener una buena aproximacion de los contornos de frecuencia

de la senal mediante la concatenacion de marcos adyacentes.

La longitud de estos marcos es generalmente, para procesamiento de voz,

de entre 20 y 40 milisegundos con en torno a un 50 % (±10 %) de solapamiento

entre marcos consecutivos. Los valores tıpicos son una longitud de marco de

25ms y un solapamiento de 15ms.

2.12.3. Funcion de ventana de Hamming

La Transformada Rapida de Fourier (FFT ) que aplicaremos posterior-

mente asume que los datos sobre los que se aplica son infinitos. Para con-

trarrestar esta circunstancia, ası como reducir la perdida espectral, debemos

aplicar una funcion de ventana sobre cada marco de los calculados previa-

mente.

Recurrimos a la funcion de ventana de Hamming, definida por la ecuacion

(2.9), donde 0 ≤ n ≤ N − 1 y N es la longitud de marco, en nuestro caso

N = 0,025 (25ms).

w[n] = 0,54− 0,46 cos2πn

N − 1(2.9)

25

Page 37: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 2.13: Representacion de la funcion de ventana de Hamming.Fuente: Haytham Fayek

2.12.4. Transformada de Fourier de Tiempo Reducido

(STFT)

El siguiente paso es la aplicacion de una FFT de N -puntos sobre cada

marco para calcular el espectro de frecuencia, tambien conocida como Trans-

formada de Fourier de tiempo reducido (STFT ), donde habitualmente N

toma como valor 256 o 512.

P =|FFT (xi)

2|N

(2.10)

Tomamos N = 512 y, a continuacion, calculamos el espectro de frecuencia

(periodograma) mediante la ecuacion (2.10), donde xi es el i-esimo marco de

la senal x.

26

Page 38: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.12.5. Bancos de filtros de Escala Mel

En este punto, podemos proceder a calcular los bancos de filtros mediante

la aplicacion de filtros triangulares en escala Mel, generalmente 40, sobre el

espectro de potencia, con el objetivo de extraer bandas de frecuencia.

La escala Mel tiene como objetivo emular la forma no lineal de percibir el

sonido por parte del oıdo humano, siendo mas discriminatorio con las bajas

frecuencias y menos con las frecuencias altas. Se puede convertir entre la

frecuencia en Hercios (f) y la frecuencia en Mel (m) haciendo uso de las

ecuaciones (2.11) y (2.12).

m = 2595log10(1 +f

700) (2.11)

f = 700(10m/2595 − 1) (2.12)

Figura 2.14: Representacion de un banco de filtros en escala Mel.Fuente: Haytham Fayek

27

Page 39: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Podemos modelar los bancos de filtros mediante la ecuacion (2.13).

Hm(k) =

0 k < f(m− 1)

k − f(m− 1)

f(m)− f(m− 1)f(m− 1) ≤ k < f(m)

1 k = f(m)

f(m+ 1)− kf(m+ 1)− f(m)

f(m) < k ≤ f(m+ 1)

0 k > f(m− 1)

(2.13)

Tras aplicar el banco de filtros al espectro de potencia de la senal, obte-

nemos el espectrograma de la figura 2.15.

Figura 2.15: Espectrograma de la senal de ejemplo.Fuente: Haytham Fayek

28

Page 40: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.12.6. Coeficientes Cepstrales en Frecuencias de Mel

(MFCCs)

Los bancos de filtros calculados anteriormente estan altamente correlacio-

nados, lo que puede resultar conflictivo en algunos modelos de Machine Lear-

ning. Por prevencion, podemos aplicar la Transformada Discreta del Coseno

(DCT ) para eliminar la correlacion y producir una representacion comprimi-

da de los bancos de filtros, lo que da lugar a los Coeficientes Cepstrales en

Frecuencias de Mel (MFCCs). Generalmente, para reconocimiento del habla,

se toman los coeficientes cepstrales resultantes del 2 al 13, descartando el

resto dado que representan cambios rapidos en los coeficientes de los bancos

de filtros, datos demasiado detallados que no aportan nada para tal fin. En

la figura 2.16 podemos observar los MFCCs obtenidos.

Figura 2.16: Representacion de los MFCCs obtenidos de la senal de ejemplo.Fuente: Haytham Fayek

29

Page 41: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

2.12.7. Normalizacion

En ultima instancia podemos normalizar los MFCCs, equilibrando el es-

pectro y mejorando la relacion senal/ruido (SNR), mediante la resta de la

media de los coeficientes de todos los marcos. El resultado final de la fase de

preprocesado se encuentra representado en la figura 2.17.

Figura 2.17: Representacion de los MFCCs normalizados.Fuente: Haytham Fayek

30

Page 42: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Capıtulo 3

Herramientas

El diseno e implementacion de modelos de Machine Learning requiere

una fase de investigacion previa para elegir las herramientas a utilizar para

el desarrollo. Entre estas herramientas se encuentran el conjunto de datos

(dataset) con el que entrenaremos el modelo, las librerıas de Machine Lear-

ning, el lenguaje de programacion y el entorno de desarrollo, ası como el

hardware a utilizar para el entrenamiento.

En el caso de tratarse de un proyecto a desplegar, y no uno meramente

experimental como el descrito en este documento, tambien deberıa evaluarse

el hardware sobre el que se pretende ejecutar el modelo para obtener predic-

ciones.

31

Page 43: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

3.1. Dataset

Durante el diseno de un modelo de Machine Learning es fundamental

elegir correctamente el dataset a utilizar, pues influira directamente en los

resultados obtenidos. En el caso del Procesado de Lenguaje Natural (NLP,

por sus siglas en ingles) los datasets reciben el nombre de corpus, debido a

la estrecha relacion de este campo con la linguıstica.

En funcion del posible enfoque del proyecto, el tipo de dataset a escoger

ha sido diferente, aunque en ambos ha sido necesario que el dataset incluyese

ficheros de audio en formato WAVE o MP3 con sus respectivas transcripciones.

Todos los datasets valorados incluyen audios y transcripciones en ingles, dado

que permite que el sistema a desarrollar tenga un mayor impacto potencial

al ser un idioma ampliamente extendido en el ambito tecnologico.

3.1.1. Speech Recognition

Durante el primer enfoque, en el cual se pretendıa conseguir reconocer el

ingles al completo, para posteriormente extraer las instrucciones a reconocer,

era necesario recurrir a un corpus de gran tamano para poder generalizar al

maximo posible.

La mayor parte de los corpus disponibles para el reconocimiento de voz o

Speech Recognition se distribuyen de forma comercial, debido al tamano y a la

calidad que estos deben presentar para ser utilizados por los investigadores.

Entre los corpus de pago podemos encontrar TIMIT [16] y los corpus de

Wall Street Journal [17, 18]. De los anteriores, TIMIT es el mas habitual

para tomar metricas en sistemas de Reconocimiento Automatico del Habla

32

Page 44: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

(ASR, Automatic Speech Recognition).

A pesar de que su uso este menos extendido, tambien existen corpus de

libre distribucion, entre los que destacan TED-LIUM [19], LibriSpeech [20],

VoxForge [21] y Mozilla Common Voice [22]. En el primer enfoque del proyec-

to nos decantamos por el dataset Common Voice, por ser el de publicacion

mas reciente (2017) y no haber encontrado ningun trabajo previo basado en

el.

3.1.2. Keyword Spotting

El segundo enfoque del proyecto consiste en el reconocimiento de coman-

dos, que actuarıan como disparadores de una determinada accion por parte

de un hipotetico sistema. Este reconocimiento de expresiones a modo de dis-

parador se denomina Keyword Spotting.

La busqueda de datasets para el nuevo alcance del proyecto nos llevo

a decantarnos por el dataset Speech Commands de Google [23], cuya ver-

sion 2 habıa sido lanzada la misma semana que se encontro el reporte de la

incidencia mencionada en parrafos anteriores.

La version 2 de Speech Commands contiene 34 palabras diferentes, de

las cuales 24 de ellas han sido elegidas para ser utiles para su uso en aplica-

ciones del campo de Internet de las Cosas (IoT, Internet of Things) o de la

robotica. Estas 24 palabras son los comandos a reconocer por nuestra red de

neuronas, componiendose el conjunto por los dıgitos del 0 al 9 (cero-nueve)

y las siguientes palabras:

33

Page 45: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Backward

Down

Follow

Forward

Go

Learn

Left

No

Off

On

Right

Stop

Up

Yes

El subconjunto a utilizar del dataset cuenta, tras el preprocesado, con un

total de 49313 ficheros de entrenamiento, 12735 ficheros de validacion y 14448

ficheros de test. Los ficheros de audio tienen como maximo un segundo de

longitud, en formato WAVE (.wav), con los datos de la muestra codificados

como valores PCM lineales de 16 bits de un solo canal, a una frecuencia

de 16KHz. Se han registrado 2.618 locutores, cada uno con un identificador

hexadecimal unico de ocho dıgitos.

3.2. Librerıas de manipulacion de datos

Una vez seleccionada la fuente de datos con la que alimentaremos el mode-

lo de Machine Learning, debemos manipular los mismos para eliminar datos

anomalos o corruptos, ası como los que no sean de nuestro interes, y poste-

riormente darles el formato adecuado.

Esta fase se denomina preprocesado, y para llevarla a cabo resulta intere-

sante apoyarse en algunas librerıas con el objetivo de operar sobre los datos

de la forma mas sencilla y optima posible.

34

Page 46: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

3.2.1. NumPy

Considerada como la librerıa fundamental para realizar cualquier tipo de

calculo cientıfico en Python. Dispone de una abundante cantidad de opera-

ciones sobre arrays n-dimensionales (ndarrays) y matrices.

Esta librerıa proporciona la vectorizacion de operaciones matematicas

sobre el tipo de array de NumPy (numpy.array), mejorando el rendimiento

y acelerando la ejecucion de las mismas.

3.2.2. SciPy Library

La librerıa SciPy proporciona una gran cantidad rutinas numericas efi-

cientes y sencillas de usar, tales como rutinas para integracion y optimizacion

numerica. Se apoya en NumPy, por lo que utiliza su tipo de array en sus ru-

tinas.

En nuestro caso, ha resultado especialmente util para las operaciones ne-

cesarias para el procesado de los ficheros de audio, tales como la obtencion

de espectrogramas y el calculo de Transformadas de Fourier de Tiempo Re-

ducido (Short-Time Fourier Transform).

3.2.3. Pandas

Pandas es una librerıa de Python que permite trabajar de forma simple

e intuitiva con datos etiquetados y relacionales. Incluye metodos para ma-

nipular y visualizar datos rapidamente. Todo ello la convierte en la librerıa

ideal para almacenar los datos extraıdos del dataset, y para operar con ellos

posteriormente.

35

Page 47: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

3.3. Librerıas de Machine Learning

El auge del Deep Learning durante los ultimos anos ha propiciado la apa-

ricion de diversas librerıas que permiten el desarrollo de modelos de Machine

Learning de una forma mucho mas simple, incluyendo incluso la implemen-

tacion de los modelos mas basicos y de los mas utilizados.

El objetivo de esta seccion es mostrar una pequena descripcion de las

librerıas mas populares en la actualidad, ası como la justificacion de las li-

brerıas elegidas.

3.3.1. SciKit-Learn

SciKit-Learn es un paquete basado en SciPy, haciendo un uso intenso

de sus operaciones matematicas. Proporciona una interfaz concisa y consis-

tente para los algoritmos de Machine Learning mas comunes, facilitando su

incorporacion en sistemas en produccion.

La librerıa combina un codigo de calidad y una buena documentacion, ası

como una sencillez de uso y un alto rendimiento. Todo esto la ha convertido

en la librerıa estandar para desarrollar modelos de Machine Learning en

Python.

3.3.2. PyTorch

PyTorch es un framework de Deep Learning para una experimentacion

rapida y flexible. Permite la computacion con tensores con una potente ace-

leracion por GPU.

36

Page 48: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Usualmente, se utiliza como sustituta a NumPy para aprovechar la po-

tencia de computo de las GPUs, proporcionando integracion con librerıas de

aceleracion de GPU como Intel MKL y NVIDIA CuDNN.

3.3.3. Theano

Theano es una librerıa que define arrays multidimensionales de una for-

ma similar a NumPy, ası como operaciones y expresiones matematicas. Se

proporciona compilada, de forma que puede ejecutarse de forma eficiente en

todas las arquitecturas.

Destaca por su estrecha integracion con NumPy a bajo nivel para sus

operaciones, ası como su optimizacion de uso de GPU y CPU, incrementando

el rendimiento para la computacion intensiva de datos. Ademas, sus ajustes

de eficiencia y estabilidad permiten obtener resultados mucho mas precisos,

incluso con valores muy pequenos.

3.3.4. TensorFlow

Desarrollada inicialmente por Google, desde la liberacion de su codigo

ha ganado popularidad rapidamente, eclipsando en gran medida a las otras

alternativas.

Se basa en grafos de computacion de flujo de datos, y destaca por su

sistema de nodos multicapa que permite un rapido entrenamiento de redes

de neuronas en grandes datasets. Ademas, se ha usado para una variedad de

aplicaciones del mundo real, como los servicios de Google para reconocimiento

de voz (Google Voice Recognition) y de identificacion de objetos en imagenes

37

Page 49: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

(Google Image Recognition).

3.3.5. Keras

Keras es una librerıa que permite construir redes de neuronas a alto nivel,

de forma sencilla y minimalista. Esta escrita en Python y permite trabajar

sobre Theano, TensorFlow y Microsoft Cognitive Toolkit (CNTK).

Keras es altamente modular y escalable, ademas de permitir el prototi-

pado rapido de redes de neuronas por su sencillez. Los datos se preparan en

tensores y sus modelos se basan en capas, con una capa para los tensores de

entrada, otra para los de salida y un numero indeterminado de capas ocultas.

Al poder utilizar varios frameworks como back-end supone una opcion

flexible, por lo que ha sido la elegida para el desarrollo del proyecto. En el

caso del back-end, hemos optado por TensorFlow, al tratarse de la opcion con

mas caracterısticas y soporte en la actualidad.

3.4. Lenguaje de programacion

La mayorıa de la documentacion encontrada relativa al diseno e imple-

mentacion de redes de neuronas estaba orientada a Python. Todas las librerıas

de uso extendido en el sector, ya sean de manipulacion de datos o de Ma-

chine Learning, son compatibles con este lenguaje, o directamente han sido

desarrolladas con el.

En adicion a la sencillez del propio lenguaje y a su sintaxis simple, que

38

Page 50: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

facilita el despliegue y mantenimiento del codigo, desde un principio se valoro

como la opcion mas adecuada para el desarrollo del proyecto.

Tambien es importante destacar que se ha optado por Python 3, ya que

es la version que mas soporte recibe en la actualidad.

3.5. Entorno de desarrollo

La eleccion del entorno de desarrollo no influye en los resultados a obtener

en el proyecto, pero sı que tiene relevancia en terminos de productividad. El

entorno debe permitir trabajar de forma sencilla y eficiente, dando facilidades

para poder hacer debugging sobre el codigo y ası localizar mas rapido los po-

sibles errores. Ademas, debe ser compatible con el lenguaje de programacion

elegido, mencionado en la seccion anterior.

Teniendo en cuenta todas estas caracterısticas, desde un principio se ha

optado por recurrir a la herramienta Jupyter Notebook. Esta nos permite

desarrollar codigo en Python dividiendolo en celdas, de forma que se pueden

ejecutar de forma independiente sin necesidad de ejecutar el script completo,

y observar la salida de cada fragmento de codigo facilmente. Cada vez que

se ejecuta una celda, se guardan sus resultados en memoria para permitir su

utilizacion en las celdas que dependan de la misma.

Ademas, otra caracterıstica por la que destaca Jupyter es por permitir

intercalar estas celdas de codigo con celdas de texto en lenguaje de marcado

Markdown. Esto permite documentar el codigo de una forma mucho mas

extensa y legible, siendo mas facil mantenerlo y escalarlo.

39

Page 51: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

3.6. Hardware

La eleccion del hardware, al contrario que el entorno de desarrollo, sı

que influye de forma crıtica en los resultados obtenidos en el proyecto. De el

dependeran la velocidad de procesamiento de los datos y de las operaciones

a realizar, ası como los recursos disponibles para el entrenamiento de la red

y la prediccion con la misma. El hardware se ha elegido en funcion de los

recursos necesarios para cada etapa del proyecto.

En primer lugar, para la fase de preprocesado, se ha recurrido a un equipo

con procesador Intel Core i5-2400 de 4 nucleos a una frecuencia de 3.1GHz

y 10GB de memoria RAM DDR3 a 1333MHz.

Para la fase de entrenamiento de la red de neuronas el procesamiento

por CPU podrıa resultar extremadamente lento debido a la utilizacion del

algoritmo de retropropagacion (backpropagation), que demanda una gran po-

tencia de computo, por lo que es recomendable recurrir a la aceleracion por

GPU. El estandar en aceleracion por GPU es la librerıa NVIDIA CUDA,

que dispone de un modulo especifico para tareas de Deep Learning llamado

CuDNN.

El equipo utilizado para la fase de preprocesado no dispone de una tar-

jeta grafica de NVIDIA, por lo que ha sido necesario recurrir a otro equipo

distinto. Este segundo equipo dispone de un procesador Intel Core i7-4510U

con 2 nucleos y 4 hilos a una frecuencia de 3.1GHz, 16GB de memoria RAM

DDR3L y una tarjeta grafica NVIDIA Geforce 840m con 2GB de VRAM

DDR3 y 384 nucleos CUDA. Este hardware ha sido suficiente para el desa-

rrollo del proyecto debido a que se desarrolla una arquitectura relativamente

simple para la red de neuronas, dado que trabajamos con un dataset pequeno.

40

Page 52: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Capıtulo 4

Diseno

Este capıtulo sirve para describir el problema a resolver y presentar la

estructura del proyecto, ası como de la arquitectura de la red de neuronas

propuesta como solucion.

4.1. Descripcion del problema

La deteccion de comandos disparadores, conocida como Keyword Spot-

ting, consiste en la distincion de determinadas palabras en una grabacion de

audio, de forma que permitan lanzar de forma automatica acciones por parte

del sistema. Por tanto, la solucion debera tomar como entrada ficheros de

audio. Si bien en un entorno real el sistema recibe un stream de audio de

forma continua, en el que se percibe ruido y palabras que no actuan como

disparadores, o que son desconocidas al sistema, en el alcance del proyecto

solo se contempla una primera aproximacion, en la cual el sistema recibe

ficheros de audio con una duracion acotada, una mınima cantidad de ruido,

y que siempre contienen uno de los comandos a reconocer por el sistema.

41

Page 53: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Fichero WAV

MFCCs Red de neuronas

“backward”

Comando reconocido

Figura 4.1: Descripcion del problema.

Para abordar la solucion del problema de una forma mas eficiente, se opta

por dividirlo en problemas de menor complejidad, que definiran las diferentes

fases del proyecto. Estas fases se exponen en los siguientes subapartados.

4.1.1. Preprocesado

Una vez introducido un fichero de audio en el sistema, este debe ser

capaz de procesarlo para extraer los atributos o features que representan el

contenido del fichero. Para ello, tiene que realizar las siguientes operaciones:

1. Preenfasis, con un coeficiente de filtro (α) de 0,97.

2. Enmarcado, con un tamano de marco de 25ms y un solapamiento de

10ms.

3. Aplicacion de la funcion de ventana de Hamming.

4. Aplicacion de la Transformada de Fourier de Tiempo Reducido (STFT ),

obteniendo el espectro de potencia.

5. Calculo de los bancos de filtros en Escala Mel, obtenidos mediante

filtros triangulares. El numero tıpico de filtros triangulares a aplicar es

de 40.

42

Page 54: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

6. Calculo de los Coeficientes Cepstrales en las Frecuencias de Mel (MFCC )

mediante la aplicacion de la Transformada Discreta del Coseno (DCT ).

Al tratarse de un problema de Reconocimiento Automatico del Habla

(ASR), nos interesa el contenido de los coeficientes cepstrales 2 a 13,

por lo que tendremos que trabajar con un total de 12.

7. Normalizacion, para equilibrar el espectro y mejorar la Relacion Senal/Ruido

(SNR)

4.1.2. Particion del dataset

El dataset Speech Commands v2 se proporciona estructurado en carpetas,

con una carpeta por cada comando a reconocer. Por tanto, el nombre de

la carpeta en la que esta contenido el fichero que se esta procesando en un

determinado momento es utilizado como la etiqueta del mismo. La utilizacion

de una etiqueta por cada fichero es necesaria debido a que trabajamos con

aprendizaje supervisado, por lo que la red de neuronas sabe de antemano

cual debe ser el valor inferido cuando se introduzcan los atributos.

La estructura en carpetas en funcion del comando nos permite tambien

hacer de forma sencilla el listado de ficheros a procesar, ignorando los co-

mandos que no se hayan contemplado. Dentro de cada carpeta, los ficheros

tienen un nombre en formato HASH nohash NUMFICHERO.wav, tomando

HASH el numero obtenido de la funcion hash aplicada al nombre del locutor

del audio, con el fin de anonimizar los datos, y NUMFICHERO el numero de

fichero de ese mismo locutor para ese comando. El HASH es utilizado, junto

con los porcentajes de particion del dataset, para determinar a que particion

43

Page 55: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

(train/dev/test) pertenece cada fichero, para lo cual se utiliza una funcion

del codigo de ejemplo proporcionado en el repositorio de TensorFlow [24].

Una vez hecha la particion de los conjuntos de entrenamiento (64 %),

validacion (16 %) y test (20 %); y obtenidos los atributos y las etiquetas de

todos los ficheros de los comandos a reconocer, se deben guardar los datos

en estructuras que permitan operar facilmente con ellos. La naturaleza de

los datos hace que la estructura ideal sean los Data Frame de la librerıa

Pandas, donde se representa cada fichero con una columna. El encabezado

de la columna toma como valor la ruta del fichero, compuesta por el nombre

de la carpeta y el nombre del propio fichero; la primera fila toma el valor

de la etiqueta, en formato string, y la segunda fila se utiliza para almacenar

los atributos extraıdos del fichero, compuesto por un vector de floats de

dimensiones 98x12.

4.1.3. Entrenamiento de la red de neuronas

Una vez preprocesado y particionado el dataset, los datos estan listos para

ser introducidos en la red de neuronas disenada para solucionar el problema

de Keyword Spotting. La arquitectura de la red queda definida en la seccion

3 de este capıtulo.

Los pesos de las conexiones entre neuronas deben modificarse para que la

red se adapte al problema propuesto. Esta fase de modificacion de los pesos

se conoce como entrenamiento, y generalmente se realiza apoyandose en el

algoritmo de retropropagacion (backpropagation).

44

Page 56: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

4.2. Estructura del proyecto

Debido a que los requerimientos de hardware de la fase de preprocesado

del dataset y de la de entrenamiento de la red de neuronas son diferentes,

se decidio separar el codigo de ambas. En adicion a la necesidad de testear

el sistema completo, nuestro planteamiento da lugar a que el proyecto se

estructure en 3 notebooks de Jupyter:

Preprocessing.ipynb Contiene todo el codigo relativo al preprocesado del

dataset, donde se toman como entrada los ficheros de audio y se obtie-

nen los MFCCs en forma de arrays de floats.

ANN-LSTM.ipynb Incluye el codigo de la red de neuronas. Toma los fi-

cheros obtenidos en el notebook anterior como entrada, hace una ultima

etapa de preprocesado para adaptar los datos al formato de entrada de

la red y, por ultimo, define la arquitectura de la misma y permite su

entrenamiento y evaluacion.

Testing-app.ipynb Sirve como plataforma para probar el funcionamiento

global del sistema desarrollado. Acepta un fichero de audio como en-

trada, realiza el preprocesado, carga la estructura y los pesos obtenidos

durante el entrenamiento de la red de neuronas, y la utiliza para inferir

el comando contenido en el fichero de audio, mostrandose este ultimo

por pantalla.

45

Page 57: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

4.3. Arquitectura de la Red de Neuronas

Para la creacion de la arquitectura de nuestra red de neuronas hacemos

uso de 2 capas de 100 y 50 celdas LSTM [28], respectivamente, a modo de capa

de entrada en el caso de la primera y de capa oculta en la segunda. En ambas

se utilizara tanh como funcion de activacion respetando el planteamiento

original de las celdas LSTM [5], ademas de aplicarse sobre ellas Dropout y

Dropout recurrente del 20 %. La capa de salida es una densamente conectada

[30] de 24 neuronas, una por cada posible clase (comando) a reconocer, todas

ellas con funcion de activacion Softmax.

La arquitectura de nuestra red neuronal queda representada por la figura

4.2.

LSTM

LSTM

LSTM

LSTM

LSTM

LSTM

Dense

Dense

Dense

input output

.

.

.

.

.

.

.

.

.

100 LSTM cells 50 LSTM cells 24 Dense units

Input layer Hidden layer Output layer

Figura 4.2: Representacion de la arquitectura de la red de neuronas.

46

Page 58: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Capıtulo 5

Experimentacion

Tomando el planteamiento del proyecto expuesto en el capıtulo ”Diseno”,

abordamos de forma secuencial las fases en las que se ha dividido el desa-

rrollo de la solucion. En este capıtulo se exponen los distintos experimentos

realizados durante cada una de las fases, con los obstaculos encontrados y la

forma en la que se han solventado.

5.1. Primer alcance: Speech Recognition

En un primer momento, se decidio plantear el proyecto para disenar un

sistema de ASR completo en ingles, es decir, capaz de reconocer frases ha-

bladas en ingles, con diferentes acentos, para obtener sus transcripciones.

De esta forma, se podıa definir un conjunto de comandos disparadores mas

amplio, ası como reconocer el resto del contenido de una frase, permitiendo

realizar una mayor cantidad de acciones.

La complejidad del proyecto era notablemente mas alta que en el segundo

alcance y, por tanto, fue necesaria una extensa fase de investigacion a fin de

47

Page 59: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

evaluar todas las posibles herramientas, arquitecturas y metricas de interes,

relacionados con las redes de neuronas de tipo LSTM [5, 6] para el desarrollo

del proyecto.

Entre los diversos datasets de libre distribucion encontrados, se decidio

optar por Mozilla Common Voice, publicado en 2017, y del que no se en-

contro ningun proyecto de investigacion basado en el. A pesar de no ser un

dataset especialmente grande, incluıa una gran cantidad de ficheros de audio

en formato WAVE, con buena calidad de sonido, con frases cortas grabadas en

ingles por locutores con diferentes acentos, obteniendo de esta forma una di-

versidad geografica de vital importancia para la capacidad de generalizacion

del sistema.

Tras unos meses trabajando con Common Voice se encontro una inciden-

cia reportada en la comunidad del proyecto, donde se exponıa que el conjunto

de datos de entrenamiento (train) tenıa solapamientos de frases y locutores

con los conjuntos de validacion (dev) y test, lo que implica que cualquier

modelo basado en este corpus tendera a sobreentrenar. El solapamiento de

frases se podıa solucionar con un simple algoritmo de busqueda para limpiar

los conjuntos, pero tras su aplicacion quedaban unicamente 9 frases para

validacion y 7 para test, insuficientes para obtener metricas de valor. No

obstante, aunque el numero de frases hubiera sido suficiente, las metricas se-

guirıan careciendo de valor por el solapamiento de locutores, que dificultarıa

la generalizacion del modelo, y que no puede solucionarse salvo revisando de

forma manual el dataset.

El origen de esta incidencia esta en el diseno del sistema de recoleccion

de frases grabadas por usuarios anonimos. Los desarrolladores han comuni-

48

Page 60: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

cado que, a fecha de 3 de abril de 2018, el problema en la recoleccion esta

resuelto. La resolucion sera efectiva para el lanzamiento de la version 2 del

dataset, en la que se tomaran todos los datos de la version 1 como conjunto

de entrenamiento.

5.2. Segundo alcance: Keyword Spotting

Tras el fracaso del anterior experimento, y al desconocerse la fecha de

lanzamiento de la version 2 del dataset, se opto por cambiar el enfoque del

proyecto para limitar el alcance al propuesto en el anteproyecto, centrandonos

en el reconocimiento de entre 20 y 30 instrucciones.

Al reducirse la complejidad, dejan de resultar interesantes los posibles

modelos en los que basarnos para la arquitectura, tales como los modelos

de atencion [25], Neural Speech Recognizer [26] o Connectionist Temporal

Classification [27]; dado que pueden disenarse arquitecturas mas simples para

resolver el problema.

Nuestra arquitectura se basa unicamente en celdas LSTM [5], comenzan-

do con un modelo lo mas simple posible y ampliandolo en funcion de los

resultados obtenidos.

Dado que se utiliza Keras con TensorFlow como backend, y se pretende

recurrir a aceleracion por GPU para el entrenamiento, se opta por utilizar

una implementacion de LSTM especıfica de Keras y optimizada para CUDA,

llamada CuDNNLSTM [29], cuyo funcionamiento es entre 3 y 6 veces mas

rapido que la implementacion tradicional de LSTM [28], siendo mayor la

diferencia de rendimiento cuanto mayor es el tamano de la red. Es importante

49

Page 61: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

destacar que esta implementacion solo funciona ejecutando sobre GPU y

TensorFlow, y que los datos de mejora de rendimiento proporcionados se

basan en afirmaciones del creador de Keras, Francois Chollet, sin haberse

aportado pruebas empıricas.

La fase completa de experimentacion se compone de 20 posibles modelos,

donde se presentaran diferentes arquitecturas o, en algunas ocasiones, varia-

ciones de las opciones activas en cada una de las capas incluidas. Todos estos

modelos tienen como factor comun una capa LSTM como entrada, sea cual

sea su implementacion [28, 29], y una capa Dense [30] de 25 neuronas (24

neuronas en los modelos 19 y 20), tantas como clases a reconocer, y funcion

de activacion Softmax, al tratarse de una red de neuronas de clases multiples.

De estos 20 modelos, dado que algunos tienen pequenas variaciones a

nivel de diseno o de resultados, unicamente se hace mencion de los que se

han considerado mas relevantes, detallandolos en los siguientes apartados.

5.2.1. Modelo 1

El primer modelo planteado tiene una arquitectura extremadamente sim-

ple, a fin de suponer una primera toma de contacto con Keras y el funciona-

miento de las capas CuDNNLSTM. Se plantea un modelo sin capas ocultas,

teniendo como capa de entrada una CuDNNLSTM de 5 celdas y la capa de

salida Dense de 25 neuronas, una por cada comando a reconocer mas la clase

desconocida, donde se engloba al resto. Se plantea entrenar una unica epoch.

Al tratarse de la primera experiencia trabajando con Keras surgieron, tal

y como estaba previsto, incidencias que impedıan la ejecucion del entrena-

50

Page 62: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

miento. La primera, y la mas grave, de las encontradas era relativa al formato

de entrada de los datos. La red no llegaba a iniciar el entrenamiento por una

contradiccion entre el formato de entrada de los datos (2D) y el formato de

entrada esperado por la red (3D). Teoricamente, los datos de entrada debıan

tener 3D, al tratarse de una matriz con una entrada por cada fichero, ca-

da una de ellas compuesta por una matriz de dos dimensiones: 98x12, 98

atributos de 12 MFCCs.

Tras analizar detenidamente los datos, se detecto que la forma en la que se

estaban consolidando los diferentes vectores durante la construccion de cada

uno de los conjuntos era la causa de la incidencia. El origen de la misma

radicaba en que se estaban tratando los arrays como objetos de tipo array, y

no como listas, por lo que la estructura en realidad no era una matriz 3D. Para

solucionar el problema fue necesario definir una nueva funcion para consolidar

los datos correctamente, llamada inputs targets split, y situada en el

notebook ANN-LSTM.ipynb.

Una vez solventado el problema con el formato de los datos de entrada,

surgio una nueva incidencia con los mismos. La funcion anterior lanzaba una

excepcion al intentar anadir la matriz de atributos a la matriz final. Tras

analizar nuevamente el conjunto de datos de entrenamiento, se observo que

habıa algunas entradas que tenıan menos de 98 atributos. Se revisaron a

mano algunos de los ficheros que mostraban esta anomalıa y se descubrio

que eran ficheros de audio incompletos, en los cuales se habıa finalizado la

grabacion antes de tiempo y no se habıa recogido por completo el comando

correspondiente. Se soluciono el problema filtrando estos ficheros dentro de

la propia funcion inputs targets split, de forma que cuando se intentaba

anadir una matriz sin exito, se guardaba la posicion del vector anomalo en

51

Page 63: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

una lista. Al terminar el procesado de datos de entrada, se eliminaban las

posiciones pertinentes de la lista de objetivos (targets).

Despues de esta ultima modificacion, se consiguio realizar el primer entre-

namiento de la red. Las metricas obtenidas carecen de relevancia pues, como

hemos expuesto inicialmente, el objetivo de este modelo era la familiarizacion

con Keras y el funcionamiento de las capas CuDNNLSTM.

5.2.2. Modelo 7

En los modelos 2 a 7 se fueron anadiendo unidades (celdas) a las capas

CuDNNLSTM, se aumento el numero de epochs a ejecutar a 25, configurando

una parada anticipada (EarlyStop) tras 1 epoch sin mejora de la precision

en validacion (val acc), y se aumento el tamano de lote (batch size) del

valor por defecto (32) a 64. Estos modelos tenıan la finalidad de observar

la variacion de las metricas a medida que se aumentaba tanto el numero de

capas como el tamano de las mismas.

El modelo 7 presenta una arquitectura con la capa de entrada de 50 uni-

dades CuDNNLSTM, dos capas ocultas CuDNNLSTM, con 50 y 25 unidades

respectivamente, y la capa de salida Dense de 24 neuronas. El modelo en-

treno durante 12 epochs antes de hacer una parada anticipada, obteniendose

los resultados mostrados en la tabla 5.1.

Metrica Entrenamiento Validacion TestPrecision (acc) 73,4 % 72,5 % 68,2 %Perdida (loss) 0,77 0,84 0,92

Tabla 5.1: Resultados del modelo 7.

52

Page 64: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 5.1: Metricas del modelo 7.

Con los datos anteriores se puede concluir que, si bien se consigue au-

mentar la precision de la red, esta no termina de aprender correctamente,

viendose reflejado en los altos valores de la perdida.

5.2.3. Modelo 15

En los modelos 8 a 15 se continuo aumentando las dimensiones de la red,

en busca de validar si se conseguıa mejorar los resultados de los modelos

anteriores.

53

Page 65: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

El modelo 15 tiene 200 unidades en su capa CuDNNLSTM de entrada,

ası como en las 5 capas CuDNNLSTM ocultas, y 25 unidades en la capa

Dense de salida. Ademas, se decidio utilizar capas de Dropout [31], con una

ratio del 20 % (0,2), a modo de regularizacion para probar si tenıan algun

efecto positivo en el entrenamiento de la red. Se ejecuto durante 17 epochs

antes de realizar una parada anticipada, donde se obtuvieron los resultados

mostrados en la tabla 5.2.

Metrica Entrenamiento Validacion TestPrecision (acc) 83,7 % 70,5 % -Perdida (loss) 0,45 1,04 -

Tabla 5.2: Resultados del modelo 15

Los resultados anteriores muestran un claro sobreentrenamiento (overfit-

ting), dada la varianza entre la perdida en entrenamiento y validacion. No se

muestran datos de test debido a que, tras ver graficamente los signos de over-

fitting, se decidio parar la ejecucion de forma manual. Se identifico como posi-

ble causa un valor demasiado alto en la tasa de aprendizaje (learning rate),

siendo por defecto de 0,001, para el tamano del dataset utilizado. Se decidio

reducirlo a 0,00001 para los siguientes modelos.

Tambien se decidio incrementar el numero de epochs sin mejora en la

precision de validacion antes de hacer la parada anticipada, pasando de 1

a 5; y el numero total de epochs, situandolo en valores los suficientemente

altos como para dar tiempo a converger al modelo, tomando como referen-

cia el numero de epochs antes de la parada anticipada del anterior modelo

entrenado.

54

Page 66: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 5.2: Metricas del modelo 15.

5.2.4. Modelo 18

Los cambios expuestos en el apartado anterior se aplicaron sobre el mo-

delo 17, observando unos resultados muy pobres al no llegar a converger la

grafica de la perdida. Se determino que se debıa a que el valor de la tasa de

aprendizaje era demasiado bajo, por lo que en el modelo 18 paso a ser de

0,0001. Tambien se planteo que podrıa resultar util la utilizacion de capas

de Dropout [31] como regularizacion de la red, de forma que se mitigase el

sobreentrenamiento.

Sin embargo, se identifico un punto crıtico que podrıa estar provocando

el sobreentrenamiento. Hasta ese momento, el entrenamiento se realizaba

con 25 posibles clases, por todos los comandos mas el desconocido. La clase

55

Page 67: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

’unknown’ contenıa las 10 clases restantes del dataset, provocando que este

no estuviera equilibrado al haber muchas mas muestras (samples) de esta

clase que del resto, lo que supone una causa del overfitting.

Ante la situacion anterior, se decidio preprocesar el dataset de nuevo,

ignorando en este caso todos los comandos que no fueran a ser reconocidos,

pues el ser capaces de reconocerlos como ’unknown’ no garantizaba que el

modelo fuera capaz de generalizar ante cualquier palabra que no se encontrase

entre los comandos a reconocer.

En adicion a lo anterior, se decidio seguir las pautas de ajuste de hiper-

parametros (hyperparameter tuning) recomendadas por los desarrolladores

de la librerıa DeepLearning4J [8], adaptando el tamano de la red de forma

que el numero de parametros a entrenar por la red fuera proximo al numero

de muestras que componıan el conjunto de datos de entrenamiento. Por todo

ello, se decidio volver al enfoque inicial de disenar una arquitectura lo mas

simple posible, para aumentarla en funcion de los resultados obtenidos.

Se planteo el modelo de 18 como una red de una unica capa CuDNNLSTM

de 100 unidades, ademas de la capa Dense de salida, con 24 unidades; dan-

do lugar a 48024 parametros entrenables, frente a las 49313 muestras que

componen el conjunto de entrenamiento. La red entreno durante 212 epochs,

habiendose establecido el maximo en 1000, antes de la paradada anticipada,

y mostraba los resultados de la tabla 5.3, sin haber llegado a converger.

Metrica Entrenamiento Validacion TestPrecision (acc) 56,7 % 46,3 % 44,9 %Perdida (loss) 1,46 1,85 1,92

Tabla 5.3: Resultados del modelo 18.

56

Page 68: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 5.3: Metricas del modelo 18.

Las mesetas que podemos observar en las graficas de la figura 5.3 se

deben a que TensorBoard toma como parametros para graficar la fecha y

hora absolutas de ejecucion de cada epoch, y el entrenamiento se ejecuto

en dos etapas: epochs 1 a 100 (azul) y epochs 101 a 212 (rojo). Podemos

observar la evolucion de ambas etapas por separado en la figura 5.3.

Estos resultados mostraban que seguıa habiendo un problema de varianza,

por la diferencia entre los resultados de entrenamiento y validacion/test, y

un evidente sobreentrenamiento a pesar de haber equilibrado el dataset.

57

Page 69: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 5.4: Metricas relativas del modelo 18.

5.2.5. Modelo 19

Tras concluir como fallidas todas las pruebas anteriores, mostrando so-

breentrenamiento y sin conseguir corregirlo, se vio la necesidad de aplicar

tecnicas de regularizacion sobre las capas CuDNNLSTM. Se decidio comen-

zar aplicando un Dropout del 20 % (0,2), pero se observo que este solo podıa

aplicarse sobre la salida de cada capa LSTM hacia la siguiente, introduciendo

una capa Dropout [31] entre ellas.

Ante esta situacion, se decidio cambiar el tipo de capa a utilizar, dado

que la implementacion clasica de LSTM [28] permite un mayor numero de

parametros a controlar, entre ellos la aplicacion de Dropout y de Dropout

recurrente, ademas de tratarse de una implementacion ampliamente probada,

58

Page 70: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

al contrario que la CuDNNLSTM.

El modelo 19 tiene una arquitectura igual al modelo 18, pero cambiando la

capa CuDNNLSTM por LSTM, y anadiendole Dropout y Dropout recurrente

de 0,2. Se obtuvieron resultados satisfactorios en cuanto al sobreentrenamien-

to, pues desaparecio completamente. El entrenamiento se ejecuto durante 148

epochs antes de la parada anticipada, obteniendose los resultados de la tabla

5.4.

Metrica Entrenamiento Validacion Testprecision (acc) 46,9 % 54,8 % 52,9 %perdida (loss) 1,8 1,53 1,63

Tabla 5.4: Resultados del modelo 19

Observamos en los resultados que, si bien habıa desaparecido el sobreen-

trenamiento, el modelo presentaba falta de adaptacion (underfitting), proba-

blemente causada por tratarse de un modelo demasiado simple.

59

Page 71: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 5.5: Metricas del modelo 19.

5.2.6. Modelo 20

El modelo anterior mostraba resultados positivos, pero tambien falta de

complejidad para poder adaptarse al problema planteado, por lo que se de-

cidio anadir una capa LSTM mas a fin de comprobar la evolucion de las

metricas obtenidas.

El modelo 20 se compone de dos capas LSTM, la primera con 100 celdas

y la segunda con 50, ademas de la capa Dense de salida con 24 neuronas.

En ambas se utiliza tanh como funcion de activacion, la usada por defec-

to, respetando la implementacion original; y se aplica Dropout y Dropout

recurrente de 0,2.

60

Page 72: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Los resultados obtenidos quedan recogidos en la tabla 5.5. En esta ocasion,

la convergencia se alcanza con buenas metricas, por lo que concluimos que

el modelo es capaz de aprender y lo tomamos como una solucion valida al

problema planteado.

Metrica Entrenamiento Validacion TestPrecision (acc) 76,8 % 82,7 % 78,7 %Perdida (loss) 0,75 0,57 0,69

Tabla 5.5: Resultados del modelo 20

Figura 5.6: Metricas del modelo 20.

En la figura 5.6 podemos observar los resultados del entrenamiento por las

graficas generadas por TensorBoard. Estas graficas se generan distribuidas en

61

Page 73: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

el tiempo, a ello se deben las mesetas que se pueden observar en las mismas,

ya que el entrenamiento no se completo en una unica ejecucion debido a la

limitada disponibilidad del equipo utilizado.

En la figura 5.7 podemos observar los datos relativos de las 3 ejecuciones,

donde se ve el avance del entrenamiento omitiendo las mesetas. El entrena-

miento completo necesito 183 epochs y 21 horas para completarse.

Figura 5.7: Metricas relativas del modelo 20.

62

Page 74: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

5.2.7. Pruebas

Hemos abordado el desarrollo del proyecto dividiendolo en fases, de forma

que ya hemos comprobado de forma independiente que funcionan el preproce-

sado y el entrenamiento del modelo, obteniendo las metricas de su funciona-

miento. No obstante, debemos finalizar el desarrollo del proyecto con una fase

de pruebas, en la cual comprobemos el funcionamiento del proceso completo

de la solucion propuesta, desde la ingesta de ficheros de audio hasta la salida

del comando reconocido para cada fichero. Esta fase esta implementada en

el notebook Test-app.ipynb.

A fin de agilizar la fase de pruebas, tomamos 2 ficheros de cada clase

a reconocer del dataset. Estos ficheros fueron elegidos de forma aleatoria, y

se pueden encontrar en la carpeta /test app samples del directorio raiz del

fichero que contiene la implementacion del presente Trabajo de Fin de Grado.

Los ficheros estan distribuidos de igual forma que en el dataset original,

dividiendose por carpetas en funcion del comando contenido en el fichero.

La ejecucion de las pruebas concluye con 6 ficheros mal clasificados de

los 47 que componen el conjunto de datos definido para este fin, suponiendo

aproximadamente un 12,8 % del total. Al tratarse de un conjunto notable-

mente mas pequeno que el dataset completo no podemos comparar los por-

centajes de error, no obstante, nos sirve para validar que el modelo funciona

correctamente en la mayor parte de los casos.

En la tabla 5.6 podemos observar que, entre los 6 ficheros mal clasifica-

dos, 2 de ellos son del mismo locutor (37dca74f), y en ambos la prediccion

es three. En futuras iteraciones del proyecto serıa de utilidad analizar los

resultados en todos los ficheros de los locutores que aparecen en esta tabla,

63

Page 75: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Figura 5.8: Muestra de la salida de la ejecucion de Test-app.ipynb.

pues recordemos que los ficheros han sido elegidos al azar, y esta coincidencia

con el locutor 37dca74f nos lleva a plantear la hipotesis de que algunos de

los fallos encontrados podrıan deberse a pronunciaciones singulares, con poca

representacion en el dataset.

Fichero Etiqueta Prediccion37dca74f nohash 2 zero three5ebc1cda nohash 5 six right37dca74f nohash 1 eight threebdd22e4d nohash 4 forward oneff4ed4f3 nohash 1 no nine5f9cd2eb nohash 4 learn go

Tabla 5.6: Ficheros mal clasificados en la fase de pruebas.

64

Page 76: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

5.3. Evaluacion de resultados

Los resultados obtenidos, si bien no alcanzan el estado del arte, no se

alejan en exceso. Tomamos como referencia los resultados expuestos en el

paper de publicacion de la version 2 del dataset [23], donde se reporta una

precision de test del 88,2 % al realizar entrenamiento y test con esa version.

No obstante, cabe destacar que los resultados del paper original y los

obtenidos en este proyecto no son del todo equiparabales pues, en primer

lugar, el tipo de red de neuronas utilizado es diferente, al haber recurrido

a celdas LSTM frente a la red convolucional utilizada en el paper original,

donde se recurrio a la arquitectura ofrecida por defecto para Keyword Spotting

en TensorFlow [32]. Ademas, tampoco se han utilizado las mismas metricas,

ya que el paper original implementa caracterısticas que quedan fuera del

alcance de nuestro proyecto, al trabajar directamente sobre streams de audio,

utilizando como metrica Top-One Error en lugar de accuracy.

En adicion a lo anterior, el objetivo del proyecto era evaluar las capaci-

dades de las redes LSTM, y no alcanzar de forma imperativa el estado del

arte actual. No obstante, quedan pendientes ampliaciones del proyecto para

evaluar si es posible mejorar los resultados mediante, por ejemplo, la inclu-

sion de tecnicas de regularizacion, la variacion de la funcion de activacion de

las celdas LSTM o el aumento de dimensiones de la red.

65

Page 77: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Capıtulo 6

Conclusiones

Las celdas LSTM muestran un buen funcionamiento para Keyword Spot-

ting. A pesar de haber logrado una precision menor que los datos de referencia

[23], no se considera que se haya explotado al maximo el potencial de esta

tecnologıa, por lo que se espera obtener resultados similares a los logrados

con redes convolucionales en futuras iteraciones del proyecto.

Al contrario de lo previsto al principio del proyecto, la fase mas compleja

del mismo no ha sido el diseno y entrenamiento de la red de neuronas sino la

eleccion y el preprocesado del dataset. Esto se vio especialmente acentuado

con la necesidad de pivotar en el alcance del proyecto, pasando de un sistema

de Reconocimiento Automatico del Habla en el que podrıamos identificar

comandos a un sistema de Keyword Spotting, debido a los fallos de diseno

presentados por el dataset Mozilla Common Voice y al plazo restante para

la entrega del proyecto.

Una vez cambiado el alcance del proyecto, tambien encontramos proble-

mas en la preparacion de los datos para su ingesta al modelo en la fase de

entrenamiento, al tener que construir las estructuras de datos (DataFrames

66

Page 78: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

de Pandas, arrays n-dimensionales de NumPy) con los resultados obtenidos

por la fase de preprocesado de audio.

A pesar de haber planteado menos problemas de los esperados, tambien

ha sido necesario lidiar con la tendencia al sobreentrenamiento de las celdas

LSTM, aunque en este caso se ha solucionado simplemente con la inclusion

de tecnicas de regularizacion y mediante experimentacion con las diferentes

arquitecturas planteadas para la red de neuronas.

La fase de investigacion previa al proyecto fue extensa debido al descono-

cimiento del funcionamiento de la mayorıa de las tecnologıas y herramientas

utilizadas. En adicion a tratarse del primer proyecto de estas caracterısticas

que realizamos, y a los problemas que ha habido que afrontar, se puede con-

cluir que el proyecto ha permitido una notable mejora respecto a nuestro nivel

de partida, suponiendo una base de experiencia que, sin duda alguna, sera de

gran utilidad en futuros proyectos a realizar en el ambito de la Inteligencia

Artificial.

67

Page 79: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Capıtulo 7

Futuros Proyectos

El presente proyecto pretende suponer la primera iteracion para un fu-

turible asistente virtual que funcione de forma similar Alexa o Siri. En esta

seccion, detallamos algunas de las vıas de ampliacion del alcance del proyecto

desarrollado.

7.1. Streams de audio con ruido

La siguiente iteracion a realizar sobre la base ya desarrollada serıa la

capacidad de reconocer comandos contenidos en streams de audio de longitud

indeterminada, pudiendo incluirse varios comandos en un mismo stream.

Idealmente, estos streams tambien contendrıan ruido de fondo, a fin de

lograr entrenar la red en un entorno lo mas similar posible al real, donde

los comandos se reconocerıan en un stream continuo obtenido mediante el

microfono de un dispositivo, como por ejemplo un smartphone, pudiendo

estar el usuario en la calle o en cualquier lugar publico, ya que no es comun

que este se encuentre en un entorno libre de ruido.

68

Page 80: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

7.2. Integracion con una aplicacion final

Tras anadir la capacidad de reconocimiento de los comandos en streams

de audio con ruido, el siguiente paso natural serıa la integracion del sistema

con una aplicacion final en plataformas que pudieran resultar de interes, tales

como iOS y Android.

Esta integracion tendrıa como finalidad el poder utilizar el sistema en

tiempo real en un entorno no controlado, pudiendo medir ası de forma defi-

nitiva su efectividad, ası como poder ofrecer un servicio a los usuarios a pesar

de la limitacion del numero de instrucciones.

7.3. Aumento del conjunto de comandos

En relacion con la seccion anterior, llegado cierto punto de madurez de la

solucion resultarıa de utilidad anadir nuevos comandos al conjunto actual, a

fin de anadir mas funcionalidades al asistente y poder integrar la aplicacion

final con aplicaciones de terceros.

Este cambio de alcance podrıa abordarse bien con un dataset mas gran-

de, continuando con el planteamiento de Keyword Spotting, o bien retomar

el planteamiento de Reconocimiento Automatico del Habla (ASR). Lo mas

conveniente serıa optar por el ASR, dado que nos permitirıa reconocer tantos

comandos como quisieramos, mejorando ası la escalabilidad del sistema; ası

como por la disponibilidad de un mayor numero de datasets.

69

Page 81: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

7.4. Comparativa de arquitecturas

Con una finalidad mas orientada a la investigacion, serıa deseable com-

parar con otros modelos los resultados obtenidos unicamente haciendo uso

de LSTM, una vez hayamos conseguido explotar al maximo su potencial.

Entre estos modelos, se podrıa evaluar los resultados que se obtengan con

una combinacion de LSTM con Redes de Neuronas Convolucionales (CNN),

en las que se basa la arquitectura del paper que hemos tomado como refe-

rencia [23, 32]; redes LSTM bidireccionales, en las cuales no solo se tiene

en cuenta el contexto pasado (de estados anteriores) sino tambien el futuro

(estados siguientes) [33]; el desempeno de modelos de atencion [25], o de las

mas recientes Grid LSTM [34].

70

Page 82: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

Bibliografıa

[1] Goodfellow, I., Bengio, Y. and Courville, A. 2017. Deep learning. Cam-

bridge, Mass: The MIT Press.

[2] McClelland, C. 2017. The Difference Between Artificial Intelligence,

Machine Learning, and Deep Learning. Medium [en lınea]. [Consulta:

7 febrero 2018]. Disponible en: https://medium.com/iotforall/the-

difference-between-artificial-intelligence-machine-learning-and-deep-

learning-3aa67bff5991.

[3] Iris Dataset. UCI Machine Learning Repository [en lınea]. [Consulta: 28-

05-2018]. Disponible en: http://archive.ics.uci.edu/ml/datasets/Iris.

[4] Fisher,R.A. 1936. The use of multiple measurements in taxonomic pro-

blems. Annual Eugenics, 7, Part II, pp. 179-188.

[5] Hochreiter, S. and Schmidhuber, J. 1997. Long Short-Term Memory. Neu-

ral Computation. Vol. 9, pp. 1735-1780.

[6] Colah, C. 2015. Understanding LSTM Networks. GitHub [en lınea]. [Con-

sulta: 19-02-2018]. Disponible en: http://colah.github.io/posts/2015-08-

Understanding-LSTMs/.

[7] Grosse, R. Lecture 15: Exploding and Vanishing Gradients.

71

Page 83: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

[8] A Beginner’s Guide to Recurrent Networks and LSTMs. Dee-

plearning4j.org [en lınea]. [Consulta: 10-05-2018]. Disponible en:

https://deeplearning4j.org/lstm.html.

[9] Duchi, J., Hazan, E., and Singer, Y. 2011. Adaptive Subgradient Methods

for Online Learning and Stochastic Optimization. Journal of Machine

Learning Research, 12, 2121-2159

[10] Ruder, S. 2017. An overview of gradient descent optimization algorithms.

arXiv:1609.04747

[11] Kingma, D. P., and Ba, J. L. 2015. Adam: a Method for Stochastic Op-

timization. International Conference on Learning Representations, 1–13.

[12] Zeiler, M. D. 2012. ADADELTA: An Adaptive Learning Rate Method.

arXiv:1212.5701.

[13] Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I. and Salakhutdi-

nov, R. 2014. Dropout: A Simple Way To Prevent Neural Networks from

Overfitting. Journal of Machine Learning Research, 15, 1929-1958.

[14] Regularization for simplicity: L2 Regularization. Machine Learning

Crash Course with TensorFlow API [en lınea]. [Consulta: 19-03-2018].

Disponible en: https://developers.google.com/machine-learning/crash-

course/regularization-for-simplicity/l2-regularization.

[15] Fayek, H. 2016. Speech Processing for Machine Learning: Filter

banks, Mel-Frequency Cepstral Coefficients (MFCCs) and What’s In-

Between. Haythamfayek.com [en lınea]. [Consulta: 24-02-2018]. Dispo-

nible en: http://haythamfayek.com/2016/04/21/speech-processing-for-

machine-learning.html.

72

Page 84: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

[16] Garofolo, John S., et al. TIMIT Acoustic-Phonetic Continuous Speech

Corpus LDC93S1. Web Download. Philadelphia: Linguistic Data Consor-

tium, 1993.

[17] Garofolo, John, et al. CSR-I (WSJ0) Sennheiser LDC93S6B. Web Down-

load. Philadelphia: Linguistic Data Consortium, 1993.

[18] CSR-II (WSJ1) Sennheiser LDC94S13B. DVD. Philadelphia: Linguistic

Data Consortium, 1994.

[19] A. Rousseau, P. Deleglise, and Y. Esteve. 2012. ”TED-LIUM: an au-

tomatic speech recognition dedicated corpus”, in Proceedings of the

Eighth International Conference on Language Resources and Evaluation

(LREC’12).

[20] Panayotov, V., Chen, G., Povey, D., and Khudanpur, S. 2015. Libris-

peech: an asr corpus based on public domain audio books. In Acoustics,

Speech and Signal Processing (ICASSP), 2015 IEEE International Con-

ference, pp. 5206-5210. IEEE.

[21] VoxForge Repository [en lınea]. [consulta 15-02-2018]. Disponible en:

http://www.repository.voxforge1.org/downloads/SpeechCorpus/Trunk/.

[22] Mozilla Common Voice Dataset [en lınea]. [consulta 17-02-2018]. Dispo-

nible en: http://voice.mozilla.org/.

[23] Warden, P. 2018. Speech Commands: A Dataset for Limited-Vocabulary

Speech Recognition.

73

Page 85: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

[24] Repositorio de Speech Commands para TensorFlow en GitHub, fichero

input data.py. GitHub [en lınea]. [consulta 18-04-2018]. Disponible

en: https://github.com/tensorflow/tensorflow/blob/master/tensorflow

/examples/speech commands/input data.py.

[25] Chan, W., Jaitly, N., Le, Q. V., and Vinyals, O. 2015. Listen, Attend

and Spell. arXiv:1508.01211

[26] Soltau, H., Liao, H., Sak, H. 2016. Neural Speech Recognizer: Acoustic-

to-Word LSTM Model for Large Vocabulary Speech Recognition. ar-

Xiv:1610.09975

[27] Graves, A., Fernandez, S., Gomez, F., and Schmidhuber, J. 2006. Con-

nectionist Temporal Classification: Labelling Unsegmented Sequence Da-

ta with Recurrent Neural Networks.

[28] LSTM Layer. Keras Documentation [en lınea]. [Consulta: 20-04-2018].

Disponible en: https://keras.io/layers/recurrent/#lstm.

[29] CuDNNLSTM Layer. Keras Documentation [en lınea]. [Consulta: 20-04-

2018]. Disponible en: https://keras.io/layers/recurrent/#cudnnlstm.

[30] Dense Layer. Keras Documentation [en lınea]. [Consulta: 20-04-2018].

Disponible en: https://keras.io/layers/core/#dense.

[31] Dropout Layer. Keras Documentation [en lınea]. [Consulta: 10-05-2018].

Disponible en: https://keras.io/layers/core/#dropout.

74

Page 86: TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORESoa.upm.es/51541/1/TFG_JUAN_MANUEL_VICENTE_CABERO.pdf · TRABAJO DE FIN DE GRADO GRADO EN INGENIER IA DE COMPUTADORES Sistema

[32] Sainath, T. N. and Parada, C. 2015. Convolutional Neural Net-

works for Small-Footprint Keyword Spotting. Sixteenth Annual Con-

ference of the International Speech Communication Association.

[en lınea]. [Consulta: 10-05-2018]. Disponible en: https://www.isca-

speech.org/archive/interspeech 2015/papers/i15 1478.pdf.

[33] Graves, A. and Schmidhuber, J. 2005. Framewise Phoneme Classification

with Bidirectional LSTM and Other Neural Network Architectures.

[34] Kalchbrenner, N., Danihelka, I. and Graves, A. 2015. Grid Long Short-

Term Memory.

75