instituto politécnico nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba...

40
1 Instituto Politécnico Nacional Secretaría de Investigación y Posgrado Reporte Final del Proyecto de Investigación: Modelos de bases de datos y técnicas de inteligencia artificial en la solución de problemas de ingeniería No. De Registro SIP: 20061190 Directora del proyecto: M. en C. Fabiola Ocampo Botello Profesores participantes: M. en C (c) Roberto De Luna Caballero. M. en C. (c) José Sánchez Juárez. M. en C. (c) Andrés Ortigoza Campos.

Upload: others

Post on 30-Jan-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

1

Instituto Politécnico Nacional

Secretaría de Investigación y Posgrado

Reporte Final del Proyecto de Investigación:

Modelos de bases de datos y técnicas de inteligencia artificial en la solución de problemas de ingeniería

No. De Registro SIP: 20061190

Directora del proyecto: M. en C. Fabiola Ocampo Botello

Profesores participantes: M. en C (c) Roberto De Luna Caballero. M. en C. (c) José Sánchez Juárez. M. en C. (c) Andrés Ortigoza Campos.

Page 2: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

2

Índice

Resumen del proyecto

3

Justificación

4

Objetivo General

4

Objetivos particulares

4

Índice de fundamentos Bases de datos relacionales 5 Técnicas de Inteligencia artificial

7

Casos de estudio Sistema traductor 20 Sistema de información

32

Bibliografía

38

Impacto

39

Resultados

40

Page 3: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

3

I. Resumen del proyecto

Las bases de datos relacionales son la base en la formación de los estudiantes de las áreas afines a la computación, ya que permiten realizar la representación gráfica de un modelo conceptual, representar a través de un diagrama la abstracción del comportamiento de un sistema de la vida real; lo cual permitirá llevar este modelo lógico a un modelo físico de representación de la información y tener el manejo del mismo a través de un sistema manejador de bases de datos. Estas bases de datos constituyen una de las competencias que los futuros profesionistas de estas áreas desarrollarán en el campo laboral, parte de la formación integral que el alumno recibe durante su formación en la educación superior es el desarrollo de los sistemas de información debido a la interacción que tiene con los usuarios de estos sistemas y que los alumnos a través de un análisis y un estudio de factibilidad fundamentado constituye la propuesta de mejora e innovación a los procesos tradicionales que ha llevado el usuario y que redituará en un costo beneficio aceptable a las necesidades que demanda del desarrollo tecnológico. El uso de tecnologías de información abre un abanico muy extenso de posibilidades de desarrollo de los estudiantes, existen muchos problemas enfocados a las áreas de ingeniería que pueden ser resueltos mediante el uso de aplicaciones para la “telaraña mundial” (World Wide Web), las cuales se caracterizan por el uso de técnicas de inteligencia artificial, lo cual hace necesario tomar en consideración no solamente el manejo de las llamadas nuevas tecnologías, sino el uso adecuado de las bases de datos que permiten realizar abstracciones de las situaciones de la vida real y las cuales mediante un uso adecuado que da la formación académica sólida en las áreas de ingeniería de software, proporciona una formación para la vida laboral de los estudiantes, lo cual redituará en una transición más natural al campo laboral. En este trabajo se hizo una investigación sobre la importancia de las bases de datos y diversas técnicas de inteligencia artificial en la solución de problemas de ingeniería, en el cual se involucraron alumnos de la carrera de Ingeniería en Sistemas Computacionales para el estudio, análisis, diseño lógico y diseño físico de aplicaciones en esta área. Siendo las bases de datos y múltiples las aplicaciones que tiene aunadas a la aplicación de técnicas de inteligencia artificial, este trabajo presenta los resultados de diseños lógicos realizados por los alumnos en la solución de dos problemas específicos: un sistema traductor de texto a voz y un sistema de información para resolver un problema de ingeniería de software aplicando bases de datos relacionales en ambos casos.

Page 4: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

4

II. Justificación El desarrollo de este tipo de proyectos permite dar bases sólidas a los estudiantes de ingeniería debido al estudio previo que se hace de las mismas y al mismo tiempo se le plantean problemas a los cuales dar solución aplicando dicho modelo y auxiliándose de técnicas de inteligencia artificial. El desarrollo de este proyecto permitió dar una formación integral del alumno, ya que al enfrentarse en un futuro inmediato al área laboral, éste debe tener un dominio del área de bases de datos e ingeniería de software. Como profesora con muchos años de experiencia en la formación de Ingenieros en Sistemas Computacionales considero las bases de datos como una competencia básica para la formación de todo estudiante del área de computación.

III. Objetivo General Desarrollo de aplicaciones de diferentes modelos de bases de datos y aplicaciones Web en la solución de problemas.

IV. Objetivos Particulares - Realización de una investigación bibliográfica de técnicas de inteligencia

artificial y la forma en como se implementan en la solución de problemas. - Realización de un estudio de las bases de datos relacionales enfocándose

al diseño.

- Análisis y diseño lógico de un sistema de cómputo en donde se apliquen técnicas de inteligencia artificial y bases de datos.

- Participación de los alumnos PIFI en un encuentro estudiantil.

Page 5: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

5

V. Fundamentos 1) Bases de datos relacionales

En su definición más simple, una base de datos es un conjunto de datos que se encuentran relacionados, aunado a características específicas como aquellas que nos permiten representar una situación del mundo real, esta base de datos esta orientada a satisfacer una necesidad específica, orientada a un grupo de usuarios y a la cual se le aplican restricciones de integridad y reglas de negocios para satisfacer una necesidad de la vida real. Las bases de datos tienen ventajas sobre el uso tradicional de archivos, debido a que en ellas se puede tener un control de la redundancia de la información, se tiene un control sobre la información y el acceso de esta a los usuarios, permite el establecimiento de restricciones de diferentes tipos y permite mantener la consistencia de la misma durante la ejecución de operaciones y mecanismos de respaldo. Los sistemas de bases de datos centralizados son aquellos que se ejecutan en un único sistema informático sin interaccionar con ninguna otra computadora. Tales sistemas comprenden el rango desde los sistemas de bases da datos monousuario ejecutándose en computadoras personales hasta los sistemas de bases de datos de alto rendimiento ejecutándose en grandes sistemas.

Un lenguaje de consulta es un lenguaje en el que el usuario solicita información de la base de datos. Los lenguajes de consulta se pueden clasificar en:

o Los lenguajes procedimentales: son en los que el usuario instruye al sistema para que lleve a cabo una serie de operaciones en la base de datos con el fin de calcular el resultado deseado.

o Los Lenguajes no procedimentales son en los que el usuario describe la

información deseada sin dar un procedimiento concreto para obtener esta información.

El Modelo Relacional de datos sirve para proveer conceptos y estructuras de datos capaces de interpretar los aspectos relevantes que existen en el mundo real. Esto se logra mediante un conjunto bien definido de estructuras, operadores y restricciones que actúan sobre dichas estructuras. El Álgebra Relacional consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación, por lo tanto, es posible anidar y combinar operadores. Las operaciones de proyección,

Page 6: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

6

producto, unión, diferencia, y selección son llamadas primitivas, puesto que las otras tres se pueden definir en términos de estas, Además de que son parte del Álgebra Relacional - La operación de Selección. Esta operación selecciona tuplas (filas) que satisfacen una instrucción (condición) dada de una tabla. La oración de la instrucción después de la cláusula WHERE puede incluir condiciones de igualdad como =,=,<,>,>=,<=,además que se puede hacer una oración más compleja usando los conectores y (^) y o (v). - La operación de Proyección. Consiste en identificar las columnas (atributos en el modelo Entidad- Relación) que nos interesa conocer. Se representa por medio de corchetes. Si este se omite indicara que se desea obtener todas las columnas de la tabla en cuestión. La operación Join. Consiste en obtener el producto (multiplicación) de todas las tuplas de una tabla con las de la otra, para posteriormente evaluar aquellas cuyo campo en común sea igual generando como resultado una nueva tabla que tiene como tuplas (renglones) que cumplen con la condición establecida. Se representa con la orden JOIN. La orden Join es colocada entre las dos tablas a multiplicar después de que la primera especifica la operación de selección y proyección. Existen diferentes tipos de join, uno de ellos es el Join theta en donde puede ser {=,<,>,,, } y es en donde las tuplas cuyos atributos de join cumplan con la condición, dependiendo de theta. Cuando es = se le llama EquiJoin, en este la comparación de igualdad exclusivamente; el Join Natural es un EquiJoin seguido de la eliminación de los atributos superfluos, es decir, con valores idénticos.

Page 7: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

7

2) Técnicas de Inteligencia Artificial La historia de las redes neuronales comenzaría con el científico aragonés

Santiago Ramón y Cajal, descubridor de la estructura neuronal del sistema nervioso. A finales del siglo XIX la teoría reticularista que sostenía que el sistema nervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras años de trabajo aplicando y perfeccionando la técnica de tinción de Golgi, en 1888 Ramón y Cajal demostró que el sistema nervioso en realidad estaba compuesto por una red de células individuales, las neuronas ampliamente conectadas entre sí. Pero no sólo observó al microscopio los pequeños espacios vacíos que separaban unas neuronas de otras, sino que también estableció que la información fluye en la neurona desde las dendritas hacia el axón, atravesando el soma. Este descubrimiento, básico para el desarrollo de las neuro-ciencias en el siglo XX, causó en la época una verdadera conmoción en la forma de entender el sistema nervioso, concediéndose el premio Nobel de medicina a Ramón y Cajal en 1906 (compartido con Camilo Golgi).

Obviamente, gracias al advenimiento de la microscopía electrónica y a la introducción de otras importantes técnicas, se ha llegado a profundizar mucho más en el estudio de la neurona. Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas. Vistas al microscopio, este tipo de células pueden presentarse en múltiples formas, aunque muchas de ellas presentan un aspecto similar muy peculiar (ver figura 1), con un cuerpo celular o soma (de entre 10 y 80 micras de longitud), del que surge un denso árbol de ramificaciones (árbol dendrítico) compuesto por las dendritas, y del cual parte una fibra tubular denominada axón

Axón

Dendritas

Soma

Figura 1. Estructura de una neurona biológica típica

Sinapsis

Page 8: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

8

(cuya longitud varía desde las 100 micras hasta el metro en el caso de las neuronas motoras1), que también se ramifica en su extremo final para conectarse con otras neuronas. En las interneuronas el axón envía la información a otras neuronas, mientras que las neuronas motoras lo hacen directamente al músculo. Existe un tercer tipo de neuronas, las receptoras o sensoras, que en vez de recibir información de otras neuronas, la reciben directamente del exterior (tal sucede, por ejemplo, en los conos y bastones de la retina). Se calcula que una neurona del córtex cerebral recibe información, por término medio, de unas 10,000 neuronas (convergencia), y envía impulsos a varios cientos de ellas (divergencia). Los ANS (Artificial Neural Systems) imitan la estructura hardware del sistema nervioso, con la intención de construir sistemas de procesamiento de la información paralelos, distribuidos y adaptativos, que puedan presentar un cierto comportamiento “inteligente”.

Estructura de un sistema neuronal artificial

Los ANS (Artificial Neural Systems) imitan la estructura hardware del

sistema nervioso, con la intención de construir sistemas de procesamiento de la información paralelos, distribuidos y adaptativos, que puedan presentar un cierto comportamiento “inteligente”.

Sistemas paralelos, distribuidos y adaptativos

Los tres conceptos clave de los sistemas nerviosos, que se pretende emular en los artificiales, son: paralelismo de cálculo, memoria distribuida y adaptabilidad, al entorno. De esta manera, podemos hablar de las redes neuronales como sistemas paralelos, distribuidos y adaptativos. El procesamiento paralelo resulta esencial, como se deduce de un sencillo ejemplo. Una computadora convencional tipo PC, que trabaja secuencialmente, instrucción por instrucción, emplearía varios minutos en realizar sobre una imagen compuesta por digamos, 256x256 pixeles, una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes, extraer contornos), mucho más simple que la que lleva a cabo el sistema visual para reconocer una imagen. Un sistema basado en 16 DSP2 operando en paralelo emplearía del orden de 20 ms en la misma tarea puesto que cada procesador podría operar en paralelo sobre diferentes sectores de la imagen. Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina), extraer sus rasgos característicos, analizarla, e interpretarla. Ningún sistema creado por el hombre es capaz de realizar algo

1 Lo que constituye el nervio.

2 Digital Signal Processor.

Page 9: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

9

semejante. La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen. Otro concepto importante que aparece en el cerebro es el de memoria distribuida. Mientras que en un computador la información ocupa posiciones de memoria bien definidas, en los sistemas neuronales se encuentra distribuida por las sinapsis de la red, de modo que si una sinapsis resulta dañada, no perdemos más que una parte muy pequeña de la información. Además, los sistemas neuronales biológicos son redundantes, de modo que muchas neuronas y sinapsis pueden realizar un papel similar; en definitiva el sistema resulta tolerante a fallos. El último concepto fundamental es el de adaptabilidad. Los ANS se adaptan fácilmente al entorno modificando sus sinapsis (y mediante otros mecanismos también), y aprenden de la experiencia, pudiendo generalizar conceptos a partir de casos particulares. En el campo de las redes neuronales se llamará a esta propiedad generalización a partir de ejemplos. Formalmente, y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group, de la Universidad de California en San Diego), un sistema neuronal o conexionista, está compuesto por los siguientes elementos:

o Un conjunto de procesadores elementales o neuronas artificiales. o Un patrón de conectividad o arquitectura. o Una dinámica de activaciones. o Una regla o dinámica de aprendizaje. o El entorno donde opera.

Modelo estándar de neurona artificial

Se denomina procesador elemental o neurona a un dispositivo simple de cálculo que, a partir de un vector de entrada procedente del exterior o de otras neuronas, proporciona una única respuesta o salida. En este apartado se tratará el modelo denominado neurona estándar (ver figura 2), que constituye un caso particular de un modelo más complejo llamado modelo PDP. El modelo estándar considera que la regla de propagación es la suma ponderada y que la función de salida es la identidad. De esta forma, la neurona estándar etiquetada como i

consiste en:

o Un conjunto de entradas Xj(t) y pesos sinápticos Wij que representan la intensidad de interacción entre cada neurona presináptica j y cada neurona postsináptica i (ver figura 2).

o Una regla de propagación σ(Wij, Xj(t)), que proporciona el valor del potencial postsináptico hi(t)= σ(Wij, Xj(t))=∑WijXj de la neurona i en función de sus pesos y entradas..

Page 10: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

10

o Una función de activación Yi(t)=fi(hi(t)), que representa simultáneamente la salida de la neurona i y su estado de activación (en el caso del modelo PDP las funciones de activación y de salida son tratadas por separado).

Con frecuencia se añade al conjunto de pesos de la neurona un parámetro adicional θi, que se denominará umbral1, que se resta del potencial postsináptico, por lo que el argumento de la función de activación queda

∑j WijXj - θi

lo que representa añadir un grado de libertad adicional a la neurona. En el caso de nodos de respuesta todo-nada este parámetro representará el umbral de disparo de la neurona, es decir, el nivel mínimo que debe alcanzar el potencial postsináptico (o potencial de membrana) para que la neurona se dispare o active. En conclusión el modelo de neurona denominado estándar queda:

Yi(t)=fi (∑j WijXj - θi)

Ahora bien, si se hace que los índices i y j comiencen en 0, se puede definir Wi0= θi y X0=-1 (constante), con lo que el potencial postsináptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (∑j=0,1,2,...,n WijXj)

1 En algunos modelos es threshold, es decir, “umbral”, y en otros bias, que no tiene una traducción clara en

este caso.

∑ f ( ) Axón

Yi

Wi1

Wi2

Wij

Win

θi

-1

X1

X2

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 2. Modelo de neurona estándar

Page 11: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

11

Habiendo definido de esta manera la neurona estándar, basta con establecer la forma de la función de activación para determinarla por completo. A continuación se muestra una tabla con las funciones de activación más utilizadas.

Función Relación

entrada/salida Gráfica

Escalón y=0 n<0 y=1 n≥0

Escalón simétrica y= -1 n<0 y=+1 n≥0

Lineal / Identidad

y=n

Lineal saturada

y=0 n<0 y=n 0≤n≤1 y=1 n>1

Lineal saturada simétrica

y=-1 n<-1 y=n -1≤n≤1

y=1 n>1

Sigmoidal

logarítmica

ne

y−

+=

1

1

Tangente

hiperbólica

nn

nn

ee

eey

+

−=

Lineal positiva y=0 n<0 y=n 0≤n

Competitiva

a=1 neurona con máx. n

a=0 todas las demás.

C

Page 12: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

12

Arquitecturas de redes neuronales

Se denomina arquitectura a la topología, estructura o patrón de conexionado

de una red neuronal. En un ANS los nodos se conectan por medio de sinapsis, esta estructura de conexiones sinápticas determina el comportamiento de la red. Las conexiones sinápticas son direccionales, es decir, la información sólo puede propagarse en un único sentido (desde la neurona presináptica a la postsináptica, ver figura 3).

En general, las neuronas se suelen agrupar en unidades estructurales que denominaremos capas. Las neuronas de una capa pueden agruparse, a su vez, formando grupos neuronales (clusters). Dentro de un grupo, o de una capa si no existe este tipo de agrupación, las neuronas suelen ser del mismo tipo. Finalmente, el conjunto de una o más capas constituye la red neuronal.

Se distinguen tres tipos de capas: de entrada, de salida y ocultas. Una capa de entrada o sensorial está compuesta por neuronas que reciben datos o señales procedentes del entorno (por ejemplo, proporcionado por sensores). Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores). Una capa oculta es aquella que no tiene una conexión directa con el entorno, es decir, que no se conecta directamente ni a organos sensores o efectores. Esta capa proporciona a la red neuronal grados de libertad adicionales, gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno, proporcionando una mayor riqueza computacional (ver figura 4).

j

i

Yj Xj

Wij

Yi Neurona presináptica

Neurona postsináptica

Figura 3 Interacción entre una neurona presináptica y otra postsináptica

Page 13: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

13

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras: un peso sináptico negativo define una conexión inhibidora, mientras uno positivo determina una conexión excitadora. Habitualmente, no se suele definir una conexión como de un tipo u otro, sino que por medio del aprendizaje se obtiene un valor para el peso, que incluye signo y magnitud. El perceptrón simple

Este modelo neuronal fue introducido por Rosenblatt a finales de los años cincuenta. Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo, la visión), en los cuales la infomación va atravesando sucesivas capas de neuronas, que realizan un procesamiento progresivamente de más alto nivel.

Un perceptrón simple es un modelo unidireccional, compuesto por dos capas de neuronas, una sensorial o de entrada y otra de salida. A continuación se muestra en la figura 5 su representación y la funcion de transferencia que utiliza.

Información

Capa de entrada (sensorial)

Capa oculta (procesamiento)

Capa de salida (efectora)

Figura 4. Arquitectura unidireccional de tres capas, de entrada, oculta y de salida

Figura 5 a) Las neuronas de entrada no realizan ningún cómputo, únicamente envían la información a las neuronas de salida. b) la función de activación de las neuronas de la capa de salida es de tipo escalón.

Capa de entrada

Capa de salida

x

f(x)

Función escalón

a) b)

Page 14: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

14

El perceptrón puede utilizarse tanto como clasificador, como para la representación de funciones booleanas, pues su neurona es esencialmente de tipo MacCulloch-Pitts, es decir, de salida binaria. La importancia histórica del perceptrón radica en su carácter de dispositivo entrenable, ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automáticamente los pesos sinápticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo). Ahora se mostrará que un perceptrón permite realizar tareas de clasificación. Cada neurona del perceptrón representa una determinada clase, de modo que dado un vetor de entrada, una cierta neurona responde con 0 si no pertenece a la clase que representa, y con un 1 si sí pertenece. Es fácil ver que una neurona tipo perceptrón solamente permite discriminar entre dos clases linealmente separables (es decir, cuyas regiones de decisión pueden ser separadas mediante una única condición lineal o hiperplano que es una línea recta, si trabajamos en dos dimensiones).

Sea una neurona tipo perceptrón de dos entradas x1 y x2 con salida y, cuya operación se define por lo tanto como:

y = H(w1x1+w2x2 - ө) o bien: 1, si w1x1+w2x2 ≥Ө y =

0, si w1x1+w2x2 <�

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano, la condición

w1x1+ w2x2 -Ө = 0 → x2 = - (w1/ w2) x1 + Ө / w2

representa una recta (hiperplano, si trabajamos con n entradas) que divide el plano en dos regiones, que son aquellas para las que la neurona proporciona una salida 0 o 1, respectivamente como se muestra en la figura 6.

x x

x x x

x x x

x

x

o o

o o

o o

o

X1

X2

Región w1x1+w2x2 ≥Ө Región w1x1+w2x2 <Ө

Figura 6. Una neurona tipo perceptrón representa un discriminador lineal que separa dos regiones en el espacio, que representan dos diferentes clases de patrones. En esta gráfica x = ‘1’ y o = ‘0’.

Page 15: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

15

Algoritmo de aprendizaje del perceptrón

El del perceptrón es un algoritmo de aprendizaje de los denominados por correccion de errores. Los algoritmos de este tipo ajustan los pesos en proporción a la diferencia existente entre la salida actual de la red y la salida deseada, con el objetivo de minimizar el error actual de la red.

Definición del algoritmo de aprendizaje:

Sea un conjunto de p patrones xn, n=1…p, con sus salidas deseadas tn. Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1. Se tiene una arquitectura de perceptrón simple, con pesos iniciales aleatorios, y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables). Ahora actuaremos del siguiente modo, ante la presentación del patron n-ésimo, si la respuesta que proporciona el perceptrón es correcta, no actualizaremos los pesos; si es incorrecta, los modificaremos según la regla de Hebb aplicada a nuestro caso. Primero se muestra la regla de Hebb y después la regla modificada para el perceptrón simple.

Regla de Hebb:

∆wij = ξyixj

Donde: o wij corresponde a los pesos de una entrada j por la salida i de la neurona. o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0

Regla modificada para el perceptrón simple:

2ξ.tnixnj, si yn

i≠ tni

∆wnij(t)=

0, si yni= tni

que puede reescribirse del siguiete modo, que es la forma usual de expresar la regla del perceptrón:

∆wnij(t)= 2ξ(tni - y

ni)x

nj

Es importante mencionar que el proceso de aprendizaje es iterativo: se parte de una configuración sináptica de partida (normalmente de pesos pequeños

Page 16: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

16

aleatorios) y se presentan una y otra vez los patrones, para que los pesos se ajusten iterativamente según forma usual de la regla del perceptrón hasta que todos queden bien clasificados. El hiperplano que establece el límite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible), como se ve en la figura 7.

El perceptrón multicapa

Si añadimos capas intermedias (ocultas) a un perceptrón simple,

obtendremos un perceptrón multicapa o MLP (Multi-Layer Perceptron). Esta arquitectura suele entrenarse mediante el algoritmo denominado retropropagación de errores o BP, o bien haciendo uso de alguna de sus variantes o derivados, motivo por el que en muchas ocasiones el conjunto arquitectura MLP+aprendizaje BP suele denominarse red de retropropagación, o simplemente BP.

La estructura del MLP se presenta en las figura 8. Denominaremos Xi a las entradas de la red, yi a las salidas de la capa oculta y zk a las de la capa final (y globales de la red); tk serán las salidas objetivo (target). Por otro lado, Wij son los pesos de la capa oculta y bj sus umbrales, W’kj los pesos de la capa de salida y b’k sus umbrales. La operación de un MLP con una capa oculta y neuronas de salida lineal se espresa matemáticamente de la siguiente manera

∑ ∑∑ −−=−=

j

jji

i

jikj

j

ijkjk bbxwfwbywz ')('''

Figura 7. Regiones de decisión que establece iterativamente el perceptrón durante el aprendizaje (en la iteración 115 ha conseguido separar ya las dos clases)

x x

x x

x x x x

x

x

o

o

o

o

o

o o

o

o

o

o

o

o

o

o

o

o

X1

X2 t= 0

t= 4

t= 21

t= 115

Page 17: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

17

siendo f de tipo sigmoideo (ver tabla 3.1), como por ejemplo las siguientes:

)(log1

1)( xsig

exf

x=

+=

− )tanh()( x

ee

eexf

xx

xx

=+

−=

proporcionando la primera una salida en el intervalo [0,1], y en el [-1,+1] la segunda.

Ésta es la arquitectura más común del MLP, aunque existen numerosas variantes, como incluir neuronas no lineales en la capa de salida (funciones sigmoidales generalmente, solución que se adopta especialmente en problemas de clasificación), introducir más capas ocultas, emplear otras funciones de activación, limitar el número de conexiones entre una neurona y las de la capa siguiente, introducir dependencias temporales o arquitecturas recurrentes, etc.

En el caso de nuestro trabajo terminal, se planea utilizar una red neuronal de tres capas (entrada, oculta y salida). Las funciones de transferencia de las capas oculta y de salida serán sigmoideas, para ser más específicos se utilizarán las funciones tanh(x) y logsig(x) respectivamente. Gracias a que la función logsig(x) devuelve valores entre 0 y 1 a la salida, se podrá decir que una vez entrenada la red, al querer clasificar un elemento de entrada, éste pertenecerá a la clase indicada por la salida que más se acerque a 1, descartando el resto de las salidas. Esta forma de clasificar se parece mucho a la lógica booleana con la diferencia de que los valores devueltos por la función logsig(x) son contínuos. Otra razón por la cual se utilizan funciones sigmoideas es porque el algoritmo de retropopagación, que es el que se utilizará para entrenar la red sólo admite funciones de transferencia derivables.

Capa de entrada

Capa oculta

Capa de salida

x

f(x)

Figura 8. Perceptrón multicapa y función de transferencia de la neurona.

Page 18: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

18

Aprendizaje por retropropagación de errores

Una solución al problema de entrenar los nodos de las capas ocultas

pertenecientes a arquitecturas multicapa la proporciona el algoritmo de retropropagación de errores o BP (Backpropagation). Algoritmo de retropropagación Sea una red MLP de M capas (M-2 capas ocultas), cuya arquitectura se presenta en la figura 8, con los valores de pesos Wm (m=0,1,2,...,M), los valores de umbrales bm(m=0,1,2,...,M), µk(k=1,2,3,...,n) el patron k-ésimo de entrada y tk el k-ésimo valor objetivo correspondiente a µk, y am la salida correspondiente a la capa oculta m. En resumen, el procedimento a seguir para entrenar mediante BP la arquitectura MLP dada es:

o Establecer un error objetivo para la red (p.e. 0.01) o Establecer la velocidad de aprendizaje α (se recomienda un valor entre

(0,0.25]. o Determinar el número de épocas a utilizar la alcanzar el error objetivo de la

red. o Establecer el contador de épocas a 0. Mientras no se alcance el error objetio y el número de épocas no sea rebasado hacer:

Capa de salida

aM

Capa de entrada M-2 Capas ocultas

a1

w2

a0

wM

a2

wM-1 a

M-1

n1

n2

w1

nM-1 f

1

f2

fM

fM-1

nM

Arquitectura de una red MLP de M capas

Page 19: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

19

1. Establecer aleatoriamente los pesos y umbrales iniciales (t:=0) para

cada capa. 2. Establecer el contador de patrones clasificados para la época t actual a

0.

3. Para cada µk (k=1..n) patrón de entrada hacer: a. Llevar a cabo una fase de ejecución para obtener la respuesta de la

red ante el patrón µk b. Calcular el error de la red haciendo tk-a

M. Si tk-a

M es mayor que el error objetivo entonces c. Actualiza los vectores de pesos y umbrales para cada unan de las

capas siguiendo las expresiones:

Tmmmm aStWtW )()()1( 1−−=+ α

mmm Stbtb α−=+ )()1(

en donde Sm se lee <<sensibilidad de la capa m>>, y )( mnF

representa la matríz diagonal de las derivadas de la función de la capa m, evaluadas en las salidas de la regla de propagación (nm).

))((2 kk

MMatnS F −−=

11))(( ++•

=mTmmm

SWnS F

=

)(...00

............

0...)(0

0...01

2

)(

)(

m

i

m

n

n

m

m

f

f

nf

nF

Si tk-aM es menor o igual que el error objetivo, entonces repetir desde el

inciso a para k=k+1 y aumentar en 1 el contador de patrones clasificados en la época t actual.

d. Repetir desde el inciso a pero ahora para k=k+1.

4. Si el número de patrones clasificados en la época actual t es igual al número total de patrones establecer que el error objetivo se ha alcanzado.

Page 20: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

20

El algoritmo anterior ha sido adaptado para que pueda ser implementado en un lenguaje computacional, en este caso Java.

VI. Casos de estudio

1) Sistema Traductor La creación de sistemas computacionales que permitan agilizar las tareas

que el hombre tiene que llevar a cabo se ha vuelto un tema de interés general. Gracias a los avances de la tecnología computacional, se han desarrollado herramientas que facilitan la realización de múltiples tareas que permiten a diversos usuario agilizar los procesos o como en el caso que aquí se presenta manejar actividades que son de gran ayuda para la vida cotidiana, especialmente para aquellas personas que tienen una discapacidad visual, un sistema computacional que permita realizar la conversión de texto impreso a voz.

El desarrollo de la tecnología ayuda a que las personas con limitaciones físicas minimicen sus deficiencias; tal es el caso de las personas invidentes. En México se estima una cifra de 3.000.000 (2.84%) de personas que padecen de ceguera o alguna debilidad visual1 (por ejemplo dislexia). Hoy en día existen aplicaciones enfocadas a ayudar a este tipo de personas, tales como: libros parlantes, computadoras para invidentes, pantallas para invidentes, bastones y lentes para invidentes, entre otros. En Estados Unidos ya existe una tecnología llamada “libros parlantes” que consiste copiar a la computadora el texto contenido en un libro para su posterior sintetización en voz. Quicktionary, de la empresa alemana WizCom Technologies, es un pequeño escáner con forma de bolígrafo que lee y traduce a voz textos escritos2.

En México el desarrollo de la tecnología no ha alcanzado niveles muy elevados; lo cual implica tener que traerla del exterior y en consecuencia el costo de la misma se eleva. Esto se convierte en un problema para los consumidores finales, ya que, al no tener los medios suficientes para adquirir alguna tecnología, tampoco obtienen los beneficios que la misma podría otorgarles.

Se reconoce que el software, al igual que todos los sistemas complejos, evoluciona con el tiempo3. Los requerimientos que el sistema tiene que cubrir a menudo cambian conforme a que el desarrollo proceda haciendo que el camino

1 http://oncetv-ipn.net/noticias/index.php?modulo=despliegue&dt_fecha=2004-12-01&numnota=15 (Estimación personas invidentes). http://www.conapo.gob.mx/00cifras/00indicadores/00.xls (Población de la República Mexicana). 2 http://www.wizcomtech.com/Wizcom/products/product_info.asp?fid=176

3 Roger S. Pressman, Ingeniería de Software: Un enfoque práctico, quinta edición, pág. 23.

Page 21: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

21

que lleva al producto final no sea real; las estrictas fechas de entrega hacen que sea imposible finalizar un producto completo, por lo que se debe introducir una versión limitada para cumplir con los tiempos de entrega. Bajo estas circunstancias, los desarrolladores necesitan de un modelo de proceso que ha sido diseñado para acomodarse a un producto que evolucione con el tiempo.

La metodología que se ha elegido para el desarrollo de este sistema es el modelo incremental. Este modelo combina elementos del modelo lineal secuencial4 (aplicados repetidamente) con la filosofía interactiva de construcción de prototipos. El modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un <<incremento>> del software. Aplicando el modelo incremental a este sistema, en un primer incremento podría desarrollarse un software capaz de sintetizar voz a partir de texto impreso para un número determinado de fuentes estándar (Arial, Times New Roman, etc.) y utilizando una técnica de concatenación de sonidos de palabras almacenados en una base de datos. El caso anterior es sólo un incremento de lo que un sintetizador de voz debería hacer, ya que cuando no se encuentre almacenado el sonido de una palabra específica, dicho sintetizador fallará. En un segundo incremento podría añadirse la funcionalidad de poder pronunciar palabras aunque los sonidos de estas no se encuentren en la base de datos, para lo cual tendría que utilizarse una técnica de concatenación de fonemas5 que permitiría realizar esta función, y así sucesivamente hasta haber agregado todas las funcionalidades que un sintetizador de voz eficaz debe tener.

Cuando se utiliza el modelo incremental, el primer incremento a menudo es un producto esencial. Es decir, se afrontan requerimientos básicos, pero muchas funciones suplementarias (algunas conocidas, otras no) quedan sin extraer. Como un resultado de utilización y/o de evaluación, se desarrolla un plan para el incremento siguiente. El plan afronta la modificación del producto central a fin de cumplir mejor las necesidades de los usuarios finales y la entrega de funciones, y características adicionales. Se ha elegido trabajar bajo el Paradigma Orientado a Objetos (POO). Lo anterior debido a que dicho paradigma permite reutilizar y la reutilización (de componentes de software) lleva a un desarrollo de software mucho más rápido y a programas de mejor calidad. El software orientado a objetos es más fácil de mantener debido a que su estructura es inherentemente poco acoplada. Esto lleva a menores efectos colaterales cuando se deben hacer cambios y ante todo provoca menos frustración por parte de las personas encargadas de realizarlos. Además, los sistemas orientados a objetos son más fáciles de adaptar y más fácilmente escalables (por ejemplo: pueden crearse grandes sistemas ensamblando subsistemas reutilizables).

4 Modelo de proceso del software que contempla cuatro etapas para el desarrollo del mismo: el análisis, el

diseño, la codificación y las pruebas. Para más información, consultar el libro citado en la nota al pie anterior, pág. 20.

5 Fonema: Es la unidad fonológica más pequeña. Su número para un lenguaje en específico (p.e. español) es reducido.

Page 22: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

22

Además de lo anterior, el hecho de basarse en el POO nos permite utilizar para las fases de análisis y diseño del sistema, el Lenguaje de Modelado Unificado6 (UML, por sus siglas en inglés), que es independiente del lenguaje que se utilice para la implementación. En UML un sistema viene representado por cinco vistas diferentes que lo describen desde perspectivas diferentes. Cada vista se representa mediante un conjunto de diagramas. Las siguientes vistas están presentes en UML: Vista del usuario. Representa el sistema (producto) desde la perspectiva de los usuarios (llamados actores en UML). El caso de uso es el enfoque utilizado para modelar esta vista. Vista estructural. Los datos y la funcionalidad se muestran desde dentro del sistema, es decir, modela la estructura estática (clases, objetos, y relaciones). Vista del comportamiento. Esta parte del modelo del análisis representa los aspectos dinámicos o de comportamiento del sistema. También muestra las interacciones o colaboraciones entre los diversos elementos estructurales descritos en las vistas anteriores. Vista de implementación. Los aspectos estructurales y de comportamiento se representan aquí tal y como van a ser implementados. Vista del entorno. Aspectos estructurales y de comportamiento en el que el sistema a implementar se representa. En este proyecto se contempló principalmente el uso de los diagramas de casos de uso, diagramas de clase, diagramas de secuencia, y diagramas de estados, para las fases ya mencionadas. Los primeros tres tipos de diagramas son obligatorios para el sistema, mientras que el último tipo sólo se utilizará en caso de ser necesario. UML incluye otro tipo de diagramas, como los diagramas de componentes y despliegue, los cuales no se consideran en este proyecto.

Elementos de la fonética acústica

A continuación se da una explicación de algunos elementos que componen la

fonética acústica.

6 Desarrollado a finales de los 90 por Booch, Rumbaugh, y Jacobson, que colaboraron para combinar y recopilar las mejores características de cada uno de sus métodos de diseño y análisis OO en un método unificado.

Page 23: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

23

Palabras

Las palabras son unidades fonológicas que se pueden descomponer en otras unidades fonológicas. Para descomponer una palabra, ésta se tiene que dividir en unidades fonológicas más pequeñas, por ejemplo: sílabas, dífonos, fonemas, etc. Para realizar la síntesis del texto a voz, la palabra será la unidad fonológica que tendrá prioridad, esto con el objetivo de que la voz sintetizada sea natural e inteligible pero debido a que el diccionario no contendrá todas las palabras del español, lengua a utilizar para la síntesis de la voz, se deberán tomar en cuenta otras unidades fonológicas para que a pesar de que el sonido de la palabra no exista, ésta pueda pronunciarse. Dífonos

El dífono es una unidad fonológica más pequeña que la palabra y consiste en el sonido entre un fonema y otro. La ventaja que aportan los dífonos es que no se tienen que utilizar reglas de concatenación para que la naturalidad de la voz se siga manteniendo, a diferencia de los fonemas. Sin embargo, la tarea de extracción de dífonos de una lengua tiene que ser muy precisa si se quiere aprovechar la ventaja de dicha unidad fonológica. En el español se estima que existen alrededor de 800 difonos, en el aleman aprox. 2,500. Está claro que almacenar 800 dífonos en una base de datos es factible a comparación con la cantidad de palabras que contiene un diccionario de uso común. La extracción de los dífonos del español aún no se ha hecho motivo por el cual no se presenta una tabla detallándolos. Se espera tener un compendio de dífonos (alrededor de 800) aceptable aplicando diversas pruebas para extraerlos apartir de la pronunciación de palabras. Se utilizará un software (a determinar) que nos permita manipular las ondas de sonido con la finalidad de facilitar la obtención de dichos sonidos. Fonemas

Ya se ha explicado en secciones anteriores la importancia del uso de fonemas para la síntesis del texto a voz. Cuando no se encuentre el sonido de una palabra, ni de un dífono específicos, son estas unidades fonológicas las que nos ayudarán a pronunciarla. Está claro que hay que aplicar ciertas reglas de concatenación de los fonemas para que la naturalidad de la voz no se vea afectada a un nivel muy elevado. Dichas reglas de concatenación son aún motivo de investigación, razón por la cual no se incluyen en el presente documento. Sin embargo, una lista de los fonemas del español se muestra a continuación en la tabla 1.

Page 24: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

24

Fonema Grafía Ejemplos

/a/ a /b/ b, v vaso, bote, cava /θ/ c, z cena, caza /k/ c, qu, k casa, queso, kilo /t∫/ ch chico, muchacho /d/ d dado /e/ e /f/ f fama, café /g/ g,gu gama, guisa, paga /i/ i /x/ j, g paja, gitano /l/ l ala, mal /λ/ ll llave, calle /m/ m mamá /n/ n nana /η / ñ caña /o/ o /p/ p piedra, capa /r/ r para, norte /r’/ rr, r perro, remo /s/ s soy, dos /t/ t tapa, atar /u/ u / j / y, hi mayo, hierba

Tabla 1Tabla 1Tabla 1Tabla 1 Fonemas del español

Técnicas de síntesis de voz

Las dos características utilizadas para describir la calidad de un sintetizador de voz son la naturalidad e inteligibilidad. La naturalidad de un sintetizador de voz se refiere a cuánto suena como la voz de una persona real. La inteligibilidad de un sintetizador se refiere a la facilidad de la salida de poder ser entendida. El sintetizador ideal debe de ser a la vez natural e intelegible, y cada tecnología intenta conseguir el máximo de ambas. Algunas de las tecnologías son mejores en naturalidad o en inteligibilidad y las metas de la síntesis determinan a menudo qué aproximación debe seguirse. Hay dos tecnologías principales usadas para generar habla sintética: síntesis concatenativa y síntesis de formantes.

Page 25: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

25

Síntesis concatenativa La síntesis concatenativa se basa en la concatenación de segmentos de voz

grabados. Generalmente, la síntesis concatenativa produce los resultados más naturales. Sin embargo, la variación natural del habla y las técnicas automatizadas de segmentación de formas de onda resultan en defectos audibles, que conllevan una pérdida de naturalidad.

Hay tres tipos básicos de síntesis concatenativa: Síntesis por selección de unidades

La síntesis por selección de unidades utiliza una base de datos de voz

grabada (más de una hora de habla grabada). Durante la creación de la base de datos, el habla se segmenta en algunas o todas de las siguientes unidades: fonemas, sílabas, palabras, frases y oraciones. Típicamente, la división en segmentos se realiza usando un reconocedor de voz mdificado para forzar su alineamiento con un texto conocido. Después se corrige manualmente, usando representaciones como la forma de onda y el espectrograma. Se crea un índice de las unidades en la base de datos basada en parámetros acústicos de la segmentación como la frecuencia fundamental, el pitch, la duración, la posición en la sílaba y los fonemas vecinos. En tiempo de ejecución, el objetivo deseado se crea determinando la mejor cadena de candidatos de la base de datos (selección de unidades). Este proceso se logra típicamente usando un árbol de decisión especialmente ponderado.

La selección de unidades da la máxima naturalidad debido al hecho de que no aplica mucho procesado digital de la señal al habla grabada, lo que a menudo hace que el sonido grabado suene menos natural, aunque algunos sistemas usan un poco de procesado de señal en la concatenación para suavizar las formas de onda. De hecho, la salida de la mejor selección de unidades es a menudo indistinguible de la voz humana real, especialmente en contextos en los que el sistema ha sido adaptado. Por ejemplo, un sistema de síntesis de voz para dar informaciones de vuelos puede ganar en naturalidad si la base de datos fue construida a base grabaciones de informaciones de vuelos, pues será más probable que aparezcan unidades apropiadas e incluso cadenas enteras en la base de datos. Sin embargo, la máxima naturalidad a menudo requiuere que la base de datos sea muy amplia, llegando en algunos sistemas a los gigabytes de datos grabados. Síntesis de difonos

La síntesis de difonos usa una base de datos mínima conteniendo todos los

difonos que pueden aparecer en un lenguage dado. El número de difonos depende de la fonotáctica del lenguaje: el español tiene unos 800 difonos, el

Page 26: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

26

alemán unos 2500. En la síntesis de difonos, la base de datos contiene un sólo ejemplo de cada difono. En tiempo de ejecución, la prosodia de una oración se sobreimpone a estas unidades mínimas mediante procesado digital de la señal, como codificación lineal predictiva, PSOLA o MBROLA7. La calidad del habla resultante es generalmente peor que la obtenida mediante selección de unidades pero más natural que la obtenida mediante sintetización de formantes. La síntesis difonos adolece de los defectos de la síntesis concatenativa y suena robótica como la síntesis de formantes, y tiene pocas ventajas respecto a estas técnicas aparte del pequeño tamaño de la base de datos, así que su uso en aplicaciones comerciales experimenta un declive, aunque continúa usándose en investigacióon porque hay unas cuantas implementaciones libres. Síntesis específica para un dominio

La síntesis específica para un dominio concatena palabras y frases grabadas

para crear salidas completas. Se usa en aplicaciones donde la varidad de textos que el sistema puede producir está limitada a un particular dominio, como anuncios de salidas de trenes o información metereológica. Esta tecnología es muy sencilla de implementar, y se ha usado comercialmente durante largo tiempo: es la tecnología usada por aparatos como relojes y calculadoras parlantes. La naturalidad de estos sitemas puede ser muy alta porque la variedad de oraciones está limitada y corresponde a la entonación y la prosodia de las grabaciones originales. Sin embargo, al estar limitados a unas ciertas frases y palabras de la base de datos, no son de propósito general y sólo pueden sintetizar la combinación de palabras y frases para los que fueron diseñados.

Síntesis de formantes

La síntesis de formantes no usa muestras de habla humana en tiempo de ejecución. En lugar de eso, la salida se crea usando un modelo acústico. Parámetros como la frecuencia fundamental y los niveles de ruido se varían durante el tiempo para crear una forma de onda o habla artificial. Este método se conoce también como síntesis basada en reglas pero algunos aducen que muchos sistemas concatenativos jusan componentes basados en reglas para algunas partes de sus sistemas, como el front-end, así que el término no es suficientemente específico.

Muchos sistemas basados en síntesis de formantes generan habla robótica y de apariencia artificial, y la salida nunca se podría confundir con la voz humana. Sin

7Sintetizador del habla humana basado en la concatenación de dífonos. Para más información acerca de

MBROLA se recomienda visitar el sitio http://www.guia-ubuntu.org/dapper/index.php/MBROLA

Page 27: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

27

embargo, la naturalidad máxima no es siempre la meta de un sintetizador de voz, y estos sistemas tienen algunas ventajas sobre los sistemas concatenativos.

La síntesis de formantes puede ser muy intelegible, incluso a altas velocidades, evitando los defectos acústicos que pueden aparecer con frecuencia en los sistemas concatenativos. La síntesis de voz de alta velocidad es a menudo usada por los discapacitados visuales para utilizar computadores con fluidez. Por otraparte, los sintetizadores de formantes son a menudo programas más pequepos que los sistemas concatenativos porque no necesitan una base de datos de muestras de voz grabada. De esta forma, pueden usarse en sistemas empotrados, donde la memoria y la capacidad de proceso son a menudo exiguas. Por último, dado que los sistemas basados en formantes tienen un contol total sobre todos los aspectos del habla producida, pueden incorporar una amplia variedad de tipos de entonaciones, que no sólo comprendan preguntas y enunciaciones.

Otros métodos de síntesis

o La síntesis articulatoria ha sido un método de interés puramente académico hasta hace poco. Se basa en modelos computacionales del tracto vocal y el proceso de articulación. Pocos de los modelos son suficientemente avanzados o eficientes computacionalmente para ser usados en sistemas comerciales de síntesis de vvoz. Una excepción notable es el sistema basado en NeXT, originalmente desarrollado y comercializado por Trillium Sound Research Inc, que pasó más tarde a tener una licencia GPL y se continuó como gnuspeech, siendo un proyecto GNU.

o La Síntesis híbrida maneja aspectos de las síntesis concatenativa y de

formantes para minimizar los defectos acústucos cuando se concatenan segmentos.

o La Síntesis basada en HMM es un método de síntesis basado en Modelos

ocultos de Markov (HMM en inglés). En este sistema, el habla espectro de frecuencias (tracto vocal), frecuencia fundamental (fuente vocal), y la duración (prosodia) se modelan simultáneamente por modelos ocultos de Markov. Las formas de onda se generan desde estos modelos ocultos de markov mediante el criterio de máxima verosimilitud.

Este proyecto se centra en la creación de un sistema computacional capaz de transformar texto a voz (sintetizador de voz), utilizando técnicas de Inteligencia Artificial y modelos de Bases de Datos. En particular se utilizarán las redes neuronales como técnica de Inteligencia Artificial, y se planeó en un principio utilizar el modelado de bases de datos relacionales para la implementación de la base de datos del sistema.

Page 28: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

28

En esta sección se hablará acerca de la primera versión del sistema. Se comenzará por explicar el funcionamiento del sistema utilizando la técnica de Diagramas de Flujo de Datos; a continuación se hablará acerca del tratamiento digital de las imágenes que contienen el texto a sintetizar a voz; posteriormente se abordará el tema referente al reconocimiento de caracteres impresos utilizando redes neuronales, y para terminar se mencionarán las técnicas de síntesis de voz a utilizar para la implementación del sistema.

Representación del sistema utilizando un diagrama de contexto

Usuario TRADUCTORTexto

Peticiones

Volumen de voz

UsuarioTexto escaneadoMensajes diversos

DIAGRAMA DE CONTEXTO DEL SINTETIZADOR DE VOZ

Voz

Escáner

Imagen-textoOrdenes / Mensajes

Diagrama de contexto del TRADUCTOR

El sintetizador de voz, interactuará con dos entidades, que son: el usuario y un escáner. El usuario será capaz de comunicar al sistema el volumen que desea tenga la voz, podrá ingresar texto digital (a través del teclado) para su conversión a voz y será capaz de hacer diversas peticiones, además de las ya mencionadas. El escáner mantendrá una comunicación con el sistema a través de órdenes y mensajes diversos, además de brindar la posibilidad de ingresar imágenes conteniendo texto al sistema con la finalidad de que éste las procese y haga la síntesis de la voz utilizando el texto impreso contenido en la imagen. Por su parte, el sistema será capaz de entregar al usuario la voz sintetizada ya sea de texto digital o de texto impreso, dará la posibilidad al usuario de manipular el texto

Page 29: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

29

reconocido e interactuará con éste a través de mensajes diversos. Esto es a groso modo el funcionamiento del sistema TRADUCTOR. El presente sistema ha sido completamente diseñado utilizando el estándar UML. Se hizo uso de los diagramas de casos de uso, diagramas de clase y diagramas de secuencia. Dicha documentación se anexa en el disco compacto anexo a este reporte.

Tratamiento digital de imágenes de texto impreso

Siempre que se captura una imagen, hay que eliminar el ruido inherente a la misma debido a las características del dispositivo de entrada (escáner, cámara web, etc.) y a las características del medio ambiente (iluminación p.e.). Lo anterior implica hacer uso de diversas técnicas para eliminar la mayor cantidad de ruido posible. En el caso de TRADUCTOR se hizo uso del filtro de la mediana para eliminar el ruido tipo sal y pimienta inherente a las imágenes. En un principio se creyó que este tipo de ruido podría afectarnos, sin embargo, al momento de hacer pruebas con imágenes capturadas a partir de un escáner nos dimos cuenta de que la iluminación del escáner permitía capturar imágenes muy claras. El problema que se nos presentó fue que al capturar la imagen, ésta viene a color. La red neuronal que se diseñó para reconocer los caracteres sólo fue entrenada para trabajar con imágenes binarias (dos colores, blanco y negro, básicamente). Lo anterior implicaba tratar la imagen para obtener una representación de la misma que cumpliera con los requerimientos de la red neuronal. Lo que se hizo fue transformar la imagen a escala de grises y posteriormente umbralizarla (se probaron diferentes umbrales) para obtener una representación binaria. Se probaron también diversas técnicas para mejorar la calidad de la imagen binaria, tales como, la operación apertura y cerradura para eliminar pequeños puntos negros que quedan distribuidos de poco uniformemente en la superficie blanca de la imagen (ver imagen 1); la cerradura se utilizó con la finalidad de disminuir el grosor de los caracteres y así eliminar algunas uniones entre ellos, es decir, casos en los que dos o más caracteres quedaban unidos por una pequeña porción de puntos negros, inherentes a la umbralización (ver imagen 2).

Imagen 1. Imagen binaria con ruido distribuido sobre el área blanca.

Imagen 2. Se observa como al umbralizar, algunos caracteres quedan unidos por una pequeña porción de puntos.

Page 30: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

30

Es importante mencionar que el programa utilizado para tratar las imágenes fue creado utilizando Java como lenguaje de programación. La aplicación anterior se incluye en el disco compacto.

Reconocimiento de caracteres impresos utilizando Redes Neuronales

Para el reconocimiento de los caracteres impresos se utilizó una red neuronal de 3 capas. La arquitectura de la red se muestra en la figura 9. Para las capas oculta y de salida se utilizaron las funciones tanh y logsig respectivamente.

La red será capaz de reconocer los caracteres mostrados en la tabla 1. Se utilizó la regla de la pirámide para determinar las características iniciales de la red, aunque al hacer pruebas entrenándola con diferentes conjuntos de entrenamiento se vio la necesidad de aumentar el número de neuronas en la capa oculta. Aún se están haciendo pruebas para determinar los parámetros finales de la red neuronal que se usará para implantar el sintetizador de voz. El entrenamiento de la red se hizo utilizando el algoritmo de retropropagación clásico, sin embargo, se planea hacer entrenamientos utilizando algoritmos que mejoran al de retropropagación clásico añadiendo parámetros extra al entrenamiento.

Información

Capa de entrada 225 neuronas

(sensorial)

Capa oculta 122 neuronas

(procesamiento)

Capa de salida 128 neuronas

(efectora)

Figura 9. Arquitectura de la red neuronal del sistema

Page 31: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

31

Para entrenar la red neuronal se utilizó un programa creado en Java. La aplicación creada también se anexa en el disco compacto. Hay que remarcar el hecho de que el sintetizador de voz no se incluye puesto que aún estamos en proceso de desarrollo del mismo, aunque los avances generados son considerables. Técnica de síntesis de voz a utilizar

La técnica de síntesis de voz que se utilizará para convertir texto a voz será la de selección de unidades. La técnica original consiste en utilizar los sonidos de fonemas, sílabas y palabras almacenados en una base de datos con el fin de pronunciar el texto reconocido y preprocesado por el sistema. En nuestro caso hemos decidido hacer experimento utilizando en vez de sílabas dífonos. Actualmente se están haciendo pruebas para extraer dichos elementos fonológicos, correspondientes al idioma español. Hay aún mucho que mejorar respecto a los sonidos. Se está utilizando un programa que permite manipular la onda de los sonidos. Dicho programa presenta algunas limitaciones. Una posible solución a dichas limitaciones sería utilizar otro software que permitiera una mejor manipulación de la onda con tal de eliminar ruido inherente al sonido capturado y además adaptar el sonido a las necesidades de síntesis de voz del sistema. Al concluir esta etapa se proseguirá a unir cada uno de los módulos generados para al fin, implementar el sistema final.

Las sugerencias hasta el momento para este sistema son las siguientes:

o Es recomendable utilizar una velocidad de entrenamiento baja (en el intervalo (0- 0.05]) al momento de entrenar la red neuronal con conjuntos de entrenamiento grandes.

o Alcanzar la naturalidad en la voz sintetizada es un procedimiento complejo

ya que involucra reglas de concatenación en caso de que la palabra no se encuentre en la base de datos y se usen fonemas. Se harán pruebas exhaustivas hasta obtener un número de reglas suficiente para alcanzar un grado aceptable de naturalidad.

o El filtro de la mediana es el más apto para eliminar el ruido sal y pimienta

inherente a las imágenes escaneadas. Sin embargo, las imágenes obtenidas hasta el momento no presentan gran cantidad de este tipo de ruido.

o Es mejor utilizar primero la operación erosión para adelgazar el texto, ya

que de esta forma las manchas existentes en la imagen se hacen más pequeñas y pueden ser eliminadas posteriormente por la apertura.

Page 32: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

32

2) Sistema de Información El presente trabajo se enfoca al desarrollo de control de citas y expedientes en un hospital, el cual puede ser aplicado a cualquier tipo de hospital sea público o privado. El sistema está diseñado para implementarse en hospitales o clínicas médicas que deseen optimizar y automatizar sus actividades.

En el desarrollo de sistemas de información se pueden aplicar diversas metodologías de desarrollo, en el proyecto que se presenta en este artículo se aplicó la metodología de desarrollo de prototipos y diseño de sistemas, el cual consta de las siguientes etapas:

- Ingeniería y modelado de sistemas/información: Establecer los requisitos de

todos los elementos del sistema. Tener en cuenta la visión del sistema, cuando el software se debe de interconectar con otros elementos como hardware, personas, bases de datos.

- Análisis de los requisitos de software. Reunión de los requisitos, comprender la

naturaleza del programa a construirse. - Diseño de la arquitectura del sistema, considerando a los diversos actores y

casos que se pueden presentar. Establecimiento de formatos que se tomarán como base para la realización de un análisis de la información recibida.

- Diseño de los módulos que comprenden el sistema. - Generación de código. - Pruebas. se realizan las prueban periódicamente para evitar algún error a

futuro. - Mantenimiento. El diagrama a bloques se presenta en la siguiente figura:

Page 33: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

33

De acuerdo a la información obtenida con las encuestas realizadas, se elaboraron los diagramas de contexto y de nivel cero. A continuación se presenta el diagrama de contexto nivel 0, el cual representa del sistema en general. Solo se representan las entradas y salidas de información en el sistema en forma general.

Page 34: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

34

Diagrama lógico nivel uno A continuación se presenta el diagrama de nivel uno, en el cual se representan los procesos de una manera muy general, que ocurren en el sistema, mostrando también las entradas y salidas que se tienen.

Page 35: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

35

Page 36: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

36

Page 37: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

37

Page 38: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

38

VII. Bibliografía Bernal Bermúdez, Jesús, Bobadilla Sancho, Jesús, Gómez Vilda, Pedro.

“Reconocimiento de voz y fonética acústica”. Ed. AlfaOmega * RaMa. México.

Bruegge Bernd y H. Dutoit, Allen. “Ingeniería de Software Orientada a Objetos”. Ed. Prentice Hall. México.

Ceballos, Francisco Javier. “JAVA 2: Curso de Programación”. 3ª Edición. Ed. AlfaOmega*RaMa. España.

____. “Java 2. Interfaces gráficas y aplicaciones para Internet”. Ed. AlfaOmega * RaMa. España.

Martín Del Río, Bonifacio y Sanz Molina, Alfredo. “Redes Neuronales Artificiales”. 2ª Ed. Ed. AlfaOmega * RaMa. México.

Pressman, Roger S. “Ingeniería de Software. Un enfoque práctico”. Ed. Mc. Graw Hill. México.

Páginas Web

http://es.wikipedia.org/wiki/S%C3%ADntesis_de_voz (Tipos de síntesis de voz)

Page 39: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

39

VIII. Resultados

Los resultados que se obtuvieron en el desarrollo de este proyecto son los siguientes:

Formación de recursos humanos, tres alumnos PIFI. Desarrollo de trabajos terminales en el área de bases de datos relacionales y

técnicas de inteligencia artificial. Dos aplicaciones enfocadas al desarrollo de un traductor y al desarrollo de un

sistema de información. Documentación del proyecto. Participación de los alumnos PIFIS como ponentes de una conferencia en un

encuentro estudiantil. Conferencias dictadas sobre bases de datos por parte de la directora y los

participantes del proyecto.

Page 40: Instituto Politécnico Nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061190_3195.pdfnervioso estaba formado por una red continua de fibras nerviosas, era extendida. Sin embargo, tras

40

IX. Impacto El principal aspecto que se cubrió en el desarrollo de este proyecto fue la participación de alumnos de la carrera de Ingeniería en Sistemas Computacionales a los cuales se les indujo en el área de bases de datos relacionales y técnicas de inteligencia artificial se planteó la solución a dos problemas de la vida real. Esta participación permitió dar una formación sólida de los alumnos en el área de bases de datos relacionales, la cual constituye una de las competencias que un Ingeniero en Sistemas Computacionales debe dominar en el mercado laboral, este tipo de proyectos permite proporcionar una formación integral del alumno para facilitar su transición al mercado laboral o en la continuación de estudios de postgrado.