UNIVERSIDAD TECNOLÓGICA...
Transcript of UNIVERSIDAD TECNOLÓGICA...
a
b
UNIVERSIDAD TECNOLÓGICA EQUINOCCIAL
FACULTAD DE CIENCIAS DE LA INGENÍERIA
CARRERA DE INFORMÁTICA Y CIENCIAS DE LA
COMPUTACIÓN
PROTOTIPO QUE PERMITA EL ABRIR Y CERRAR UNA PUERTA
POR MEDIO DE LA VOZ UTILIZANDO REDES NEURONALES
TRABAJO PREVIO A LA OBTENCIÓN DE TÍTULO DE INGENÍERA EN
INFORMÁTICA Y CIENCIAS DE LA COMPUTACIÓN
LUCÍA ALEXANDRA CAHUATIJO CACHAGO
DIRECTOR: ING. RODRIGO PROAÑO
Quito, Julio, 2013
c
© Universidad Tecnológica Equinoccial. 2013
Reservados todos los derechos de reproducción
d
DECLARACIÓN
Yo, Lucía Alexandra Cahuatijo Cachago, declaro que el trabajo aquí descrito es
de mi autoría; que no ha sido previamente presentado para ningún grado o
calificación profesional; y, que he consultado las referencias bibliográficas que
se incluyen en este documento.
La Universidad Tecnológica Equinoccial puede hacer uso de los derechos
correspondientes a este trabajo, según lo establecido por la Ley de Propiedad
Intelectual, por su Reglamento y por la normativa institucional vigente.
_______________________________
Srta. Lucía Alexandra Cahuatijo Cachago
C.I. 171913611-9
e
CERTIFICACIÓN
Certifico que el presente trabajo que lleva por título “Prototipo que permita el
abrir y cerrar una puerta por medio de la voz utilizando redes neuronales”,
que, para aspirar al título de Ingeniera Informática y Ciencias de la
Computación fue desarrollado por Lucía Alexandra Cahuatijo Cachago, bajo
mi dirección y supervisión, en la Facultad de Ciencias de la Ingeniería; y cumple
con las condiciones requeridas por el reglamento de Trabajos de Titulación
artículos 18 y 25.
_________________________
Ing. Rodrigo Proaño
DIRECTOR DEL TRABAJO
C.I. 170854904-1
f
AGRADECIMIENTO
Antes que todo le agradezco a Dios por estar siempre conmigo y fortalecerme
en los momentos más difíciles, agradezco a la vida por haberme dado la
oportunidad de nacer en un lugar donde aún existe un contacto directo con la
naturaleza.
A mis padres por el gran sentido de responsabilidad y profesionalismo que
siempre tratan de formar en mí y a mis hermanos por ser la razón de ser mejor
cada día; ellos son mi familia, mis hermanos en Cristo y la mayor bendición que
Dios me supo brindar, todo lo que estoy logrando se lo debo a su amor y sus
oraciones.
“Mira que te mando para que te esfuerces y seas valiente, no temas ni
desmayes….”
Josué 1:9
Un agradecimiento muy especial a mis amigas y por siempre compañeritas
Lore, Verito, Cris, Majo, Lupita, a quienes quiero mucho y aprecio a “full”. A mi
director Rodrigo Proaño y a cada docente que formó parte de mi instrucción
universitaria quienes con su apoyo incondicional me han sabido orientar e
instruir, muchas gracias por compartir parte de sus conocimientos y
experiencias.
Pero por sobre todo me agradezco a mí mismo, porque sé que no pierdo la fé ni
la esperanza para conseguir mis metas a pesar de que en mi bolsillo siempre
ha reinado el vacío.
“Gracias Totales”
g
DEDICATORIA
Quiero dedicar este escrito e investigación a toda mi familia, de manera muy
especial a mis padres José Cahuatijo y Marcelina Cachago por su amor,
comprensión y apoyo que cada día me brindan.
Dedico también a todos mis hermanos Pablo, Adriana, Diana y Paquita por la
confianza que tienen en mi y porque siempre apoyan mis decisiones,…
finalmente ¡ Como olvidar a mi sobrinita Anahí !, también la incluyo en esta
dedicatoria como una parte muy importante.
Ésta es mi familia la cuál fue, es y será siempre mi fuente de inspiración para
muchos proyectos y metas por cumplir.
i
ÍNDICE DE CONTENIDOS
PÁGINA
RESUMEN ix
SUMMARY x
1. INTRODUCCIÓN 1
1.1. OBJETIVO GENERAL 4
1.2. OBJETIVOS ESPECÍFICOS 4
1.3. ESTADO DEL ARTE 4
2. MARCO TEÓRICO 8
2.1. TEORÍA DEL SONIDO 9
2.1.1. CARACTERÍSTICAS FUNDAMENTALES DE LAS ONDAS
SONORAS 10
2.1.1.1. La Frecuencia 10
2.1.1.2. La Amplitud 11
2.1.1.3. Periodo 12
2.1.2. PRODUCCIÓN DEL SONIDO DE VOZ 12
2.1.3. FORMATOS DE ARCHIVOS DE SONIDO 13
2.1.3.1. Formato Wave 14
2.1.4. REPRESENTACIÓN DE LA SEÑAL DE SONIDO 15
2.1.4.1. Sonido Analógico 15
2.1.4.2. Sonido Digital 16
2.2. PROCESAMIENTO DEL SONIDO 17
2.2.1. CUADRO DE FUNCIONAMIENTO DE UNA TARJETA DE
SONIDO 19
2.2.2. MUESTREO 23
2.2.2.1. Tamaño o formato de la muestra 21
2.2.3. CUANTIFICACIÓN 24
2.2.3.1. Tipos de cuantificación 25
ii
2.2.4. CODIFICACIÓN 26
2.3. REDES NEURONALES ARTIFICIALES – RNA 26
2.3.1. RED NEURONAL BIOLÓGICA 27
2.3.2. ¿QUÉ ES UNA RED NEURONAL ARTIFICIAL? 28
2.3.3. ARQUITECTURA DE UNA RED NEURONAL ARTIFICIAL 31
2.3.4. MODELO DE REDES NEURONALES 31
2.3.4.1. El aprendizaje supervisado 32
2.3.4.2. El aprendizaje no supervisado 32
2.3.5. PERCEPTRÓN SIMPLE 32
2.3.6. REGLA DELTA –LMS 34
2.3.7. RED BACKPROPAGATION 34
2.3.7.1. Regla de aprendizaje del backpropagation 37
2.3.8. CUADRO COMPARATIVO 40
2.3.9. ¿POR QUÉ EMPLEAMOS LAS REDES NEURONALES? 42
2.3.9.1. Ventajas de las redes neuronales 42
2.3.9.2. Desventajas de las redes neuronales 44
2.4. RECONOCIMIENTO DE VOZ 45
2.4.1. PRE-PROCESAMIENTO DEL SONIDO (VOZ) 46
2.4.1.1. Normalización 46
2.4.2. EXTRACCIÓN DE CARACTERÍSTICAS 47
2.4.2.1. Momentos invariantes de HU 48
2.4.3. ENTRENAMIENTO 49
2.4.4. RECONOCIMIENTO 49
2.5. CIRCUITO ELECTRICO 50
2.5.1. MICROCONTROLADOR PIC18F4550 50
2.5.2. ENCAPSULADO DE PIC18F4550 53
2.5.2.1. Cuadro Operativo del PIC18F4550 54
2.5.3. SERVOMOTORES 57
3. METODOLOGÍA 59
3.1. METODOLOGÍA PROPUESTA 61
iii
3.1.1. PLANIFICACIÓN - DESCRIPCIÓN DEL SISTEMA 65
3.1.1.1. Captura del Comando de voz 66
3.1.1.2. Procesamiento de la voz 67
3.1.1.3. Entrenamiento y Reconocimiento 69
3.1.1.4. Requerimientos de Herramientas de Software 69
3.1.1.5. Requerimiento de Hardware 72
3.1.2. ANALISIS DE RIESGOS 72
3.1.3. INGENIERIA 73
3.1.4. EVALUACION 73
3.1.4.1. Método de prueba “Caja Negra” 74
4. ANÁLISIS DE RESULTADOS 76
4.1. PLANIFICACIÓN 77
4.1.1. FACTIBILIDAD DEL SISTEMA 77
4.1.1.1. Factibilidad Técnica 77
4.1.1.2. Factibilidad Económica 78
4.1.2. CASOS DE USO DEL SISTEMA 78
4.2. ANALISIS DE RIESGOS 88
4.3. INGENIERIA 89
4.3.1. DIAGRAMA GENERAL DE PROCESOS 90
4.3.2. DISEÑO DE LA BASE DE DATOS 91
4.3.3. DIAGRAMA DE CLASES Y CODIGO FUENTE 96
4.4. EVALUACION 115
5. CONCLUSIONES Y RECOMENDACIONES 119
5.1.1. CONCLUSIONES 120
5.1.2. RECOMENDACIONES 121
GLOSARIO 123
BIBLIOGRAFÍA 126
ANEXOS 129
iv
ÍNDICE DE FIGURAS
PÁGINA
Figura 1. Ondas de Sonidos emitidas por un Diapasón 9
Figura 2. Ondas de mayor y menor frecuencia 10
Figura 3. Ondas de menor y mayor amplitud 11
Figura 4. Periodo de una onda sonora 12
Figura 5. Sistema vocal Humano 13
Figura 6. Formato de Controles del Sistema LAC 14
Figura 7. Sonido Analógico-Grabación 16
Figura 8. Señal Digitalizada 17
Figura 9. Diagrama de una Tarjeta de Sonido 18
Figura 10. Neurona Biológica 27
Figura 11. Estructura del cerebro humano 28
Figura 12. Neurona Artificial 29
Figura 13. Diagrama de la Arquitectura de la RNA 31
Figura 14. Perceptrón Simple 33
Figura 15. Arquitectura de una Red Backpropagation 36
Figura 16. Arquitectura de una red Backpropagation en un reconocedor de
voz 39
Figura 17. Invariantes Propuestas por HU 49
Figura 18. Pines del Microcontrolador PIC18F4550 53
Figura 19. Servomotor 58
Figura 20. Modelo Espiral 62
Figura 21. Diagrama General del Sistema 65
Figura 22. Frecuencia de Muestreo del Sistema LAC. 66
Figura 23. Tamaño de muestra del Sistema LAC. 67
Figura 24. Ingreso de datos a la neurona del Sistema LAC. 68
Figura 25. Estructura de Filtrado de la señal 69
v
Figura 26. Diagrama de Actores del Sistema 79
Figura 27. Casos de Uso Procesamiento- Reconocimiento 80
Figura 28. Diagrama de Secuencias Procesamiento - Reconocimiento 81
Figura 29. Diagrama de Flujo de Inf. Procesamiento - Reconocimiento 82
Figura 30. Casos de Uso Entrenamiento RNA 83
Figura 31. Diagrama de Secuencia – Entrenamiento RNA 84
Figura 32. Flujo de Información – Entrenamiento RNA 85
Figura 33. Flujo de Información – Reconocimiento de la Señal 86
Figura 34. Diagrama de bloques – Circuito Eléctrico 87
Figura 35. Diagrama General de Procesos del Sistema 90
Figura 36. Diagrama de Base de Datos 92
Figura 37. Diagrama de clases – Generar Señal 97
Figura 38. Código Fuente de la Clase Generar Señal 98
Figura 39. Diagrama de clases – AudioFrame 99
Figura 40. Código Fuente de la Clase AudioFrame 100
Figura 41. Diagrama de Clases – Entrenamiento 104
Figura 42. Código Fuente de la Clase Entrenamiento 105
Figura 43. Diagrama de Clases – Neurona 106
Figura 44. Código Fuente de la Clase Neurona 107
Figura 45. Diagrama de Clases – Configuración 108
Figura 46. Código Fuente de la Clase Configuración 109
Figura 47. Ingreso de muestras a la base de datos del Sistema LAC. 110
Figura 48. Reconocimiento en forma manual del Sistema LAC. 111
Figura 49. Diagrama de Clases – Conexión USB 112
Figura 50. Código Fuente de la Clase Conexión USB 113
Figura 51. Diagrama de Clases General del Sistema 114
Figura 52. Gráfica de error 117
Figura 53. Procesamiento de la señal 118
Figura 54. Ventana principal de instalación del firmware 134
Figura 55. Ventana que indica que no existe el dispositivo instalado 135
vi
Figura 56. Ventana de direccionamiento de la carpeta del driver para la
respectiva instalación. 135
Figura 57. Ventanas del proceso de instalación del firmware 136
Figura 58. Ventana que indica que el dispositivo ha sido instalado 137
Figura 59. Ventana de Bienvenida al sistema LAC. 139
Figura 60. Ventana principal del sistema LAC. 140
Figura 61. Menú del Sistema LAC. 141
Figura 62. Ventana de configuración de la Red Neuronal 141
Figura 63. Ventana de configuración USB del Sistema LAC. 142
Figura 64. Ventana de configuración SQL del Sistema LAC. 143
Figura 65. Opción cerrar el sistema LAC. 143
Figura 66. Ventana de ingreso de muestras a la Neurona 144
Figura 67. Características de la señal de audio y la grafica de la señal 144
Figura 68. Ingreso de muestras a la BBDD del sistema LAC. 145
Figura 69. Guardar muestras en la BBDD del sistema LAC. 146
Figura 70. Ingreso exitoso de la muestra en la BBDD 146
Figura 71. Ventana con datos de autor del Sistema LAC. 147
vii
ÍNDICE DE TABLAS
PÁGINA
Tabla 1. Funcionamiento de una Tarjeta de Sonido 19
Tabla 2. Cuadro Comparativo de información 40
Tabla 3. Características internas del Microcontrolador USB PIC18F4550 53
Tabla 4. Cuadro Operativo del Microcontrolador PIC18F4550 54
Tabla 5. Etapas del Modelo Espiral 62
Tabla 6. Cuadro de las Características del Archivo del Ejemplo 68
Tabla 7. Presupuesto de realización del prototipo 78
Tabla 8. Tabla de Riesgos del Sistema 88
Tabla 9. Diagrama de entidades 93
Tabla 10. Tabla de Atributos de la Base de Datos 94
Tabla 11. Atributos de la entidad Neurona 95
Tabla 12. Atributos de la entidad Configuración 96
Tabla 13. Muestras para el vector de características 102
Tabla 14. Cuadro de entrada a las neuronas 103
Tabla 15. Cuadro de pruebas con diferentes Usuarios 116
viii
ÍNDICE DE ANEXOS
PÁGINA
ANEXO 1
Instrucciones 130
ANEXO 2
Instalación del Firmware para conectar PIC18F4550 a la PC vía USB 133
ANEXOS 3
Manual de Usuario 138
ix
RESUMEN
Este proyecto se basó principalmente en el entrenamiento por medio de Redes
Neuronales Artificiales de los comandos emitidos por un usuario para abrir o
cerrar una puerta, por ende para para el tratamiento de la voz se utilizó una
placa de procesamiento digital de sonido con la finalidad de adquirir los valores
característicos de la voz, donde se identificaron los puntos y segmentos
(frames) que influyen al momento de pronunciar una palabra.
Para automatizar el proceso de reconocimiento de la palabra emitida se utilizó
la red neuronal Backpropagation como motor de inferencia.
x
SUMMARY
This project relies primarily on training through ANN of commands issued by
user to open or close a door, for the processing techniques have been used
digital sound processing plate for the acquisition of values characteristic of the
voice, where have been identified the points and segments (frames) that
influence the moment to pronounce a word.
To automate the recognition process was used a Backpropagation neuronal
network inference engine.
1
INTRODUCCIÓN
2
1. INTRODUCCIÓN
La neuro-computación es una aportación más al objetivo de crear sistemas
inteligentes, considerando como tales a máquinas capaces de llevar a cabo el
reconocimiento de palabras que en sí es una de las características asociadas a
la inteligencia humana. En las últimas décadas, los avances en este campo han
sido desafiantes; en particular el desarrollo de las Redes Neuronales Artificiales
(RNA) basados en el reconocimiento de patrones ha llegado a romper muchas
de la limitaciones que hace años atrás eran obstáculo. El reconocimiento ha ido
basándose en la medición de propiedades fisiológicas del cuerpo humano como
son las huellas digitales, el iris del ojo y también palabras. Cabe recalcar que el
reconocimiento de las palabras se diferencia del resto, en que la voz no tiene
alguna característica que pueda ser considerada como única y en que la
representación matemática de las señales de voz es considerada como un
proceso aleatorio, lo cual modifica drásticamente el problema de
reconocimiento, pues las huellas digitales o el iris del ojo, son considerados en
general como patrones gráficos fijos, al igual que otros como la forma de la cara
o la de las manos, etc.
La voz es parte integral de nuestras vidas. Las personas con capacidades
físicas y mentalmente normales e incluso con capacidades disminuidas como
los invidentes, utilizan la voz como el principal medio de comunicación ya que el
habla puede comunicar necesidades inmediatas.
Entonces por qué no desarrollar un sistema que interactúe por medio de la voz
y permita “abrir” o “cerrar” una puerta, dirigido a las personas anteriormente
mencionadas, brindándoles de esta manera mayor eficiencia de funcionalidad
en puertas automáticas y aprovechando al máximo las ventajas de
comunicación más rápida y agradable para los nuevos usuarios que cada día
los utilizan, haciendo de este prototipo una herramienta fuerte y adaptable a una
3
necesidad cotidiana, por lo que se opta desarrollar un sistema que por medio
de la palabra “abrir” o “cerrar” ejecute los comandos mencionados y abra o
cierre una puerta de manera automática.
Para el desarrollo de este proyecto se establecen los siguientes alcances:
* Se trabajará con API que se adapten al microprocesador PIC 18F4550
que se va a utilizar y al algoritmo de entrenamiento de la Red Neuronal.
* Las tonalidades de voz que una persona puede emitir son diferentes
dependiendo el estado de ánimo, por lo que se empleará como si fuesen
muestras distintas.
* Se hará un análisis de los modelos que exponen las redes neuronales
artificiales (RNA), se identificará cuál de estos modelos propuestos se
ajusta con las expectativas que debe alcanzar el proyecto. El modelo a
estudiar es Backpropagation.
* Se realizará un procesamiento de señales de audio utilizando librerías
propias de C# y estrategias algorítmicas de mejoramiento de señales.
* La aplicación consta de procesos tal como: captura de datos,
entrenamiento de la red, reconocimiento de patrones, ejecución de
comandos.
* Este proyecto contará con una base de datos externa para el
almacenamiento de las diferentes muestras.
* El sistema será una aplicación de escritorio con interfaz simple.
4
1.1. OBJETIVO GENERAL
Desarrollar un prototipo que por medio de la voz permita abrir o cerrar
una puerta de manera automática, con la utilización de redes
neuronales.
1.2. OBJETIVOS ESPECÍFICOS
* Investigar diferentes herramientas de desarrollo con la finalidad
de determinar la más adecuada para la elaboración de este
proyecto.
* Analizar la tecnología de Redes Neuronales Artificiales (RNA) y
su aplicación general al reconocimiento de patrones en especial
al reconocimiento de patrones de señales de voz.
* Escoger uno de los modelos de Redes Neuronales Artificiales
(RNA) que sea acorde al proyecto para el reconocimiento de
patrones de una señal de voz digitalizada con un buen nivel de
certeza y con un potencial de mejoramiento. Entre estos se
encuentra el modelo Backpropagation (Retropropagación).
* Desarrollar un sistema que interprete y ejecute cada uno de los
comandos pronunciados (“abrir”, “cerrar”).
* Realizar pruebas de validación al sistema utilizando el método de
prueba de “caja negra”, para asegurar un correcto
funcionamiento.
1.3. ESTADO DEL ARTE
Al desarrollar aplicaciones con sistemas inteligentes tal como lo es un
reconocedor de voz se debe tomar en cuenta que los mismos no están
exentos de errores, por lo que las interfaces de estas aplicaciones que
5
comienzan a tener éxito se caracterizan por ser simples, es decir de uso
simple para el usuario, se debe considerar que el sistema a desarrollar
debe tener la capacidad de reconocer las palabras añadidas al
vocabulario. A la hora de desarrollar un sistema reconocedor de voz, el
programador debe tomar en cuenta las siguientes inquietudes:
¿Cuál es el grado de exactitud del sistema que espera el
usuario?
¿Es adecuado el grado de exactitud del sistema de reconocedor
a utilizar con relación a las expectativas del usuario?
¿Es realmente beneficioso, costo y satisfacción del usuario, el
uso de un sistema de reconocedor comparado con otras
tecnologías alternativas?
El campo de aplicaciones de los sistemas reconocedores de voz es muy
amplio, pero básicamente existen tres áreas donde el volumen de uso va
creciendo exponencialmente tal como: servicios de telecomunicación,
sistemas de control, sistemas de entrada de datos y acceso a base de
datos. Normalmente se utilizan para tareas bien definidas y con un
vocabulario y sintaxis bastante restringida lo que permite que:
* La unidad elemental de reconocimiento suele ser la palabra.
* Solamente un grupo reducido de palabras tienen que ser
reconocidas en un instante de tiempo.
* Normalmente es aceptable el estilo de habla mediante palabras
aisladas
Bajo estas clausulas actualmente pueden encontrarse en el mercado
varios software de reconocimiento de voz con mucha trayectoria, es
6
decir que trabajan con tasas de reconocimiento superiores al 98% con
palabras aisladas.
Una de las aplicaciones más inmediatas de los sistemas de
reconocimiento como interfaz hombre-máquina es la ayuda a
discapacitados físicos, mediante comandos orales se pueden controlar
muchas de las funciones cotidianas, tenemos como ejemplos en fase de
experimentación, la silla de ruedas controlada por medio de la voz,
camas hospitalarias, la activación oral de aparatos y sistemas
domésticos, entre otros. La activación por medio de la voz de aparatos y
sistemas domésticos, incluida dentro del campo de la domótica, tiene
como objetivo el controlar a estos mediante comandos orales a través
de un sistema de diálogo, los sistemas de reconocimiento utilizados en
este tipo de aplicaciones suelen ser de palabras aisladas, de modo que
se entrena el sistema con la voz del usuario.
Un sueño que comienza a ser realidad es la máquina de escribir oral, es
decir, un sistema de conversión de voz a texto con un vocabulario muy
grande ( > 5000 palabras) que puede transcribir habla natural sin
restricciones a texto. Este tipo de reconocedores de voz se están
desarrollado en la actualidad y ya se pueden encontrar en explotación
comercial alguna de ellos. Ejemplos de los mismos son los sistemas
comercializados por Dragon Systems e IBM, que permite reconocer un
vocabulario de hasta 60000 palabras trabajando sobre un PC, utilizando
un sistema de adaptación al usuario de modo que no es necesario un
entrenamiento del mismo. El sistema aprende de forma interactiva el
estilo de habla del usuario y reconoce palabras aisladas con
separaciones entre palabras de un cuarto de segundo. Con este
sistema se puede llegar a crear un texto a una velocidad de hasta 120
palabras por minuto. Actualmente se pueden adquirir en el mercado
7
productos como teléfonos, juguetes, radio cassete de auto, teléfonos
móviles para autos, grabadores de vídeo, agendas personales que
incorporan un sistema sencillo de reconocimiento de voz para controlar
las funciones más elementales de dichos productos, el desarrollo de los
mismos se basan en cálculos matemáticos de markov y cálculo de
los coeficientes cepstrales de Mel , por ende el costo de cada uno es
bastante competitivo, dependiendo del sistema operativo, sus API’s
están disponibles en cada una de las plataformas realizadas.
Con el auge de Internet, han aparecido ya navegadores que incorporan
tecnologías del habla. En concreto existen navegadores que permiten
realizar la navegación por voz, solo hace falta pronunciar los enlaces y
permiten igualmente una interacción con el usuario utilizando un
conversor texto - voz. Un ejemplo es el navegador WebConversa.
El estudio e integración de las redes neuronales es importante para el
desarrollo de esta aplicación por lo que se basa en el reconocimiento de
patrones y de esta manera se obtiene un aprendizaje continuo, por
medio de este estudio abrimos paso a una parte del estudio de la
domótica dando como resultado sistemas inteligentes, el reconocedor
LAC a diferencia del resto de aplicaciones se basa en la implementación
de redes neuronales conjuntamente con el microcontrolador
PIC18F4550, sistemas que como mencionamos anteriormente están en
fase de experimentación y prueba, para salir al mercado actual.
8
MARCO TEÓRICO
9
2. MARCO TEÓRICO
El mundo está rodeado de sonidos de diferentes intensidades y procedencias,
los mismos que estimulan el sentido del oído humano. A continuación se
expone todos aquellos parámetros de importancia en la propagación,
transmisión y recepción del sonido en un computador, seguido de su respectivo
procesamiento digital y del proceso de reconocimiento de patrones de señales,
de manera que nos permita aclarar cualquier duda futura.
2.1. TEORIA DEL SONIDO
“El sonido es una vibración que se propaga a través del aire, gracias a que las
moléculas del aire transmiten la vibración hasta que llega a nuestros oídos”
(Artículo Jalejos, 2011). Esta vibración propagada en el aire se denomina
perturbación y cuando se produce una perturbación se originan ondas sonoras
longitudinales que se desplazan en un medio elástico. Dicho desplazamiento
tiene una velocidad de propagación que al igual que el sonido tiene una
velocidad de transmisión a través del aire de aproximadamente 340 m/s,
dependiendo de factores tales como la presión atmosférica, temperatura, etc.
La siguiente gráfica nos muestra las vibraciones físicas emitidas al golpear un
diapasón.
Figura 1. Onda de Sonido emitida por un Diapasón (Artículo Jalejos, 2011).
10
2.1.1. CARACTERÍSTICAS FUNDAMENTALES DE LAS ONDAS SONORAS
Cuando se escucha un sonido procedente de un instrumento musical se
puede apreciar varias de sus características, se nota si el sonido es fuerte
o débil. Existe una serie de características que permiten identificar y
diferenciar unos sonidos de otros. Entre las principales para el desarrollo de
este proyecto, se resume en las siguientes:
La Frecuencia
“Es el número de oscilaciones que una onda efectúa en un determinado
intervalo de tiempo” (Artículo Jalejos, 2011). La unidad con la cual se mide
la frecuencia se llama hertzios (Hz) y equivale a un ciclo por segundo. El
tono de un sonido está directamente relacionado con la frecuencia, siendo
el tono una característica perceptiva que se capta en los sonidos periódicos
donde se determina si el sonido es más agudo (vibraciones muy rápidas) o
más grave (vibraciones lentas).
Figura 2. Ondas de mayor y menor Frecuencia (Artículo Jalejos, 2011).
El oído humano es capaz de percibir sonidos entre 20 Hz y 20 KHz, éste
margen auditivo varía según la edad de las personas y otros factores. Las
11
frecuencias en un alto nivel pueden ocasionar daños en el oído por
exposición a ruidos muy fuertes, por lo que se debe tomar precauciones.
La Amplitud
Es la distancia entre las posiciones extremas (altura de la onda) es decir
por encima y por debajo de la línea central de la onda de sonido. Esta
línea es llamada también cero grados y equivale a “silencio”.
La amplitud significa la intensidad o volumen del sonido, si las amplitudes
son pequeñas se obtiene como resultado sonidos leves pero si las
amplitudes son grandes los sonidos serán fuertes o intensos.
Figura 3. Ondas de menor y mayor Amplitud (Artículo Jalejos, 2011)
La amplitud se mide habitualmente en decibeles (dB). El umbral de
audición varía entre 0 dB y 130 dB, cabe recalcar que los sonidos
superiores a 110 dB producen sensación dolorosa y la permanente
exposición a altos niveles de amplitud provoca la disminución de la
capacidad auditiva.
12
La amplitud que se utiliza en este proyecto dependerá de los datos
tomados de la grafica que se forma al pronunciar el comando.
Periodo
Es un parámetro directamente relacionado con la frecuencia. “El periodo
define el tiempo que tarda la onda sonora en completar un ciclo de su
recorrido.” (Artículo Jalejos, 2011). El periodo se mide en segundos.
Figura 4. Periodo de una onda sonora (Artículo Jalejos, 2011).
2.1.2. PRODUCCIÓN DEL SONIDO DE VOZ
Se puede decir que la producción y emisión de los sonidos verbales se
debe a la acción o funcionamiento secuenciado y sincronizado de los
siguientes elementos:
* Una corriente de aire o fuente de energía, la cual es producida
por los pulmones y los músculos respiratorios.
* Un órgano vibrador, constituido por las cuerdas vocales que se
encuentran en la laringe.
13
* Una caja de resonancia, conformada por la boca, la nariz y la
garganta.
* Articuladores, conformados por los labios, dientes, paladar
duro, velo del paladar y la mandíbula.
En la Figura 5., se aprecia el sistema vocal humano con sus elementos:
Figura 5. Sistema vocal Humano (GA, 2003)
El proceso empieza en los pulmones con la respiración del aire, el mismo
que al llegar a las cuerdas vocales genera en ellas un movimiento
vibratorio, produciéndose la voz en su tono fundamental; luego sufre una
modificación en la caja de resonancia de la nariz, la boca y garganta, en
la que se amplifica y se forma el timbre de voz, finalmente los
articuladores se encargan de moldear esa columna sonora,
transformándola en sonidos como fonemas, sílabas y palabras.
2.1.3. FORMATOS DE ARCHIVOS DE SONIDO
Históricamente, cada modelo de computador o programa definió su
propio formato para almacenar la información de sonido. Algunos de
14
estos formatos han perdurado y se han convertido en los más empleados
actualmente como por ejemplo los archivos con formatos .au, .voc, .wav,
.mp3, .midi, .ra, etc.
Formato WAVE
Wave (onda) es un formato de archivo originario de Microsoft Windows
3.1 (1995). Tiene normalmente la extensión (.wav), y se refiere a la forma
que tiene la representación gráfica del sonido. Este formato trata de
almacenar las muestras una tras otra indicando la frecuencia de
muestreo, sin ningún tipo de compresión de datos y con cuantificación
uniforme.
Los usuarios de Windows prefieren utilizar este formato para el
almacenamiento de sonidos por su flexibilidad para el tratamiento digital
del sonido por ende se puede manipular su grabación en distintas
frecuencias de muestreo además recalca la calidad y tamaño tal como
11,02 KHz, 22,05 KHz o 44,1 KHz.
Figura 6. Formato de Controles
(Pantalla capturada del sistema Reconocedor LAC)
15
2.1.4. REPRESENTACIÓN DE LA SEÑAL DE SONIDO
Una señal de sonido puede estar representada principalmente de forma
análoga o digital:
Sonido Analógico
“El Sonido Analógico es aquel que se almacena, procesa y reproduce
gracias a circuitos electrónicos y otros dispositivos de carácter analógico,
así tenemos por ejemplo la cinta magnética (en casette o en
bobina).”(Jordá Puig, Sergi, 1997).
El procesamiento del sonido analógico funciona de la siguiente manera:
las ondas producidas por la voz corresponden a un sonido analógico es
decir a una onda sinusoidal continua compuesta por varias ondas con
distintas frecuencias, las mismas que son captadas por un micrófono,
éste convierte la vibración de las ondas emitidas en una señal eléctrica
que viaja por un cable hasta el aparato grabador.
El frecuente uso conlleva a un desgaste del material al igual que la
duplicación del sonido en formato analógico siempre genera una pérdida
de calidad. Es más, si se realizan sucesivas copias o duplicaciones, se
producen pérdidas de calidad cada vez mayores.
En la Figura 7., se observa gráficamente este proceso:
16
Figura 7. Sonido Analógico – Grabación, (Jordá Puig, Sergi, 1997).
Sonido Digital
“Al sonido digital se lo almacena, procesa y reproduce en soportes
digitales, en forma de datos numéricos es decir con datos binarios (1,0).
Existen varios dispositivos de almacenamiento de sonido digital tales
como: CD-Audio, CD-ROM, DVD, discos duros, disquettes, incluso la
cinta de vídeo, etc.”(Sergi Jordá, 2003).
La captación del sonido por el micrófono es igual que en el caso
analógico, pero la señal eléctrica u onda emitida, esta vez es procesada
por medio de un convertidor analógico-digital para la obtención de datos
numéricos (binarios). Esta tarea es realizada varias veces por segundo
generando lo que se llama Muestreo Digital del Sonido (sampling).
17
Figura 8. Señal Digitalizada. (Sergi Jordá, 2003).
2.2. PROCESAMIENTO DIGITAL DEL SONIDO
El procesamiento digital es un área que ha venido desarrollándose en los
últimos años gracias a la fabricación de circuitos integrados con gran potencial
tecnológico, lo que ha permitido un significativo logro en aplicaciones como las
telecomunicaciones, imágenes, audio, etc.
“El principio fundamental de la señal digital consiste en discretizar las señales
sonoras continuas (como las captadas por un micrófono) para convertirlas en
secuencias de números.” (Chion, Michel, 1999). Para trabajar con sonidos en la
computadora hay que transformar los sonidos en datos digitales utilizando una
placa de sonido. En la actualidad hay muchas maneras de digitalizar una señal
así como por ejemplo utilizando un conversor A/D (Análogo/Digital – de 16 o 32
bits), una grabadora digital o un software que tenga este propósito.
Para tener una idea más clara, en la Figura 9., se presenta el funcionamiento
de una tarjeta de sonido la misma que puede ser de tipo PCI, ISA, PCMCIA,
USB:
18
3 1 2 4 6 8 5 7
Figura 9. Diagrama de una Tarjeta de Sonido (Sergi Jordá, 2003).
19
2.2.1. CUADRO DE FUNCIONAMIENTO DE UNA TARJETA DE SONIDO
Tabla 1. Funcionamiento de una Tarjeta de Sonido (Sergi Jordá, 2003).
N° Parte NOMBRE FUNCIÓN OBSERVACIONES
1
Buffer
(RAM)
La función del buffer es
almacenar temporalmente los
datos que viajan entre la
máquina y la tarjeta. Por
ejemplo, si la CPU no envía
un dato a tiempo, la tarjeta
puede seguir reproduciendo
lo que tiene en el buffer; si lo
datos llegan demasiado
rápido, se van guardando.
Lo mismo pasa en
sentido inverso.
Muchos ordenadores
realizan la transmisión
por DMA (Acceso
directo a la memoria).
Esto permite
transportar los datos
entre la tarjeta y la
memoria directamente,
sin la intervención de la
CPU, lo cual le ahorra
trabajo.
2
DSP
Procesador de señal digital,
es un pequeño
microprocesador que efectúa
cálculos y tratamientos sobre
la señal de sonido, liberando
así a la CPU de ese trabajo.
Entre las tareas que realiza
se incluye compresión (en la
grabación) y descompresión
(en la reproducción) de la
señal digital.
También puede
introducir efectos
acústicos tales como
coros, reverberación,
etc., a base de
algoritmos.
20
Tabla 1. A continuación...
3
ADC
Conversor
analógico‐digital, se encarga
de transformar la señal de
sonido analógica en su
equivalente digital.
Esto se lleva a cabo mediante
tres fases: muestreo,
cuantificación y codificación.
Este proceso de
muestreo vamos a
llevar a cabo en este
proyecto para
transformar una señal
de voz analógica a una
señal de voz digital.
4
DAC
Conversor digital-analógico
su misión es reconstruir una
señal analógica a partir de su
versión digital.
El circuito genera un nivel de
tensión de salida de acuerdo
con los valores que recibe, y
lo mantiene hasta que llega el
siguiente.
En consecuencia se produce
una señal escalonada, pero
con la suficiente frecuencia
de muestreo puede reproducir
fielmente la original.
En este caso el
proyecto no llevará a
cabo este paso ya que
no va responder a un
comando con una
señal de voz sino con
un comando de
ejecución.
21
Tabla 1. A continuación...
5
Sintetizador
FM
La síntesis por modulación
de frecuencias implementa
uno de los métodos para
sintetizar sonido a partir de
información simbólica (MIDI).
Con esto se pueden
conseguir formas de onda
complejas con múltiples
armónicos, que es lo que
define el timbre.
El tono y volumen del
sonido deseado los
determinan la
frecuencia y la amplitud
de la onda.
Da más flexibilidad y
por tanto más
expresividad a la
generación de ondas, a
la vez que permite
someter la señal a
tratamiento digital.
6
Sintetizador
Tabla de
Onda
La síntesis mediante tabla
de ondas es un método
alternativo al FM. En vez de
generar sonido de la nada,
utiliza muestras grabadas de
los sonidos de instrumentos
reales. Estas muestras están
almacenadas en formato
digital en una memoria ROM
incorporada, aunque también
pueden estar en memoria
principal y ser modificables.
Alternativamente, este
proceso puede ser
llevado a cabo
enteramente por
software, ejecutado por
la CPU con muestras
almacenadas en disco
y un algoritmo
apropiado (códec de
audio).
22
Tabla 1. A continuación...
Este componente puede tener
una salida analógica o digital,
aunque es preferible la
segunda.
En general el sonido
resultante es de mayor
calidad que el de la síntesis
FM.
Esta técnica es muy
utilizada porque
permite abaratar el
costo de la tarjeta.
7
Mezclador
El mezclador tiene como
finalidad recibir múltiples
entradas, combinarlas
adecuadamente, y
encaminarlas hacia las
salidas.
Tanto las entradas
como las salidas
pueden proceder de la
tarjeta o del exterior.
El mezclador suele
trabajar con señales
analógicas, aunque
también puede manejar
digitales (S/PDIF).
8
Conectores
Los Conectores son los
elementos físicos en los que
deben conectarse los
dispositivos externos, los
cuáles pueden ser de entrada
o de salida.
Los conectores más
utilizados para las
tarjetas de sonido a
nivel de usuario son los
mini jack al ser los más
económicos.
23
Con el diagrama anterior y el cuadro de funcionamiento de la tarjeta de
sonido se puede aclarar la manera de digitalizar una señal análoga, por
ende para obtener la digitalización de un sonido es necesario seguir los
siguientes pasos:
* muestreo (sampling),
* cuantificación y
* codificación.
2.2.2. MUESTREO
La palabra muestreo es equivalente del término inglés sampling, se
concreta en la toma de valores binarios de una señal continua en
sucesivos instantes de tiempo (segundos).
El teorema de Nyquist-Shannon dice: “La frecuencia de muestreo
mínima requerida para realizar una grabación digital de calidad, debe ser
igual al doble de la frecuencia de audio de la señal analógica que se
pretenda digitalizar o grabar.” (Thomas D. Kite, 2001).
Un muestreo de conversión analógica - digital implica la pérdida de
alguna información originalmente existente en la señal. Para evitar este
problema, es preciso que la información perdida sea inaudible, lo cual se
soluciona eligiendo la frecuencia de muestreo de modo tal que el ancho
de banda resultante incluya todas las señales audibles. Esto corresponde
a un máximo de 20 KHz (20000 muestras por segundo). La tasa de
muestreo debe ser entonces mayor de 40 KHz (40000 muestras por
segundo) y por razones prácticas se ha adoptado una tasa de muestreo
normalizada a 44100 Hz.
24
A medida que aumenta la frecuencia de muestreo, aumenta la calidad del
sonido. Por ejemplo si se emite un comando de voz a una frecuencia de
8000 Hz es bueno para una voz masculina, pero no lo es para una voz
femenina, que tiene componentes con una frecuencia más alta. Una vez
finalizado el muestreo se debe proceder a la digitalización de la señal.
Tamaño ó formato de la Muestra
El tamaño de muestra es el componente de mayor influencia en la
calidad del sonido digital ya que representa el número de bytes
utilizados para almacenar cada muestra.
“Las tarjetas de sonido de 16 bits (2 bytes) ofrecen la posibilidad de elegir
entre un tamaño de muestra de audio digital de 8 bits (1 byte) o de 16
bits (2 bytes).” (V. Garcia – UCM, 1991).
2.2.3. CUANTIFICACIÓN En la cuantificación el rango total de la amplitud de la señal continua se
divide en número finito de sub-rangos, y las amplitudes de las ondas que
están en el mismo sub-rango se asignan al mismo valor de amplitud.
Para cuantificar una señal con K bits, el número de niveles (sub-rangos)
que garantiza la mayor eficiencia en el uso de las palabra en código
binario es 2K. Normalmente se usan sub-rangos del mismo tamaño, y K
suele tomar los valores 8 ó 16 bits (1 ó 2 bytes).
La diferencia entre el valor muestreado después de la cuantificación y el
valor original analógico se conoce como error de cuantificación.
25
Tipos de Cuantificación
Para minimizar los efectos negativos del error de cuantificación, se
utilizan distintas técnicas de cuantificación:
1. Cuantificación uniforme o lineal: Se utiliza un bit rate constante. A
cada muestra se le asigna el valor inferior más próximo,
independientemente de lo que ocurra con las muestras adyacentes.
2. Cuantificación no uniforme o no lineal: Un cuantificador no
uniforme permite adaptarse a las variaciones de la señal por medio
de un análisis de la entropía de la señal analógica y se asignan
niveles de cuantificación de manera no uniforme de tal modo que se
asigne un mayor número de niveles para aquellos márgenes en que
la amplitud del voltaje cambia más rápidamente.
3. Cuantificación logarítmica: Se hace pasar la señal por un
compresor logarítmico antes de la cuantificación. Como en la señal
resultante la amplitud del voltaje sufre variaciones menos abruptas la
posibilidad de que se produzca un ruido de cuantificación grande
disminuye. Antes de reproducir la señal digital, esta tendrá que pasar
por un expansor.
4. Cuantificación vectorial: En lugar de cuantificar las muestras
obtenidas individualmente, se cuantifica por bloques de muestras.
Cada bloque de muestras será tratado como si se tratara de un
vector, de ahí, el nombre de esta tipología.
El cuantificador lineal es ideal para estudiar muestras de voz; dónde los
datos tienden a ser irregulares y variantes. Con estos datos se forma una
26
matriz de puntos en la wave (forma) de la señal de voz que ingresa.
Estos datos nos sirven para extraer el vector de características de la
señal emitida por el usuario y de esta manera analizarla con el método
respectivo neuronal para su previo reconocimiento.
2.2.4. CODIFICACIÓN
La codificación consiste en asignar un código binario de K bits a cada
uno de los sub - rangos de la cuantificación. Existen múltiples formas de
realizar la codificación que presentan distintas soluciones a distintos
problemas, ya sean de recuperación de errores en la transmisión,
procesamiento matemático, entre otros.
“El número de niveles (N) determina la precisión del análisis y, por tanto,
el número de bits (b) necesarios para la presentación digital de cada
muestra:
Teniendo en cuenta la relación de Nyquist se puede determinar el flujo
de información, en bits por segundo. La codificación es el resultado del
proceso combinado de muestreo y cuantificación.” (Esparza Arellano
María Elena, Avalos Briseño Benito, 2003).
2.3. REDES NEURONALES ARTIFICIALES (RNA)
Las Redes Neuronales Artificiales (RNA) o Artificial Neural Networks (ANN) han
ido desarrollándose con el pasar del tiempo en la vida tecnológica
computacional hasta convertirse actualmente en un gran desafío en el proceso
de imitar la capacidad de aprendizaje humana.
27
Se conoce que el cerebro humano es el mejor sistema de razonamiento,
aprendizaje e independencia, convirtiéndose de esta manera en una sofisticada
computadora de funcionamiento complejo, capaz de aprender sin necesidad de
que se le proporcione instrucciones ya que todo su conocimiento y aprendizaje
se basa en la experiencia y en un sentido común.
2.3.1. RED NEURONAL BIOLÓGICA
El punto de partida en el estudio del cerebro lo podríamos fijar por el
año 1888 cuando Santiago Ramón y Cajal demuestra que el sistema
nervioso en realidad estaba formado por una red de células individuales
llamadas neuronas, las mismas que se encontraban interconectadas
entre sí.
Figura 10. Neurona Biológica (Rodrigo Salas, 1987)
Santiago Ramón y Cajal estableció también que la información fluye en
la neurona desde la dendrita (canal de entrada de información), hacia el
axón (órgano de computo), atravesando el soma ó cuerpo (canal de
salida). La unión entre dos neuronas se llama sinapsis.
28
2.3.2. ¿QUÉ ES UNA RED NEURONAL ARTIFICIAL?
Existen muchas definiciones sobre Redes Neuronales Artificiales, pero
entre ellas se puede mencionar las siguientes definiciones:
* “Una Red Neuronal Artificial es un ensamblaje de nodos
interconectados, cuya funcionalidad está basada en el
funcionamiento de la neurona humana. La capacidad de
procesamiento de la red es representada por las fuerzas de
conexión (pesos) entre los nodos, obtenidos por un proceso de
aprendizaje mediante un conjunto de patrones de
entrenamiento.” (Federico Carnevale, 2010).
* “Es una nueva forma de computación, inspirada en modelos
biológicos del ser humano en especial del sistema nervioso,
utilizando modelos matemáticos y estadísticos que solucionen
determinada tarea o función, emulando de esta manera el
funcionamiento del cerebro humano.” (Hilera, Martínez, 2010).
Figura 11. Estructura del cerebro humano (S. Y. Kung, 1993)
29
En sí, las Redes Neuronales Artificiales vienen a ser un sistema
computacional que trata de imitar el comportamiento y funcionamiento
del cerebro humano, en particular del sistema nervioso, con la intención
de construir sistemas de procesamientos de la información paralelos,
distribuidos y adaptativos que puedan presentar un cierto
comportamiento “inteligente” y que tengan la habilidad de adaptarse a
un medio determinado y aprender del mismo, ayudando al ser humano
a resolver problemas complejos y ofreciendo soluciones robustas y de
fácil implementación.
En la Figura 12., se muestra una neurona artificial y sus componentes:
Figura 12. Neurona Artificial (Pedro Isasi Viñuela,
Inés Galván León, 2003)
Como se puede observar, una neurona artificial se parece a la célula
neuronal biológica. Además trabaja del mismo modo.
* Un conjunto de entradas jX y unos pesos sinápticos ( ijW , con j
= 1,…….., n.) que determinan el comportamiento de la neurona.
30
Estas conexiones pueden ser excitadoras (presentan un signo
positivo), o inhibidoras (conexiones negativas).
* Una regla de propagación o función de red, definida a partir del
conjunto de entradas ( jX ) y los pesos sinápticos ( ijW ). Es decir
las entradas multiplicadas por el peso o valor de las conexiones.
* Una función de activación, la cual representa simultáneamente
la salida de la neurona y su estado de activación. Es quizás la
característica principal o definitoria de las neuronas, la que mejor
define el comportamiento de las mismas. Se usan diferentes
tipos de funciones desde simples funciones de umbral a
funciones no lineales, así tenemos por ejemplo:
* Función Escalón
* Función Lineal y Mixta
* Función Sigmoidal
* Función Gaussiana
* Una función de conexiones ponderadas, hacen el papel de las
conexiones sinápticas. El peso de las conexiones equivale a la
fuerza o efectividad de la sinapsis. La existencia de conexiones
determina si es posible que una unidad influya sobre otra, el valor
de los pesos y el signo de los mismos definen el tipo
(excitadoras/inhibidoras) y la intensidad de la influencia.
* Salida, calcula la salida de la neurona en función de la activación
de la misma, aunque normalmente se aplica el cálculo de la
función identidad y se toma como salida el valor de la activación.
31
2.3.3. ARQUITECTURA DE UNA RED NEURONAL ARTIFICIAL
“Una vez establecido el comportamiento de una neurona artificial, se
conectan las neuronas entre sí con el fin de formar una red de
computación.” (La Muñoz Santa - 2002). La información dada a la red
neuronal, mediante su capa de entrada, es propagada capa tras capa
hasta la capa de salida, a través de ninguna, una o varias capas
ocultas. Esto también dependerá del algoritmo de aprendizaje.
Figura 13. Diagrama de la Arquitectura de la RNA (Pedro Isasi
Viñuela, Inés Galván León, 2003)
2.3.4. MODELOS DE REDES NEURONALES
Las redes neuronales se basan en dos tipos de aprendizaje: Supervisado
y No Supervisado.
32
El Aprendizaje Supervisado
Maneja pares entrada – salida deseada. De esta manera, para una
determinada entrada se compara la salida obtenida por la red con la
deseada. El ajuste de los pesos está dirigido, por tanto, a minimizar en lo
posible la diferencia entre dichas salidas.
En el Aprendizaje no Supervisado
El planteamiento es totalmente diferente. Aunque a la red se le presentan
entradas para su entrenamiento (aprendizaje), no existen salidas
deseadas, sino que el sistema evoluciona de forma auto-organizada
hasta un estado considerado estable.
En el desarrollo de este proyecto se citan las redes basadas en el
Aprendizaje Supervisado tales como: Perceptrón Simple y Red
Backpropagation. Cabe recalcar que se toma el estudio del Perceptrón
Simple para comparar y ver las desventajas que esta red de
entrenamiento tiene al momento de estudiar el reconocimiento de
señales de voz frente a la red Backpropagation.
A continuación se realiza una breve descripción de las 2 redes
neuronales.
2.3.5. PERCEPTRÓN SIMPLE
“Es un modelo unidireccional, compuesto por dos capas de neuronas,
sensorial o de entrada y otra de salida.” (Iván Martínez Ortiz, 2012).
El perceptrón realiza primero una suma ponderada de las P
componentes del patrón de entrada. Si la suma ponderada de las
33
variables de entrada es mayor a un cierto umbral, el perceptrón se activa
y la salida da 1.
Figura 14. Perceptrón Simple. (Iván Martínez Ortiz, 2012).
El entrenamiento de un perceptrón simple se puede resumir en los
siguientes pasos:
* Primero se inicializa la matriz de pesos y el valor del umbral. Por
lo general se asignan valores aleatorios a cada uno de los
pesos Wi (valor de los pesos) y al valor b (valor del umbral).
* Luego se presenta el primer patrón a la red, junto con la salida
esperada en forma de pares entrada/salida. La salida de la red
se calcula utilizando la siguiente fórmula.
Donde: f : puede ser la función escalón unitario (función de trasferencia)
W: son los pesos,
: son las entradas,
b: es el valor del umbral.
34
* Cuando se tiene como resultado una salida incorrecta, es
necesario alterar el valor de los pesos, llevándolos hasta y así
aumentar las probabilidades de que la clasificación sea correcta.
2.3.6. REGLA DELTA – LMS
“Se conoce como Regla Delta porque se trata de minimizar una delta ó
diferencia entre el valor observado y el deseado en la salida de una red
neuronal.” (Hilera & Martínez, 1995).
La regla Delta o LMS (Least Mean Squared) constituye la forma en que
una red neuronal aprenderá, es decir, que varios criterios y reglas se
aplicaran para modificar los pesos de las conexiones y convergir su
aprendizaje.
En general, la red debe adaptar los pesos de sus conexiones a medida
que se ingrese los patrones de entrenamiento con sus respectivas
salidas; de manera que, por cada par de valores
( ) se realizará un ajuste
automático pequeño en los pesos hasta que sus salidas obtenidas sean
correctas ( ).
2.3.7. RED BACKPROPAGATION
“Las redes Backpropagation se llevan a cabo mediante la
generalización de la regla delta. Esta regla consiste en utilizar una
función de error asociada a la red, buscando el estado estable de
mínimo error a través del camino descendente de la superficie del error.
Por ello realimenta el error del sistema para realizar la modificación de
los pesos en un valor proporcional al gradiente decreciente de dicha
35
función de error.” (José Manuel Quero Reboul, 2012).
La Arquitectura de la red Backpropagation presenta una arquitectura
multicapa, la misma que se caracteriza por presentar agrupaciones de
neuronas en capas de diferentes niveles, lo que indica que cada capa
se encuentra conformada por un conjunto de neuronas. A continuación
podemos diferenciar los tres tipos de capas:
* Capas de Entrada.- Es el primer nivel de la red neuronal compuesta
por neuronas que reciben las señales de la entrada de fuentes
externas a la red. En esta capa las neuronas reciben los valores de
patrones representados como vectores de datos que sirven de
entrada a la red neuronal, por ende en esta capa no se realiza
ningún tipo de operación.
* Capas Ocultas.- Puede haber una ó varias capas intermedias ó
internas que se encuentran entre las capas de entrada y las capas
de salida, no tienen contacto con el medio exterior. La principal
característica de estas capas es la de determinar el número de
neuronas que va a tener la topología de una red neuronal donde sus
elementos pueden tener diferentes conexiones.
* Capas de Salida.- Es el último nivel de la red neuronal, las
neuronas de esta capa son las encargadas de recibir la información
emitida por las neuronas de la(s) capa(s) oculta(s) y la transmite
como resultado al medio externo.
36
Figura 15. Arquitectura de una Red Backpropagation.
(Verónica Mora, 2009).
El Entrenamiento de una red Backpropagation consiste en un
aprendizaje de un conjunto predefinido de pares de entrada/salida
utilizando un ciclo propagación/adaptación de dos fases que son:
Primera Fase
* Se toma los valores de entrada con sus respectivos valores de
salida.
* Luego se aplica un patrón inicial para estimular la primera capa
de neurona, la misma que se va propagando a través de las
capas hasta llegar a las neuronas de salida y obtener sus salidas.
* Esta salida se compara con la deseada y se calcula el error
generado. Este error se transmite hacia atrás y en la capa
intermedia se recibe el error al valor de la salida.
37
* Este es un proceso que se repite para todas las capas. En base al
valor del error recibido, se reajustan los pesos de conexión de
cada neurona de manera que en la siguiente vez que se presente
el mismo patrón, la salida esté más cercana a la deseada, es
decir el error sea mínimo.
Segunda Fase
* El entrenamiento de la red Backpropagation es capaz de auto
adaptar los pesos de las neuronas de las capas intermedias para
aprender la relación que existe entre un conjunto de patrones
dados como ejemplo y sus salidas correspondientes.
* Los sistemas de aprendizaje tienen como característica la
capacidad de generalización. Tienen la facilidad de dar salidas
satisfactorias a entradas que el sistema no ha tenido nunca en la
fase de entrenamiento.
Regla de Aprendizaje del Backpropagation
El Algoritmo Backpropagation para redes multicapa es una
generalización del algoritmo LMS, los dos algoritmos se
encargan de actualizar el valor de los pesos y umbrales con base
en el error medio cuadrático. Esta red trabaja bajo un aprendizaje
supervisado por lo que necesita un programa de entrenamiento
que le defina el valor de salida y el valor de salida esperado, de
la siguiente manera:
dónde;
38
: es una entrada a la red
: es la correspondiente salida deseada para el patrón
n-ésimo.
El algoritmo debe ajustar los parámetros correspondientes de la
red para minimizar el error medio cuadrático y optimizar el
resultado.
La deducción matemática de este procedimiento se realizará
para una red con una capa de entrada, una capa oculta y una
capa de salida y luego se generalizará para redes con más capas
ocultas. A continuación explicaremos la deducción matemática
del aprendizaje del Backpropagation.
Datos:
l : número de componentes del vector de entrada
m : numero de neuronas de la capa oculta
p : número de neuronas de la capa de salida
Para iniciar el entrenamiento se le presenta a la red un patrón de
entrenamiento, el mismo que tiene l componentes.
a =
Cuando se le presenta a la red un patrón de entrenamiento, este
se propaga a través de las conexiones existentes produciendo
una entrada neta n en cada una de las neuronas de la capa
39
siguiente, para este procedimiento se utiliza la siguiente fórmula
matemática.
dónde;
: peso que une la componente i de la entrada con
la neurona j de la capa oculta.
: componente i del vector que contiene el
patrón de entrenamiento de componentes.
: umbral de la neurona j de la capa oculta.
Cada una de las neuronas de la capa oculta tiene como salida
que está dada:
Figura 16. Arquitectura de una red Backpropagation en un
Reconocedor de voz. (Verónica Mora, 2009).
40
2.3.8. CUADRO COMPARATIVO ENTRE PERCEPTRON SIMPLE Y
BACKPROPAGATION
La Tabla 2., recalca las ventajas y desventajas de cada uno de los
modelos anteriormente mencionados, dando como resultado una
comparación de los mismos.
Tabla 2. Cuadro Comparativo de Información (Verónica Mora, 2009)
PERCEPTRON SIMPLE
BACKPROPAGATION
El perceptrón simple puede
utilizarse como clasificador, ya
que el algoritmo de
aprendizaje permite determinar
automáticamente los pesos
sinápticos que clasifican un
conjunto de patrones a partir
de un conjunto de ejemplos
etiquetados.
La idea central se encuentra en
calcular los errores para las
unidades de las capas ocultas a
partir de los errores de las
unidades de la capa de salida
siendo propagados capa tras
capa hacia la entrada.
Las fases de cálculo se basan
en una función de transferencia
lineal. La mayor desventaja de
este tipo de redes es su
incapacidad para solucionar
problemas que no sean
linealmente separables.
Cuenta con fases de cálculo
hacia adelante (Consiste en la
propagación de las señales de
entrada hacia la salida y en el
cálculo del error cometido
comparando la salida obtenida
con la deseada) y hacia atrás
(Este paso se inicia en la capa de
salida pasando las señales de
error hacia la capa de entrada
41
Tabla 5. A continuación …
capa a capa, y calculando
recursivamente los gradientes
locales para cada neurona).
Tiene una función de
transferencia Hardlim con
salidas [1,0] o Hardlim con
salidas [1,-1].
Primera Capa.- Logsig cuando la
función es positiva y tansig cuando
se le permite a la función oscilar
entre valores tanto positivos como
negativos. Segunda Capa.- Utiliza
la función de transferencia purelim.
El algoritmo de aprendizaje del
perceptrón simple pertenece al
grupo de los algoritmos que se
fundamentan en la corrección
de errores. Los algoritmos de
este tipo ajustan los pesos de
manera proporcional a la
diferencia existente entre la
salida actual de la red
neuronal y la salida deseada,
con el objetivo de minimizar el
error actual de la red.
Es un método de aprendizaje
general que presenta como
ventaja principal el hecho de que
se puede aplicar a gran número de
problemas distintos,
proporcionando buenas soluciones
con no demasiado tiempo de
desarrollo.
Si la red se entrena mal, de
manera incorrecta o en tal
caso insuficientemente, las
salidas pueden ser imprecisas.
Una desventaja es que se debe
tomar experiencia al momento de
diseñar la arquitectura de las
capas ocultas para la red y su
buen desempeño.
42
2.3.9. ¿PORQUÉ EMPLEAMOS LAS REDES NEURONALES EN EL
ESTUDIO DEL RECONOCIMIENTO DE PATRONES?
¿Qué es un patrón? Un patrón es una entidad a la que se le puede dar
un nombre y que está representada por un conjunto de propiedades
medidas y las relaciones entre ellas (vector de características). Por
ejemplo, en el reconocimiento de voz un patrón es una señal sonora
(comando) y su vector de características el conjunto de coeficientes
espectrales extraídos de ella (espectrograma).
Una Red Neuronal deriva una gran potencia computacional por su
estructura de cálculo muy independiente del modelo de red que se
implemente. Esta estructura le permite la resolución de problemas tales
como el reconocimiento de patrones que necesitarían gran cantidad de
tiempo en ordenadores.
Ventajas de las Redes Neuronales
Las Redes Neuronales presentan ventajas muy atractivas, debido a que
su arquitectura y conceptos se basan en ciertas características del
sistema nervioso y del cerebro, entre ellas el aprendizaje de experiencias
ó conocimiento adquirido.
Pero aparte de este hecho aparecen otras propiedades favorables para
ser usadas en el reconocimiento de patrones, entre ellas se pueden
mencionar:
* Son sistemas tolerantes a fallos: Hay dos aspectos distintos a la
tolerancia a fallos: primero, las redes pueden aprender a reconocer
patrones con ruido, distorsionados o incompletos, ésta es una
43
tolerancia de fallos respecto a los datos. Segundo, las redes pueden
seguir realizando su función, con cierta degradación, aunque se
destruya parte de la red, ésta es una característica propia del
cerebro humano, se conoce que con el tiempo se van perdiendo
neuronas, pero esto no merma las capacidades del ser humano.
* Adaptabilidad: Una red neuronal tiene la capacidad de modificar los
parámetros de los que depende su funcionamiento de acuerdo con
los cambios que se produzcan en su entorno de trabajo (cambios
en las entradas, presencia de ruido, etc.).
Con respecto a la capacidad de adaptación hay que tener en cuenta
que ésta no puede ser tampoco excesivamente grande ya que
conduciría a tener un sistema inestable respondiendo a pequeñas
perturbaciones.
Se dice que es un sistema auto - adaptativo, por la capacidad que
presentan las neuronas artificiales para auto - ajustarse según el
conocimiento adquirido. Además que pueden estar en constante
cambio ya que pueden adaptarse a nuevas condiciones.
* Auto organización: Una red neuronal puede crear su propia
organización o representación de la información, a través de un
proceso de aprendizaje. Las Redes Neuronales almacenan la
información de manera distribuida para que todo el conocimiento se
extienda por cada una de las conexiones presentes en el modelo de
red neuronal obteniendo de esta manera una información
almacenada de forma redundante, lo que permite solucionar
problemas en los que la información prevista como entrada es
incompleta o no tan clara. Proveer una solución pese a las
diferentes condiciones de la información de entrada hace que la
44
auto-organización sea una característica principal.
* Operación en Tiempo Real: Las redes neuronales llevan a cabo
un procesamiento paralelo, y si se aprovecha esta característica en
máquinas adecuadas, el procesamiento de reconocimiento de
patrones debe proporcionar respuestas en tiempo real.
Las Redes Neuronales no ejecutan instrucciones, responden en
paralelo a las entradas que se presentan en cada nivel en una red
neuronal; el conocimiento no se almacena en instrucciones, el poder
de la Red Neuronal está en su topología y en los pesos de las
conexiones entre neuronas.
Desventajas de las Redes Neuronales
“Las Redes Neuronales se caracteriza por ser sistemas no
programables” (P.Isasi – I.Galvan, 2004), es decir sistemas que no
requieren el desarrollo de algoritmos para la resolución de problemas ya
que la solución está en los mecanismos de aprendizaje basados en
ejemplos, pero en si presenta contrariedades tales como:
* Diseño de la Red Neuronal: Diseñar una Red Neuronal no es una
tarea sencilla por lo que es necesario capacitarse, ya que existen
varios factores que rigen el desempeño, rendimiento y
comportamiento de una Red Neuronal tales como la definición del
número de neuronas por nivel, el tipo de conexión, etc.
* Tiempo de Aprendizaje: El tiempo en que una Red Neuronal
aprenda no se puede conocer con anticipación ya que éste difiere del
modelo de la red neuronal utilizada y no se puede definir el número
45
de iteraciones que deba tener el conjunto de ejemplos con la red
neuronal para un correcto entrenamiento.
2.4. RECONOCIMIENTO DE VOZ
En los Sistemas Neuronales Artificiales el reconocimiento de voz consiste en
comprobar si los datos ó información que se envía como parámetros de
entrada al sistema son identificados por medio del entrenamiento de la red
como datos válidos, determinando de esta manera si el resultado del
reconocimiento es la ejecución del comando esperado.
El reconocimiento de voz puede operar identificando sean palabras aisladas o
fonemas que implican mayor complejidad tal como reconocer frases.
Independientemente de la técnica que sea implementada, se utilizan siempre
dos conjuntos de datos:
* El primero es utilizado siempre para la etapa de aprendizaje, el cual
es llamado conjunto de entrenamiento. Se debe tratar de que los
patrones que integran este conjunto sean lo más diferente posible
entre sí, y que además representen al problema para poder tener un
buen porcentaje de generalización.
* El segundo conjunto de patrones, es llamado conjunto de prueba y es
utilizado en la etapa de reconocimiento.
Por último, para reconocer un comando de voz se debe realizar los siguientes
pasos generales:
1. Pre-procesamiento del sonido (voz)
46
2. Extracción de características
3. Entrenamiento
4. Reconocimiento
2.4.1. PRE-PROCESAMIENTO DEL SONIDO (VOZ)
El objetivo de esta etapa es adicionar la señal de entrada para que esta
pueda ser procesada por la RNA. Las señales de voz de una persona
deben ser capturadas en sus diferentes tonalidades, es decir con
diferentes estados de ánimo, lo que conlleva a que cada muestra sea
diferente.
Normalización
“La normalización consiste en ajustar todos los parámetros a una
sola escala para que al momento de ser utilizados por la RNA no
causen problemas de estabilidad” (P.Isasi – I.Galvan, 2004), en
este caso la escala empleada se encuentra dada por los
parámetros de la función de activación de la RNA que es una
tangente bipolar sigmoidal y trabaja con valores de [-1,1], por lo
tanto cada comando de ingreso que ya está filtrado es
normalizado a esta escala.
El procedimiento a seguir es el siguiente:
* Se calcula la media (u) y la desviación estándar (σ) del vector
a[n].
* Se normalizan los datos según la relación:
47
* Se calcula el máximo y el mínimo del vector , se divide
por el de mayor valor absoluto y los datos normalizados caen
dentro del intervalo [-1,1].
2.4.2. EXTRACCIÓN DE CARACTERÍSTICAS
La extracción de características permite la creación de un mapa mínimo
que describa una señal de audio y la relación de sus frames. A partir de
las relaciones existentes entre los frames se puede construir una
estructura que detalle la información contenida en una señal de audio.
En esta etapa se busca un método estadístico que describe algunas
características que pueden ser empleadas para describir
cuantitativamente regiones que hayan sido segmentadas en una señal.
Se entenderá por región aquel conjunto de frames que pertenezcan a
una misma zona de la señal normalizada. Las características que se
pueden extraer de una región se dividen en dos categorías:
* Características Geométricas
* Características Cromáticas.
Las características geométricas contienen información de forma,
posición, tamaño y orientación de la región y se usan comúnmente en el
reconocimiento de patrones.
En este proyecto se utilizará la extracción de características por medio
del estudio de los momentos invariantes de Hu.
48
Momentos invariantes de Hu
En los últimos años se han utilizado los momentos invariantes de Hu
puesto que permiten caracterizar la geometría de una señal, objeto ó
imagen para permitir así su posterior reconocimiento.
“Los momentos de Hu presentan invarianza a transformaciones lineales
tales como traslaciones, rotaciones y cambios de escala.” (Gonzalez C,
Woods Richard, 2010). Esto quiere decir que dos regiones que tengan la
misma forma pero que sea de distinto tamaño y que estén ubicados en
posiciones y orientaciones distintas en la señal tendrán momentos de Hu
iguales.
Teóricamente para obtener los momentos invariantes a traslación,
cambio de escala y rotación se deben obtener funciones no lineales
cuando se combinan los momentos centrales normalizados, .
En 1962, Hu propuso los siete momentos invariantes que se definen a
partir de los momentos de orden dos y tres como se expone en la
Figura 17.,
49
Figura 17. Invariantes propuestos por Hu.
Los momentos de Hu son útiles para realizar una descripción del
contorno de una imagen (rostro) ó señal de sonido (frames) para luego
crear un vector de características, cuyas componentes serán los
momentos de Hu.
2.4.3. ENTRENAMIENTO
Esta etapa tiene como característica principal la modificación de los
pesos de la red en cada una de las capas, de manera que coincida la
salida deseada por el usuario con la salida obtenida por la red ante la
presentación de un determinado patrón de entrada.
2.4.4. RECONOCIMIENTO
Se ha evaluado a la red neuronal y el respectivo entrenamiento de
manera que se encuentre con la respuesta u objetivo deseado, donde
50
primeramente se probó con los mismos patrones de entrenamiento luego
se probó manualmente la ejecución del comando y finalmente se
experimentó con un comando real para el entrenamiento.
2.5. CIRCUITO ELECTRÓNICO
Así como la informática y ciencias de la computación han ido evolucionando así
también ha evolucionado la construcción y fabricación de los circuitos
electrónicos que toma como base a los circuitos integrados (CI) o chips.
El desarrollo de los circuitos integrados ha revolucionado los campos de las
comunicaciones, la gestión de la información y la informática. Han permitido
reducir el tamaño de los dispositivos y por ende la reducción de los costos de
fabricación y de mantenimiento de los sistemas. Al mismo tiempo, ofrecen
mayor velocidad y fiabilidad. Se han construido circuitos integrados a gran
escala que contienen varios centenares de miles de componentes en un solo
chip.
Los relojes digitales, las computadoras portátiles, los juegos electrónicos, etc.
son sistemas basados en microprocesadores.
2.5.1. MICROCONTROLADOR PIC 18F4550
Un Microcontrolador es un computador completo (microcontrolador +
E/S + memoria + otros periféricos), aunque de limitadas prestaciones,
que está contenido con el chip de un circuito integrado programable y
se destina a gobernar una sola tarea con el programa que recibe de su
memoria. Sus líneas de entrada/salida soportan la conexión de
sensores y actuadores a controlar desde el dispositivo.
51
Esta familia de dispositivos PIC18 micro controladores son de alto
rendimiento computacional, económico, de alta resistencia, con un
programa flash mejorado de memoria y con la potencia sensible para
varias aplicaciones. Entre las aplicaciones se tiene el caso que este
proyecto refleja y es el estudio de los dispositivos de la familia
PIC18F4550 los mismos que incorporan un completo modelo de
comunicaciones “Serial Bus Universal” que es compatible con el puerto
USB de una computadora. Este módulo es compatible con la
comunicación de baja velocidad y alta velocidad para todas las
versiones y tipos de datos de transferencia.
También incorpora su propio chip transceptor y el regulador de voltaje y
soporta el uso de transceptores externos. Una de las claves para los
diseñadores de aplicaciones USB es la disponibilidad de soporte
firmware.
Las características principales del PIC 18F4550 son:
* Velocidad de operación de hasta 48 MHz.
* Posee una arquitectura RISC (Reduced Instruction Set
Computer) de 16 bits longitud de instrucciones y 8 bits de datos.
* Posee una memoria flash interna de programa de 32.768 bytes.
Almacena instrucciones y datos. Puede ser escrita/leída
mediante un programador externo o durante la ejecución del
programa mediante uso de punteros.
* Tiene una memoria RAM interna de datos (SRAM) de 2048
bytes en la que están incluidos los registros de función especial.
Almacena datos de forma temporal durante la ejecución del
programa y puede ser escrita/leída en tiempo de ejecución
52
mediante diferentes instrucciones.
* Memoria EEPROM de datos no volátil de 256 bytes. Almacena
datos que se deben conservar aun en ausencia de energía
eléctrica y puede ser escrita/leída en tiempo de ejecución a
través de registros.
* Memoria de configuración en la que se incluyen bits de
configuración (12 bytes de memoria flash) y los registros de
identificación (2 bytes de memoria). Los 12 bytes de memoria
flash pueden ser configurados durante la programación del Chip
o durante la ejecución del programa. Las opciones que se
pueden configurar en estos bytes son las siguientes:
1. Opciones de oscilador.
2. Opciones de reset.
3. Opciones de watchdog o "perro-guardián", es un
concepto de protección usado para volver a reiniciar el
programa cuando éste se pierde o realiza una acción
no prevista.
4. Opciones de la circuitería de programación y
depuración.
5. Opciones de protección contra escritura de memoria de
programa y memoria EEPROM de datos.
* Este Chip dispone buses diferentes para el acceso a memoria
de programa y memoria de datos.
* Dispone de cinco puertos de E/S.
53
Tabla 3. Resumen de las características internas del PIC18F4550
PARÁMETRO CARACTERISTICA
Tipo de Memoria de programa Flash
Memoria de Programa (KB) 32
CPU Velocidad (MIPS) 12
RAM Bytes 2048
EEPROM para datos (bytes) 256
Temporizadores 1x8 bits; 3x16 bits
Convertidores ADC 13 canales de 10 bits
Comparadores 2
USB (canal, velocidad, compatibilidad) 1, Full Speed, USB 2.0
Rango de temperatura (ºC) -40 a 85
Voltaje de Operación (V) 2 a 5.5 Vdc
Encapsulado 40 ines
2.5.2. ENCAPSULADO DE PIC 18F4550
Figura 18. Pines del Microcontrolador PIC18F4550
54
Cuadro Operativo del Microcontralor PIC18F4550
Tabla 4. Cuadro Operativo del Microcontralor PIC18F4550
PUERTO # PINES Y NOMBRE FUNCIÓN
2 RA0/AN0 Entrada analógica (AN0)
3 RA1/AN1 Entrada analógica (AN1)
A
4 RA2/AN2/VREF- /
CVREF
Entrada analógica (AN2),bit de
configuración de la tensión de
referencia VREF-
5 RA3/AN3/
VREF+
Entrada analógica (AN3), bit de
configuración de la tensión de
referencia VREF+
6 RA4/T0CKI/
C1OUT/RCV
Entrada del reloj del temporizador 0
(T0CKI), salida de comparación
(C1OUT)
7 RA5/AN4/SS/
LVDIN/C2OUT
Entrada analógica (AN4), salida de
comparación (C2OUT), HLVDIN
entrada de detección de tensión
alta/baja
14 RA6/OSC2/CLK0
Entrada del oscilador principal
(OSC2), salida de señal del reloj
(CLK0)
13 OSC1/CLKI
Entrada del oscilador principal
(OSC1), salida de señal del reloj
(CLKI)
55
Tabla 4. A
continuación …
33 RB0/AN12/INT0/
FLT0/SDI/ SDA
Entrada analógica (AN12),
interrupción externa 0 (INT0), entrada
de fallo del ECCP (FLT0), entrada de
datos del SPI (SDI), línea de datos
del PC (SDA).
34 RB1/AN10/INT1/
SCK/SCL
Entrada analógica (AN10),
interrupción externa 1 (INT1), línea de
reloj del SPI.
35 RB2/AN8/INT2/
VMO
Entrada analógica (AN8), interrupción
externa 2 (INT2), salida de datos del
USB (VCMO).
B
36 RB3/AN9/CCP2/
VPO
Entrada analógica (AN9), línea de E/S
del CCP2 (CCP2), salida de datos del
USB (VPO).
37 RB4/AN11/KBI0/
CSSPP
Entrada analógica (AN11),
interrupción por cambio en pin
(KBIO), salida del CS del SSP
(CSSP).
38 RB5/KBI1/PGM
Interrupción por cambio en pin (KBI1),
línea de programación (PGM).
39 RB6/KBI2/PGC
Interrupción por cambio en pin (KBI2),
línea de programación (PGC).
40 RB7/KBI3/PGD
Interrupción por cambio en pin (KBI3),
línea de programación (PGD).
56
Tabla 4. A continuación …
15 RC0/T1OSO/
T1CKI
Salida del oscilador del Temp. 1
(T1OSO), entrada de contador del
Temp. 1 (T1CKI).
16 RC1/T1OSI/CCP2/
UOE
Entrada del oscilador del Temp. 1
(T1OSI), línea de E/S del CCP2
(CCP2), salida OE del transceiver del
USB (UOE).
17 RC2/CCP1/P1A
Línea de E/S del CCP1 (CCP1),
Salida PWM del ECCP1 (P1A).
23 RC4/D-/VM
Línea menos del bus USB (D-), línea
de entrada del USB (VM).
C
24 RC5/D+/VP
Línea más del bus USB (D+), línea de
entrada del USB (VP).
25 RC6/TX/CK
Salida de transmisión de EUSART
(TX), línea de reloj del EUSART (CK).
26 RC7/RX/DT/SDO
Línea de datos síncrona del EUSART
(DT), salida de datos del SPI (SDO).
D
19 RD0/SPP0 Línea de Datos del SPP (SPP0).
20 RD1/SPP1 Línea de Datos del SPP (SPP1).
21 RD2/SPP2 Línea de Datos del SPP (SPP2).
22 RD3/SPP3 Línea de Datos del SPP (SPP3).
27 RD4/SPP4 Línea de Datos del SPP (SPP4).
28 RD5/SPP5/P1B
Línea de Datos del SPP (SPP5),
Salida PWM del ECCP1 (P1B).
29 RD6/SPP6/P1C
Línea de Datos del SPP (SPP6),
Salida PWM del ECCP1 (P1C).
57
Tabla 4. A continuación …
30 RD7/SPP7/P1D
Línea de Datos del SPP (SPP7),
Salida PWM del ECCP1 (P1D).
8 RE0/AN5/CK1SPP
Entrada analógica (AN5), Salida de
reloj 1 del SPP (CK1SPP).
E
9 RE1/AN6/CK2SPP
Entrada analógica (AN6), Salida de
reloj 2 del SPP (CK2SPP).
10 RE2/AN7/OESPP
Entrada analógica (AN7), Salida de
habilitación del SPP (OESPP).
1 RE3/MCLR/VPP
Línea de Reset Externo (MCLR),
Línea de programación (VPP).
18 VUSB Línea del firmware.
11 y 32 VDD Tensión de alimentación positiva.
12 y 31 VSS Tensión de alimentación positiva
2.5.3. SERVOMOTORES
“Un servomotor es un dispositivo pequeño que tiene un eje de
rendimiento controlado. Este puede ser llevado a posiciones angulares
específicas al enviar una señal codificada. Los servomotores llamados
también servos son sumamente útiles en robótica.” (Jiménez Córdova
Paúl Stalin, 2009).
En la Figura 19., se muestra el servomotor que vamos a utilizar para
este prototipo.
58
Figura 19. Servomotor. (Stansson, Meli, Andrej, 2009).
El conector eléctrico del servo es una hembra de 3 contactos, con
ancho entre pines de 2,54 mm.
* Pin 1: GND (cable negro)
* Pin 2: VCC (cable rojo)
* Pin 3: Señal de control o consigna (cable blanco, amarillo,
naranja u otro color)
Para facilitar la conexión a los receptores de modelismo, los conectores
suelen llevar un rebaje en uno de los lados permitiendo conectarlo al
receptor RC de una única manera.
59
METODOLOGÍA
61
3. METODOLOGÍA
Una metodología de desarrollo de software es un conjunto de fases,
procedimientos, técnicas, herramientas, etc., aplicadas de forma simple y
efectiva en un proyecto de desarrollo de software, empezando desde su idea
inicial, desarrollo, funcionamiento y mantenimiento, hasta que el sistema deje
de utilizarse o prácticamente se transforme en otro sistema.
3.1. METODOLOGÍA PROPUESTA
Este proyecto se caracteriza por su amplio contexto investigativo por lo que una
de las metodologías que se acopla a este proceso de investigación es el
Modelo en Espiral.
El Modelo en Espiral basa su desarrollo ó ciclo de vida en sucesivas
iteraciones, es decir tan pronto como se completa una fase de desarrollo, otra
comienza y al principio de cada iteración ó fase se hace un análisis de riesgo.
Las actividades de este modelo son una espiral, cada bucle es una actividad.
Dentro del desarrollo de este modelo se realizan pruebas que proporcionan
nuevas versiones del proyecto es por esta razón que se considera al modelo en
espiral como una difusión del ciclo de vida prototipo, que busca en cada
evaluación o versión generada (giro de la espiral) llegar a la versión requerida
(objetivos propuestos).
“En el modelo espiral las primeras iteraciones realizan tareas muy generales
que se van ampliando a medida que se abarca los demás ciclos por lo que el
espiral se va abriendo a medida que avanzamos.” (Lic. Daniel Corcos, 2008).
62
Figura 20. Modelo Espiral, (Sam Gunczler, 2008).
Los primeros ciclos involucran las tareas más importantes y los ciclos más
avanzados tareas de refinamiento hasta llegar al objetivo.
Como se puede observar en la Figura 20., este modelo consta de cuatro
etapas, la misma que a continuación se presenta en el siguiente cuadro:
Tabla 5. Etapas del Modelo Espiral, (Pressman, Roger S., 2005).
ETAPAS ASPECTOS A LOGRAR ACTIVIDADES
Planifica-
ción
Determinar los
requerimientos principales
para el desarrollo del
sistema analizando los
objetivos, el alcance la
factibilidad técnica y
económica.
Los objetivos, alcance y
factibilidad técnica y económica
se generan en base a una
investigación de software similar.
63
Tabla 5. A continuación …
Análisis
de Riesgo
Plantear los riesgos más
importantes y resolver los
mismos. Eliminar los
aspectos que no son
compatibles ó que pueden
alterar las limitaciones u
objetivos establecidos.
Identificar riesgos para
establecer soluciones
potenciales.
Analizar las funciones del
sistema, desarrollando un
cuadro conceptual, para de esta
manera tener una idea más clara
de los requisitos que se va a
utilizar en el desarrollo del
sistema.
Ingenie-
ría
Desarrollar el sistema
según las condiciones,
requerimientos y objetivos
de las capas anteriores.
Realizar un diseño del sistema
en general, de la base de datos.
Analizar el flujo de información,
para el desarrollo de algoritmos
y crear el código fuente.
Evalua-
ción del
Cliente
Evaluar los resultados
obtenidos del sistema para
verificarlos y
posteriormente validarlos.
Crear los datos de prueba del
código fuente para analizarlos.
En cada modulo se debe realizar
las pruebas de validación de
software tales como las pruebas
de “caja negra”.
Generar los aspectos de mejora,
errores, defectos, ampliaciones.
Técnica de toma de decisiones y
evaluación de resultados.
64
Cabe recalcar que el número de etapas puede variar o subdividirse. Este
modelo presenta ventajas y desventajas ante el desarrollo de un sistema, entre
las más importantes son las siguientes:
Ventajas
* Evita las dificultades que corresponden a otros modelos a través de un
manejo de riesgos.
* Trata de eliminar errores en una fase temprana, es decir en los primeros
inicios del sistema.
Desventajas
* Se necesita de investigación y experiencia para prever el riesgo, no
siendo una tarea fácil la resolución de dicho riesgo.
* No es aconsejable utilizarlo para proyectos que se rijan a un contrato.
* No es aplicable a proyectos sencillos donde el dominio de aplicación sea
conocido, si tuviéramos un caso de estos la alternativa sería atenuar en
algunos casos las etapas del espiral a fin de evitar problemas.
65
3.1.1. PLANIFICACIÓN
Descripción General del Sistema
Autora: Lucía Cahuatijo.
DIAGRAMA GENERAL DEL SISTEMA
DE
TA
LL
ED
IAG
RA
MA
DATOS
REALES
SEÑAL EN FORMATO
ESPECIFICO
En el siguiente diagrama se puede ver en una forma mas detallada los procesos que
se realizan para el desarrollo de este sistema, primero tenemos la captura del
comando de voz con datos reales, posteriormente se realiza el procesamiento de la
señal capturada y por ultimo se realiza el reconocimiento de la misma para así
ejecutar el comando deseado.
USUARIO RECONOCIMIENTOPROCESAMIENTO
DE LA SEÑAL
CAPTURA DEL
COMANDO DE VOZ
VECTOR DE
CARACT.
EJECUCIÓN DEL COMANDO
Figura 21. Diagrama General del Sistema
El Sistema debe tener la capacidad de captar el comando de voz
de una secuencia de señales auditivas, para posteriormente
realizar el procesamiento de la misma, de la cual se obtendrá el
vector de características que será almacenado en la base de
datos, y que nos servirá para realizar el entrenamiento de la red
neuronal. El sistema realizará el procesamiento de la señal una
vez captada la misma.
Para que se ejecute el reconocimiento del comando de voz el
sistema debe captar la señal de la persona que se encuentra al
frente del computador, el mismo que va a utilizar el sistema.
66
Por ejemplo, para tener una idea más clara de cómo el sistema
realizará el reconocimiento del comando de voz de una persona
vamos a dividir el sistema en tres partes, las cuales son:
* Captura del comando de voz (señal).- En la Captura del
Comando de Voz la captación de la señal debe ser a través de
un micrófono donde la persona debe ubicarse al frente del
computador y emitir el comando. La señal será procesada para
obtener el vector de características que se guardará en la base
de datos y que nos sirve para realizar el entrenamiento de la
red neuronal.
Este sistema contiene un panel el mismo que nos indica los
datos necesarios para realizar el respectivo muestreo es decir
para ingresar muestras a la base de datos, cabe recalcar que
estos datos están configurados por defecto en este sistema a
nivel de programación. Para este proyecto se ha adoptado por
defecto una frecuencia de muestreo igual a 44100 Hz:
Figura 22. Frecuencia de muestreo del sistema LAC.
67
Para obtener mejor calidad de sonido, en este proyecto se
determinó un tamaño de muestra igual a 16 bits (2 bytes). Por
ende los valores definidos como estándar serán la toma de
44100 muestras por segundo, cada una se representará con 16
bits (tamaño de muestra), y en 2 canales independientes
(sonido estéreo).
Figura 23. Tamaño de Muestra utilizado en el sistema LAC.
* Procesamiento de la voz (señal).- Luego de haber captado
la señal de voz, se procede a realizar todo lo referente a
procesamiento de la señal de voz, en este caso se calculará
los momentos invariantes de Hu, para la obtención del vector
de características el mismo que luego se someterá al
entrenamiento de la red para su posterior reconocimiento y
ejecución del comando.
Primero se captura la señal registrando de esta manera los
patrones a reconocer, es recomendable grabar cada comando
con estados de ánimo diferentes. Los hablantes pueden ser
68
mujeres, hombres, niños, niñas, adolescentes, etc. Aquellas
personas que van a utilizar con frecuencia el software.
Por ejemplo se escoge el comando a pronunciar “Abrir” el
mismo que nos permite abrir la puerta de la maqueta, la
hablante será Lucía de 28 años, este comando pronunciado
se tomará como patrón del entrenamiento de la red.
Figura 24. Sistema LAC - Ingreso de datos a la neurona.
Se empleó una frecuencia de muestreo de 44100 Hz, con la
finalidad de cumplir con el criterio de Nyquist que es mayor o
igual al doble de la frecuencia de muestreo.
Tabla 6. Cuadro de las Características del Archivo del Ejemplo
TIPO DE CONTROL VALOR
Tipo de Gráfica Lineal
Frecuencia de Muestreo 44100 Hz
Formato de Muestra 16 bits
Tipo de Canal Estéreo
69
Se tomó una subseñal a(n) correspondiente a las bajas
frecuencias de la señal de voz donde se localiza la mayor
cantidad de energía de la misma, despreciándose la subseñal
b(n) que corresponde a las altas frecuencias ya que es dónde
se encuentra la mayor cantidad de ruido de la señal (ruido
ambiental). Obteniendo así una señal de voz filtrada con
respecto a la original. Posteriormente se normaliza la señal de
voz resultante, para finalmente extraer los coeficientes ó
valores de la señal que servirá para el diseño de los patrones
de entrenamiento de la RNA.
Figura 25. Estructura del filtrado de la señal
* Entrenamiento y reconocimiento.- Involucra el desarrollo de
algoritmos que sean capaces de realizar la comparación de
patrones de voz entre palabras pronunciadas y las palabras de
un diccionario predeterminado.
Requerimientos de Herramientas de Software
El sistema se va a desarrollar bajo el sistema operativo Windows
Vista Business y será desarrollado en C# utilizando la plataforma
70
Visual Studio 2010. La base de datos que se utilizará es Microsoft
SQL Server 2005 y para el modelamiento de diagramas se
utilizará NetBeans.
* C# - Visual Studio 2010
C#.- Es un lenguaje de programación orientado a objetos el
mismo que se deriva de C/C++ utilizando el modelo de objetos
de la plataforma .NET. Este lenguaje de programación es
utilizado para la creación de servicios web, aplicaciones
cliente-servidor, aplicaciones de base de datos, etc.
En este proyecto se utiliza una clase programada en C#, para
transformar las señales de voz de entrada en datos que
puedan ser grabados en formato wave.
* SQL Server 2005
Microsoft SQL Server 2005 es un potente sistema de gestión
de base de datos basado en el modelo relacional, desarrollado
para servir a múltiples clientes mediante un estándar SQL
(Structured Query Languaje). Este motor de base de datos ha
sido probado en ambientes de gran concurrencia y
transaccionabilidad, demostrando gran eficiencia y eficacia
para receptar peticiones, procesar gran cantidad de
información y retornar la información requerida.
SQL Server tiene grandes ventajas entre las que podemos
destacar.
1. Ambiente gráfico y flexible de administración.
71
2. Gestión de seguridad altamente fiable.
3. Escalabilidad.
4. Manejo de tareas programadas.
5. DTS (Data Transformation Services) herramienta
potente para la migración de información desde
fuentes heterogéneas.
6. Estabilidad comprobada.
Para instalar SQL Server 2005 no requiere ninguna
configuración en especial, solo se sigue las instrucciones y las
opciones por default que muestra el Wizard de este instalador.
* UML (Unified Modeling Languaje)
UML ó Lenguaje de Modelado Unificado no es una
metodología de desarrollo que defina procesos, sino que es un
estándar para notación y artefactos, siendo básicamente un
lenguaje que permite hacer la representación de la estructura,
funcionalidad e interoperabilidad de los diferentes
componentes de un sistema con una especificación orientada
a objetos.
Esta metodología permite diseñar de una manera
independientemente al lenguaje ó herramientas de desarrollo,
también permite mantener una sana separación entre el
diseño y la implementación de un sistema ya que cualquier
desarrollador, sea cual fuere el lenguaje de programación que
domine, con conocimiento UML tiene la capacidad de
entender la arquitectura descrita con el estándar.
72
Requerimientos de Hardware
Para el desarrollo de un sistema con un objetivo de
reconocimiento sea el mismo de voz, audio ó video, es
importante tener una computadora mínimo Pentium 4, con
tarjeta de audio, ya que vamos a manejar datos de audio y
puerto de micrófono.
Se cree conveniente adquirir un micrófono solapero o de
diadema para la captura del comando de voz, ya que una de las
ventajas es la reducción de ruido y la distancia del micrófono es
constante tanto para la captura de datos (muestreo) como para
la respectiva consulta y ejecución del comando. Otra de las
ventajas es que se mantienen las cuerdas vocales lo más fijas
posibles para de esta manera no tener variación de frecuencia
en la señal de audio.
En la parte electrónica se usa un servo para posicionar el control
de movimiento de la puerta. El servo por defecto mantiene la
posición angular del engranaje pero cuando la señal codificada
cambia, la posición angular de los piñones cambia (la puerta
se cierra o se abre dependiendo del comando a ejecutar). El
servo que se utiliza en este proyecto es un normal o Standard
tal como el HS-300 de Hitec que tiene 3kg por cm. Cabe
recalcar que un servo no consume mucha energía.
3.1.2. ANÁLISIS DE RIESGOS
En esta fase se estudian todos los riesgos y se seleccionan una ó varias
alternativas propuestas para reducir ó eliminar los riesgos.
73
Los riesgos estudiados para el desarrollo de este sistema se describen
en la fase de análisis de resultados de este escrito, los mismos que son
importantes ya que si no se toman en cuenta pueden afectar en el
desarrollo de este prototipo.
3.1.3. INGENIERÍA
En esta fase se desarrolla el prototipo según los requerimientos y
tomando en cuenta los riesgos. Se inicia con el estudio previo de los
procesos que va a tener el sistema, por lo que se diseña un cuadro con
los procesos principales, se diseña la base de datos, y se crea el código
fuente de las diferentes clases que van a integrar al mismo, así como
también se realiza el diseño del circuito integrado y la comunicación de
los diferentes elementos electrónicos a utilizarse.
Es importante tomar en cuenta que como programadores partimos de
una simple imagen mental del programa y comenzamos a codificar la
información recibida, pero si no contamos con una arquitectura o un
cuadro de procesos general del sistema que nos guie en la construcción
de la misma nos puede conllevar algunos inconvenientes, por ende es
muy importante establecer el trabajo en fases, según la metodología a
utilizar para llevar el desarrollo del prototipo completo de una manera
ordenada.
3.1.4. EVALUACIÓN
Para la validación del Software y Circuito Integrado y la verificación del
respectivo funcionamiento se ha implementado el método de prueba de
“caja negra” el mismo que se detalla a continuación:
74
ENFOQUE DE PRUEBA DEL SISTEMA
PRUEBAS DE CAJA NEGRA
Pruebas sobre la interfaz del
Software (externo)
Método de prueba “Caja Negra”
Cuando se considera que un módulo está terminado se realizan
las pruebas sistemáticas, el objetivo de estas es buscar fallos a
través de un criterio específico, estos criterios se denominan
"pruebas de caja negra". “Estas pruebas se centrar en los
requisitos funcionales del sistema, lo que permite al desarrollador
selecciona las entradas válida e inválidas y determina la salida
correcta. No hay conocimiento de la estructura interna del
sistema.” (Jorge Hernan Abad Londoño, 2012).
En este tipo de pruebas el usuario que verifica el funcionamiento
del sistema se limita a ingresar los datos de entrada y estudiar la
salida ó respuesta del mismo, sin preocuparse de lo que pueda
estar haciendo internamente (código fuente), es decir el usuario se
enfocará en el caso del software en la revisión de la interfaz del
sistema, apariencia de los menús, control de las teclas, etc., en el
caso del circuito integrado el usuario se enfocará en el color del
led de encedido/apagado que se encuentra en la parte inferior de
la maqueta. Estas pruebas pretenden encontrar tipos de errores
tales como:
* Funciones incorrectas ó ausentes,
* Errores en la interfaz,
75
* Errores en estructuras de datos o en accesos a bases de datos
externas,
* Errores de rendimiento,
* Errores de inicialización y de terminación.
Demostrando de esta manera un prototipo completo donde las
funciones del software y del circuito integrado son operativas, y los
datos de salida son correctos.
76
ANÁLISIS DE RESULTADOS
77
4. ANÁLISIS DE RESULTADOS
En esta fase se encontrará los resultados obtenidos durante el proceso de
investigación para el desarrollo de este Prototipo. Esta información se basa en
la metodología espiral.
4.1. PLANIFICACIÓN
4.1.1. FACTIBILIDAD DEL SISTEMA
* Factibilidad Técnica
Se dispone con los recursos informáticos necesarios, ya que se
cuenta con los elementos computacionales, sean estos de
software y hardware.
Descripción NO SI
Experiencia en la elaboración de Sistemas X
Experiencia en la elaboración de Sistemas
con RNA
X
Manejo de herramientas de software X
Experiencia con la metodología espiral X
Equipamiento necesario X
Cabe recalcar que se tiene conocimientos teóricos de
Inteligencia Artificial pero no se posee experiencia en la
elaboración ó desarrollo de los mismos. De igual manera con la
metodología que se está utilizando.
78
* Factibilidad Económica
La inversión que se debe realizar para llevar a cabo el sistema,
no es mayor ya que se cuenta con el software, hardware
requerido, y el recurso humano.
Para el desarrollo del sistema se cuenta con una persona
responsable, la cual está encargada de realizar la planificación,
análisis de riesgos y el desarrollo de este sistema. Si se pone a
analizar el gasto que conlleva adquirir todas las herramientas
necesarias tanto de hardware como de software se detallaría
en un gasto aproximado a $ 4.297 dólares americanos como
se detalla en la Tabla 7.
Tabla 7. Presupuesto de realización del prototipo
4.1.2. CASOS DE USO DEL SISTEMA
Se presenta los siguientes casos de uso, en los diferentes
procesos de desarrollo del prototipo.
Presupuesto Aproximado
Descripción TOTAL
Herramientas de Desarrollo $ 547,00
Hardware $ 850,00
Recursos Humanos $ 2.800,00
Otros Insumos $ 100,00
TOTAL $ 4.297,00
79
* Vista general de casos de uso y actores del Sistema
Autora : Lucía Cahuatijo.
CASOS DE USO – ACTORES DEL SISTEMA
DE
TA
LL
ED
IAG
RA
MA
Este es un sistema que no maneja usuarios, por ende el usuario administrador
es el que debe ingresar los datos por medio de la pronunciación del comando,
debe entrenar la red con los datos obtenidos, e interpretar los datos para que
con esto se lleve a cabo la ejecución del comando emitido.
Figura 26. Diagrama de Actores del Sistema
80
* Caso de Uso Procesamiento – Reconocimiento
Autora: Lucia Cahuatijo.
CASOS DE USO – PROCESAMIENTO - RECONOCIMIENTO
DE
TA
LL
ED
IAG
RA
MA
<<uses>>
<<uses>>
En el diagrama Procesamiento – Reconocimiento podemos observar la
interacción entre el usuario y el sistema “Reconocedor LAC” , donde el Usuario
emite el comando de voz en el Sistema Reconocedor, el mismo que captura
el comando emitido por el Usuario. Este comando es procesado utilizando los
Momentos de HU. Una vez procesada la señal se reconoce el comando y
posteriormente este comando emite un 1 o 0 como señal al circuito para que
ejecute la acción correspondiente.
Figura 27. Casos de Uso Procesamiento- Reconocimiento
81
* Diagrama de Secuencias Procesamiento –
Reconocimiento
Autora : Lucía Cahuatijo.
DIAGRAMA DE SECUENCIAS – PROCESAMIENTO - RECONOCIMIENTO
DE
TA
LL
ED
IAG
RA
MA
El usuario emite la pronunciación (Comando) el cual es captado por el
Reconocedor para su respectivo Procesamiento y Reconocimiento
Procesamiento
Vector de Características
Pronunciación
Entrenamiento
Acción
Figura 28. Diagrama de Secuencias Procesamiento -
Reconocimiento
82
* Flujo de Información Procesamiento – Reconocimiento
Autora : Lucía Cahuatijo.
FLUJO DE INFORMACIÓN – PROCESAMIENTO - RECONOCIMIENTO
DE
TA
LL
ED
IAG
RA
MA
Se ingresa al Sistema e interactúa con la señal emitida, ejecutando el
procesamiento de voz y el Reconocimiento de la señal emitida.
CAPTURA COMANDO
OBTENER VECTOR DE
CARACTERISTICAS
TRATAMIENTO DE LA
SEÑAL
INGRESO AL
SISTEMA
DETECTA ONDAOBTENER
PATRONES
PRESENTA
RESULTADOS
SINO
COMUNICACIÓN
CIRCUITO
Figura 29. Diagrama de Flujo de Información Procesamiento –
Reconocimiento
83
* Caso de Uso Entrenamiento RNA
Autora : Lucía Cahuatijo.
CASO DE USO – ENTRENAMIENTO DE LA RED NEURONAL
DE
TA
LL
ED
IAG
RA
MA
La red neuronal recibe la información que el usuario emite por medio del vector
característico de la onda, es decir los patrones de diseño. El Sistema entrena los
patrones recibidos por medio del calculo del error y actualiza los parámetros de
entrenamiento.
Figura 30. Casos de Uso Entrenamiento RNA
84
* Diagrama de Secuencias Entrenamiento RNA
Autora : Lucía Cahuatijo.
DIAGRAMA DE SECUENCIA – ENTRENAMIENTO DE LA RED NEURONAL
DE
TA
LL
ED
IAG
RA
MA
El programador se encarga de realizar la fase de entrenamiento de la red
neuronal.
Backpropagation ()
Calcular error
Actualizar Pesos
Inicializar patrones de in/out
RNA entrenada - fin
Entrenamiento
RNA Configurada
Capa
Neurona
Patrones
entrenados
Cargar Patr.
Figura 31. Diagrama de Secuencia - Entrenamiento RNA
.
85
* Flujo de Información Entrenamiento RNA
Autora : Lucía Cahuatijo.
FLUJO DE INFORMACIÓN – ENTRENAMIENTO DE LA RED NEURONAL
DE
TA
LL
ED
IAG
RA
MA
La RNA se encarga de entrenar los patrones calculando el error y Actualizando
los datos.
CARGAR PATRONES
ALMACENADOS
BACKPROPAGATION NEURONA
Calcular error
Actualización de datos
NO Condición de la red de
entrenamientoSIV
UE
LV
E A
EN
TR
EN
AR
Figura 32. Flujo de Información - Entrenamiento RNA
86
* Flujo de Datos para el reconocimiento de la Señal
Autora: Lucía Cahuatijo.
FLUJO DE INFORMACIÓN PARA EL RECONOCIMIENTO DE LA SEÑAL
DE
TA
LL
ED
IAG
RA
MA
INICIO
CAPTURA DE LA SEÑAL
PROCESA LA SEÑAL
VALIDA
SEÑAL ?
OBTENER VECTOR DE
CARACTERISTICAS
INGRESAR EL VECTOR
A RNA
SALIDA
DESEADA ?
BASE DE DATOS
FIN
ERROR
ERROR
En el diagrama se muestra la captura de la señal, la misma que pasa por el
respectivo procesamiento, la señal se valida y en el caso de ser una señal válida
pasamos a obtener el vector de características caso contrario retrocedemos a
procesar nuevamente la señal, el vector de características ingresa a la RNA para
luego validar la salida deseada en caso de que la salida sea la esperada
procedemos a guardar estos datos en la Base de Datos, caso contrario se tiene
que capturar nuevamente la señal.
NO
SI
NO
SI
Figura 33. Flujo de Información - Reconocimiento de la Señal
87
* Diagrama de Bloques - Circuito Electrónico
Autora: Lucía Cahuatijo.
DIAGRAMA DE BLOQUES - CIRCUITO ELECTRONICO
DE
TA
LL
ED
IAG
RA
MA
PROGRAMACIÓN
CONTROLADOR USB
PIC 18F4550
FUENTE DE
ALIMENTACIÓNSERVOMOTOR
PC
En el diagrama se muestra el circuito está conformado principalmente por el
Microcontrolador USB PIC18F4550 con el que se conectan todos los dispositivos.
Todos los circuitos, buses (datos y control), conexiones están completamente
implementados, cuyos conectores (jack hembra) quedaran listos para su conexión
en la placa electrónica.
GLCD
SENSOR DE
TEMPERATURA
Figura 34. Diagrama de Bloques - Circuito Electrónico.
88
4.2. ANÁLISIS DE RIESGOS
Tabla 8. Tabla de Riesgos del Sistema
RIESGO
CONSECUENCIA
ALTERNATIVA
Requerimientos
mal elaborados.
Problemas durante y
después del proyecto.
Realizar un estudio previo y
analizar los procesos a
desarrollarse para tener un
panorama claro de lo que se
va a realizar y de los
requerimientos que se van a
utilizar.
Cuando el
comando
pronunciado es
bajo y/o
silencioso.
Señal Borrosa.
Volver a pedir los datos para
obtener datos válidos.
Desconocimiento
de las
Herramientas de
Software ó
Hardware.
Demora en los
procesos de
elaboración del
Sistema.
Capacitaciones, Investigación,
etc.
Entrenamiento
de la RNA.
Datos de entrada
errónea.
Capturar nuevamente el
Comando para los patrones.
89
Tabla 8. A
contiuación …
No realizar bien
la Extracción de
Características.
Mal entrenamiento.
Escoger un buen método
estadístico.
Obtener datos
basura al
momento de
entrenar RNA.
Arquitectura de la
RNA no adecuada.
Tener una buena arquitectura
de RNA.
Error con la
conexión de la
base de datos.
Datos de ingreso
erróneos que hagan
que la BB.DD.
colapse.
Puede ocurrir por
problemas de
conexiones de red ó
falta de
mantenimiento.
Realizar pruebas de consulta a
la BBDD que garantice el
continuo funcionamiento y
mantenimiento de la red.
4.3. INGENIERÍA
Se parte del diagrama general del Sistema, para tener bases para el
desarrollo y codificación de las diferentes clases a utilizar. Y para la
construcción del diseño de la base de datos a utilizar con las diferentes
entidades que la constituyen.
90
4.3.1. DIAGRAMA GENERAL DE PROCESOS DEL SISTEMA
Au
tora
: L
ucía
Ca
hu
atijo
.
DIAGRAMA DE PROCESOS DEL SISTEMA
RED NEURONALPROCESAR
SEÑALINTERFAZ DE USUARIOUSUARIO
PRONUNCIAR COMANDO
MONITOREO DE LA
SEÑAL
MOMENTOS
DE HU
BINARIZAR
DATOS
ALMACENAMIENTO DE CADA
PATRÓN EN LA BB.DD
GENERAR EL TAMAÑO DEL
VECTOR DE CARACTERÍSTICAS
GENERAR LA MATRIZ DE
PESOS ALEATORIOS
NORMALIZAR LOS PESOS
DE CADA PATRÓN
RECOGER EL VALOR DE LA
CAPA PREVIA
CALCULOS DE LA FUNCIÓN
DE ACTIVACIÓN
TRANSFERIR EL VALOR A LA
CAPA SIGUIENTE
ERROR MIN. ?
TRANSFERIR LOS VALORES
A LA CAPA DE SALIDA
RECONOCIMIENTO
EJECUCION
NO
SIRESULTADO
ACCION DEL
COMANDO
MOSTRAR RESULTADOS
ABRIR O CERRA PUERTA
U. ADMIN
CAPTURA DE DATOS
PARA GUARDAR EN
LA BBDD
ENTRENAMIENTO
COMUNICACIÓN
PC – CIRCUITO
( TRANSMISION DE
DATOS)
Figura 35. Diagrama de Procesos del Sistema
91
* Explicación.-
El usuario final tiene la facultad de pronunciar el comando a ser
ejecutado por medio del micrófono o cualquier dispositivo de voz
(sonido). El comando capturado es procesado y transformado en un
vector de n puntos. A partir de este punto el vector es representado
y calculado por los 7 momentos invariantes de Hu, este cálculo se
utiliza generalmente para estudios de visión artificial, como
reconocimientos de imágenes, etc. Con los momentos de Hu, se
selecciona los 2 primeros momentos y eso se envía a las neuronas
de la red neuronal como entrada y representada por pesos (w1, w2),
ésta información es analizada en el proceso de reconocimiento
dando como resultado una neurona ganadora. Esta neurona
contiene la información necesaria para ejecutar el comando
esperado.
Por último el usuario tiene la posibilidad de interactuar con el
prototipo, es decir el objetivo que se busca en este proyecto que es
ejecutar comandos de voz emitidos por el usuario para abrir o cerrar
una puerta.
Es recomendable e indispensable que para el entrenamiento
primero se equilibre la voz del usuario con el sistema para su
efectivo rendimiento.
4.3.2. DISEÑO DE LA BASE DE DATOS
La base de datos es uno de los elementos más importantes dentro
del desarrollo de un sistema, ya que es aquí donde se guardará
toda la información, en este caso los valores del vector de
92
características que se utilizan como patrones para el entrenamiento
de la red. A continuación, los puntos que se consideran para el
diseño de la base de datos:
* Entidades/Tablas
* Relaciones
* Funciones que realiza
Pero se debe tomar en cuenta también otro punto, el cual es: La
flexibilidad y la complejidad de las necesidades de los usuarios.
Con lo que respecta a las necesidades de este sistema en la Figura
38., se observa el diagrama de base de datos ya que solo se
requiere almacenar la información de la red neuronal después del
entrenamiento para el respectivo proceso de reconocimiento.
Figura 36. Diagrama de la Base de Datos
93
Entidades / Tablas y Funciones que Realizan
La base de datos tendrá 3 tablas las cuales son:
* Muestras
* Neurona
* Configuración
El siguiente paso es saber qué información se requiere para cada
una de las tablas, a continuación se detallan:
* Cuadro de Entidades
Tabla 9. Diagrama de Entidades
NOMBRE CÓDIGO DESCRIPCIÓN
Muestras
Datos
Muestras entrenadas por la Red
Neuronal mediante los 7
Momentos de Hu.
Neurona
Vector de
Comando
Contiene datos de los pesos,
umbral, taza de aprendizaje del
comando ya entrenado. Es decir
es donde se inicializa la red
neuronal con los datos.
Configura-
ción
Datos
Es donde verificamos la conexión
y la transmisión de datos del
PIC18F4550 – PC y la conexión
con la base de datos.
94
A continuación se detalla las tablas con sus respectivos campos:
* Muestras
Descripción
Almacena los datos de cada neurona entrenada sean estas
muestras de entrada ó de salida (deseada). Una vez que
cada neurona se haya entrenado se almacenan los datos en
esta tabla, como registro. Estos datos contienen el cálculo
respectivo de cada momento de Hu.
Atributos
Tabla 10. Tabla de Atributos de la Base de Datos
Nombre Tipo de Dato
Comentario
MuestraH1 Double Valor del cálculo del momento de Hu1.
MuestraH2 Double Valor del cálculo del momento de Hu2.
MuestraH3 Double Valor del cálculo del momento de Hu3.
MuestraH4 Double Valor del cálculo del momento de Hu4.
MuestraH5 Double Valor del cálculo del momento de Hu5.
MuestraH6 Double Valor del cálculo del momento de Hu6.
MuestraH7 Double Valor del cálculo del momento de Hu7.
Salida Double Valor de salida del cálculo completo.
95
* Neurona
Descripción
Esta neurona representa el comando “Abrir o Cerrar” y
tiene el valor de los pesos de entrada, se tiene la taza de
aprendizaje y posee un término bias, que constituye la
predisposición de la neurona a activarse.
Atributos
Tabla 11. Atributos de la entidad Neurona
Nombre Tipo de Dato
Comentario
Topología
Es un
conjunto de
de datos
double.
Tenemos varios datos validados
del muestreo e ingresados a la
base de datos para el respectivo
reconocimiento, los valores con los
que contamos son: valores de los
pesos iniciales, taza de
aprendizaje, etc.
* Configuración
Descripción
En esta tabla se tiene datos o valores de dispositivos
externos tales como el circuito del PIC18F4550, valida
también la conexión con la Base de Datos - SQL.
96
* Atributos
Tabla 12. Atributos de la entidad Configuración
Nombre Tipo de Dato
Comentario
Usbvid Double Código primario del dispositivo.
Usbpid Double Nombre del dispositivo (circuito USB
PIC18F4550).
Angulo
Double
Valor por defecto que el servomotor
utiliza para generar el movimiento de la
puerta.
4.3.3. DIAGRAMAS DE CLASES Y CÓDIGO FUENTE
Al programar por objetos a la red neuronal se presentaron cuatro
clases principales y esenciales para un buen rendimiento en la fase
de entrenamiento.
* Generar_Señal
Esta clase contiene las funciones de muestreo, tales como la
frecuencia, el número de bits, amplitud, etc., datos que nos serán
importantes para el desarrollo del proyecto.
Se debe tomar en cuenta que el muestreo es importante ya que
contiene las características de la captura de voz, con estos datos
vamos a trabajar durante todo el proyecto, estas características
se encuentran configuradas como determinadas en el código
fuente, es decir por defecto se tienen la extracción de
97
características en valores determinados tanto de frecuencia como
de bits de muestra.
A continuación se muestra el siguiente diagrama de clase:
Autora: Lucía Cahuatijo.
DIAGRAMA DE CLASES – GENERAR_SEÑALD
ET
AL
LE
DIA
GR
AM
A
En esta clase se inicializan los parámetros o datos importantes para la fase de
muestreo. Los datos son fijos, es decir ingresados en el código fuente por
defecto.
Figura 37. Diagrama de Clases – Generar_Señal
98
* Código Fuente de la Clase Generar_Señal
DE
TA
LL
EC
ÓD
IGO
GE
NE
RA
R_S
EÑ
AL
VARIABLES
En la clase generar_señal se puede observar que se basa en el valor que se pone como
predeterminado al inicializar las variables, es decir la extracción de características se
tomarán dependiendo de la configuración que le de la programadora. Los Streams obtenidos
de la señal de entrada se van almacenando para la gráfica y extracción de características.
CÓDIGO DE LA CLASE
Figura 38. Código Fuente de la Clase Generar_Señal
99
* AudioFrame
Esta clase representa la captura de características emitidas al
pronunciar el comando a ejecutar. Contiene funciones para
graficar los waves de la señal emitida. Esta clase está
relacionada con la clase Generar_Señal ya que contiene datos
de las características tales como frecuencia, amplitud, tamaño
de muestreo, etc.
En la Figura 39., se observa la clase AudioFrame, con los
atributos y operaciones que realiza en el sistema.
Autora: Lucía Cahuatijo.
DIAGRAMA DE CLASES – AUDIOFRAME
DE
TA
LL
ED
IAG
RA
MA
En esta clase se toma en cuenta los factores o parámetros importantes para graficar
los waves de la señal del comando emitido. Es importante recalcar que la clase
AudioFrame esta relacionada con la clase Generar_Señal y la Clase
TransformadaFourier.
Figura 39. Diagrama de Clases – AudioFrame
100
* Código Fuente de la Clase AudioFrame
DE
TA
LL
EC
ÓD
IGO
AU
DIO
FR
AM
E
VARIABLES
Esta función se encarga de graficar los datos que se ingresa en la clase Generar_Señal,
en este diagrama podemos apreciar el inicio del codigo para graficar los waves, el
mismo que se basa en el proceso de cálculo de la Transformada de Fourier de la señal
emitida.
CÓDIGO DE LA CLASE
Figura 40. Código Fuente de la Clase AudioFrame
* Entrenamiento
Esta clase es de tipo form, es decir de diseño y código, se
base en varias librerías de las cuales se destaca la IA_RNA.dll
101
que es una librería que contiene la arquitectura de la red
Backpropagation con tres capas, la capa de entrada, oculta y
de salida, la misma que ayudará en el desarrollo de este
sistema.
En esta clase también se encontrará el código de la barra de
menú del sistema por ende a esta clase están relacionadas
varias clases, funciones y librerías propias de C#, cabe
recalcar que esta clase aprovecha los valores de captura
(vector de características) para validarlos y posteriormente
tratarlos con las variantes de Hu para su respectivo
entrenamiento.
Hay que tomar en cuenta que la clase Entrenamiento es una
pieza fundamental dentro del desarrollo de este Prototipo.
Entrenamiento Nº 01
En el primer intento de entrenamiento de la red se utilizó una
técnica de tiempo en la extracción de características, es decir
dependía de cuanto se demoraba para pronunciar el comando
y dependiendo de esto se calculaba la extracción de
características. A este cálculo estadístico se le denomina
cálculo de la desviación estándar y de la varianza, que son
medidas de dispersión, el problema fue que al momento de
entrenar los resultados fueron totalmente incoherentes y
erróneos ya que los datos alrededor del punto central de la
señal de audio fueron fijos y la señal de audio es un patrón
variable con puntos variables, el porcentaje de error fue igual a
2,5., y el entrenamiento colapsaba por el gran número de
datos, ya que no se utilizaba ningún tipo de filtro.
102
Para solucionar este problema se optó por realizar un nuevo
entrenamiento pero ahora con un algoritmo de filtro y
normalización.
Entrenamiento Nº 02
Se aplico el algoritmo de filtro y normalización para reducir el
número de valores en el vector de características, pero no
hubo resultados favorables ya que el aprendizaje no se estaba
realizando correctamente. Al probar el conocimiento adquirido
por la red y su capacidad para reconocer patrones se detectó
problemas en el reconocimiento de los patrones.
Se concluyó que la técnica que estábamos utilizando para la
extracción de características no era la adecuada para este
sistema, ya que el tiempo no era la mejor opción para poder
entrenar una red y por medio de este realizar un
reconocimiento fiable, en la Tabla 4., se detallan las muestras
obtenidas.
Tabla 13. Muestras para el vector de características
Abrir Cerrar Cerrar Abrir Abrir Abrir
Mujer 15 años
Mujer 18 años
Hombre 24 años
Mujer 18 años
Hombre 24 años
Mujer 15 años
119 118 136 132 93 127
124 125 128 139 128 122
119 112 130 114 131 116
124 126 142 155 165 152
114 112 128 148 110 80
125 127 135 123 91 142
117 112 160 138 129 98
103
Donde las muestras son tomadas tanto en hombres y mujeres
de entre 15 a 24 años de edad y los valores representan el
tamaño del vector de características, por lo que el
entrenamiento en ciertos lapsos de tiempo no funcionaba
(cantidad de datos).
Entrenamiento Nº 03
Como se mencionó anteriormente la técnica para calcular el
vector de características no era la adecuada por lo que se trata
de mejorar la obtención de datos para el entrenamiento, se
partió de la teoría estadística utilizando los momentos de Hu,
es decir se utilizó la gráfica que se forma al pronunciar el
comando. Ya no depende de cuánto se demora en pronunciar
el comando sino de la forma de la onda que se grafica
(procesamiento de imágenes).
Se trabajó con 2 neuronas de entrada la misma que al final
devolverá un cero (0) ó uno (1), devolverá cero (0) cuando no
es la palabra que a la red le toca discriminar y uno (1) si es la
correcta.
Tabla 14. Cuadro de entrada a las neuronas
En este entrenamiento la taza de error es de 0,9 para el
reconocimiento del comando “Abrir”, se trata de mejorar el
rendimiento ajustando las neuronas y el respectivo cálculo.
COMANDO NEURONA
ABRIR 1
CERRAR 0
104
Entrenamiento Nº 04
Una vez que encontrado el mejor resultado del entrenamiento
de la red donde los errores de entrenamiento son mínimos se
procede a probar la red neuronal, observando resultados
favorables donde la red presenta un buen nivel de
reconocimiento de patrones en comparación con las técnicas
anteriormente utilizadas.
Autora: Lucía Cahuatijo.
DIAGRAMA DE CLASES – ENTRENAMIENTO
DE
TA
LL
ED
IAG
RA
MA
Para el proceso de entrenamiento es importante tomar en cuenta el tamaño de las
muestras, tomaremos como dato importante tambien el tamaño de la matriz, y el
proceso de calculo de los 7 momentos de HU.
Figura 41. Diagrama de Clases - Entrenamiento
105
* Código Fuente de la Clase Entrenamiento
DE
TA
LL
EC
ÓD
IGO
EN
TR
EN
AM
IEN
TO
CÓDIGO DE LA CLASE
En este proceso se empieza calculando las invariantes de Hu de la clase neurona , para
que estos datos sean entrenados por la red Backpropagation, el calculo de los momentos
de Hu nos dará como resultado una matriz de datos con el tamaño para que la red
Backpropagation no tenga problemas en el entrenamiento.
Figura 42. Código Fuente de la Clase Entrenamiento
106
* Neurona
Esta clase es de tipo form, es decir de diseño y de código, en esta
clase también es importante el uso de la librería IA_RNA.dll que
es aquella que contiene funciones de reconocimiento, contamos
también con una clase que permite guardar las muestras de
señales válidas que se ingresa al sistema (muestreo).
Autora: Lucía Cahuatijo.
DIAGRAMA DE CLASES – NEURONA
DE
TA
LL
ED
IAG
RA
MA
En esta clase se toma las principales características que una red
neuronal necesita para el entrenamiento, ya que en esta fase se realiza el
muestreo con los 7 momentos de HU, se debe tomar en cuenta el
aprendizaje y generalizacion de la red.
Figura 43. Diagrama de Clases - Neurona
107
* Código Fuente de la Clase Neurona
DE
TA
LL
EC
ÓD
IGO
NE
UR
ON
A
Como se ha mencionado anteriormente se tiene una función de muestreo
y de aprendizaje.
CÓDIGO DE LA CLASE
Figura 44. Código Fuente de la Clase Neurona
108
* Configuración
Esta clase es de tipo form, es decir de diseño y de código. Esta
clase contiene funciones tales como Conexión USB, Conexión
SQL (Base de Datos). Contamos también con una clase que
permite cargar datos de la topología que se va a utilizar en el
sistema.
Autora: Lucía Cahuatijo.
DIAGRAMA DE CLASES – CONFIGURACION
DE
TA
LL
ED
IAG
RA
MA
En esta clase se toma como base principal los datos de conexión tanto de
la base de datos como del dispositivo USB por medio de la clase
ConexiónUSB
Figura 45. Diagrama de Clases – Configuración
109
* Código Fuente de la Clase Configuración
DE
TA
LL
EC
ÓD
IGO
NE
UR
ON
A
Se cuenta con funciones para enlazar y verificar la conexión de la aplicación con
la base de datos y de esta manera cargar las muestras de la Clase Neurona a
la base de datos, asi mismo se tiene una función para verificar la conexión del
dispositivo USB.
CÓDIGO DE LA CLASE
Figura 46. Código Fuente de la Clase Configuración
110
* Reconocimiento
A continuación se observa los datos de la neurona al momento de
ingresar muestras a la BBDD, observamos que las muestras son
los 7 momentos de Hu que en este caso corresponde al comando
“Abrir”.
Figura 47. Ingreso de muestras a la base de datos
del Sistema LAC.
En el reconocimiento manual obtendremos la ejecución del
comando pero a manera de simulacro, como se presenta en la
Figura 48.
111
Figura 48. Reconocimiento en forma manual
del Sistema LAC.
* Conexión USB
Esta clase contiene funciones para el circuito que opera con el
servomotor, por ende las funciones que se utiliza son datos de
entrada y salida (Sistema-PIC18F4550).
112
Autora: Lucía Cahuatijo.
DIAGRAMA DE CLASES – CONEXION_USB
DE
TA
LL
ED
IAG
RA
MA
Como podemos observar en el diagrama la clase contiene la funcion para
mover el servomotor, enviar y recibir paquete de datos desde el sistema al
circuito y viceversa.
Figura 49. Diagrama de Clases – ConexiónUSB
113
* Código Fuente de la Clase ConexiónUSB
DE
TA
LL
EC
ÓD
IGO
CO
NE
XIO
N_U
SB
En el código se observa la función para mover al servomotor, y las
funciones de E/S de datos.
CÓDIGO DE LA CLASE
Figura 50. Código Fuente de la Clase ConexiónUSB
114
* Diagrama de Clases General del Sistema
Figura 51. Diagrama de Clases General del Sistema
115
4.4. EVALUACIÓN
En esta fase es donde se observa los resultados y evaluación la red y su
rendimiento de entrenamiento, el mismo que debe ser eficiente para el usuario.
La base de datos debe tener diferentes tipos de patrones entrenados, entonces
mientras más “experiencia” tenga el Reconocedor LAC más eficiente resultara
el reconocimiento, al principio será más complicado ya que se debe ingresar
una gran cantidad de patrones de muestra, si el usuario no realiza la etapa de
muestreo el sistema le emitirá un error indicando que el entrenamiento no ha
sido exitoso. Una vez tenidos los patrones el proceso de reconocimiento será
rápido.
Se utilizó el método de caja negra para realizar las respectivas y diferentes
pruebas del funcionamiento tanto del software como del circuito integrado y se
tomó en cuenta dos casos:
* La primera es la interfaz, la misma que está de acuerdo con lo
establecido en los objetivos propuestos al principio, el sistema de
reconocimiento LAC cuenta con una interfaz de usuario final;
* El segundo caso son los resultados, en estas pruebas, se tomó como
datos de entrada al sistema, los datos de los comandos de voz antes
mencionados y específicamente se probó pasándole como entrada un
comando no válido para el reconocimiento, es decir, donde no se tiene
como patrón en la base de datos. Igualmente se probó datos con voces
que no están como patrones en la base de datos, los mismos que
tampoco son reconocidos por el sistema.
116
En la Tabla 15., se muestra los resultados obtenidos después de evaluar
al “Reconocedor LAC”, para la obtención de estos resultados el Sistema
contó con una base de datos igual a 50 muestras de voz de diferentes
personas, estas muestras son importantes ya que mientras más
muestras tengamos en la base de datos del Sistema, el aprendizaje del
entrenamiento de la RNA será más satisfactorio. Los 5 ejemplares
expuestos (Lucía C. estado 1, Lucía C. estado 2, Adriana, Diana y José)
que tenemos a continuación son parte de la base de datos, partimos
entonces desde un entrenamiento primario hasta adaptarle al sistema
con la resonancia de voz, obteniendo de esta manera en el sexto
entrenamiento resultados más satisfactorios, cada persona en su
principio no recibe resultados 100% favorables, pero en el sexto
entrenamiento vemos que el porcentaje de efectividad del entrenamiento
se incrementa.
Tabla 15. Pruebas con diferentes Usuarios
PRUEBAS CON DIFERENTES USUARIOS
HA
BL
AN
TE
S
# Entrenamiento
Lucía C - Estado1
Lucía C - Estado2 Adriana Diana José
Entren. 1 70% 90% 85% 80% 70%
Entren. 2 85% 95% 85% 90% 85%
Entren. 3 90% 95% 94% 90% 85%
Entren. 4 90% 97% 95% 90% 85%
Entren. 5 95% 97% 95% 95% 90%
Entren. 6 95% 97% 95% 95% 90%
Recono- cimiento 87,50% 95,16% 91,50% 90,00% 84,16%
Efectividad 89,64%
117
Por esta razón como ya se mencionó es importante equilibrar la
resonancia de voz antes de usar el sistema para el respectivo
reconocimiento.
Graficando las variaciones de la taza de aprendizaje se obtiene
diferentes valores de error para el proceso de entrenamiento de la RNA,
que se muestra en la Figura 52. De esta gráfica se observa que los
mejores valores para la construcción de la RNA, son los de la línea más
gruesa (alfa=0,009; 0,05; 0,02) ya que con ellos son mínimos los
errores.
Figura 52. Gráfica de error
El procesamiento digital de la señal de voz es la base de este
proyecto, puesto que de su eficiencia depende el rendimiento de
posteriores procedimientos y del sistema en sí, es decir si se tiene
una señal borrosa y no muy clara del comando emitido el
entrenamiento y reconocimiento no va a tener un buen rendimiento
para el usuario.
118
Au
tora
: L
uc
ía C
ah
ua
tijo
.
ABRIR
SEÑAL DIGITALIZADAVECTOR DE
CARACTERISTICAS - BUFFER ENTRENAMIENTO - RNA
COMANDO A
EJECUTAR
Figura 53. Procedimiento de la señal.
De la misma manera el método de caja negra fue aplicado para
determinar el funcionamiento correcto del circuito integrado y la
comunicación con el sistema “Reconocedor LAC”.
En primera instancia se integro al circuito un led indicador el
mismo que cambia de color si existe algún problema con el
funcionamiento del circuito, es decir si esta de color rojo significa
que está funcionando correctamente, pero si el led está de color
anaranjado es porque el circuito está fallando, sea por falta de
batería a porque algún componente electrónico no esté
funcionando a lo que debemos analizar el fallo con ayuda de un
multímetro.
119
CONCLUSIONES Y RECOMENDACIONES
120
5. CONCLUSIONES Y RECOMENDACIONES
A continuación se detalla las conclusiones y recomendaciones que se ha tenido
al realizar esta tesis en sus diferentes fases.
5.1. CONCLUSIONES
* Demasiados algoritmos para el proceso de filtro hacen que el sistema
no tenga un buen procesamiento en la señal de voz emitida, debido a
que cada filtrado representa la eliminación de datos y por ende
pérdida de información.
* El vector de características define cómo se va a interpretar la
información contenida en una señal de voz de manera simplificada y
sencilla, sin tener que recurrir a trabajar con toda la información de la
señal.
* Al reducir el vector de características por medio del filtrado, se reduce
también la carga computacional, minimizando de esta forma la
dimensión de dicho vector.
* El éxito del entrenamiento de una red neuronal está determinado por
el comportamiento de los errores de entrenamiento. Cuando el error
es un mínimo aceptable y permanece estable, se determina que la
RNA aprendió satisfactoriamente.
* La arquitectura de una RNA, es decir el número de capas, el número
de neuronas por capa, las conexiones, etc., no está definida de
121
antemano. Su diseño se determina por medio de las pruebas y su
rendimiento.
* Los patrones que representan el espacio del problema tienen que ser
totalmente independientes entre sí, es decir deben ser únicos en su
clase, con un gran nivel de ortogonalidad. Esto depende del método
de extracción de características seleccionada.
5.2. RECOMENDACIONES * En esta tesis se trabajó con un micrófono, por ende es recomendable
contar con un dispositivo de captura de sonido de alto nivel para
disminuir probabilidades de ruido y hacer que el sistema sea lo más
eficiente posible.
* Es recomendable trabajar con señales originales y no con
grabaciones ya que los datos obtendrán mayor cantidad de ruido, el
proceso de filtrado sería mayor por ende habría mayor pérdida de
información, teniendo así un reconocimiento y rendimiento del
sistema bajo.
* Se recomienda realizar un equilibrio de voz de cada usuario, para
adaptar la resonancia en los procesos de digitalización y muestreo de
la señal para el respectivo entrenamiento y reconocimiento.
* Trabajar con un conjunto de patrones que representen
significativamente el problema planteado (ruido). Estos patrones
deben representar ciertos porcentajes de ruido, como por ejemplo
5%, 20% de manera que sea visible por el usuario e interprete el
122
funcionamiento de filtrado y de rendimiento del sistema, destacando
que el proceso de filtrado debe ser considerado ya que si existen
varios algoritmos de filtrado va a existir perdida de información y por
ende el rendimiento del sistema será bajo.
* La red Backpropagation tiene muchas aplicaciones en la
automatización de procesos de introducción de datos y de
reconocimiento, para obtener resultados más fiables y personalizados
habría que tomar en cuenta mayor cantidad de parámetros, esto
quiere decir más patrones en la red neuronal.
123
GLOSARIO
Frames.- Se denomina frame en inglés, a un fotograma o cuadro, una
imagen particular dentro de una sucesión de imágenes.
Neuro-computación.- La Neurocomputación es la rama subsimbólica de la
Inteligencia Artificial que basa su funcionamiento en la emulación de
procesos biológicos.
Casette.- Del francés cassette (cajita) es un formato de grabación de sonido
de cinta magnética ampliamente utilizado.
Sampling.- El muestreo o sampling es la acción de grabar un sonido en
cualquier tipo de soporte.
Discretizar.- Se refiere a convertir algo continuo en algo discontinuo. Por
ejemplo, dividir una distribución estadística en varios tramos discretos.
Conversor A/D.- Es un dispositivo electrónico capaz de convertir una
entrada analógica de voltaje en un valor binario.
Buffer.- Es una ubicación de la memoria en una computadora o en un
instrumento digital reservada para el almacenamiento temporal de
información digital, mientras que está esperando ser procesada.
Procesador.- Es un circuito electrónico integrado que actúa como unidad
central de proceso de un ordenador, proporcionando el control de las
operaciones de cálculo.
MIDI.- Son las siglas de la (Interfaz Digital de Instrumentos Musicales). Se
trata de un protocolo de comunicación serial estándar que permite a los
computadores, sintetizadores, secuenciadores, controladores y otros
dispositivos musicales electrónicos comunicarse y compartir información
para la generación de sonidos.
Códec de Audio.- Conjunto de algoritmos que permiten codificar y
decodificar los datos auditivos, lo cual significa reducir la cantidad de bits
que ocupa el fichero de audio.
124
KHz.- Es la medida de la frecuencia de la onda del sonido, por lo tanto, kHz
son 1000 Hz.
Bytes.- Un byte es la unidad fundamental de datos en los ordenadores
personales, un byte son ocho bits contiguos.
Bits.- Un bit es una señal electrónica que puede estar encendida (1) o
apagada (0). Es la unidad más pequeña de información que utiliza un
ordenador. Son necesarios 8 bits para crear un byte.
Expansor.- Es un procesador de dinámica del audio. Hace el proceso
inverso de un compresor, ya que aumenta el rango dinámico de la señal de
audio.
RNA.- Redes de Neuronas Artificiales. Se trata de un sistema de
interconexión de neuronas en una red que colabora para producir un
estímulo de salida.
Algoritmo.- Es un método para resolver un problema, debe presentarse
como una secuencia ordenada de instrucciones que siempre se ejecutan en
un tiempo determinado.
Patrón.- Un conjunto de reglas que pueden ser usadas para crear o
generar entidades.
Normalización.- Es el proceso de elaboración, aplicación y mejora de las
normas que se aplican a distintas actividades científicas, industriales o
económicas con el fin de ordenarlas y mejorarlas.
Invarianza.- Propiedad de una cantidad o ley física de no variar.
Bytes-codes.- En el caso de Java, el código intermedio se llama Byte
Codes. Este código no es dependiente ni del sistema operativo ni de la
máquina en el cual lo ejecutamos.
Wizard.- En español Asistente. Aplicación al servicio del usuario
(especialmente inexpertos) que generalmente abrevia los pasos a seguir
para realizar una tarea. Los asistentes hacen más sencillas las tareas de
instalar dispositivos, programas o realizar ciertas tareas.
Double.- Es la clase de Java que representa números de precisión doble.
125
Bias.- Es realmente una tensión eléctrica que se tiene que ajustar en
algunos casos dependiendo del tipo de amplificación.
Int.- Esta clase le permite trabajar con el tipo de datos que representa un
entero de 32 bits con signo.
Ortogonalidad.- Es una generalización de la noción geométrica de
perpendicularidad.
Gnd.- Término electrónico. Conexión a tierra.
126
BIBLIOGRAFÍA
* Cadena Juan Carlos, 2012, “Aplicación de Redes Neuronales para el
reconocimiento de voz” - Revista Tecnológica.
* Caloto Crespo Pablo, Moranchel Edras Manuel, Ruiz Alonso Ángel,
2009-2010, “Tecnologías de reconocimiento por voz y su aplicabilidad en
videojuegos.” - Departamento de Ingeniería del Software e Inteligencia
Artificial - Universidad Complutense de Madrid.
* Chion, Michel, 1999, “El Sonido”, Editorial Paidós, Barcelona
* López Ernesto y Rocamora Martín, 2012, “Fundamentos del Sonido
Digital”.
* Cruz-Beltrán Luis A., 2004, “Redes Neuronales Artificiales”, Pearson
Education.
* Esparza Arellano María Elena, Avalos Briseño Benito, 2003, “Red de
Revistas Científicas de América Latina, el Caribe, España y Portugal –
redalyc.org”.
* Fernández De Bobadilla Vicente, 2013, “Los sistemas de reconocimiento
de voz ganan terreno dejando atrás al teclado” – Articulo de la revista
ZoomNew.
* Fisher Robert, 2007, “Reconocimiento de Patrones”.
* Gonzalez C, Woods Richard, 2002, “Procesamiento de imagen Digital” –
Segunda Edición.
* Isasi P. – Galván I., 2004, “Redes Neuronales Artificiales un enfoque
práctico” - España.
127
* Jiménez Córdova Paúl Stalin, 2009, “Diseño y Construcción de un brazo
robótico a base de un PIC, para transportar objetos entre dos puntos
fijos, e Implementación de un sistema HMI para su monitoreo” – Escuela
Politécnica del Ejercito.
* José R. Hilera Martínez, 2000, “Redes Neuronales Artificiales,
Fundamentos, Modelos y Aplicaciones”, Alfa Omega, México.
* Jordá Puig, Sergi, 1997, “Audio Digital y MIDI”, Anaya Multimedia -
Madrid.
* Luna Ortega Carlos Alejandro, Mora González Miguel, Martínez Romo
Julio César , Luna Rosas Francisco, 2012, “Reconocedor de Palabras
con el uso de Regresión Lineal y Coeficiente Muestral” - Articulo de la
Revista Conciencia Tecnología.
* Milone Diego H., 2005, “Reconocimiento automático del habla con redes
neuronales artificiales.” – Ciencias Exactas y Naturales.
* Pastor Javier, 2013, “Android mejora gracias al estudio de redes
neuronales”, Xataka Android.
* Pressman, Roger S., 2005, “Ingeniería del Software” Un enfoque práctico
– sexta edición, McGraw Hill.
* Salas Rodrigo, 2002, “Redes Neuronales Artificiales” - Departamento de
Computación - Universidad de Valparaíso.
* Serrano Cinca Carlos, Martín del Brio Bonifacio, 1993, “Predicción de la
quiebra bancaria mediante el empleo de redes neuronales artificiales”-
Revista Española de Financiación y Contabilidad.
128
* Universidad Tecnológica de Pereira, 2009, “Backpropagation” - Trabajo
de graduación.
129
ANEXOS
130
ANEXO 1
INSTRUCCIONES
131
ANEXO 1
INSTRUCCIONES
El sistema Reconocedor LAC requiere de la instalación de ciertos componentes
para su correcto funcionamiento, por esta razón se establece el siguiente orden
de instalación:
* Firmware para conectar PIC18F4550 al PC vía USB.
* SQL Sever 2005 Express Edition
SQL Express requiere que exista instalado el componente de
Microsoft Installer 3.1 Redistributable. Si este componente no
está instalado se establece el siguiente orden:
1. Microsoft Installer 3.1
2. SQL 2005 Express Edition
* Visual Studio 2010
* Reconocedor LAC.
Todos estos instaladores se ubican dentro del CD de instalación.
Tomar en cuenta que primero se debe instalar los archivos asociados de .NET,
es decir los Framework necesarios para ejecutar la aplicación. Para este
sistema es importante instalar el Framework 4.0 (Visual Studio 2010).
La herramienta SQL Server permite la conexión con la base de datos
implementada en este sistema. Para la instalación de SQL Express Edition,
primero se requiere que exista el componente Microsoft Installer 3.1
Redistributable y segundo no requiere alguna configuración en especial, solo se
siguen las instrucciones y las opciones por default que muestra el Wizard de
este instalador.
132
El ejecutable del Reconocedor LAC es un archivo. exe de la plataforma .Net de
Visual Studio, donde se encuentran encapsuladas las librerías y código fuente
que se utilizó para el desarrollo de este sistema.
133
ANEXO 2
INSTALACIÓN DEL FIRMWARE PARA CONECTAR
PIC18F4550 A LA PC VÍA USB
134
ANEXO 2
INSTALACIÓN DEL FIRMWARE PARA CONECTAR PIC18F4550
A LA PC VÍA USB
La instalación de este driver es importante para establecer la conexión del
circuito PIC18F4550 y la plataforma de .Net de Visual Studio de este Sistema.
El ejecutable de este driver lo puede bajar de Internet e instalar en la
computadora que se va a utilizar con el Reconocedor de voz LAC.
Ejecutar el siguiente instalador.
Figura 54. Ventana principal de instalación del firmware
Acontinuación aparecerá la siguiente ventana la misma que nos indica que no
existe el controlador instalado.
135
Figura 55. Ventana que indica que no existe el dispositivo instalado en el CPU
A continuación:
Figura 56. Ventana de direccionamiento de la carpeta del driver
para la respectiva instalación.
136
Luego, nos aparecerá la siguiente ventana de ejecución a la que hacemos clic
en la opción “Instalar este software de cotrolador de todas formas”.
Figura 57. Ventanas del proceso de instalación del firmware
137
Finalmente, aparecerá una ventana la misma que nos confirma la instalación
del dispositivo en el computador y así poder realizar la conexión del circuito -
sistema.
Figura 58. Ventana que indica que el dispositivo ha sido instalado
138
ANEXO 3
MANUAL DE USUARIO
139
ANEXO 3
MANUAL DE USUARIO
El principal objetivo del presente manual es dar una guía completa para la
utilización de la aplicación del Sistema de Reconocimiento LAC.
Pantalla de Bienvenida
Figura 59. Ventana de Bienvenida al sistema LAC.
140
Detalle
La pantalla principal aparece al momento de ejecutar el Reconocedor LAC,
cabe recalcar que este sistema no tiene un modulo de validación de usuarios
(administrador – usuario), al contrario es un sistema para usuario final.
Pantalla Principal
Figura 60. Ventana principal del sistema LAC.
Detalle
Esta pantalla consta de dos paneles: el primer panel nos muestra la topología
que estamos utilizando para el entrenamiento, también se tiene un cuadro
donde indica la palabra reconocida y taza de error de entrenamiento, el botón
“Reconociendo...” permite equilibrar y validar la señal de audio que ingresa
gráficamente en el segundo panel, una vez que el sistema haya equilibrado y
validado la señal de audio, entonces el sistema está listo para capturar,
141
entrenar y reconocer el comando que el usuario emita. Es importante que la
BBDD del sistema cuente con un número considerable de muestras ya que de
esto dependerá la eficiencia del sistema, caso contrario el usuario deberá
ingresar muestras a la neurona atreves de la opción del menú “Ingresar
Muestras Neurona”. Si los patrones de la señal de ingreso no son validos, el
sistema no emitirá la señal valida en el espacio del segundo panel que dice
“Validación de la Señal”, por ende para la captura debe ser datos claros, bien
pronunciados y no tener mucho ruido.
Esta pantalla cuenta con un menú de opciones el mismo que se despliega de la
siguiente manera:
Figura 61. Menu del Sistema LAC.
Configuración
Figura 62. Ventana de configuración de la Red Neuronal del Sistema LAC.
142
Esta ventana muestra tres sub menús que son: Red neuronal, USB, SQL, en la
ventana de Red neuronal se tiene la opción de escoger la arquitectura de
topología de la RNA a utilizarse.
La opción de USB nos muestra la conexión que existe entre el dispositivo
electrónico conjuntamente con el servomotor y el sistema Reconocedor LAC.
Figura 63. Ventana de configuración USB del Sistema LAC.
La opción SQL muestra la conexión que existe entre la base de datos y el
sistema Reconocedor LAC, el botón “Consulta” permite realizar la consulta con
la BBDD y despliega los datos de muestreo de la neurona.
143
Figura 64. Ventana de configuración SQL del Sistema LAC.
Para salir de cada una de estas ventanas se tiene la siguiente opción en la
parte superior derecha:
Figura 65. Opción cerrar el sistema LAC.
144
Ingreso Muestras Neurona
Figura 66. Ventana de ingreso de muestras a la Neurona del sistema LAC.
Esta ventana muestra la fase de muestreo, entrenamiento y reconocimiento de
la señal. En el primer panel se tiene:
Figura 67. Características de la señal de audio y la grafica de la señal
de entrada.
145
En el tercer panel se tiene dos botones el primer botón “Reconocer” que es
aquel que nos permite ingresar muestras validas a la base de datos, una vez
que una muestra sea válida la palabra aparece en el espacio de “Palabras
Reconocidas”. El botón “Limpiar” permite partir de cero con el muestreo.
Figura 68. Ingreso de muestras a la BBDD del sistema LAC
Una vez que la muestra sea válida el sistema emitirá un mensaje de
confirmación para guardar la muestra obtenida en la base de datos, mientras la
señal que ingresa al sistema no sea tomada como dato valido, el sistema no
emitirá ningún mensaje.
146
Figura 69. Guardar muestras en la BBDD del sistema LAC
Una vez que se ha guardado la muestra aparece la ventana de la siguiente
manera:
Figura 70. Ingreso exitoso de la muestra en la BBDD del sistema LAC
147
Acerca de…
Es una pantalla donde indica los datos del Sistema Reconocedor LAC.
Figura 71. Ventana con datos de autor del Sistema LAC