portal de voz en voicexml - repositorios universidad...
TRANSCRIPT
PORTAL DE VOZ EN VOICEXML
León Daniel Benarroch Hadida
Rubén Darío Mariña Muñoz Tutor: Edgar León Perez
Caracas, Julio 2001.
Universidad Metropolitana Facultad de Ingeniería Escuela de Ingeniería de Sistemas
`
II
DERECHO DE AUTOR
Cedemos a la Universidad Metropolitana el derecho de reproducir y difundir
el presente trabajo, con las únicas limitaciones que establece la legislación
vigente en materia de derecho de autor.
En la ciudad de Caracas, a los 23 días del mes de julio del año 2000.
___________ __ _______ ______________________
León Daniel Benarroch Hadida Rubén Darío Mariña Muñoz
`
III
APROBACIÓN
Consideramos que el Trabajo Final titulado
PORTAL DE VOZ EN VOICEXML
elaborado por los ciudadanos
LEÓN DANIEL BENARROCH HADIDA
RUBÉN DARÍO MARIÑA MUÑOZ
para optar al título de
INGENIERO DE SISTEMAS
Reúne los requisitos exigidos por la Escuela de Ingeniería de Sistemas de la
Universidad Metropolitana, y tiene méritos suficientes como para ser
sometido a la presentación y evaluación exhaustiva por parte del jurado
examinador que se designe.
En la ciudad de Caracas, a los 23 días del mes de julio del año 2001.
____________ _____
Ing. Edgar León Perez
`
IV
ACTA DE VEREDICTO
Nosotros, los abajo firmantes constituidos como jurado examinador y
reunidos en Caracas, el día ________________________, con el propósito
de evaluar el Trabajo Final titulado
PORTAL DE VOZ EN VOICEXML
presentado por los ciudadanos
LEÓN DANIEL BENARROCH HADIDA
RUBÉN DARÍO MARIÑA MUÑOZ
para optar al título de
INGENIERO DE SISTEMAS
emitimos el siguiente veredicto:
Aprobado__ Notable__ Sobresaliente__
Sobresaliente con Mención Honorífica__
Observaciones:_________________________________________________
_____________________________________________________________
__________________ ___________________ __________________
`
V
AGRADECIMIENTOS
A nuestros padres por habernos dado el apoyo necesario para la realización
de este proyecto.
A Lena por habernos ayudado con la corrección del tomo y darnos apoyo
moral para poder terminar el trabajo.
A todos nuestros amigos, por estar pendientes y preocupados por nosotros.
A Edgar por darnos su apoyo y respaldo durante todo el proyecto.
Al Personal de Netcom C.A, por darnos su apoyo incondicional, además de
habernos permitido trabajar con Uds.
En general, damos gracias a todos aquellos que nos ayudaron, sin
conocernos, a través de Internet.
`
VI
TABLA DE CONTENIDO
LISTA DE TABLAS Y FIGURAS .........................................................................VIII
RESUMEN.................................................................................................................. IX
INTRODUCCIÓN........................................................................................................ 1
CAPÍTULO I. OBJETIVOS, LIMITACIONES Y ALCANCES.......................... 5
I.1. OBJETIVO GENERAL............................................................................... 6
I.2. OBJETIVOS ESPECÍFICOS.................................................................... 6
I.3. LIMITACIONES Y ALCANCES................................................................ 7
CAPÍTULO II. MARCO DE REFERENCIA...................................................... 9
II.1. PORTALES DE VOZ...............................................................................10
II.2. RECONOCIMIENTO DE DISCURSO...................................................13
II.2.1. Identificación - Verificación de la voz ............................................17
II.2.2. Gramáticas ........................................................................................18
II.2.3. Funcionamiento del Motor de Reconocimiento...........................21
II.2.4. Problemática del Reconocimiento de Discurso...........................24
II.2.5. Reconocimiento de Discurso en la Industria de la Telefonía ....26
II.3. PROMPTS (MENSAJES DE AUDIO) ...................................................27
II.3.1. Archivos Pregrabados .....................................................................29
II.3.2. Síntesis de Texto (Text to Speech) ...............................................29
II.4. VOICE EXTENSIBLE MARKUP LENGUAGE .....................................34
II.4.1. Funcionamiento................................................................................36
II.4.2. Arquitectura.......................................................................................39
CAPÍTULO III. DESARROLLO METODOLÓGICO......................................42
III.1. ANÁLISIS...................................................................................................45
III.1.1. Análisis de las herramientas de desarrollo ..................................45
III.1.2. Elaboración del diagrama de casos de uso.................................52
III.1.3. Elaboración de los diagramas de secuencia...............................56
III.2. DISEÑO .....................................................................................................57
`
VII
III.2.1. Módulo I .............................................................................................60
III.2.2. Módulo II ............................................................................................67
III.2.3. Módulo III ...........................................................................................71
III.3. IMPLEMENTACIÓN Y PRUEBAS.........................................................73
III.3.1. Interfaz de voz ..................................................................................73
III.3.2. Interfaz Web......................................................................................75
III.3.3. Pantalla del Back-end......................................................................81
CAPÍTULO IV. CONCLUSIONES ....................................................................83
CAPÍTULO V. RECOMENDACIONES ...........................................................87
GLOSARIO ...............................................................................................................89
REFERENCIAS BIBLIOGR AFICAS ....................................................................97
APÉNDICE A. SECUENCIA TÍPICA DE EVENTOS DE LOS DIAGRAMAS
DE CASOS DE USO .............................................................................................101
APÉNDICE B. DIAGRAMA DE SECUENCIAS................................................110
APÉNDICE C. DIAGRAMA DE CLASES..........................................................115
APENDICE D. ESPECIFICACIÓNES DE LAS HERRAMIENTAS ...............116
`
VIII
LISTA DE TABLAS Y FIGURAS
Tabla 1. Tabla comparativa de las herramientas evaluadas. ..........................51
Figura 1. Evolución histórica de acceso a internet ............................................11
Figura 2. Gramática estática de opciones para enviar un mensaje. ...............19
Figura 3. Reconocimiento de un número de 7 dígitos. .....................................20
Figura 4. Componentes de un motor de reconocimiento de discurso............22
Figura 5. Historia de VoiceXML ............................................................................34
Figura 6. Arquitectura de una plataforma en VoiceXML..................................40
Figura 7. Diagrama de Caso de Uso escenario global .....................................55
Figura 8. Diseño del Sistema.................................................................................58
Figura 9. Arquitectura conceptual de VoiceXML................................................60
Figura 10. Definición de gramática de correo electrónico................................63
Figura 11. Definición de gramática de agenda...................................................65
Figura 12. Proceso para la síntesis de texto de un mensaje electrónico......71
Figura 13. Pantalla de acceso...............................................................................76
Figura 14. Pantalla principal..................................................................................77
Figura 15. Pantalla sección correo.......................................................................78
Figura 16. Pantalla sección contactos .................................................................79
Figura 17. Pantalla sección agenda .....................................................................80
Figura 18. Pantalla del Modulo II ..........................................................................81
Figura 19. Icono de status .....................................................................................82
`
IX
RESUMEN
PORTAL DE VOZ EN VOICEXML
Autores: León Daniel Benarroch Hadida Caracas, Julio 2001. Rubén Darío Mariña Muñoz Tutor: Edgar León Perez
El objetivo de este trabajo fue desarrollar un sistema que utiliza el reconocimiento de lenguaje natural a través de la voz, para proveer servicios de lectura de mensaje de correo, interconexión telefónica y agendas personales. El sistema se dividió en 3 módulos, en el módulo I se encuentra las interfaces del sistema, tanto la de voz como la de web (valor agregado al presente proyecto). En el módulo II, están las rutinas necesarias para la integración con los servidores de correo (entrante y saliente) así como los procedimientos necesarios para la integración del sistema. Finalmente el modulo III se encarga de la transformación de los mensajes entrantes en archivos de audio, a través de la síntesis de texto utilizando la herramienta de Text To Speech (TTS). Para el logro de este objetivo, se realizó una investigación en el área de aplicaciones de voz, identificándose los elementos necesarios para el desarrollo del mismo, determinando así la importancia de un sistema como este para la red de Internet y para ciertos servicios en la telefonía. En el desarrollo de la aplicación se utiliz ó la metodología de análisis y diseño orientado a objeto propuesta por Rumbaugh, complementada con el uso de UML (Unifed Modeling Language) como lenguaje de modelado. La directiva principal del diseño fue lograr un ambiente que presente facilidades de adaptación y crecimiento. Una vez que se llevan a cabo las etapas de análisis y diseño, se inició la implementación de la aplicación, usando los lenguajes y objetos necesarios para cada módulo del sistema. Como resultado se obtuvo un portal de voz el cual cumple a cabalidad los objetivos planteados, y como valor agregado se realizó la interfaz web que complementa al sistema.
`
1
INTRODUCCIÓN
¡ Teclados Temblad !
Párraga, 2001
La comunicación oral es la más natural e inherente al ser humano. El
desarrollo de Internet ha multiplicado la capacidad del hombre para
comunicarse y por lo tanto se ha generado la necesidad de buscar una forma
más sencilla de navegar en la red. Es evidente que la voz será de las
herramientas más poderosas en este ámbito.
Internet, la red de mayor impacto en el mundo, es responsable de ser el
mayor mecanismo de divulgación de información, sin embargo, ha llegado a
un punto donde pareciera que su crecimiento ha disminuido, debido a la
limitación que presenta el hecho de ser, un computador su única forma de
acceso. Buena parte de la industria ha estado buscando alternativas para
que el acceso a esta red, no sea dependiente de una sola forma de entrada,
sino que ofrezca posibilidades mediante dispositivos accesibles para la gran
mayoría de la población en las últimas décadas y no para una minoría.
El dispositivo o producto en el área de las telecomunicaciones de mayor
impacto en el mundo, ha sido el teléfono celular. En el caso de Venezuela,
6,5 millones de usuarios para el año 2001, un 30 % de la población, mientras
que sólo un 33% de estos usuarios tienen acceso a internet (Párraga, 2001).
Hoy en día uno de los grandes retos de la industria informática es mejorar la
eficacia y la naturalidad de la relación entre los dispositivos inalámbricos e
Internet. Actualmente existen tecnologías tales como Wireless Application
Protocol (WAP), Celullar Digital Packet Data (CDPD), Short Message Service
`
2
(SMS) entre otras, que permiten acceder a cierto nivel de información, sin
embargo, ninguna de ellas ha logrado impactar completamente el mercado
mundial debido a las limitaciones que generan en el usuario.
La supervivencia a mediano y largo plazo de las nuevas tecnologías de
intercambios de información inalámbrica, está condicionada por la aceptación
de los cambios en los patrones de conducta de los usuarios que su uso
representa, además de conquistar con éxito la relación Costo / Beneficio. Sin
embargo, la realidad indica que las tecnologías en lugar de competir y/o
morir tienden a adaptarse y encontrar algún nicho en el cual pueden existir
con relativa longevidad, de esta forma se aprecia como en el desarrollo del
intercambio de información inalámbrica se establecen niveles de
participación tecnológica.
De todos los procesos que afectan la comunicación entre el hombre y la
máquina, el nivel de interfaz es el que representa el mayor reto debido a que
en él se combinan los factores tecnológicos y culturales. Las cualidades que
una buena interfaz Hombre-Máquina, reducido al ámbito del tema discutido
(comunicación inalámbrica), deben tener las siguientes características: ser
naturales, no inhabilitantes y efectivas.
Natural se refiere al hecho de que la interfaz debe estar más cercana al
hombre que a la máquina. No inhabilitante, implica que el hombre, de forma
natural usa sus órganos y sentidos cooperativa pero independientemente,
cualquier actividad en la que tengamos que enfocar gran parte de nuestra
atención y recursos, será realizada sólo si es necesario. Y efectiva, una
buena interfaz debe potenciar la comunicación y minimizar las
barreras.(Placer, 2001)
`
3
En este ámbito es necesario introducir el término “Portal de Voz”, el cual
representa la forma de acceso a este nuevo nivel de interfaz hombre-
máquina.
Según Fernandez, Ortega, Serrano (2000, p.p 1-5) el concepto de portal de
voz, da un paso más allá de la pura navegación por voz y pretende relacionar
el mundo de Internet con el mundo de la voz a través de un conjunto de
servicios que amplían, complementan y dan un valor añadido al acceso voc al
a internet propiamente dicho. Los servicios predominantes de los portales de
voz son, la lectura de correo, agendas personales y el acceso a contenidos
específicos.
Las tecnologías involucradas para el desarrollo de un portal de voz son
sumamente complicadas, y el resultado de años de estudio es lo que hoy en
día nos permite “soñar” una realidad sobre todas las aplicaciones que se
pueden realizar de una manera muy sencilla. Es evidente que el desarrollo
de estas tecnologías es aún prematuro, pero es suficiente para generar el
ciclo de desarrollo que involucra tanto el uso del mismo como la continua
investigación para su perfeccionamiento.
En este sentido el objetivo general de este trabajo es desarrollar un sistema
que utilice el reconocimiento de lenguaje natural* a través de la voz, para
proveer servicios de lectura de mensaje de correo, interconexión telefónica y
agendas personales.
El presente informe está estructurado de la siguiente manera:
En el capítulo I, se presentan las referencias teóricas dentro del contexto de
la investigación. Primero, se ubica al lector en el entorno de los portales de
* Término definido en el glosario
`
4
voz, haciendo notar la importancia de los mismos en el mercado mundial.
Después se describen tecnologías necesarias para el desarrollo del mismo.
Por último se explica en detalle el lenguaje sobre el cual se va a realizar el
desarrollo.
En el capítulo II, se presentan en detalle las etapas de la metodología de
análisis, diseño, desarrollo y implementación que guió este trabajo. Primero
se presenta el análisis realizado el cual refleja el producto de la investigación,
el diagrama de casos de uso y los diagramas de secuencia. Seguidamente
se describe el diseño que se siguió durante el desarrollo a través de figuras
demostrativas, de igual forma se soporta con el diagrama de clases. Por
último se ilustra el resultado del trabajo mediante la navegación del mismo.
`
6
I.1. OBJETIVO GENERAL
Desarrollar un Sistema que utilice el reconocimiento de Lenguaje Natural a
través de la voz, para proveer servicios de lectura de e-mail, interconexión
telefónica y agendas personales.
I.2. OBJETIVOS ESPECÍFICOS
1. Desarrollar una Interfaz de reconocimiento de Lenguaje Natural.
1.1 Identificar de los elementos sociales y culturales que
determinan una buena comunicación eficaz en el ámbito
de los servicios de lectura de email y agenda personal.
1.2 Construir de la interfaz de reconocimiento para el
sistema de consulta de email, para esto se debe definir:
?? Gramáticas: ámbito en el cual el reconocimiento es
realizado, ¿qué se puede reconocer?
?? Diálogos: sucesión lógica de gramáticas, manejos de
errores y casos excepcionales.
?? Diccionarios. Descripción fonética de aquello que puede
ser reconocido, ¿cómo reconocer?
?? Prompts: Interfaz hablada del sistema al usuario
?? Caracteres: personalidad del sistema
1.3 Construcción de la interfaz de reconocimiento para el
sistema de asistente telefónico, para esto se debe
definir:
`
7
?? Gramáticas
?? Diálogos
?? Diccionarios
?? Prompts
?? Caracteres
2. Definición y desarrollo de Interfaces de Datos entre Módulos.
2.1 Identificación de Sistemas Externos a integrar
2.2 Definición de estándares y políticas de existencias e
intercambios de información entre módulos prestadores
de servicio.
3. Definición y desarrollo de procedimientos, sistemas administrativos
y de mantenimiento.
I.3. LIMITACIONES Y ALCANCES
?? El sistema a desarrollar pretende la implantación de una cantidad limitada
de servicios, tales como la lectura de email y asistente telefónico,
demostrando a través de esta implantación la características que deben
poseer en cuanto a la interfaz Hombre-Máquina.
?? Las definiciones que se hagan en cuanto a la gramática condicionan la
capacidad de reconocimiento de los sistema.
`
8
?? La variedad en cuanto a las interfaces técnicas con los proveedores de
contenido hace virtualmente imposible la homogenización de ésta, se
tendrán que seleccionar algunos proveedores de acuerdo a las realidades
del mercado.
?? Por compromisos de la empresa la selección de la tecnología de
reconocimiento no es posible, se usará la que está disponible.
?? En cuanto a la fonética el sistema será capaz de reconocer las palabras
dichas en cierta forma. Como regla general el sistema deberá ser capaz
de reconocer cualquier palabra dicha que esté presente en el contexto y
que un ser humano pueda entender. Es posible que bajo ciertas
condiciones de ruido el reconocimiento sea imposible.
?? El sistema a desarrollar deberá poseer la capacidad de adaptarse para
crecer y permitir la adhesión de otros módulos que puedan ser
desarrollados en el futuro.
`
10
En este capítulo se plantea una referencia sobre las tecnologías y términos
necesarios para el desarrollo de este trabajo. Primeramente se da un breve
descripción del concepto involucrado en los portales de voz. Seguidamente
se explica el funcionamiento de las tecnologías necesarias para el desarrollo
de una aplicación de voz, describiendo los diferentes elementos y
problemáticas que lo involucran.
II.1. PORTALES DE VOZ
Siendo la voz uno de los principales canales de la comunicación humana, por
su naturalidad y facilidad de expresión* entre los individuos, se hace
necesario que la nueva tecnología, como lo es internet, se adapte a las
necesidades y capacidades del individuo, insertando, para una mayor
facilidad de manejo de la red, el uso de la voz natural.
Con los portales de voz, se traslada el concepto y las posibilidades de
internet a los clientes del servicio telefónico, lo que hasta la fecha estaba
reservado sólo a los usuarios con PC y más recientemente a los dispositivos
móviles con tecnología WAP.
En la Figura 1 se muestra la evolución histórica del acceso a internet. En un
principio existió el lenguaje html para acceder a los contenidos de internet a
través de un browser, viendo que la cantidad de usuarios se encontraba
limitada a aquellos que poseían un computador y que existía un gran
mercado en los usuario de dispositivos móviles se comenzó buscar una
nueva tecnología que permitiera llevar el contenido y los servicios de internet
a estos dispositivos, dicha tecnología es WAP (Wireless Application
Protocol).
`
11
Figura 1. Evolución histórica de acceso a internet
Fuente: Igea, Ortega, Serrano Aranda (2000, p.p 1-5)
WAP es una tecnología diseñada para proveer a los usuarios de terminales
móviles un rápido y eficiente acceso a internet. WAP es un protocolo
optimizado, no sólo para ser usado en canales de banda de radio sino para
ser usado para la segunda generación de sistemas digitales inalámbricos,
pero con capacidades limitadas y dependientes del funcionamiento del
sistema del terminal móvil. WAP integra servicios telefónicos con micro-
navegadores. (Wap Forum ,2000).
Hoy en día esta tecnología no ha logrado introducirse completamente en el
mercado, como consecuencia de esto está surgiendo la tecnología de
acceso por voz a los contenidos de internet, de modo tal, que al igual que
WML es el lenguaje estándar para WAP, se quiere que VoiceXML sea el
lenguaje estándar para las aplicaciones de voz.
`
12
Los servicios de los portales de voz pueden ser de gran interés para las
operadoras telefónicas, en concreto, pueden suponer una “reinvención de la
telefonía” para otros aspectos y potencialidades de los teléfonos aún sin
explorar. Además, permitirían fomentar y servir de germen a otras
actividades y negocios relacionados con la publicidad y el comercio
electrónico, todo a través del teléfono.
Los servicios de portales de voz tienen como objetivos:
?? Universalizar el uso de Internet.
?? Incrementar de tráfico telefónico.
?? Incrementar el número de usuarios de acceso vocal a Internet por
teléfono.
?? Generar nuevos negocios asociados: e-commerce, juegos
interactivos, facturación, publicidad, etc.
Usualmente, un portal de voz puede contener las siguientes funcionalidades:
?? Envío y recepción de mensajes de correo.
?? Agendas: personal y de negocios.
?? Servicios de contenidos: Noticias nacionales e internacionales,
horóscopo, entretenimiento, finanzas, localización geográfica de
lugares, servicios de directorios.
?? Navegación por Internet.
?? Directorios de teléfonos.
Para la navegar en un portal de voz se de utilizar reconocimiento de lenguaje
natural*, esto significa que un cliente habla con la máquina de forma continua
como lo haría con otra persona, y la máquina será capaz de reconocer y
`
13
entender lo que dice. Esta característica permite eliminar la rigidez
tradicional en los diálogos hombre-máquina, abriendo un abanico
prácticamente ilimitado de aplicaciones, los cuales hasta la fecha no se
podían ofrecer con un sistema automatizado.
Los portales de voz usualmente tienen una página Web donde se configura y
establece ciertos parámetros que por voz, son muy incómodos de realizar,
tales como las opciones del sistema, agregar un nuevo contacto, entre otros.
II.2. RECONOCIMIENTO DE DISCURSO
Según Kemble (2001) el proceso de reconocimiento de discurso es realizado
por un componente de software que se conoce como motor de
reconocimiento de discurso. La función primaria del motor de reconocimiento
de discurso es procesar una entrada hablada y traducirla en el texto que una
aplicación puede entender. Entonces las aplicaciones de reconocimiento de
discurso se pueden dividir en dos:
?? Las que interpretan el resultado del reconocimiento como un
comando. En este caso, la aplicación es una aplicación de
comando y control. Un ejemplo es cuando el usuario dice "Estado
de Cuenta", y la aplicación devuelve el estado de cuenta del
usuario.
?? Las que manejan el texto recibido simplemente como un texto,
entonces es considerada una aplicación de dictado. En una
aplicación de dictado, si el usuario dijera "estado de cuenta" la
aplicación no devolvería resultado, simplemente devolvería el
texto "estado de cuenta".
`
14
Según Kemble (2001) y Collin (1999, Art 2) el reconocimiento de discurso
tiene los siguientes términos o características que definen y permiten
entender el funcionamiento del mismo:
?? Expresión
Cuando el usuario dice algo, se conoce como una expresión. Una expresión
es cualquier corriente de discurso entre dos períodos de silencio*. Las
expresiones son enviadas al motor de discurso para ser procesadas.
El silencio, en el reconocimiento de discurso es casi tan importante como lo
que es hablado, porque el silencio establece el principio y el final de una
expresión.
El motor de reconocimiento de discurso descubre la entrada de audio debido
a una carencia de silencio y marca el principio de la expresión. Así mismo
cuando el motor descubre una cierta cantidad de silencio, el final de la
expresión es señalada.
Una expresión puede ser una sola palabra, o puede contener múltiples
palabras (oraciones o frases*). Por ejemplo, "balance", "balance de mi cuenta
corriente" o "me gustaría saber el balance de mi cuenta corriente, por favor"
son algunos ejemplos de expresiones posibles que un usuario podría decir a
una aplicación bancaria escrita en VoiceXML para solicitar el balance de su
cuenta. Las gramáticas* activas establecen las palabras y frases válidas en
un punto particular del diálogo.
?? Pronunciación
Un motor de reconocimiento de discurso usa todos los tipos de datos
generados, como los modelos estadísticos y algoritmos, para poder convertir
`
15
la entrada hablada en el texto. Uno de ellos es la pronunciación. La
pronunciación de una palabra representa lo que el motor de discurso piensa
sobre cómo debería sonar dicha palabra.
Las palabras pueden tener pronunciaciones múltiples asociadas con ellas.
Un desarrollador de aplicaciones en VoiceXML, requiere proporcionar
pronunciaciones múltiples para ciertas palabras y frases, para obtener así,
variaciones en cuanto a las maneras que los usuarios pueden expresar.
?? Dependencia contra Independencia del Usuario
La dependencia del usuario describe el grado en el cual un sistema de
reconocimiento de discurso requiere el conocimiento de las características de
voz individuales de un usuario para procesar satisfactoriamente el
reconocimiento. El motor de reconocimiento de discurso tiene la capacidad
de "aprender" sobre cómo un usuario en particular, dice palabras y frases;
este sistema puede ser entrenado para cualquier tipo de voz.
Los sistemas de reconocimiento de discurso, que requieren que un usuario
entrene el sistema con su voz, son conocidos como sistemas dependientes
del usuario. Los sistemas de dictado en los suites de productividad*, son casi
todos dependientes del usuario, ya que ellos funcionan sobre vocabularios*
muy amplios, por lo tanto, trabajan mejor cuando el usuario dedica un tiempo
entrenando al sistema con su propia voz.
Los sistemas de reconocimiento de discurso que no requieren que el usuario
entrene el sistema, son conocidos como sistemas independientes del
usuario. El reconocimiento de discurso en el mundo VoiceXML, debe ser
independiente del usuario, ya que una aplicación de voz debe tener la
capacidad de poder entender a cualquier usuario, independientemente de
sus características individuales.
`
16
?? Exactitud*
El funcionamiento de un sistema de reconocimiento de discurso es medible,
quizás la medida más usada es la exactitud. Es típicamente una medida
cuantitativa y puede ser calculada de varios modos, sin embargo, lo más
importante de la exactitud es si el resultado final deseado ocurrió. Esta
medida es útil en la validez del diseño de aplicación. Por ejemplo, si el
usuario dijo "sí", el motor devolvió "sí", la acción ha sido ejecutada, es claro
que el resultado final deseado ha sido alcanzado. Pero ¿ qué pasa si el
motor devuelve un texto que exactamente no empareja la expresión?. Por
ejemplo, si el usuario dijo "nope", cuando quiso decir “no” y el motor devolvió
"No", ¿Esto debería ser considerado un diálogo acertado? La respuesta a
esta pregunta es sí porque el resultado final deseado ha sido alcanzado.
Otra medida de exactitud de reconocimiento es si el motor reconoció la
expresión exactamente como se dijo. Esta medida de exactitud de
reconocimiento es expresada como un porcentaje, y representa el número de
expresiones aprobadas correctamente según el número total de expresiones
habladas. Esto valida el diseño de gramática. Usando el ejemplo anterior, si
el motor devolviera "nope" cuando el usuario dijo "No", esto sería
considerado como un error de reconocimiento..
La exactitud de reconocimiento es una medida importante para todos las
aplicaciones de reconocimiento de discurso. Esto esta vinculado al diseño de
la gramática y al ambiente acústico* del usuario, explicado posteriormente.
?? Lenguaje Natural
Según Hernández (2000) “el lenguaje se considera, como un conjunto de
oraciones, que usualmente es infinito y se forma con combinaciones de
`
17
palabras del diccionario. Es necesario que esas combinaciones sean
correctas (con respecto a la sintaxis) y tengan sentido (con respecto a la
semántica). Un lenguaje es la función que expresa pensamientos y
comunicaciones entre la gente. Esta función es llevada a cabo por medio de
señales vocales (voz) y/o por signos escritos.”
Existen dos tipos de lenguajes, los lenguajes naturales (ingles, español, etc.)
y los lenguajes formales (matemático, lógico, etc.).
El lenguaje natural es el medio que utilizamos de manera cotidiana para
establecer nuestra comunicación con las demás personas. En el ámbito de
reconocimiento de discurso, el lenguaje esta dado por la definición de las
gramáticas.
Se dice que el reconocimiento es de lenguaje natural, ya que se que se
asemeja al lenguaje natural, pero en realidad el sistema tiene predefinido las
múltiples opciones para entender un comando, esto quiere decir que el
sistema sólo va a entender lo que esta predefinido en el contexto.
II.2.1. Identificación - Verificación de la voz
Identificación es la “acción y efecto de identificar o identificarse”. Identificar
es “hacer que dos o mas cosas que en realidad son distintas aparezcan y se
consideren como una misma” (Salvat, 1976, pp.1754).
Según Collin (1999), en la verificación de un individuo, se compara la
expresión de una persona cooperante con plantillas pregrabadas de una
`
18
forma dependiente del texto dentro de un entorno donde hay un gran número
de posibles candidatos. Una de las principales dificultades al construir un
sistema identificador, es la selección de rasgos* para la discriminación entre
ellos.
La verificación de la voz es utilizada para garantizar cierto nivel de seguridad
en el sistema en las secciones que lo requieran. Esta no puede ser utilizada
individualmente, debe estar ligada a otros aspectos, tales como una clave
secreta, que garanticen, además de la verificación de voz, que el usuario que
está llamando tiene el permiso para acceder al sistema.
II.2.2. Gramáticas
La gramática es el conjunto de reglas que limita el número de combinaciones
permitidas de las palabras del vocabulario. En general, la existencia de una
gramática, en un reconocedor, ayuda a mejorar la tasa de reconocimiento,
eliminar ambigüedades y puede contribuir a la disminución de la necesidad
de cálculo al limitar el número de palabras en una determinada fase del
reconocimiento. En sistemas de palabras aisladas, en los que no existe una
gramática en el sentido estricto del término, se puede entender por tal el
número de palabras a reconocer. (Kunins 2001)
Una gramática usa una sintaxis particular, con ciertas reglas, se definen las
palabras y las frases que deben ser reconocidas por el motor. Una gramática
puede ser tan simple como una lista de palabras, o puede ser
suficientemente flexible, para permitir tanta variabilidad en lo que puede ser
dicho, pareciéndose a lenguaje natural.
`
19
Las gramáticas definen el dominio, o el contexto, en el cual el motor de
reconocimiento trabaja. El motor compara la expresión corriente contra las
palabras y frases en las gramáticas activas. Si el usuario dice algo que no se
encuentra en la gramática, el motor de discurso no será capaz de descifrarlo
correctamente.
Existen dos tipos de gramáticas, la estática y la dinámica. La primera es la
que tiene predefinida toda la gramática y se crea en el momento de diseño; y
la dinámica se diferencia únicamente porque se crea la gramática en tiempo
real, es decir, se genera según los datos que se le proporcionen en el
momento.
?? Gramática Estática
Es creada en el diseño del sistema, y responsable de lo que éste es capaz
de entender.
Un ejemplo específico, es el de un usuario que desea mandar un correo
electrónico, existen distintos modos de expresar este comando, como se
explica en la Figura 2.
Figura 2. Gramática estática de opciones para enviar un mensaje.
Fuente: Elaboración propia
`
20
Se puede definir una sola gramática para la aplicación, de lo contrario se
pueden tener gramáticas múltiples. La posibilidad de la gramática múltiple
es, que la aplicación las activará sólo cuando esto sea necesario. Desde
luego, existen las compensaciones entre la velocidad de reconocimiento
(tiempo de respuesta) y la exactitud, contra el tamaño y complejidad de la
gramática. Por lo tanto, éstas no pueden ser muy extensas, ya que mientras
mayor sea la cantidad de formas de expresar un comando, mayor es la
probabilidad que el sistema se equivoque. Esto reside directamente en el
diseño de la gramática, un ejemplo claro de este problema es el
reconocimiento de un número telefónico. Dicho número, normalmente, está
compuesto por 7 dígitos.
Figura 3. Reconocimiento de un número de 7 dígitos.
Fuente. Elaboración propia
En la Figura 3 sólo se observan tres opciones de expresar el número
telefónico, y se puede notar que, tanto la primera opción como la segunda
tienen una probabilidad mayor de ser utilizada por el usuario que la última
opción, por lo que a la hora de diseñar esta gramática, se debería excluir la
opción 3, ya que la probabilidad de que alguien diga esa opción es mínima,
debido a que no es la forma natural o común de decir un número telefónico.
Con este ejemplo se observa el estudio preliminar que se requiere para
determinar qué es lo que el usuario probablemente vaya a decir y cuáles son
`
21
las principales formas en que lo puede decir. Este paso incide mucho en la
calidad de la interfaz, ya que si el usuario intenta expresar algo y la
aplicación no lo entiende, éste se puede sentir frustrado y probablemente no
vuelva a utilizar el servicio. (Nuance Speech Recognition System Version 7.0
(2000, Cap 1 pp 1)
?? Gramáticas Dinámicas
Una de las ventajas claves de las aplicaciones de reconocimiento de
discurso surgidas por internet, es la capacidad de crear rápidamente
servicios poderosos e integrados que permiten utilizar los datos y sistemas
existentes.
Según Kunins (2001) es un hecho que las gramáticas deben "compilar" al ser
cargadas por cualquier plataforma de reconocimiento de discurso, y que las
gramáticas muy grandes pueden tomar varios segundos para compilar. Esto
no es absolutamente exclusivo de VoiceXML. La diferencia clave es que
VoiceXML hace sumamente fácil para los desarrolladores incorporar
elegantemente gramáticas dinámicas a sus aplicaciones. Los
desarrolladores, que construyen aplicaciones de reconocimiento de discurso
sobre cualquier plataforma, incluyendo VoiceXML, deben planear las
características de la aplicación y diseñar cuándo usar las gramáticas
estáticas* o las dinámicas*.
II.2.3. Funcionamiento del Motor de Reconocimiento
Según Kemble (2001) la tarea del motor de reconocimiento de discurso
implica la traducción de la entrada de audio en un texto.
`
22
Como muestra la Figura 4 , los componentes principales son:
?? Entrada de audio.
?? Gramática.
?? Modelo Acústico.
?? Texto reconocido.
Según la Figura 4, primeramente está la entrada de audio, representada por
el usuario. Esta entrada no sólo contiene los datos del discurso, sino
también el ruido de fondo. Este puede interferir con el proceso de
reconocimiento, por lo tanto, el motor de discurso debe manejarse y
posiblemente adaptarse al ambiente donde el audio es obtenido.
Figura 4. Componentes de un motor de reconocimiento de discurso.
Fuente: Kimberlee A.Kemble (2001)
`
23
Como expresa su definición, el trabajo del motor de reconocimiento de
discurso, es convertir la entrada hablada en texto. Para lograr esto, se
emplean todos los tipos de datos, estadísticas y algoritmos que se
encuentren a su alcance. Su primer trabajo es tratar la señal entrante de
audio y convertirla a un formato más conveniente para el análisis remoto.
Una vez que los datos del discurso están en un formato apropiado, el motor
busca la mejor equivalencia para esa entrada. Esto lo realiza por medio de
las palabras y frases* que conoce (las gramáticas activas). El conocimiento
del ambiente en el que esta trabajando (para VoiceXML, esto es el ambiente
de telefonía), lo proporciona el modelo acústico (ver Figura 4). Una vez que
se identifica la equivalencia más probable de lo que se dijo, el motor retorna
lo que se reconoció en forma de texto.
Algunas técnicas que se utilizan para el diseño de reconocedores de
discurso son:
?? Técnicas topológicas: Dynamic Time Warping (DTW), basados en
el cálculo y comparación de distancias.
?? Técnicas probabilísticas: Modelos ocultos de Markov (HMM), que
son modelos generativos de las palabras del vocabulario.
?? Redes neuronales.
En los cuatro casos está presente una fase de "entrenamiento" (cálculo de
los patrones de referencia, cálculo de los parámetros de los modelos de
Markov, entrenamiento de las redes neuronales o creación de estructuras de
datos para los sistemas expertos), y otra fase de "reconocimiento"
propiamente dicho. Igualmente en los cuatro casos el primer proceso
necesario es la "parametrización" o transformación de la forma de onda de la
señal entrante, en un conjunto de parámetros o características adecuadas
para cada reconocedor.
`
24
Cuando el motor de reconocimiento procesa una expresión, devuelve un
resultado. El resultado puede ser uno de estos estados: aceptación o
rechazo. Una expresión aceptada es cuando el motor devuelve un texto
aprobado, mientras que el rechazo es lo contrario.
Algunos motores devuelven una probabilidad de confianza sobre el texto
reconocido, es decir, la probabilidad que el texto devuelto sea el correcto.
II.2.4. Problemática del Reconocimiento de Discurso
Según Poza (1990) existen varias problemáticas presentadas en el
reconocimiento de discurso, asociados a:
?? El Locutor.
Es quizás el aspecto que introduce mayor variabilidad en la forma de onda
entrante, y por tanto requiere que el sistema de reconocimiento sea
altamente robusto. Una persona no pronuncia siempre de la misma forma,
debido a distintas situaciones físicas y psicológicas Existe además gran
variedad entre distintos locutores (hombres, mujeres, niños), diferencias
según la edad o región (es la llamada variabilidad interlocutor). Es mucho
más sencillo que un sistema funcione para un determinado locutor donde
éste lo haya entrenado previamente (se dice que el sistema es dependiente
del locutor), a que un sistema funcione para cualquier locutor (sistema
independiente del locutor).
`
25
?? La forma de hablar.
El humano pronuncia las palabras de una forma continua, y debido a la
inercia de los órganos articulatorios, que no pueden moverse
instantáneamente, se producen efectos coarticulatorios. Ello, unido a las
variaciones introducidas por la prosodia*, hace que una palabra al principio
de una frase sea diferente que cuando se dice en medio de la misma, o que
también, sea diferente dependiendo de qué es lo que le precede o le sigue.
Un reconocedor es relativamente sencillo si sólo tiene que reconocer una
palabra dicha de forma aislada (reconocedor de palabras aisladas) y es más
complejo si debe reconocer las palabras de una frase, pero introduciendo
una pausa entre cada dos de ellas (habla conectada). El sistema más
complicado es aquel que debe funcionar reconociendo habla continua, que
es la forma natural de hablar.
?? El Vocabulario.
Se conoce por tal al número de palabras diferentes que debe reconocer el
sistema. Mientras mayor es el número de palabras, más complejo es el
reconocedor. Esto ocurre por dos motivos, el primero porque al aumentar el
número de palabras es más fácil que aparezcan palabras parecidas entre sí;
y el segundo porque al aumentar el número de palabras que comparar,
aumenta directamente el tiempo de tratamiento. Una solución posible a este
problema sería el utilizar unidades lingüísticas inferiores a la palabra
(alófonos*, sílabas*, etc.) que en principio tienen un número limitado, e
inferior al de posibles palabras. Sin embargo, la dificultad de reconocer estas
unidades es aún mayor debido a que su duración es muy corta, la frontera
entre dos unidades sucesivas es muy difícil de establecer y los efectos
coarticulatorios son mucho más fuertes que entre palabras.
`
26
?? El Entorno físico.
No es lo mismo un sistema que funciona en un ambiente poco ruidoso, como
puede ser el despacho de un pediatra, o el que tiene que funcionar dentro de
un carro o en una fábrica.
II.2.5. Reconocimiento de Discurso en la Industria de la Telefonía
Según Kemble (2001) el reconocimiento de discurso sobre el teléfono
introduce algunos desafíos únicos. Ante todo la amplitud de banda de la
corriente de audio. Los viejos sistemas de telefonía plana (POTS), utilizan
8kHz como rata de cambio, esta amplitud de banda es mucho más baja que
una computadora de escritorio, la cual usa 22kHz. Como la calidad de la
corriente de audio es mucho más baja en el ambiente de telefonía, hace el
reconocimiento más difícil.
El ambiente de telefonía puede ser bastante ruidoso ya que los usuarios
pueden llamar de sus casas, oficinas, autos, el aeropuerto, etc, a demás los
equipos para realizar la llamada son muy variables.
Otra consideración es si realmente soporta el barge-in* (W3C (2000)) El
barge-in (también conocido como cut-thru) se refiere a la capacidad de un
usuario para interrumpir un prompt* cuando se esta reproduciendo, es decir,
cuando se dice algo o se presiona una tecla del teléfono. Esto es a menudo
un rasgo de utilidad importante para usuarios expertos que buscan "un
camino rápido" en aplicaciones donde los prompts no son indispensables.
Cuando el usuario realiza un barge-in, es esencial que el prompt sea
terminado inmediatamente (o, al menos, que sea percibido inmediatamente
`
27
por el usuario). Si hay alguna tardanza sensible (mayor de 300 milisegundos)
entre el momento que el usuario dice algo y el prompts es finalizado,
entonces, el usuario puede pensar que el sistema no escuchó, y muy
probablemente lo repetirá, lo que confundiría al sistema y al usuario, esto es
el mismo efecto que el tartamudeo.
Existe otro fenómeno relacionado con el barge-in, llamado "el Discurso
Lombard". El discurso Lombard se refiere a la tendencia de la gente para
hablar más fuerte en ambientes ruidosos, es una alternativa para ser oída
sobre el ruido. Los usuarios que utilizan el barge-in tienden a hablar más
fuerte de lo que necesitan hablar, lo cual puede ser un problema a la hora
reconocer el discurso. La oratoria más fuerte no ayuda al proceso de
reconocimiento de discurso, al contrario, esto deforma la voz y dificulta el
proceso de reconocimiento.
Todos estos son problemas que afectan únicamente cuando se está tratando
de reconocer un discurso en un ambiente telefónico, por eso el motor de
reconocimiento está preparado para ver qué tipo de recurso está utilizando el
usuario y para tratar de resolver los problemas antes mencionados.
II.3. PROMPTS (MENSAJES DE AUDIO)
Usualmente una interfaz se refiere a algo visual, pero en el caso de las
aplicaciones de voz, se refiere a algo que sólo interactúa con el sentido
auditivo, por lo que ésta debe ser muy buena para poder tener éxito.
Para que una aplicación de voz sea agradable al usuario, debe tener un
conjunto de sonidos que, inconscientemente, hagan entender al usuario lo
`
28
que el sistema trata de decir (Santiago Aldekoa (2000)), por ejemplo, en un
sistema que presente un menú de secciones, se podría crear un sonido que
indique cuando se entra a una sección nueva. Por otro lado la entonación
que use el sistema debe ser la apropiada para el contexto en que se esta
desenvolviendo, para no recibir un rechazo inmediato por parte del usuario.
Esto se puede ver reflejado en el siguiente ejemplo: cuando un usuario
quiera decir un comando y la probabilidad de entendimiento es nula el
sistema le pedirá al usuario de una manera sumisa y con un tono de voz más
suave que repita el comando. De esta forma podemos crear una interfaz
agradable para que el usuario no rechace al sistema aunque éste no haya
entendido las peticiones del mismo.
Jeff Kunins citado por Hoffman, (2000) escribió: “El reto realmente no es de
desarrollo, sino de diseño. Es muy fácil escribir una interfaz terrible y difícil
de usar”. En el desarrollo de esta tecnología, se va ver muchas aplicaciones
que van fracasar sólo por el hecho de no tener un buen diseño de los
prompts aunque la idea como aplicación sea buena. Cualquier persona va a
poder hacer aplicaciones VoiceXML pero lo difícil está en el diseño y no en la
complejidad del código.
Existen dos tipos de prompts, el generado por un sintetizador de texto o Text
To Speech* y el de audio pregrabado. Existen ventajas y desventajas para
cada uno, pero esencialmente su uso es para casos distintos. Este difiere en
cuanto a la necesidad de la creación del discurso en tiempo real, esto quiere
decir, que para poder decir el nombre de un usuario del sistema, es
prácticamente imposible, crear los archivos pregrabados de todos los
nombres de los usuarios del sistema y hacerlo continuamente mientras se
vayan creando. Por lo tanto, es necesario que un sintetizador los genere sin
la necesidad del factor humano.
`
29
II.3.1. Archivos Pregrabados
Los archivos pregrabados son más naturales, ya que no son generados por
una máquina, simplemente son grabados por una voz humana. La ventaja de
estos archivos, es que, se puede difundir cualquier tipo de emoción, que una
máquina por ahora, no puede expresar. Sin embargo, su principal defecto
radica en el tiempo y el costo que involucran.
Usualmente los archivos pregrabados son los que hoy en día están
presentes en la aplicaciones de voz, ya que como nos dan la posibilidad de
elegir la voz humana, permiten que la interfaz del sistema sea mucho más
agradable y atractiva. Esta situación seguirá así hasta que los sintetizadores
de texto puedan equipararse, en naturalidad y entendimiento a lo que es la
voz humana.
II.3.2. Síntesis de Texto (Text to Speech)
Según Dilts M (1984) la tecnología de síntesis de texto o Text To Speech
(TTS), puede definirse como un sistema que transforma cualquier texto
escrito siguiendo las convenciones ortográficas de una determinada lengua
en su equivalente hablado. Los sistemas de conversión de texto a voz son
necesarios cuando el ordenador debe generar una serie infinita de mensajes
imposible de prever.
Ciertas aplicaciones de la síntesis de voz, requieren precisamente la
posibilidad de generar en tiempo real un número infinito de mensajes
impredecibles. Unos ejemplos de estas aplicaciones serían:
`
30
?? Máquinas lectoras para ciegos: Consiste en un sofisticado conversor de
texto a voz asociado a un sistema de reconocimiento óptico que permiten
leer en voz alta cualquier documento impreso.
?? Ayudas para los disminuidos físicos: Las personas que se encuentran
incapacitadas para hablar y usan algún tipo de ayuda que les permite
intercambiar información con sus semejantes deben ser capaces de
producir cualquier mensaje que deseen, y no sólo aquellos que han sido
almacenados previamente en su sintetizador. Hoy en día están
investigándose diversos métodos de control de la prótesis - por ejemplo
mediante movimiento oculares - diseñados especialmente para aquellos
minusválidos a los que les es imposible utilizar un teclado convencional.
?? Terminales parlantes: En ciertos casos es necesario poder obtener de la
máquina cualquier mensaje oral, aunque éste sea completamente nuevo,
especialmente cuando se accede por teléfono a la información. Esta es la
situación que se da cuando se consultan telefónicamente descripciones
de productos, listas de precios, entre otros.
Cada aplicación requiere de una técnica de síntesis específica, pero la
selección de ésta depende básicamente de tres factores: la naturalidad, la
inteligibilidad y la flexibilidad que se necesite. Al mencionar la flexibilidad se
refiere a la capacidad que debe tener el sistema para generar diversos
mensajes a partir de un conjunto finito de elementos. Los sistemas de
conversión de texto a voz existentes en la actualidad ofrecen un grado muy
elevado de flexibilidad, pero en cambio no han llegado aún a alcanzar la
cualidad propia del habla natural. (Crespo, Sardina, Serrano, Larumbe
,1991).
`
31
El lenguaje puede estructurarse en varios niveles que permiten concebir
diversas técnicas de síntesis del habla, según la unidad empleada en el
proceso de almacenamiento y producción de los mensajes hablados (Dilts,
1984):
?? Frases: El almacenamiento de frases completas mediante cualquiera de
los procedimientos existentes para la codificación de la onda sonora
permite obtener voz de una cualidad y una naturalidad prácticamente
insuperables, pero se diferencia muy poco de las grabaciones analógicas.
Es una técnica que presenta una falta total de flexibilidad, puesto que
implica almacenar cada una de las frases que deben producirse.
?? Palabras: El almacenamiento de palabras permite una mayor flexibilidad y
economía, pero presenta dos problemas graves: por un lado, es imposible
reproducir las variaciones contextuales de los sonidos en función de su
entorno fonét ico; por otro, se hace difícil mantener las variaciones de
entonación según la frase y la posición de la palabra en la frase.
?? Morfemas*: Como unidad de síntesis, los morfemas presentan problemas
análogos a las palabras pero aún más acusados. El habla así producida
es muy poco natural debido a las dificultades de concatenación de los
elementos constituyentes.
?? Fonemas* o alófonos : Desde el punto de vista lingüista, ésta parece ser la
unidad más natural para la producción de habla y también es la más
económica desde la perspectiva del ingeniero. El fonema se considera la
mínima unidad abstracta en la que puede dividirse un enunciado, aunque
se reconozca la existencia de elementos menores como los rasgos
distintivos. Cualquier lengua natural puede describirse mediante unos 30-
`
32
40 fonemas, cuya combinación en unidades de nivel más alto - morfemas,
palabras y frases - permite la creación de cualquier enunciado en esta
lengua.
En la teoría lingüística se han dado y se dan aún polémicas sobre la
existencia misma del fonema, sobre su adecuación como nivel de análisis o
incluso sobre su validez psicológica, pero es innegable que el fonema
constituye una buena manera de reducir la información, que debe emplearse
en un sistema de conversión de texto a voz que deba combinar una memoria
pequeña con una gran flexibilidad. Mediante el conjunto de fonemas propio
de una lengua y las reglas para su combinación debería ser posible generar
cualquier enunciado en dicha lengua.
Los sistemas de conversión de texto se puede estructurar de la siguiente
forma:
?? Procesamiento previo del texto escrito.
Un texto escrito que deba ser utilizado como entrada de un convertidor de
texto a voz requiere un procesamiento previo. Las operaciones necesarias
son similares a las que lleva a cabo un hablante humano cuando lee en voz
alta un texto, y comprenden el tratamiento de las siglas, de los números y de
las abreviaciones, que debe aparecer en su forma completa.
?? Conversión de letras a fonemas.
Una vez que se haya hecho el procesamiento de texto se procede a la
conversión de letras a fonemas o a alófonos, según el tipo de sistema que se
trate. Para llevar a cabo esta operación, el linguista escribe primero una
`
33
gramática que tendrá la forma de un conjunto de reglas que relacionan las
letras y los sonidos de una lengua dada. A continuación, algunos sistemas
introducen un estadio intermedio en el que se analiza la estructura interna de
la palabra; en tal caso suele existir un diccionario de morfemas a los que se
asocia su pronunciación, ortografía y reglas de combinación con otros
elementos morfológicos en forma de diccionario de excepciones, tratándose
las palabras polimorfémicas, como una cadena de morfemas. En tales
sistemas, el procesamiento morfológico es previo a la conversión de letra a
sonido, que sólo se lleva a cabo cuando ya se ha realizado el análisis
morfológico.
?? Reglas alofónicas.
Las reglas alofónicas son los mecanismos por los que se definen las
características fonéticas precisas de los fonemas. De su aplicación resulta un
reajuste de las representaciones fonológicas generadas por la aplicación de
las reglas de conversión de letras a sonidos. La necesidad de estas reglas
responde a que, en el habla natural, cada sonido está influido por los sonidos
adyacentes y parece lógico pensar que un conversor de texto a voz, que
aspire a generar habla natural, debe operar de forma parecida.
?? Conversión de parámetros a sonidos.
Una vez que se ha generado una cadena con los valores de los parámetros
asociados a cada alófono, ésta debe convertirse en una señal analógica;
este proceso lo lleva a cabo habitualmente un sintetizador, enviándose el
resultado a un amplificador y un altavoz, con lo cual se obtiene la versión
sonora de la cadena de caracteres.
`
34
II.4. VOICE EXTENSIBLE MARKUP LENGUAGE
En marzo de 1999 se produjo un foro planificado por la organización que
representa al VoiceXML (http://www.voicexml.org). Posteriormente en marzo
del 2000 se produjo la liberación de la especificación de VoiceXML. Ambas
acciones tuvieron como resultado una oleada de actividad en la industria de
telefonía y el reconocimiento de discurso, la cual se orientó hacia el análisis
de los conceptos, productos y servicios del VoiceXML.
En la Figura 5 podemos ver cómo y quienes participaron en el desarrollo del
lenguaje desde 1998.
}
Figura 5. Historia de VoiceXML
Fuente: Ken Rehor (2001, pp 6)
Según Karam (2001) el proceso del Foro para desarrollar el lenguaje de
VoiceXML fue iniciado por AT&T, Lucent, y Motorola a mediados de 1998. El
resultado de esta unión fue la creación de un grupo de discusión sobre
`
35
browsers de voz realizaba por W3G en noviembre de 1998, en donde fue
tomada la decisión de crear el Foro de VoiceXML para acelerar la definición
de un lenguaje estándar para aplicaciones de reconocimiento de discurso.
Tres acontecimientos claves ocurrieron durante este período, el anuncio del
Foro en marzo 1999, la adición de IBM como uno de los fundadores, y la
creación de una especificación preliminar VoiceXML 0.9 en agosto 1999, los
cuales generaron el ímpetu en la industria de telefonía y de reconocimiento
de discurso.
El foro de VoiceXML aceptó comentarios públicos y de socios sobre la
especificación del VoiceXML 0.9, logrando para finales de 1999 y comienzos
del 2000 producir la liberación final de la especificación del VoiceXML 1.0, el
7 de marzo 2000. La liberación del VoiceXML 1.0 provocó otra vez el ímpetu
en el mercado.
En mayo del 2000, el Foro de VoiceXML decidió reorganizarse ampliando su
gama de actividades, abriendo nuevas oportunidades para la participación en
el foro y adoptando las normas de la industria IEEE y la organización de
Tecnología (ISTO).
En septiembre 2000, el Foro VoiceXML lanzo, una nueva estructura de
socios y comenzó nuevos comités para el mercadeo, conformidad y
educación del mismo. En esta estructura de socios se crearon tres niveles:
?? Patrocinador: Cuatro empresas fundadoras, y las que financiaron
el capital inicial para el Foro.
?? Promotor: un nivel de socios con pago anual.
?? Partidario: un nivel de socios libre (gratis).
`
36
Estos niveles han permitido que el desarrollo en el foro sea más participativo
y han logrado conseguir recursos para la continuación del mismo.
II.4.1. Funcionamiento
VoiceXML según Rehor (2001) es un lenguaje para la creación de interfaces
de voz, en particular para el teléfono convencional (fijo o móvil). Este
lenguaje utiliza el reconocimiento de discurso y la detección de tonos multi-
frecuencia* (DTMF*) como entrada, y pregrabado de audio y sintetizador de
texto (TTS) como salida. Este lenguaje trae el paradigma de desarrollo de
web al teléfono (Richardson (2001)). Con el objetivo de que los
desarrolladores de aplicaciones, vendedores de plataforma, pueden
beneficiarse de la transportabilidad y reutilización de código.
Con VoiceXML, el desarrollo de aplicaciones de reconocimiento de discurso
es enormemente simplificado, ya que usa una infraestructura familiar a la de
web (HTML). En vez de la utilización de un computador personal con un
browser de web, cualquier teléfono puede tener acceso a páginas hechas en
VoiceXML vía "un intérprete" VoiceXML, también conocido como "un browser
de voz"; controlado sobre un servidor de telefonía. Mientras que HTML es
comúnmente usado para la creación de usos gráficos de Web, VoiceXML es
para interfaces de voz.
Según Rehor (2001) hay dos tendencias del pensamiento en cuanto al uso
del lenguaje VoiceXML:
?? Como un modo de permitir la voz en una página Web
`
37
?? Como una solución de una arquitectura abierta para la
construcción de la próxima generación de servicios de telefonía
mediante el reconocimiento natural de la voz.
El uso primordial de este lenguaje se concentrará pára la creación de los
portales de voz, los cuales han recibido una considerable atención (León
(2000)). Este, sin embargo, no es el único uso que se va a dar a VoiceXML,
se verá en aplicaciones de voz para intranets, centros de información,
servicios de notificación, entre otros.
Separando las aplicaciones lógicas (que corren en un servidor Web) de los
diálogos de voz (corriendo sobre un servidor de telefonía), se crea un nuevo
modelo de negocio para las aplicaciones telefónicas, conocido como Voice
Service Provider o Proveedor de Servicios de Voz. Usualmente estos
proveedores son las compañías que poseen los portales de voz, ya que
tienen la capacidad de adquirir los equipos necesarios para la infraestructura
requerida. Esto permite a cualquier programador construir servicios
telefónicos y ofrecerlos a través de estos proveedores sin tener la necesidad
de comprar equipo alguno.
VoiceXML en un principio fue diseñado para construir servicios telefónicos,
pero hoy en día, después de ver la capacidad de este lenguaje, se puede
pensar en su utilización, por ejemplo, para controlar electrodomésticos
mediante la voz.
El crecimiento rápido de Internet fue debido en gran parte a su arqui tectura
abierta e interfaces comunes de alto nivel al diferir de las plataformas
disponibles (Internet Explorer, Netscape, etc). De igual forma que un
programador de HTML no tiene que saber como los bits generan la página
web en un computador personal, VoiceXML protege a los programadores de
`
38
muchas de las complejidades de una plataforma de telefonía, abstrayendo lo
que es el diseño de la aplicación y su interfaz, del funcionamiento complejo
que involucra el resto del proceso.
En el contexto de VoiceXML es necesario conocer el significado de los
siguientes términos para poder entender el funcionamiento del mismo W3C
(2000). Dichos términos son:
?? Diálogos y Subdiálogos
Existen 2 tipos de diálogos: Forms* y Menús*. Los Forms definen una
interacción con el us uario la cual obtiene valores para un conjunto de
estados (Field). Cada estado puede especificar una gramática que define el
reconocimiento permitido. Un menú se presenta cuando el usuario tiene que
escoger entre varias opciones para ser trasladado a otro dialogo basado en
esa decisión.
Los Subdiálogos son como la llamada a una función, la cual provee el
mecanismo para invocar una nueva interacción y regresar al lugar de partida.
Los datos locales, las gramáticas y la información del estado son guardadas
y están disponibles cuando se regrese al lugar de partida que llamó al
subdiálogo.
?? Eventos
Los eventos son lanzados por la plataforma por el acontecimiento de un
conjunto de circunstancias, así como cuando el usuario no responde o no
habla o simplemente pide ayuda. El interpretador también puede lanzar un
evento si encuentra un error semántico en el documento VoiceXML. Los
`
39
eventos son capturados por el elemento <catch> y son lanzados por el
elemento <throw>. También existen elementos que capturan un evento en
particular como por ejemplo, <noinput>, que sucede cuando el usuario no
dice nada.
?? Aplicación
Según definición del VoiceXML 1.0 (W3C 2000) una aplicación es un
conjunto de documentos que comparten el mismo documento raíz. Siempre
que el usuario interactúa con un documento en la aplicación, el documento
raíz es cargado. El documento raíz permanece cargado mientras que exista
una transición entre un documento y otro, y se descarga cuando el
documento destino no pertenece a la misma aplicación. Cuando el
documento raíz es cargado se mantienen activas las variables y son
conocidas como variables de la aplicación. Las gramáticas también pueden
mantenerse activas en toda la aplicación.
II.4.2. Arquitectura
Una aplicación VoiceXML requiere de varios componentes, los cuales se
pueden apreciar en la Figura 6:
?? Servidor de Aplicación: Es típicamente un servidor Web, que controla la
lógica de la aplicación, y puede tener sus bases de datos o interfaces
para una base de datos externa o un servidor de transacciones.
?? Servidor de Telefonía VoiceXML: Es una plataforma que controla el
interpretador de VoiceXML que actúa como cliente del servidor de
`
40
aplicación. El intérprete entiende diálogos VoiceXML y controla los
recursos de telefonía y reconocimiento de discurso. Estos recursos
incluyen ASR, TTS, reproductores de audio y funciones de grabación, así
como la interfaz de red telefónica.
?? Red estilo Internet: Es una red basada en paquetes TCP/IP que conecta
al servidor de aplicación con el servidor de telefonía vía HTTP.
?? Red Telefónica: Es típicamente una Public Switched Telephone Network
(PSTN), pero podría ser una red privada telefónica (por ejemplo. PBX o
central telefónica), o una red de paquete VoIP (Voz sobre IP).
?? Usuario: Cualquier teléfono que puede unirse a la red telefónica.
Figura 6. Arquitectura de una plataforma en VoiceXML
Fuente: Rehor (2001)
`
41
Como se ve en la Figura 6, el usuario marca el número de teléfono del
sistema y se comunica a través de la PSTN o PBX con el servidor de
VoiceXML, éste interpreta las páginas VXML que el servidor de aplicaciones
le provee, y con las herramientas que posee, le muestra al usuario el
contenido de la página.
El servidor de VoiceXML posee herramientas tales como el Sintetizador de
Texto, capacidad de reproducción de audio, servicios de telefonía etc, que
permiten realizar satisfactoriamente la comunicación entre el usuario y el
sistema.
`
43
Este capítulo comprende la fase de desarrollo del Portal de Voz.
Primeramente se describe la metodología utilizada y seguidamente se
presentan los procesos de análisis, diseño, desarrollo, y implementación, que
llevan al logro de los objetivos planteados.
La metodología de análisis y diseño con orientación a objetos, propuesta por
Rumbaugh (1991), representa la mejor opción para el diseño y desarrollo de
sistemas complejos y muy flexibles con respectos a los cambios.
Se selecciona esta metodología porque resulta sencillo realizar el modelado
debido a la similitud que presentan los modelos con la vida real, así como
también permite realizar fácilmente cambios y modificaciones al modelo
inicial sin afectar a otros elementos del sistema. Otra característica
importante es que la reutilización del código es sencilla. Por ello, se
selecciona el lenguaje unificado de modelado de objeto UML (Unifed
Modeling Languaje) para el modelaje de la aplicación.
UML, desarrollado por Booch, Jacobson y Rumbaugh de Rational Software
Corporation (2000), está basado en las metodologías de OMT (Object
Modeling Technique), Booch y OOSE (Object-Oriented Software
Engineering), convirtiéndose en el heredero natural de éstas. UML es, desde
fines de 1997, el lenguaje de modelado orientado a objetos estándares, de
acuerdo con el Object Management Group.
Cabe destacar que el proyecto fue realizado en la empresa Netcom C.A, la
cual nos ofreció durante todo el proyecto, su com pleta colaboración y apoyo
para la realización del presente trabajo.
`
44
Para llevar a cabo ésta de investigación se siguieron las siguientes etapas
metodológicas, adaptadas a las necesidades del presente trabajo:
?? Análisis. En esta etapa se seleccionan y analizan los lenguaje de
programación a emplear, así como los demás elementos
necesarios para el desarrollo de la aplicación. Además, se
elaboran los diagramas de casos de uso y secuencias.
?? Diseño y Desarrollo. Esta etapa incluye la elaboración del
diagrama de clases y el diseño del sistema completo. También se
hacen modificaciones al diseño a medida que se va
implementando la aplicación
?? Implementación y pruebas. Una vez realizado el desarrollo se
muestra el resultado final de este trabajo, mostrando la navegación
del mismo. Al mismo tiempo, se realizan pruebas con el fin de
detectar posibles fallas.
Se utiliza la herramienta de modelado Rational Rose C++ 4.0, obtenido de
Rational Software Corporation (2000), con el fin de elaborar los diagramas de
la notación UML.
A continuación se exponen cada una de las etapas de la metodología, con
las cuales se desarrolló la aplicación para llegar al producto final deseado.
`
45
III.1. ANÁLISIS
En esta sección, se analizan las diferentes interfases que contiene el
sistema, así como también se detallan cada una de las investigaciones que
se llevaron a cabo para determinar el lenguaje y las herramientas más
apropiadas para el desarrollo del Portal de Voz.
Es necesario para lograr el correcto desarrollo de cualquier proyecto que
involucre tecnología de información, se analicen con detenimiento las
herramientas, tanto de Hardware como de Software, con las cuales fue
posible cumplir con los objetivos previamente definidos del proyecto.
III.1.1. Análisis de las herramientas de desarrollo
La selección de las herramientas se basó en consultas realizadas por medio
de Internet, tomando en cuenta las herramientas que la compañía ya poseía.
La plataforma requerida para la implementación de un portal de voz,
explicada posteriormente en el diseño del sistema, exige la existencia de
varias computadoras conectadas en una red LAN*, en donde deben
interactuar de una manera eficiente. Debido a que la interacción de las
distintas partes del sistema se lleva a cabo a través de la base de datos, ésta
debe ofrecer un alto desempeño para el acceso simultáneo. Por otro lado, la
interfaz web también requiere de una base de datos capaz de soportar el
acceso simultaneo de muchos usuarios.
`
46
Por ello, se eligió la base de datos MYSQL, la cual, además de ser gratuita,
ofrece una gran estabilidad y desempeño para sistemas con este tipo de
exigencias (www.mysql.com).
Se utilizó el enlace ODBC* (Data Sources Open Database Connectivity) o
conectividad abierta de bases de datos de MYSQL, que permite usar la base
de datos por medio de un DSN* (Data Source Name). De esta forma se dejó
abierta la posibilidad de cambiar, cuando se desee, la base de datos
manteniendo el mismo nombre de DSN pero variando el motor de ésta (por
ejemplo ORACLE). Existen ciertas limitaciones para este cambio, ya que
algunas bases de datos no soportan funciones que si son utilizadas por
otras, sin embargo en el ámbito en que se utilizó la base de datos en este
sistema, no debería existir problema alguno debido al uso del lenguaje
estándar SQL.
Por otro lado, se vió en la necesidad de utilizar un objeto que permitiese
realizar la interacción con los servidores POP* y SMTP*, este objeto realiza
todas las funciones necesarias para la interpretación de los mensajes
entrantes, y el envío de mensajes. El objeto elegido fue el Power TCP Mail
Tool (http://www.dart.com), obtenido por la compañía donde se está
realizando el proyecto. De esta forma se evitó la programación de funciones
no especificadas dentro del los objetivos del proyecto y que requerirían de
tiempo no disponible para su realización.
Se utilizó el servidor POP, debido a que éste es el servidor de correo que
todos los ISP* (Internet Service Provider) poseen, en el diseño del portal se
dejó abierta la posibilidad para que en un futuro se pueda agregar la
interacción con los servidores IMAP, los cuales presentan una mejor
`
47
estabilidad y desempeño para la mensajería electrónica. El objeto elegido
puede realizar las operaciones de mensajería con el servidor IMAP.
Para la programación de esta parte se eligió Microsoft Visual Basic 6.0, ya
que permite crear aplicaciones complejas de una manera sencilla, orientada
a objetos y relativamente rápida.
Para la interfaz de web, la cual conforma un valor agregado al proyecto, se
pensó en utilizar el lenguaje ASP* (Active Server Pages), debido al previo
conocimiento que se tenía de éste.
Este lenguaje permite combinar elementos estándares de HTML como
tablas, textos y títulos, con elementos de lenguaje script, como bases de
datos, información fecha/tiempo, entre otros; las cuales producen una página
Web que se genera dinámicamente cada vez que dicha página es requerida
en el browser. El browser solicita la página de ASP, la que es luego
procesada por el IIS* (Internet Information Server). El servidor ejecuta el
Vbscript, convirtiéndolo en las etiquetas y textos estándares de HTML, que
pueden ser vistas desde un browser. Para la selección del editor de dicho
lenguaje se utilizó Macromedia Dream Weaver UltraDev 4.0.
Así mismo, se requirió de un objeto que permitiera realizar el envió de
archivos desde el cliente al servidor, por lo que utilizamos el objeto
AspSmartUpload (http://www.aspsmart.com), obtenido por la compañía
donde se está realizando el proyecto.
Para el desarrollo de la interfaz de voz, fue necesario indagar en detalle
sobre el tema del reconocimiento de discurso , lenguaje natural,
sintetizadores de texto y sobre la evolución que han tenido las aplicaciones
`
48
de voz últimamente, con el objeto de estar en capacidad de elegir
adecuadamente el lenguaje que se utilizó para el desarrollo de la interfaz.
De esta forma, se seleccionó el lenguaje VoiceXML para el desarrollo de la
interfaz de voz. Como se explicó en el marco de referencia, este lenguaje
promete ser el estándar para las aplicaciones de voz, abriendo un abanico de
posibilidades para el rápido crecimiento e implantación de esta tecnología.
Además de ofrecer una fácil integración y adhesión de módulos.
De los proveedores tecnológicos que existen en el mercado, todos se basan
en el estándar de VoiceXML de W3C, pero cada uno plantea de forma
distinta el uso de esta tecnología, esto implica que no se puede utilizar
cualquier herramienta de desarrollo de VoiceXML y hacerlo correr en
cualquier servidor de otro proveedor, lo cual obliga a elegir un sólo proveedor
que ofrezca lo mejor en todos los aspectos. Para cumplir con esta premisa
fundamental fue necesario investigar, analizar y evaluar hasta donde fuese
posible, las herramientas y aplicaciones, que permitan el reconocimiento de
discurso, interpretador de VoiceXML y sintetizadores de texto (TTS)
existentes en el mercado en la actualidad.
Plataformas de VoiceXML
Para la preselección de las herramientas se tomó en cuenta los siguientes
criterios:
?? Estabilidad. Se refiere a la estabilidad de la compañía como
desarrollador de herramientas para la implantación de la nueva
plataforma VoiceXML.
`
49
?? Soporte. Implica la capacidad de respuesta ante los problemas que
surgen durante el desarrollo de la aplicación, este soporte debe ser de
fácil acceso, y posibilitar al usuario la interacción tanto con los técnicos de
la compañía, como con todos los usuarios que están desarrollando
aplicaciones con su herramienta.
?? Capacidad. La herramienta y el software deben tener una capacidad
suficiente para la implementación del sistema cumpliendo cabalmente con
los objetivos del proyecto.
?? Disponibilidad. Debe permitir un fácil acceso a las herramientas, así
como a las actualizaciones de los mismos. Por otro lado, tiene que existir
la posibilidad realizar el desarrollo y pruebas con una hardware accesible.
?? Eficiencia. Debe tener herramientas que demuestren ser eficientes a la
hora de la implantación. Esto se refiere, principalmente, al reconocimiento
de discurso.
?? Calidad. La compañía debe tener reconocimiento de la calidad de sus
herramientas, reflejada en los actuales clientes que presente.
?? Independencia entre los módulos. El sistema requerido consta de
varios módulos: el reconocimiento de discurso, el interpretador de
VoiceXML y el sintetizador de texto (TTS) . Por lo tanto es necesario que
el módulo de TTS sea independiente de los otros módulos, debido a que
existe una gran diferencia entre las calidades de los distintos proveedores
de TTS en el idioma español.
`
50
Los sistemas de reconocimiento de discurso e interpretadores de VoiceXML
que han cumplido con los requerimiento son:
?? IBM WebSphere Voice Server Disponible en: http://www-4.ibm.com/software/speech/enterprise/ep_1.html
Inicialmente estaba en su propio lenguaje pero posteriormente fue cambiado
al estándar de VoiceXML. Permite crear rápidamente aplicaciones de Voz
para proveer soluciones a E-business, este año ganó en la exposición de
CTExpo Best Of Show (Computer Telephony 2001) realizado en el mes de
marzo de 2001. Las especificaciones se muestran en el apéndice D.
?? Mya Voice Platforms, Voice Developer Gateway de AT&T
Disponible en: http://www.motorola.com/MIMS/ISG/voice/syssoft/vdg.htm
Ofrece una solución final para el desarrollo de herramientas de Voz, que
incluye todo lo necesario en un sólo paquete incluyendo el hardware y
software. Ganó como “Most Innovative Telephony Application” en “The 20th
Annual AVIOS Conference” realizado en Abril de 2001 (Mya Voice Platforms
Press Release 2001). Las especificaciones se muestran en el Apéndice D.
?? Nuance Voice Web Server Y Nuance 7.0
Disponible en: http://www.nuance.com/products/voicewebserver.html
Nuance 7.0 es un sistema para el reconocimiento de discurso, el cual provee
una gran precisión, escalabilidad y confiabilidad para aplicaciones de voz vía
telefónica. Actualmente tiene clientes tales como: American Airlines,
BeVocal, British Airways, Cisco Systems, Sears, Sprint PCS, TellMe
Networks, entre otros.
`
51
El Nuance Voice Web Server 1.2, liberado al público el 20 de mayo de 2001
ofrece la interpretación de documentos VXML a través de cualquier tipo de
teléfono. Este requiere del Nuance 7.0 para hacer el reconocimiento de
discurso y de cualquier sistema de TTS. Las especificaciones se muestran
en el Apéndice D.
A continuación se presentan en la Tabla 1 el cuadro generales referentes a
las herramientas evaluadas.
Tabla 1. Tabla comparativa de las herramientas evaluadas.
Fuente: Elaboración propia
Característica IBM WebSphere Mya Voice
Platforms
Nuance Voice
Web Server
Basado en el estándar de
VoiceXML 1.0
Si Si Si
Soporta DTMF Si Si Si
Acepta Barge-in Si No Si
Soporta HotWords No No Si
Realiza Log Si Si Si
Soporte en línea Si No Si
Soporte del idioma español No No Si
Identificador de Voz No No Si
Incluye TTS Si Si Si
Soporta tarjetas Dialogic No Si Si
`
52
Resultado del Análisis:
De acuerdo al análisis realizado y a la información recolectada, se decidió
trabajar utilizando un conjunto de herramientas y aplicaciones que, según
sus características, se adaptan mejor en el momento de cumplir las
necesidades del sistema.
Como producto elegido para el desarrollo del sistema, dado sus
características presentadas, se eligió el sistema de NUANCE. Este
proveedor tecnológico ofrece las siguientes herramientas para el desarrollo
en lenguaje VoiceXML:
?? V-Builder 1.2. Herramienta para programar en el lenguaje
VoiceXML.
?? Voice Web Server 1.2. Servidor de VoiceXML
?? Vocalizer. Text To Speech en español e ingles
III.1.2. Elaboración del diagrama de casos de uso
Uno de los diagramas que ofrece UML es el diagrama de los Casos de Uso,
a través del cual se modela la interacción entre actores (usuarios o entes
externos) y el sistema que se quiere construir.
Previo a la elaboración del diagrama de casos de uso, se identifican los
actores y se especifica el escenario en que está enmarcado dicho diagrama.
Se identificó un actor del sistema, que en este caso es el usuario y el
escenario, que es global, es decir abarca la totalidad de la aplicación.
`
53
Las acciones o casos de uso se describen a continuación, especificando los
actores involucrados, los casos de uso relacionados y finalmente una breve
descripción:
?? Gestionar Correo Electrónico.
o Actores involucrados: Usuario (Inicia el caso de uso).
o Casos de Uso relacionados: Interconexión Telefónica,
Gestionar Contactos.
o Descripción: El usuario compone, responde, re-envía y/o lee
sus mensajes. Si el usuario requiere llamar al remitente del
mensaje se desencadena el caso de uso Interconexión
Telefónica. Si el usuario requiere agregar en su lista de
contactos al remitente, se desencadenara el caso de uso
Gestionar Contacto. Cuando el usuario requiera Re-enviar o
componer un mensaje se desencadenara automáticamente el
caso de uso Gestionar Contactos (Consultar Contacto). Si el
usuario requiere Agregar un Contacto, se desencadenara el
caso de uso Gestionar Contacto.
?? Gestionar Agenda
o Actores involucrados: Usuario (Inicia el caso de uso)
o Casos de Uso relacionados: Gestionar Contactos,
Interconexión Telefónica
`
54
o Descripción: El usuario anota, consulta o borra una cita o un
recordatorio. Si el usuario requiere llamar cuando se encuentra
consultando una cita o recordatorio se desencadena el caso
de uso Interconexión Telefónica. Si el usuario requiere Agregar
un Contacto, se desencadenara el caso de uso Gestionar
Contacto. Cuando el usuario requiere anotar una cita o
recordatorio se desencadenara automáticamente el caso de
uso Gestionar Contactos (Consultar Contacto).
?? Gestionar contactos
o Actores involucrados: Usuario (Inicia el caso de uso)
o Casos de Uso relacionados: Interconexión Telefónica,
Gestionar Mail.
o Descripción: El usuario consulta, modifica, agrega y elimina un
contacto. Si el usuario requiere componer un mensaje cuando
se encuentra consultando un contacto se desencadena el
caso de uso Gestionar Mail. Si el usuario requiere Llamar
cuando se encuentra consultando un contacto se desencadena
el caso de uso Interconexión Telefónica.
?? Interconexión Telefónica
o Actores involucrados: Usuario (Inicia el Caso de uso)
o Casos de Uso relacionados: Gestionar Contactos
`
55
o Descripción: El usuario llama a unos de sus contactos de la
libreta de direcciones. Cuando el usuario Llama se
desencadenara automáticamente el caso de uso Gestionar
Contactos (Consultar Contacto)
En la Figura 7 se muestra el diagrama de casos de usos para el escenario
global.
Figura 7. Diagrama de Caso de Uso escenario global
Fuente: Elaboración propia
En el Apéndice A se incluyen los casos de uso detallados y tablas de
secuencia de eventos típicos para cada caso de uso.
Gestionar Agenda
Interconección Telefonica
Gestionar Mensaje
Gestionar ContactosUsuario
`
56
III.1.3. Elaboración de los diagramas de secuencia
Una vez elaborado el diagrama de casos de uso, se procede a elaborar los
diagramas de secuencia para aquellos casos que lo requieran. Los
diagramas de secuencia son diagramas de interacción que se incluyen en la
notación del lenguaje de modelado UML.
Un diagrama de interacción involucra actores, usuarios del sistema u otros
sistemas externos y componentes (objetos) para un escenario particular del
dominio o del problema que se quiere modelar. Los diagramas de
interacción modelan la comunicación entre los distintos componentes y
actores del sistema, a través de la representación del envío de mensajes
entre los mismos.
Los diagramas de secuencia enfatizan el paso de mensajes entre los
componentes (u objetos) del sistema y desde los actores a los componentes
de los mismos dentro de un escenario particular de los casos de usos, en
función del tiempo. La elaboración de los diagramas de secuencia constituye
un paso esencial para la derivación de los métodos públicos de los objetos.
Los diagramas de secuencia elaborados se anexan en el Apéndice B.
`
57
III.2. DISEÑO
Un buen diseño es directamente proporcional a una buena calidad y
eficiencia del sistema, por lo que se buscó un diseño capaz de adaptarse
fácilmente a cambios tecnológicos y/o implementaciones futuras. Para
lograr esto fue necesario estudiar los diferentes temas involucrados para el
desarrollo de la aplicación.
Se decidió dividir el diseño del sistema en módulos, para facilitar el desarrollo
en grupo del mismo.
En la Figura 8 se puede ver el diseño detallado del sistema, éste muestra
tanto los módulos como los componentes involucrados en el mismo.
Como esta especificado, se dividió el sistema en Front-end* y Back-end*,
esta división se refiere a los módulos que interactúan con el usuario y los
módulos que sirven al Front-end y actúan independientemente del usuario.
En el Front-end se encuentra el módulo I, este módulo es el que contiene las
interfaces del sistema, tanto la de Web como la de voz. Se encarga
básicamente de la interacción con el usuario independientemente de la
interfaz usada. La forma de comunicación con los módulos restantes del
sistema se realiza a través de la base de datos.
En el Back-end se encuentran el resto de los módulos, y los elementos
externos al sistemas, tales como los servidores POP3* y SMTP* y la central
telefónica, denominada PSTN (central telefónica).
`
59
Se definieron estándares tanto para la interfaz de voz como para la de Web.
Con relación a esto, la definición del lenguaje VoiceXML 1.0, contiene una
serie de etiquetas (tags) o comandos para la realización de una aplicación de
voz, debido a lo prematuro del lenguaje, existe un comando llamado <object>
que permite agregar objetos hechos en Java para realizar funciones que no
fueron tomadas en cuenta en el diseño del lenguaje. Un ejemplo de esto es
la conexión a la base de datos, para realizar esto se utilizó un objeto
proveído por la plataforma de NUANCE, este objeto realiza las operaciones
necesarias para conectar a través del ODBC la aplicación a la base de datos.
El uso de estos objetos debe tratar de reducirse al mínimo ya que hacen la
aplicación dependiente de la plataforma o interpretador que se utilicé. Cabe
destacar que ciertas funciones, como la mencionada anteriormente, serian
imposibles de realizar sin estos objetos, pero la idea es tratar de utilizarlos lo
menos posible.
De igual manera, se agregaron comentarios en la programación de todos los
programas del sistema, permitiendo que cualquier persona fuera del equipo
de trabajo pueda comprender la lógica de la programación, permitiendo así la
continua actualización y entonación del mismo.
`
60
III.2.1. Módulo I
El Módulo I se encarga de manejar el Front-end del sistema. Este módulo
posee dos tipos de interfase, véase la Figura 9. La primera y la principal, es
la interfaz de voz, donde se realiza el reconocimiento del lenguaje natural
como interpretación de los comandos del usuario. La segunda interfaz,
complemento de la primera, es la de la Web, que tiene como objetivo
permitirle al usuario la personalización en el sistema, y adicionalmente, usar
el sistema y todos sus servicios a través de Internet. Esta interfaz no estuvo
contemplada en los objetivos del trabajo.
La razón de la creación de esta interfaz es debido al incremento en las
alternativas de acceso al sistema, en el cual, independientemente de su
ubicación, el usuario pueda accesar a los diferentes servicios sin barreras ni
limitaciones, siendo así, si el usuario se encuentra en su oficina, podrá
accesar por Internet; pero si se encuentra en su carro, la vía más cómoda de
acceso es por el teléfono celular. Con el fin de adaptar el sistema al usuario y
no que el usuario se adapte al sistema.
Figura 9. Arquitectura conceptual de VoiceXML
Fuente: Tellme Studio (2000)
`
61
En lo que se refiere a la interfaz de voz, existen dos tipos de perfiles de
usuarios, el primero es para los usuarios con amplios conocimientos de
Internet, el cual suele ser más rápido, directo y natural, en donde, con pocas
palabras y sin ningún tipo de navegación puede lograr su objetivo.
El segundo tipo es para los usuarios con pocos conocimientos de Internet,
aquí se ofrecen más ayudas, haciendo preguntas más concretas y objetivas
para que así, de manera sencilla y sin dificultades logre su objetivo.
Un ejemplo de estos dos tipos es el siguiente: Si el usuario desea enviar un
correo electrónico, podrá hacerlo de estas dos formas:.
Ejemplo 1
Usuario: Quiero enviarle un correo a Juan González.
Sistema: Diga el mensaje que le desea enviar
Usuario: Mensaje, enviar
Sistema: Su mensaje ha sido enviado
Ejemplo 2
Sistema: Que desea hacer, lee las opciones: Correo, Agenda...
Usuario: Correo
Sistema: Que desea hacer, lee las opciones: Redactar, Leer Mensajes
Usuario: Redactar
Sistema: A quien le desea enviar el Mensaje
Usuario: Juan Gonzáles
Sistema: Diga el mensaje que le desea enviar
`
62
Usuario: Mensaje
Sistema: Desea enviarlo, escucharlo o grabarlo de nuevo
Usuario: Enviarlo
Sistema: Su mensaje ha sido enviado
Este módulo se divide en dos secciones, Correo Electrónico y Agenda
Personal, los cuales ofrecen en los dos tipos de interfaces, sin embargo, en
éste documento sólo se va mencionar el diseño de la interfaz de voz.
Al entrar al sistema, el usuario debe proporcionar su número de teléfono
celular. El primer paso del sistema es identificar la voz del usuario, si la
identificación es correcta no es necesario que el usuario proporcione la clave
y se le dará la bienvenida al sistema; pero si la identificación no es correcta,
se le pedirá la clave al usuario. Al entrar al sistema el usuario se encontrará
en el Menú Principal donde se ofrecen todas las secciones que contiene el
portal, para que así el usuario seleccione la opción que deseen utilizar,
detallando así cada sección.
Servicio de Correo Electrónico
Al entrar a esta sección se activa o levanta la gramática mostrada en la
Figura 10 para así crear el contexto que permita el entendimiento de los
comandos de cada sub-sección. Esta sección se divide en tres sub-
secciones, las cuales son: Envío Correo, Lectura Correo y Vaciar Buzón.
Primeramente el sistema menciona el status de los mensajes del usuario,
comenzando por los correos urgentes, seguidos por los nuevos y los
guardados. Luego, el sistema espera por el reconocimiento del siguiente
comando, es decir, espera que el usuario diga lo que desea realizar.
`
64
La gramática, contiene los casos para que el usuario pueda o no decir el
destinatario cuando desee escribir un mensaje, esto quiere decir que, si el
usuario dice que quiere escribir un mensajes, y no menciona a quién, el
sistema le pregunta antes de grabar el mensaje, a quién desea enviarlo, para
finalmente grabarlo en la base de datos.
Cabe destacar que esta gramática es dinámica, debido a que se genera la
lista de contactos del usuario en el momento en que se activa.
Una limitación en este ámbito es que el usuario no puede enviar un correo a
una persona que no esté en su lista de contactos, ya que la inserción de
nuevos contactos, implicaría, por las limitaciones del sistema, que el usuario
deletreara el nombre y la dirección de correo, por lo que se pensó en la
interfaz web para su realización.
En el momento que el usuario se encuentre en la sub-sección Leer
Mensajes, se cargan todos sus mensajes previamente manipulados por el
módulo III, explicado posteriormente, ordenados según el status (urgente,
nuevo o leído) y su fecha.
Mientras el sistema empieza a leer los mensajes, el usuario puede navegar
por medio de comandos sencillos, tales como: siguiente, anterior, último
mensaje, primer mensaje, además podrá borrar, leer en español o leer en
inglés.
Por otra parte, el usuario podrá responder o re-enviar el mensaje, o
simplemente llamar al remitente si éste se encuentra en la lista de contactos.
Por último, el usuario puede borrar todos los mensajes que tiene en el buzón,
acción que es confirmada para luego proceder a borrar todos los mensajes.
`
65
Servicio de Agendas Personales
Esta sección se divide en cuatro sub-secciones, las cuales son: Agregar
Llamada, Agregar Cita, Listar Agenda y Borrar Agenda. Para este momento
se levanta la siguiente gramática (ver Figura 11) que crea el contexto para el
entendimiento de los comandos de cada sub- sección.
Figura 11. Definición de gramática de agenda
Fuente: Elaboración propia
`
66
Como se muestra en la Figura 11 el sistema puede entender sólo la palabra
“agregar” en vez de “agregar cita” o “agregar llamada”. Para este caso se
genera otro estado de reconocimiento, cuya función es definir que tipo de
llamada desea agregar el usuario.
La diferencia entre Agregar Cita y Agregar Llamada es que la cita graba un
mensaje de audio realizado por el usuario, mientras que agregar llamada
utiliza un mensaje estándar del sistema.
Cuando el usuario desea agregar una cita o una llamada, el sistema le pide
la fecha y la hora de la misma, luego le solicita el lugar donde desea recibir la
llamada, éste lugar puede ser su casa, su celular u otro número. Por último,
si es una cita, el sistema le pide que grabe el mensaje, para que, cuando se
llame al usuario, dicho mensaje de audio sea reproducido.
En la opción de Listar Agenda, el sistema pide la fecha en que se desea listar
y empieza a nombrar las citas. La forma de navegación entre las citas es
muy similar a la navegación entre los mensajes, puede ir a la primera, la
ultima, la siguiente y la llamada anterior, además puede borrar las llamadas
del día o borrar toda la agenda, lo cual elimina de la base de datos todas
citas correspondientes al usuario.
`
67
III.2.2. Módulo II
Este módulo se encarga de realizar la sincronización del sistema con el
servidor POP3. La razón por la que se pensó en hacer un duplicado del
servidor POP3, es que los procesos que se deben realizar después de bajar
los mensajes del servidor, tomarían demasiado tiempo y consumo de
recursos para realizarlo en tiempo real, por lo que los mensajes son bajados,
procesados y almacenados para que estén disponibles en el momento en
que el usuario entre al sistema.
Por otro lado, el módulo II se encarga de enviar los mensajes al servidor
SMTP, estos mensajes pueden o no tener archivos adjuntos. La razón por la
cual se necesita realizar dicha utilidad, es que el envío de los mensajes
pueden requerir mucho ancho de banda, lo cual se vería reflejado en el
tiempo de respuesta para recibir la confirmación del envío del mensaje, por lo
que es preferible guardarlo en la base de datos, para luego ser enviados por
este módulo.
Así mismo, el módulo convierte los archivos de sonidos que fueron grabados
por la interfaz de voz, a un formato estándar, ya que éste maneja los
archivos de sonido en un formato que optimiza el rendimiento, pero que no
es compatible con los reproductores tradicionales de Windows, por lo que es
necesario realizar una conversión de formatos para que en la interfaz de
web se puedan mostrar.
El programa de sincronización con los servidores POP3, SMTP y conversión
de archivos de audio, lleva un registro de los errores que ocurren en archivos
de texto identificados por el tipo de proceso y la fecha en que ocurrieron.
`
68
Dentro de ese archivo se guarda la hora en que ocurrió y una breve
descripción del error.
Proceso de recepción de mensajes
El sistema revisa periódicamente, según el timer* establecido, todas las
cuentas que existen en la base de datos en el servidor POP3, esta consulta
se realiza según el proveedor de cada cuenta.
Durante la revisión, una vez establecida la conexión con el POP3, se
procede a obtener los encabezado o header de los mensajes disponible. El
encabezado de un mensaje contiene el identificador único del mensaje (UID),
la fecha, el asunto, el mandatario y el status del mensaje en el servidor. El
objetivo de bajarse el encabezado se debe a que éste presenta la forma más
eficiente y rápida de saber qué mensajes existen en el buzón de correo, sin
tener la necesidad de bajarse el mensaje completo. De esta forma, con el
UID del mensaje se revisa si el mensaje ya fue bajado del servidor o, de lo
contrario, si es necesario bajarlo. Si el UID no se encuentra en la base de
datos, el módulo procede a bajarse el mensaje completo, sino chequea si
éste esta marcado como borrado, de ser así, se borra del servidor POP3 y
seguidamente se borra de la base de datos, sólo si éste no es requerido por
una respuesta o re-envió de un mensaje (no está bloqueado).
Una vez que se chequearon los UID de todos los mensajes, se procede a
guardar en la base de datos los mensajes bajados del servidor POP3. Para
realizar esto, es necesario identificar las distintas partes del mensaje, entre
las cuales están: el status del mensaje, la fecha del mensaje, el tamaño del
mensaje, los archivos adjuntos, apartando de éstos los que sean del tipo de
`
69
sonido (WAV* o WMA*); y por último el mensaje que va a ser sintetizado por
el módulo de Síntesis de Texto.
Proceso de envío de mensajes
Al igual que en el proceso de recepción de mensaje, éste realiza revisiones
periódicas según el timer establecido, a la base de datos del sistema para
revisar si existen mensajes para ser enviados.
Tanto la interfaz de voz, como la de Web insertan en la base de datos los
mensajes que deben ser enviados, identificando el tipo de mensaje según
sea: una respuesta, la cual lleva el indicador del mensaje al que se
responde; un re-envío, que lleva el indicador del mensaje que se quiere re-
enviar; un mensajes nuevo, el cual puede o no tener archivos adjuntos y un
mensaje enviado por la interfaz de voz, que contiene un archivo adjunto de
voz para procesar. Según sea el caso, el sistema realiza los pasos
necesarios para mandar el mensaje utilizando el objeto Power TCP Mail
Tool.
Una vez que consiga un mensaje para ser enviado, establece la conexión
con el servidor SMTP de la cuenta, y según el tipo de mensaje, procede a
realizar los pasos necesarios para el envío de éste. En el caso de un
mensaje de la interfaz de voz, el sistema realiza los siguientes pasos:
?? Convierte el archivo de voz adjunto del formato de la interfaz de
voz (Linear Encoding*) al formato estándar de Microsoft Windows
(RIFF*).
?? Convierte del formato WAV el cual tiene una frecuencia de 8 khz
Mono en el formato comprimido WMA a 32 kbps Mono. La razón
`
70
por la que se comprimen los archivos de audio, es debido a que de
esta forma se ahorra ancho de banda al enviar el mensaje por
internet.
?? Adjunta el archivo al mensaje, le agrega el asunto del sistema, el
mandatario y el destinatario. Finalmente envía el mensaje.
?? Borra los archivos de sonido que se crearon.
Una vez que el mensaje es enviado, éste se borra de la base de datos. Si el
mensaje fue una respuesta o un re-envió, se desbloquea el mensaje
correspondiente.
Proceso de conversión de archivos de audio
Este proceso es necesario para la sección de agenda en la pagina WEB.
Cuando el usuario agrega una cita en la interfaz de voz, este proceso debe
convertir el mens aje grabado del formato que utiliza la interfaz de voz (linear
encoding) al formato (RIFF), y seguidamente comprime el archivo al igual
que el proceso para enviar mensaje, de esta forma se ahorra espacio en
disco duro en el servidor web.
De igual forma que los otros procesos, éste posee un timer, encargado de
establecer el tiempo que debe esperar el sistema para chequear si hay
archivos nuevos y de ser así, convertirlos.
`
71
III.2.3. Módulo III
Este módulo se encarga de procesar y sintetizar los mensajes que
previamente han sido bajados y almacenados en la base de datos por el
módulo II.
Como se ve en la Figura 12, el primer paso de este módulo es identificar las
partes del mensaje, para así procesar sólo la información necesaria, que
consisten en: el remitente, la fecha, el asunto, el contenido y finalmente, el
tipo de los archivos adjuntos.
Figura 12. Proceso para la síntesis de texto de un mensaje electrónico
Fuente: Elaboración propia
Cada una de estas partes se procesa para capturar las palabras que tienen
que ser editadas, con el objeto de quitar o cambiar aquellas que no cumplan
con el sentido de la oración. El motivo de este proceso es generar un archivo
de audio que represente adecuadamente el mensaje enviado.
`
72
Un ejemplo, puede ser cuando se consigue en el texto la palabra “yahoo”. La
pronunciación de esta palabra no es correcta si se leyera textualmente, por lo
que es necesario cambiarla por la palabra “yajuu”, para cuando el
sintetizador de texto la procese, se va a generar el sonido adecuado de la
misma.
Por esta razón se vió en la necesidad de crear un diccionario que contenga
este conjunto de palabras que deben ser editadas. Es evidente que éste
diccionario debe ser actualizado constantemente, para poder garantizar que
la lectura de los mensajes sea “natural”.
Por otra parte también se tienen que identificar los tipos de archivo que se
encuentran adjuntos al mensaje, para esto existe otro diccionario que
contiene todos los tipos de archivos adjuntos con su respectiva etiqueta para
poder identificarlos.
Una vez que se ha obtenido todo el texto filtrado por los diccionarios, se
procede a sintetizarlo según el idioma indicado, para esta síntesis se utilizó
un software elegido por la compañía, el cual toma el texto enviado y devuelve
el archivo de audio a la ubicación indicada. Esta ubicación está dada según
el identificador del mensaje en la base de datos.
`
73
III.3. IMPLEMENTACIÓN Y PRUEBAS
Debido a la naturaleza del sistema, y al hecho de que su principal interfaz es
de voz, no se puede demostrar visualmente el resultado del proyecto, pero
sin embargo, sí se puede mostrar la navegación del mismo, y así poder
observar el producto final. Para tener una visión más clara del sistema se
anexan las pantallas de la interfaz de web (no contemplado en los objetivos
de trabajo), lo que ayuda a soportar visualmente la interfaz de voz.
III.3.1. Interfaz de voz
Existen varias limitaciones cuando se intenta mostrar una interacción vía voz
entre un usuario y una máquina, sin embargo, se tratará de explicar lo más
cercano posible a la realidad. Una de estas limitaciones son las voces y
sonidos. En el ejemplo que se muestra a continuación se van a asumir dos
voces distintas, la de un hombre, que se identifica cuando la palabra
“sistema” se encuentra en color azul y la voz de una mujer en color rojo. La
finalidad de este cambio de voz, es que el usuario se de cuenta cuando
existe un cambio de sección. Existen otros métodos que se utilizan para este
tipo de eventos, tales como la reproducción de un sonido en particular al
entrar a las secciones del portal, de manera que el usuario se de cuenta del
cambio.
El siguiente ejemplo muestra como un usuario envía un correo electrónico
y agrega una cita a su agenda desde cualquier teléfono convencional. En
este caso se tomará en cuenta la falta de experiencia del usuario, el cual no
`
74
interrumpe al sistema y navega por el portal de voz de una forma metódica,
es decir, éste responde a las peticiones del sistema.
Sistema: Bienvenido al Portal de Voz, Por favor dime tu número celular. Usuario: cero catorce tres, cuarenta, cinco siete siete ocho. Sistema: ok, ahora dime tu clave de acceso. Usuario: doce, tres cuatro Sistema : Buenas tardes, Rubén Mariña, te ofrecemos Horóscopo, Agenda,
Correo y Finanzas ¿Qué sección quieres visitar? Usuario: Correo Sistema: Recuerda que en cualquier momento puedes volver al menú
principal diciendo principal. Sistema: Bienvenido a correo, tienes 12 mensajes nuevos, uno es urgente
de un total de 18 mensajes. Entre las operaciones que puedes realizar están, leer tus mensajes, escribir un mensaje nuevo o vaciar tu buzón. ¿Qué te gustaría hacer?.
Usuario: Enviarle un mensaje a León. Sistema: Di el mensaje que quieres enviar después del tono. Usuario: León recuérdate que hay que enviar el correo. Sistema: Te gustaría escuchar tu mensaje, grabarlo de nuevo o enviarlo?. Usuario: Enviarlo. Sistema: Tu mensaje ha sido enviado. ¿Qué deseas hacer? Usuario: Agenda. Sistema: Bienvenido a agenda aquí podrás registrar tus citas más
importantes y llamadas recordatorias, entre las operaciones que puedes realizar están, agregar cita, agregar llamada, borrar cita, borrar llamada y listar agenda. ¿Qué te gustaría hacer? Si necesitas ayuda, di ayuda.
Usuario: Agregar cita. Sistema: Por favor dime la fecha y la hora en la que quieres que te llame. Usuario: el 11 de julio a las 9:00 de la mañana. Sistema: Ok, dónde quieres que te llame a tu casa, celular, oficina o a otro
Número?. Usuario: A mi Casa. Sistema: Bien, quieres una llamada recordatoria el 11 de julio del 2001 a las
9 en punto am, a tu casa. Es correcto?. Usuario: si. Sistema: Di el mensaje que quieres enviar después del tono. Usuario: Recordar llamar al tutor. Sistema: Te gustaría escuchar tu mensaje, grabarlo de nuevo, o enviarlo?. Usuario: enviarlo.
`
75
Sistema: Muy bien, ya agregué la llamada a tu agenda. ¿Qué te gustaría hacer?, si necesitas ayuda, di ayuda.
Usuario: Menú principal. Sistema: En qué te puede ayudar?. Usuario: Adiós. Sistema: Estás seguro que quieres salir?. Usuario: Si Sistema: Hasta luego.
III.3.2. Interfaz Web
Esta es una herramienta cuyo objetivo principal es complementar la interfaz
de voz. A continuación se mostrarán y explicarán algunas pantallas del
portal web que es llamado V-mail, con el fin soportar visualmente el sistema.
Pantalla de Acceso
Esta pantalla es de libre acceso y muestra información general sobre lo que
concierne al sistema. Por otra parte, para tener acceso al sistema se debe
tener una cuenta registrada, ésta se crea dándole click al botón de Crear
Cuenta. Cada usuario debe introducir la información necesaria, para que este
proceso sea exitoso. Existen ciertos datos que el usuario debe asegurarse de
introducir correctamente, debido a la importancia que tienen para el
funcionamiento adecuado de otros procesos. Estos datos son los siguientes:
la cuenta POP3 y su contraseña, para la recepción y envió de mensajes
electrónicos. El número celular, debido a las llamadas del sistema, y por
último la fecha de nacimiento, por el horóscopo. El usuario para entrar al
sistema debe introducir su número celular, su contraseña y presionar el
botón “Login”, como se muestra en la Figura 13.
`
76
Figura 13. Pantalla de acceso
Fuente: Elaboración propia
Pantalla Principal
Una vez que el usuario ingresa a la pantalla principal tiene acceso a todos
los servicios que V-mail ofrece. Esta pantalla muestra el status del usuario,
sus correos urgentes, nuevos y guardados, véase
Figura 14. Además le avisa al usuario si tiene un cumpleaños de alguno de
sus contactos o una cita pendiente. Por otra parte, el usuario puede
configurar sus datos personales, o simplemente cambiar su contraseña.
`
77
Con la opción configurar cuenta de correo el usuario tiene la posibilidad de
revisar varias cuentas de correo de diferentes proveedores de servicios de
Internet. Sólo es necesario accesar a la pantalla de cuenta de correo y
editar los datos que en ésta se encuentran.
Para facilitarle el acceso a los diferentes servicios de V-mail, en la parte
superior de la pantalla se encuentran todos los botones de las secciones que
la interfaz de voz ofrece, con la excepción de horóscopo que no se encuentra
en la interfaz web.
Figura 14. Pantalla principal
Fuente: Elaboración propia
`
78
Pantalla de la Sección de Correo
En esta pantalla se muestra una lista de todos los correos del usuario. Donde
se despliega el encabezado del mensaje, es decir, el remitente, asunto,
tamaño, fecha, status del mensaje y si tiene archivos adjuntos. Una
característica especial de este servicio es que si el usuario posee un
mensaje de voz, el sistema lo detecta y muestra una imagen indicando que
ese mensaje en particular posee un archivo de audio. Si el usuario le hace
click a esta imagen se reproducirá dicho archivo.
El usuario puede tener acceso a los diferentes mensajes haciendo click en el
remitente del mensaje, y podrá borrarlo o bloquearlo marcando la casilla
correspondiente y oprimiendo el botón borrar. Véase la Figura 15.
Figura 15. Pantalla sección correo
Fuente: Elaboración propia
`
79
Pantalla de la Sección de Contactos
En esta pantalla se muestra la lista de los contactos del usuario, que se
encuentran almacenados en la base de datos, se muestra su nombre,
apellido, teléfonos y dirección de correo electrónico. La consulta y/o edición
de dichos contactos se puede observar haciendo click en el nombre del
contacto. También se muestra una lista de letras, con la finalidad de que el
usuario, haciendo click en una de ellas, pueda observar sólo los contactos
cuyo apellido comienza por dicha letra. Ver Figura 16.
Por otra parte si algunos de los contactos del usuario aparecen de color gris,
significa que ese contacto no será levantado en la gramática dinámica a la
hora de reconocimiento, es decir, el usuario no puede enviar a este contacto
ningún correo a través del portal de voz. Esto ocurre debido a que el contacto
se encuentra escrito de una manera errónea, con algún carácter que no es
válido, como signos de puntuación, espacios, entre otros.
Figura 16. Pantalla sección contactos
Fuente: Elaboración propia
`
80
Pantalla de la sección Agenda
En esta pantalla se muestra el calendario, mensual y diario del usuario. Se
visualiza en negritas los días en que el usuario posee una cita o llamada
(véase Figura 17). En la parte superior izquierda de la pantalla aparecen los
cumpleaños de los contactos en el mes que se encuentra seleccionado.
Una característica especial de este servicio es que si el usuario posee una
cita que se agregó desde el portal de voz, el sistema muestra una imagen
indicando que ésta cita en particular, posee un archivo de audio. Si el usuario
le hace click a esta imagen se reproducirá dicho archivo.
Figura 17. Pantalla sección agenda
Fuente: Elaboración propia
`
81
III.3.3. Pantalla del Back-end
En la Figura 18 se muestra la pantalla de los procesos del módulo II. En la
parte superior se encuentra el status de los mensajes recibidos, y en la
inferior, de los mensajes enviados. En los botones, aparece el tiempo
restante para el chequeo o envío de los mensajes, así mismo el usuario
puede presionar el botón para no tener que esperar que se cumpla el tiempo
establecido.
Figura 18. Pantalla del Modulo II
Fuente: Elaboración propia
`
82
Como se ve en el recuadro de envío de mensajes, el usuario puede pausar el
proceso mientras lo desea, esta opción esta disponible en el menú File.
En el menú de configuración se establecen los tiempos de los timer de todos
los procesos.
Figura 19. Icono de status
Fuente: Elaboración propia
Debido a que el programa que realiza las funciones del módulo II debe estar
las 24 horas del día funcionando, para así garantizar la sincronización con
los servidores, se vió en la necesidad que, mientras éste se encuentre activo,
muestre un icono del status del mismo en la sección de iconos que se
encuentren junto a la hora del sistema (véase Figura 19), realizando así una
interfaz más agradable para el usuario.
`
84
Ya que el presente trabajo de investigación está enmarcado en el área de
sistemas de voz, la cual se encuentra en pleno auge y desarrollo, es evidente
que la investigación realizada aporta diversos beneficios a la comunidad y al
área de la investigación como tal.
Se ha comprobado que la elaboración de un diseño bien estructurado y
genérico, ha permitido la creación de una plataforma base escalable para los
servicios de un portal de voz, permitiendo así su expansión y desarrollo
continuo.
A continuación se listan las conclusiones más importantes de éste trabajo:
?? Utilizar una metodología de análisis y diseño orientado a objetos, facilita
la concepción de un modelo escalable de fácil adaptación e integración a
nuevos modelos.
?? Haber desarrollado la aplicación de voz en el lenguaje VoiceXML ubica al
presente trabajo en la vanguardia tecnológica de aplicaciones de voz, en
el cual se están desarrollando aplicaciones de este tipo para su
introducción y aprobación en el mercado mundial.
?? El lenguaje VoiceXML no se encuentra listo para su uso en una aplicación
como producto de una empresa. Esto es debido a que todavía se
encuentra en etapa de desarrollo e investigación para lograr conformar el
lenguaje esperado. Para finales de este año está planeado la liberación
de la definición o versión 2.0 de éste lenguaje, el cual promete mayor
estabilidad.
`
85
?? Los Portales de Voz en el lenguaje VoiceXML van a conformar un papel
importante en las aplicaciones de voz, debido a que van a ofrecer un
sistema abierto para cualquier persona o grupo que desee desarrollar su
aplicación de voz para ser accesada mediante la misma.
?? Durante las pruebas se notó que la tecnología involucrada en el
reconocimiento de voz es suficientemente buena para ser usada, pero
todavía le falta cierto nivel de madurez para lograr tener el nivel de
reconocimiento esperado.
?? Para la realización de este proyecto se trato de usar en lo menos posible
los sintetizadores de texto, debido a que estos no ofrecen la naturalidad
suficientes para ser mostrados. Por lo que se utilizó los archivos
pregrabados, lo cual por un lado crea una interfaz agradable, pero por el
otro crea una dependencia sobre el locutor que creo los archivos. Para
las secciones que requieren de una continua actualización fue necesario
utilizar el sintetizadores de texto
?? El diseño de las gramáticas es un factor que involucra a la calidad y
eficiencia del sistema. Por ello debe hacerse un buen uso de los distintos
tipos de gramáticas disponibles para garantizar el buen entendimiento del
sistema. Esto es debido a que existen compensaciones entre la velocidad
de reconocimiento (tiempo de respuesta y la exactitud, contra el tamaño y
complejidad de la gramática. Por lo tanto, estas gramáticas no pueden ser
muy extensas, ya que mientras mayor sea la cantidad de formas de
expresar un comando, mayor es la probabilidad que el sistema se
equivoque.
`
86
?? Según los estudios realizados para la elaboración del proyecto, se podría
decir que una vez finalizado el sistema e incorporado al mercado mundial,
el número de usuarios con acceso a internet, aumentaría gracias a que el
dispositivo necesario para el acceso a éste, es de manejo común, es
decir, que con sólo tener un teléfono, ya sea fijo o móvil, se garantiza la
entrada al sistema.
?? El sistema desarrollado presenta sólo un eslabón de la cadena de
desarrollo del producto de una empresa. Esto quiere decir, que este
proyecto es un prototipo que requiere depuraciones, pruebas y estudios
de factibilidad, así como, complementarlo con otras áreas de aplicación
para llegar a convertirse en un producto comercializable.
Por último, uno de los aprendizajes más importantes obtenidos con el
desarrollo de este proyecto, es la importancia de integrar varias áreas
diferentes de la ingeniería, para así obtener soluciones más completas y con
mayor alcance.
`
88
Luego de obtener la aplicación como el resultado de este trabajo, sugieren
las siguientes recomendaciones que pueden ser tomadas en cuenta para su
uso, administración y enriquecimiento.
- Los recordatorios de la sección de agenda se realizan por medio de una
llamada. Se recomienda agregar opciones de envió de mensajes de texto
(SMS), los cuales son más económicos para el usuario.
- Agregar un administrador vía http, que permita manejar todas las
opciones y/o funciones del módulo II de forma remota, para así permitir
un manejo y monitoreo del mismo sin encontrarse físicamente en la
empresa.
- Hacer un constante monitoreo sobre las gramáticas utilizadas, para así,
poder agregar y/o quitar las frases que los usuarios normalmente usan.
- Agregar la opción bloqueo de correo para la sección de correo, ya que
ésta ofrece una medida preventiva para los usuarios de recibir mensajes
indeseados.
- Investigar sobre las nuevas versiones del lenguaje VoiceXML y las
tecnologías involucradas en el reconocimiento de voz, para que de esta
forma se pueda mejorar y depurar el sistema desarrollado.
`
89
GLOSARIO
Active Server Pages (ASP)
Disponible en: http://www.microsoft.com/windows2000/en/server/iis/
Es un ambiente de encriptac ión del lado del servidor que puede ser utilizado
para crear paginas Web dinámicas o para construir aplicaciones Web. Las
paginas ASP son archivos que contienen etiquetas HTML, texto y comandos
encriptados. Con ASP, el usuario podrá añadir a sus paginas un contenido
interactivo o simplemente construir aplicaciones web que utilizan paginas
HTLM como interfaz para sus consumidores.
Alófonos
Ver fonema.
Ambiente Acústico.
Se refiere al ambiente generado por el dispositivo usado por el usuario, este
puede ser un celular, un teléfono fijo, entre otras.
Barge-in
Es la capacidad de un usuario para interrumpir un prompt cuando se esta
reproduciendo, es decir, cuando se dice algo o se presiona una tecla del
teléfono.
DSN (Data Source Name)
Disponible en: http: //www.microsoft.com/windows2000/en/server/iis/
Es el nombre lógico utilizado por Conectividad de Base de Datos Abierta
(ODBC) para referirse al controlador y otra informaciones requeridas para
accesar data. Este nombre es utilizado por el IIS para conexiones ODBC a
un manejador de base de datos, como SQL Server o MySQL.
`
90
DTMF (Dual Tone Multi Frequency)
Disponible en: http://whatis.techtarget.com/definition/0,289893,sid9_gci213922,00.html
Es una señal generada cuando se presiona una tecla en los teléfonos de una
central telefónica. Esta señal esta compuesta por dos tonos con frecuencias
especificas para que la voz de un ser humano no pueda generarla por si
sola. Se genera una frecuencia alta y una baja, por ejemplo para el numero
1, la frecuencia baja es de 697 Hz y la alta de 1209 Hz.
Expresión
Disponible en: Salvat, 1976, pp.1351. En Enciclopedia Salvat Diccionario. Salvat Editores,
S.A. Barcelona 1976.
Del latino expressio, -sionis. Palabra, locución o signos exteriores con que se
expresa una cosa.
Exactitud
Disponible en: Salvat, 1976, pp.1343. En Enciclopedia Salvat Diccionario. Salvat Editores,
S.A. Barcelona 1976.
Puntualidad y fidelidad en la ejecución de una cosa.
Fonema
Disponible en: Salvat, 1976, pp.1433. En Enciclopedia Salvat Diccionario. Salvat Editores,
S.A. Barcelona 1976
Del gr phónema, sonido de voz. Cada uno de los sonidos diferenciables de
una lengua.
Forms
Se definen como una interacción con el usuario la cual obtiene valores para
un conjunto de estados (Field).
`
91
Frases
Disponible en: Salvat, 1976, pp.1463. En Enciclopedia Salvat Diccionario. Salvat Editores,
S.A. Barcelona 1976.
Conjunto de palabras que basta para formar sentido, y especialmente
cuando no llega a constituir una oración cabal.
Frecuencia
Disponible en: http://docs.us.dell.com/docs/ACC/0396P/Sp/glossary.htm
La frecuencia es la medida de cuán a menudo ocurre un evento periódico, tal
como una señal a través de un ciclo completo. Generalmente, la frecuencia
se mide en Hertz (Hz), donde 1 Hz es igual a 1 ocurrencia (ciclo) por
segundo. En los Estados Unidos, la electricidad doméstica es corriente
alterna con una frecuencia de 60 Hz. También se puede medir la frecuencia
en kilohertz (kHz o 1.000 Hz), megahertz (MHz, o 1.000 kHz), gigahertz
(GHz, o 1.000 MHz), o terahertz (THz o 1.000 GHz). Comparar con longitud
de onda.
Front-end, Back-end
Disponible en: http://whatis.techtarget.com/definition/0,289893,sid9_gci212161,00.html
Front-end y Back-end son términos usados para caracterizar las interfaces
de programas y servicios. En una aplicación Front-end el usuario interactúa
directamente con ésta, mientras que una aplicación Back-end sirve o soporta
indirectamente al de Front-end
Gramática
Es el conjunto de reglas que limita el número de combinaciones permitidas
de las palabras del vocabulario.
`
92
Gramáticas estática
Es creada en el diseño del sistema, y responsable de lo que éste es capaz
de entender.
Gramática dinámica
Se diferencia de la gramática estática únicamente porque se crea en tiempo
real, es decir, se genera según los datos que se le proporcionen en el
momento.
Internet service provider (ISP) Disponible en: http://www.microsoft.com/windows2000/en/server/iis/
Proveedor Público de conexiones remotas a Internet. Es una compañía o
institución educativa que permite a usuarios de lugares remotos tener acceso
a Internet por medio de conexiones telefónicas o líneas arrendadas.
Internet Information Server (IIS) Disponible en: http://www.microsoft.com/windows2000/en/server/iis/
Es una marca de servidores Web de Microsoft, que utiliza HTTP (Hypertext
Transfer Protocol) para la entrega de documentos World Wide Web. Este
incorpora varias funciones de seguridad, permite programas CGI y también
provee servicios Gopher y FTP.
LAN (Local Area Network )
Disponible en: http://whatis.techtarget.com/definition/0,289893,sid9_gci212495,00.html
Una LAN o red de área local es un grupo de computadoras y dispositivos
asociados que comparten una línea de comunicación y típicamente
comparten los recursos de un procesador o servidor en una pequeña área
geográfica (por ejemplo, una oficina).
`
93
Lenguaje Natural
Es el medio que utilizamos de manera cotidiana para establecer nuestra
comunicación con las demás personas. En el ámbito de reconocimiento de
discurso, el lenguaje esta dado por la definición de las gramáticas.
Linear Encoding Disponible en: http://extranet.nuance.com/support/get_knowledge.html?id=930071842
Dentro de cada sample (flujo del sonido dividido en pequeñas unidades) el
sonido es convertido en información digital, esto quiere decir que la energía
acústica es convertida en números. La codificación linear es una técnica que
usa 16 dígitos binarios o bits que contienen los números que definen el
sonido en el sample.
Menú
Un menú se presenta cuando el usuario tiene que escoger entre varias
opciones para ser trasladado a otro dialogo basado en esa decisión.
Morfemas.
Disponible en: Salvat, 1976, pp.2289. En Enciclopedia Salvat Diccionario. Salvat Editores,
S.A. Barcelona 1976.
Elemento lingüístico cuya misión es relacionar los semantemas en la oración
(preposiciones, conjunciones, etc.) e delimitar su función y significado (afijos,
desinencias, alternancias, etc.)
ODBC (Open Database Connectivity)
Disponible en: http://whatis.techtarget.com/definition/0,289893,sid9_gci214133,00.html
Es un API (Aplication Programming Interface) para el acceso a base de
datos. Ofrece un medio de conexión para base de datos que tengan el
modulo o driver para este API. ODBC esta basado en el lenguaje estándar
`
94
SQL para las consultas. El api convierte las consultas hechas por el usuario
en el formato individual de cada base de datos.
POP3 (Post Office Protocol 3) Disponible en: http://whatis.techtarget.com/definition/0,289893,sid9_gci212805,00.html
Es la versión más reciente de un protocolo estándar para recibir el correo
electrónico. Es un protocolo cliente / servidor en el cual el correo electrónico
es recibido y llevado a cabo por su servidor de Internet.
Prompt
Es la interfaz de voz por parte de sistema hacia el usuario.
Prosodia
Disponible en: Salvat, 1976, pp.2742. En Enciclopedia Salvat Diccionario. Salvat Editores,
S.A. Barcelona 1976.
Estudio normativo tradicional de la pronunciación y acentuación del idioma.
Rasgo
Disponible en: Salvat, 1976, pp.2805. En Enciclopedia Salvat Diccionario. Salvat Editores,
S.A. Barcelona 1976.
Peculiaridad, propiedad o nota distintiva.
RIFF (Resource Interchange File Format)
Disponible en: http://frederic.marand.free.fr/faqriff.htm
Es una estructura de archivo en el cual muchos tipos de formatos de archivos
se pueden basar. Microsoft Multimedia Products utiliza esta estructura en los
archivos de formato WAV y ASF, todos los reproductores de sonido de
Microsoft están basados en la estructura RIFF.
`
95
Sílabas
Disponible en: Salvat, 1976, pp.3035. En Enciclopedia Salvat Diccionario. Salvat Editores,
S.A. Barcelona 1976.
El grupo fonético básico, compuesto de varios sonidos de diversa
perceptibilidad que se agrupan en torno a uno de perceptibilidad máxima
(cumbre o cima silábica, centro silábico o punto vocálico, que puede ser
vocal o una sonante.
Silencio
Disponible en: Salvat, 1976, pp.3034. En Enciclopedia Salvat Diccionario. Salvat Editores,
S.A. Barcelona 1976.
Del latino silentium. Abstención de hablar
SMTP (Simple Mail Transfer Protocol)
Disponible en: http://whatis.techtarget.com/definition/0,289893,sid9_gci214219,00.html
es un protocolo de TCP/IP usado para enviar y la recibir correo electrónico.
Sin embargo, puesto que se limita en su capacidad de hacer cola de
mensajes en el extremo de recepción, se utiliza generalmente sólo para
enviar mensajes.
Suites de productividad.
Se refiere a los paquetes de software como Microsoft Office.
Text To Speech (Sintesis de Texto)
Se definirse como un sistema que transforma cualquier texto escrito,
siguiendo las convenciones ortográficas de una determinada lengua, en su
equivalente hablado.
`
96
Timer
Es una rutina interna que provoca que el sistema envié una señal, cada vez
que se cumpla el tiempo determinado en el mismo.
Vocabulario
Se conoce por tal al número de palabras diferentes que debe reconocer el
sistema
WAV Disponible en: http://docs.us.dell.com/docs/ACC/0396P/Sp/glossary.htm
WAV es el formato de archivo para audio de forma de onda. El formato de
archivo Microsoft* de sonido .WAV (WAVE-onda) se deriva del formato RIFF
(Resource Interchange File Format - formato de archivos para intercambio de
recursos) usado por Microsoft Windows. Los archivos .WAV pueden grabarse
a una frecuencia de 11 kHz, 22 kHz, y 44 kHz, y con formatos mono y
estéreo de 8 ó 16 bits.
WMA (Windows Media Audio)
Disponible en:
http://support.microsoft.com/support/mediaplayer/wmp7help/htm/glossary.asp#w
Un formato de archivo que comprime los archivos de sonido a un tamaño
mucho menor que el requerido para la calidad de CD. Un minuto de música,
comprimido en WMA requiere cerca de 1 megabyte de disco, mientras que
en el formato WAV requeriría de 10 megabytes de disco.
`
97
REFERENCIAS BIBLIOGRAFICAS
Libros y artículos
?? ALLEN, J. (1973). Reading Machines for the Blind: The Technical
Problems and the Methods Adopted for Their Solution, IEEE
Transactions on Audio and Electroacoustics. (pp 259-264).
?? Cooper, F.S.- Gaitenby, J.H.- Mattingly, I.G. - Umeda, N. (1969).
Reading Aids for the Blind: A Special case of Machine-to-Man
Communication, IEEE Transactions on Audio and Electroacoustics.(pp
266-270).
?? Lee, F.F. (1969). Reading Machine: From Text to Speech, IEEE
Transactions on Audio and Electroacoustics.(pp 275-282).
?? Dilts, M. (1984). Text to Speech in G. Bristow (Ed) Electronic Speech
Synthesis. Techniques, Technology and Applications.London.
Granada (pp. 94-113).
?? Llisterri, J.- West M. (1983). Analysis of stop-vowel transitions in
Catalan in 11th International Congress on Acoustics, (vol 4: pp 279-
283).
?? M.J.Poza J.F.Mateos y J.A.Siles (1990). Audiotext with Speech
Recognition and Text to Speech Conversion for the Spanish
Telephone Network. Proceedings de Worldwide Voice Systems,
London [1990].
?? Sonia Fernandez Igea, Raœl Ortega, David Serrano Aranda (2000, p.p
1-5). Portales de Voz: Internet en el teléfonos . Disponible en :
http://www.tid.es/presencia/ publicaciones/comsid/esp/19/ART_2.PDF
[2000, 19 de diciembre].
?? Ken Rehor (2001). VoiceXML VoiceXML Standards Standards
Activitie. Disponible en: http://www.voicexml.org/ugm-karam.pdf [2001,
6 de abril]
`
98
?? Rumbaught, J., Blaha, M., Premerlani, W. y Hedí, F. (1991). Object-
Oriented Modeling and Design. Estados Unidos, Prentice Hall.
?? Nuance Speech Recognition System Version 7.0 [2000, Cap 1 pp 1].
Nuance Grammar Developer's Guide. [2000, Diciembre]
?? Tellme Studio (2000) VoiceXML in the Enterprise: Facts and Fiction
Disponible en: http://studio.tellme.com/whitepapers/VoiceXML_Facts_
and_Fiction.pdf. [2000]
?? Párraga Marianna (2001). 6.5 millones de venezolanos tienen teléfono
celular . El Nacional, cuerpo F- 1. [2001, 27 de junio]
?? Placer (2001). La voz se perfila como la interfaz del futuro. El
Nacional, cuerpo F-10 [2001, 29 de junio]
Términos definidos
?? Salvat, 1976, pp.1754. En Enciclopedia Salvat Diccionario. Salvat
Editores, S.A. Barcelona 1976
Documentos Electrónicos
?? Allan Hoffman (2000). Speaking the Language of VoiceXML.
Disponible en: http://tech.monster.com/articles/voicexml/index [2000, 7
de junio].
?? Jeff Kunins (2001). Answer to your Quetions about VoiceXML.
Disponible en: http://www.voicexmlreview.org/voicexml/Review/
columns/Jan2001_speak_listen2.html [2001, 1 de enero].
?? Gerald M.Karam (2001). Open Dialog: Activities of the VoiceXML
Forum and W3C. Disponible en: http://www.voicexml.org/voicexml/
Review/features/Jan2001_open_dialog.html [2000, 1 de enero]
`
99
?? Kenneth G. Rehor (2001). What is VoiceXML. Disponible en:
http://www.voicexmlreview.org/Jan2001/features/Jan2001_what_is_voi
cexml.htm [2001, 1 de enero].
?? Robert Richardson (2001). VoiceXML Named "Paradigm of the Year".
Disponible en: http://www.voicexml.org/paradigm.html [2001, 10 de
junio]
?? W3C (2000). Voice eXtensible Markup Language (VoiceXML™)
version 1.0. Disponible en: http://www.w3.org/TR/2000/NOTE-
voicexml-20000505 [2000, 5 de mayo].
?? Kimberlee A.Kemble (2001). Introduction to Speech Recognition.
Disponible en: http://www.voicexmlreview.org/Mar2001/features/
recognition.html [2001, 1 de marzo].
?? Transtecnia (2001). La red mundial saca la voz; V-commerce.
Disponible en: http://www.transtecnia.cl/nueva/tecnologia/articulos/
vcommerce.asp [2001]
?? Teresa León (2000). Traducción Internet escucha la voz humana.
Disponible en : http://noticias.eluniversal.com/2000/05/22/21282AA.s
html [2000, 22 de mayo]
?? Nick Collin (1999, Art 1). Voice Verification. Disponible en:
http://www.ncollin.demon.co.uk/voiceverification.htm [1999, Octubre]
?? Nick Collin (1999, Art 2). Automated Speech Recognition. Disponible
en: http://www.ncollin.demon.co.uk/speechrecognition.html
?? Santiago Aldekoa (2000). La Programación Neurolinguistica (PNL).
Disponible en: http://www.santiagoaldekoa.com/Pnl.html [2000]
?? M. A. Rodríguez Crespo, J. G. Escalada Sardina, L. Monzón Serrano,
A. Macarrón Larumbe (1991). Teoría y aplicaciones de la Conversión
Texto Voz .Disponible en: http://www.tid.es/presencia/publicaciones/
comsid/esp/articulos/vol24/textovoz/voz.html [1991, diciembre]
`
100
?? Sonal Bansal y Gaurav Pal (2001). What is SMS?. Disponible en:
http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-sms.html
[2001, marzo]
?? Wap Forum (2000). What is WAP and WAP Forum?. Disponible en:
http://www.wapforum.org/faqs/index.htm [2000]
?? RCPTI Online (2000). WHAT IS CDPD?. Disponible en:
http://www.wsurcpi.org/tech/cdpd.html [2000]
?? Cutberto Uriel Paredes Hernández (2000). Procesamiento
Computacional del Lenguaje Natural. [en línea]. Disponible en:
http://www.monografias.com/trabajos5/proco/proco.shtml [2000, 30 de
septiembre].
?? Rational Software. Disponible en http://www.rational.com. [2000, 1 de
enero]
?? Computer Telephony (2001). Award-Winning Product Uses VoiceXML
And IBM ViaVoice Technology To Provide Easy Phone Access To
Information Around The Clock. Disponible en: http://www-
4.ibm.com/software/speech/ news/pr-CTExpo.html [2001,marzo]
?? Mya Voice Platforms Press Release (2001). The 20th Annual AVIOS
Conference Announces Best of Show Award Winners. Disponible en:
http://www.motorola.com/MIMS/ISG/voice/press/PR042401.htm
`
101
APÉNDICE A. SECUENCIA TÍPICA DE EVENTOS DE LOS DIAGRAMAS DE CASOS DE USO
Caso de uso Gestionar Mensaje
Fuente: Elaboración propia
Caso de uso Gestionar Agenda
Fuente: Elaboración propia
Agregar Cita/Llamada
Consultar Cita/Llamada
Eliminar Cita/Llamada
Usuario
Responder Mensaje
Re-enviar Mensaje
ConsultarContactos
Componer Mensaje
Leer Mensaje
Usuario
Llamar
`
102
Caso de uso Gestionar Contactos
Fuente: Elaboración propia
Caso de Uso Interconexión telefónica
Fuente: Elaboración propia
LlamarUsuario ConsultarContacto
Llamar
Componer Mensaje
Eliminar Contacto
Consultar ContactoUsuario
`
103
Caso de Uso: Leer Mail Actores Involucrados: Usuario(Inicia el Caso de uso) Casos de Uso Relacionados: Responder Mail, Reenviar Mail, Llamar, Agregar Contacto, Eliminar Mail Descripción: El usuario Lee sus mensajes urgentes, nuevos y guardados.
Secuencia típica de eventos
Acción del actor Respuesta del Sistema 1.- El usuario dice el comando para leer los mensajes.
2.- Empieza a leer los mensajes urgentes, nuevos y guardados.
3.- El usuario dice el comando para responder mensaje
4.- Ir a caso de uso responder mensaje.
5.- El usuario dice el comando para reenviar el mensaje
6.- Ir a caso de uso re-enviar mensaje
7.- El usuario dice el comando de llamar al remitente.
8.- Ir a caso de uso llamar 9.- El usuario dice el comando de agregar remitente a su lista de contactos.
10.- Ir a caso de uso Agregar Contacto
9.- El usuario dice comando para borrar un Mail.
10.- Ir a caso de uso Eliminar Mail 11.- Cuando se acaben los mensajes
finalizar caso de uso.
`
104
Caso de Uso: Componer Mail Actores Involucrados: Usuario(Inicia el Caso de uso) Casos de Uso Relacionados: Consultar Contactos, Agregar Contactos Descripción: El usuario desea enviar un mensaje de mensaje a un individuo de su lista de contactos.
Secuencia típica de eventos
Acción del actor Respuesta del Sistema 1.-El usuario dice el comando para componer un mensaje.
2.-Si la lista de contactos está vacía Finaliza el caso de uso 3.-Preguntar el nombre de el
contacto 4.- El usuario dice el nombre del contacto.
5.-Ir a el caso de Uso consultar contacto
6.- Preguntar el contenido del mensaje
7.-El usuario dice el mensaje que desea enviar.
8.- Preguntar si desea confirmar el mensaje o si desea enviarlo.
9.-El usuario responde si desea escucharlo o enviarlo de una vez.
10.-El sistema confirma los datos obtenidos y envía el mensaje.
Finaliza el caso de uso.
`
105
Caso de Uso: Responder Mail Actores Involucrados: Usuario(Inicia el Caso de uso) Casos de Uso Relacionados: Ninguno. Descripción: El usuario desea Responder un mensaje que esta leyendo.
Secuencia típica de eventos
Acción del actor Respuesta del Sistema 1.- El usuario dice el comando para responder un mensaje.
2.- Preguntar el contenido del
mensaje 3.-El usuario dice el mensaje que desea enviar.
4.- Preguntar si desea confirmar el mensaje o si desea enviarlo.
5.-El usuario responde si desea escucharlo o enviarlo de una vez.
6.-El sistema confirma los datos obtenidos y envía el mensaje.
Finaliza el caso de uso. Caso de Uso: Reenviar Mail Actores Involucrados: Usuario(Inicia el Caso de uso) Casos de Uso Relacionados: Consultar Contactos, Agregar Contactos Descripción: El usuario desea Reenviar un mensaje que esta leyendo.
Secuencia típica de eventos
Acción del actor Respuesta del Sistema 1.-El usuario dice el comando para reenviar un mensaje.
2.-Si la lista de contactos está vacía Finaliza casa de uso 3.-Preguntar el nombre de el contacto
o grupo 4.- El usuario dice el nombre del contacto o grupo.
5.- Ir a Consultar Contactos 6.-El sistema confirma los datos
obtenidos y envía el mensaje. Finaliza el caso de uso.
`
106
Caso de Uso: Eliminar Mail Actores Involucrados: Usuario(Inicia el Caso de uso) Casos de Uso Relacionados: Ninguno. Descripción: El usuario desea borrar un mensaje que esta leyendo.
Secuencia típica de eventos
Acción del actor Respuesta del Sistema 1.- El usuario dice el comando para borrar un mensaje.
2.- Confirma que el usuario desea borar el mensaje
Fin del Caso de Uso Caso de Uso: Consultar Contacto Actores Involucrados: Usuario Casos de Uso Relacionados: Modificar Contacto, Llamar, Componer Mail, Eliminar Contacto. Descripción: El usuario desea consultar un contacto de su libreta de direcciones.
Secuencia típica de eventos
Acción del actor Respuesta del Sistema 1.- El usuario dice el comando para consultar un contacto.
2.- El sistema pide el nombre del contacto que se desea consultar.
3.-El usuario dice el nombre 4.- El sistema confirma el nombre 5.- El sistema empieza leer todos los
datos del contacto 6.- El usuario dice el comando componer un mensaje
7.- Ir a caso de uso componer mensaje
8.- El usuario dice el comando llamar 9.- Ir a caso de uso Llamar 12.- El usuario dice el comando Eliminar Contacto
13.- Ir a caso de uso Eliminar Contacto
Fin de Caso de Uso Nota: Cuando un caso de uso consulta un contacto es invisible para el usuario.
`
107
Caso de Uso: Llamar. Actores Involucrados: Usuario (Inicia el Caso de Uso) Casos de Uso Relacionados: Consultar Contacto, Agregar Contactos. Descripción: El Usuario desea llamar a la casa/celular/trabajo de un contacto de su libreta de direcciones.
Secuencia típica de eventos
Acción del actor Respuesta del Sistema 1.- El usuario dice el comando para Llamar a un contacto.
2.- Si la lista de contactos esta vacía ir finaliza Caso de Uso.
3.- Preguntar el nombre del contacto. 4.- El usuario responde el nombre y el apellido del contacto.
5.-Ir a el caso de Uso Consultar Contacto
6.- Si el contacto tiene mas de un teléfono registrado (casa/celular/oficina), preguntar al usuario a cual desea llamar.
7.-El usuario responde el sitio donde desea hacer la llamada
8.- Hacer la conexión de la llamada. Finaliza el Caso de Uso.
`
108
Caso de Uso: Consultar Cita/Llamada Actores Involucrados: Usuario (Inicia Caso de Uso) Casos de Uso Relacionados: Llamar, Componer Mail. Descripción: El usuario desea consultar una cita o Llamada de su itinerario.
Secuencia típica de eventos
Acción del actor Respuesta del Sistema 1.- El usuario dice el comando para consultar su itinerario.
2.- Si el comando del usuario no incluye la fecha se dará el itinerario del día actual.
3.- Si el usuario da la fecha se leerá el itinerario de dicha fecha.
4.- El usuario dice el comando llamar 5.- Ir a caso de uso Llamar 8.- El usuario dice el comando Eliminar Cita/Llamada
9.- El sistema elimina la cita o llamada
Fin de Caso de Uso
`
109
Caso de Uso: Agregar Cita/Llamada Actores Involucrados: Usuario(Inicia el Caso de uso) Casos de Uso Relacionados: Ninguno. Descripción: El usuario desea agregar una cita o llamada en su itinerario.
Secuencia típica de eventos
Acción del actor Respuesta del Sistema 1.- El usuario dice el comando agregar una Cita/Llamada.
2.- El sistema pide la fecha en la que quiere agregar.
3.-El usuario dice la fecha. 4.- El sistema la confirma 5.- El sistema pide si desea Agregar
una Cita o una Llamada. 6.-El usuario dice lo que desea Agregar.
7.- El sistema pide la Cita o la Llamada.
8.-El usuario dice la Cita o el Llamada.
9.-El sistema confirma Fin del caso de Uso
`
110
APÉNDICE B. DIAGRAMA DE SECUENCIAS
Diagrama de Secuencia Componer Mail
Fuente: Elaboración propia
Usuario Interfaz Módulo I Módulo II Base de Datos SMTP Server(externo)
Chequa si hay mensajes para enviar
Mensajes para ser enviados
Envía los mensajes
Petición para enviar un mensajes
Petición para enviar un mensaje
Pregunta remitente, asunto y contenido
Pregunta remitente,asunto y contenido
Responde remintente, asunto y contenido
Remintente, asuntoy contenido
Guarda Mensaje para ser enviado
`
111
Diagrama de Secuencia Leer Mail
Fuente: Elaboración propia
Módulo IIIMódulo IInterfazUsuario Base de datos Pop Server (externo)
TTSMódulo II
Envía mensaje nuevos para la convesión en formato de audio
Envía mensaje en formato de texto
Envía mensaje en formato de audio
Graba mensaje (en formato de texto y audio en la base de datos)
Petición de lectura de mensajes
Petición de lectura de mensaje
Petición de mensaje urgentes, nuevos y guardados en formato de audio
Mensaje urgentes, nuevos y guardados en formato de audio
Lectura de los mensajes
Lectura de mensajes
Petición para responder mensajes
Petición para responder mensaje
Pregunta el contenido del mensaje
Pregunta el contenido del mensaje
Responde contenido del mensaje
Contenido del menaje
Guarda el mensaje para luego ser enviado
Petición para re-enviar el mensaje
Petición para re-enviar el mensaje
Pregunta a que contactos destinos
Pregunta los contactos destinos
Responde los contactos de destino
Contactos de destino
Guarda el mail para luego ser enviado
Petición para borrar el mensaje
borrar mensaje
Marca el mensaje como borrado
Chequea los mensajes nuevos cada minuto y los marca como leídos
Envía los mensajes nuevos
`
112
Diagrama de Secuencia Consultar Agenda
Fuente: Elaboración propia
Usuario Interfaz Módulo I Base de Datos
Petición para consultarcita / llamada
Petición para consultarcita / llamada
Obtiene las citas / llamadas
Devuelve las citas y las llamadas,
en orden de horaDevuelve las citas
y las llamadas,en orden de hora
Petición para borrar unacita / llamada
Borrar una cita / llamada
Pregunta que cita / llamada va a borrar
Pregutna que cita / llamada
va a borrar
Responde lo datos de la cita / llamada que desea
Datos de la cita / llamada
Borra cita / llamada
`
113
Diagrama de Secuencia Agregar Agenda
Fuente: Elaboración propia
Usuario Interfaz Módulo I Base de Datos
Petición para agregar una cita / llamada
Petición para agregar unacita / llamada
Pregunta la fecha para lacita / llamada
Pregunta la fecha para lacita / llamada
Responde la fecha de la cita / llamada
Fecha de la cita / llamada
Pregunta la cita o el llamada
Pregunta la cita o la llamada
Responde la cita o la llamada
Responde la cita o la llamada
Guarda la cita o la llamada
`
114
Usuario Interfaz Módulo I Base de Datos PBX
Petición para llamar a un contacto en específico
Petición para llamar a un contacto
Obtinen el teléfono del contacto
Llamada
Responde el contacto y el tipo de teléfono (casa,oficina, celular)
Contacto y tipo de teléfono (casa, oficina, celular)
Teléfono del contacto
Petición para hacer la llamada al número telefónico (parámetro)
Petición para hacer la llamada al número telefonico (parámetro)
Llamada
Diagrama de Secuencia Llamar
Fuente: Elaboración propia
`
116
APENDICE D. ESPECIFICACIÓNES DE LAS HERRAMIENTAS
Especificaciones del IBM WebSphere Voice Server : Disponible en: http://www-4.ibm.com/software/speech/enterprise/ep_1.html
?? Esta basado en el estándar de Voice eXtensible Markup Language
versión 1.0, W3C (W3C (2000)).
?? Reconoce discursos o tonos DTMF (teclas de teléfonos) como
entrada.
?? Sintetiza texto o archivos pregrabados ( 8 kHz. .au audio format), el
módulo de TTS esta completamente ligado a los demás módulos.
?? Acepta “Barge-in”, los usuario pueden interrumpir los prompts.
?? Basado en gramática de reconocimiento de discurso, incluye
soporte para gramática dinámica.
?? Soporte para “mixed initiative dialogs”, los usuarios de la aplicación
pueden incluir múltiples expresiones en una sola interacción.
?? Realiza Log (anotación de las actividades que se producen en el
sistema) y mecanismos de alarma.
?? Permite múltiples conexiones simultaneas.
?? Solo permite el idioma Ingles.
Los requerimiento de hardware son los siguiente:
?? Intel® Pentium ® 550 MHz processor.
?? Unidad de CD-ROM.
?? 256 MB RAM (mínimo).
?? 250 MB de espacio de disco duro (mínimo).
Los requerimientos para la parte de telefonía son los siguientes:
?? Cisco H.323 V2.0 compliant VoIP gateway (models 1750-2600).
`
117
?? Ethernet 10/100 network que soporte VoIP.
?? Conexión de teléfono PSTN/GSM.
?? Líneas Analógicas.
?? ISDN PRI T1/E1.
?? No soporta por ahora tarjetas Dialogic.
?? Soporta tarjeta de sonido Sound Blaster.
Especificaciones del Mya Voice Platforms, Voice Developer Gateway
de AT&T :
Disponible en: http://www.motorola.com/MIMS/ISG/voice/syssoft/vdg.htm
?? Browser de Voz Mya de Motorola.
?? Esta basado en el estándar de Voice eXtensible Markup Language
versión 1.0, W3C (W3C (2000)).
?? Software de Sintetizador de texto (TTS).
?? Reconocimiento de discurso de NUANCE (ASR software).
?? Log de llamadas (anotación de las actividades que se producen en
el sistema).
?? Solo permite el idioma Ingles.
Los requerimiento de hardware es el siguiente:
?? Compaq Poliant server con Windows NT. Incluye la computadora.
Los requerimientos para la parte de telefonía:
?? Soporta tarjetas de telefonía Dialogic.
?? Soporta hasta 4 puertos análogos.
?? Soporta T1 ISDN PRI.
?? Soporta E1 ISDN PRI.
?? Soporta tarjeta de sonido Sound Blaster.
`
118
Especificaciones del Nuance Voice Web Server Y Nuance 7.0
Disponible en: http://www.nuance.com/products/voicewebserver.html
?? Esta basado en el estándar de Voice eXtensible Markup Language
versión 1.0, W3C (W3C (2000)).
?? Capacidad de HotWord o Comandos Universales.
?? Suporte en línea de todos sus productos en forma de foros de
discusión abiertos.
?? Soporta SpeechObject, que son aplicaciones en javascrip que
realizan ciertas tareas especificas.
?? Identificador de Voz.
?? Completamente documentado.
?? Soporta 20 idiomas (incluye al español).
?? Sintetiza texto (TTS) llamado Nuance Vocalizer, el cual viene como
un sistema separado.
Los requerimiento de hardware es el siguiente:
?? Dual Intel® Pentium ® 500 MHz processor.
?? 512 MB RAM.
?? Disco duro de 9.1 GB UltraWide SCSI.
?? 100 BaseT Ethernet Lan.
?? Windows NT 4.0 SP5.
Los requerimientos para la parte de telefonía:
?? Soporta tarjetas de telefonía Dialogic.
?? Soporta tarjeta de sonido Sound Blaster.