Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Universidad de Morón Facultad de informática, Ciencias de la comunicación y Técnicas especiales Trabajo de Diploma (75) Tesis Final Licenciatura en Sistemas 2009 Tutor: Ing. Luis Campos. Integrantes: Rodrigo H Elhaibe Página 1 de 72 13300081 ([email protected]) Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Indice General Capítulo 1 – Introducción ............................................................................................................................................... 5 Justificación ................................................................................................................................................................ 5 Alcance y contenido de la Tesis ................................................................................................................................. 6 Capítulo 2 - Estado del Arte ......................................................................................................................................... 7 La Tecnología Inalámbrica ....................................................................................................................................... 7 Surgimiento y evolución de los Dispositivos Móviles ........................................................................................................... 7 Usuarios de Telefonía Móvil en el Mundo .............................................................................................................................. 7 Las Generaciones de la Telefonía Móvil ................................................................................................................................. 8 Lectores de pantalla para celulares ........................................................................................................................................ 11 Plataformas de desarrollo sobre Teléfonos Móviles ........................................................................................................... 13 Sistemas operativos en teléfonos celulares: .......................................................................................................................... 16 Sistemas de Posicionamiento Global (GPS) ........................................................................................................... 16 Características............................................................................................................................................................................... 16 Evolución........................................................................................................................................................................................ 16 Desafíos........................................................................................................................................................................................... 17 Fiabilidad de los datos ............................................................................................................................................................... 17 GPS en el móvil ............................................................................................................................................................................ 17 JSR-179 API de Localización de Java para dispositivos móviles compatibles ............................................................. 18 Servicios Web ........................................................................................................................................................... 19 Introducción .................................................................................................................................................................................. 19 Principales características y ventajas ..................................................................................................................................... 19 Desventajas y limitaciones ........................................................................................................................................................ 19 Estructura de los mensajes ........................................................................................................................................................ 21 Tecnologías para servicios Web en Java................................................................................................................................ 21 Text To Speech (TTS) ............................................................................................................................................... 22 ¿Qué es un sistema Text to Speech? ...................................................................................................................................... 22 ¿Cómo funciona el procesamiento de texto a voz? ........................................................................................................ 22 Utilidad de los sintetizadores de voz ..................................................................................................................................... 22 Tecnologías de Síntesis de Voz ................................................................................................................................................ 23 Desafíos del front-end ............................................................................................................................................................... 24 Desafíos de la normalización de texto .................................................................................................................................. 24 Desafíos de los sistemas Texto a fonema .............................................................................................................................. 25 El Sintetizador de voz MBROLA ............................................................................................................................. 25 Servidores Web ........................................................................................................................................................ 26 Introducción ................................................................................................................................................................................. 26 Conceptos relacionados con las aplicaciones web ............................................................................................................. 27 Servidor HTTP Apache ............................................................................................................................................................. 27 Ventajas ................................................................................................................................................................... 27 Licencia .................................................................................................................................................................... 28 Motor de base de Datos .......................................................................................................................................... 28 Introducción ................................................................................................................................................................................. 28 Interioridades y portabilidad .................................................................................................................................................. 29 Capítulo 3 - Presentación de la Problemática y Propuesta de Solución ................................................................... 29 Introducción ............................................................................................................................................................. 29 Detalles de funcionalidad de la Solución Planteada ............................................................................................. 30 Generalidades de funcionalidad de la Solución Móvil ........................................................................................... 30 Generalidades de funcionalidad de los Servicios Web ........................................................................................... 31 Capítulo 4 – Desarrollo de la Solución Propuesta ...................................................................................................... 32 Metodología de Desarrollo ...................................................................................................................................... 32 Especificación de Requerimiento de Software ....................................................................................................... 32 Introducción ................................................................................................................................................................................. 32 Objetivo......................................................................................................................................................................................... 33 Alcance .......................................................................................................................................................................................... 33 Fuera de Alcance del Proyecto .............................................................................................................................................. 33 Definiciones, acrónimos y Abreviaturas................................................................................................................................ 34 Referencias ................................................................................................................................................................................... 34 Descripción General del Sistema ............................................................................................................................................ 34 Perspectiva del Producto ......................................................................................................................................................... 34 Página 2 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Funciones del Software: ............................................................................................................................................................ 34 Aplicación Móvil ................................................................................................................................................................ 34 Servicios Web ...................................................................................................................................................................... 35 Características del Usuario ....................................................................................................................................................... 36 Restricciones Generales ............................................................................................................................................................. 36 Dependencias y Supuestos ....................................................................................................................................................... 36 Especificación de Requerimientos ........................................................................................................................... 36 Requerimientos Funcionales .................................................................................................................................................... 36 Aplicación Móvil (J2ME) ............................................................................................................................................................ 37 Acceso al sistema: ......................................................................................................................................................... 37 Menú Principal: ............................................................................................................................................................. 37 Opción Localización (1): .............................................................................................................................................. 37 Opción Trayectoria (2): .............................................................................................................................................. 38 Opción Modo Caminante (3): ................................................................................................................................... 38 Opción Puntos de Interés en Radio: ........................................................................................................................ 39 Servicios Web Desplegados (J2EE) ......................................................................................................................................... 39 TTS WS ............................................................................................................................................................................ 39 GPS WS ........................................................................................................................................................................... 39 GEO WS ......................................................................................................................................................................... 40 Requerimientos de Interfaces externos ................................................................................................................... 40 Interfaces de Usuario ................................................................................................................................................................ 40 Interfaces de Hardware y Software ..................................................................................................................................... 40 Restricciones de Diseño ............................................................................................................................................ 41 Cumplimiento de Estándares ................................................................................................................................................... 41 Limitaciones hardware .............................................................................................................................................................. 41 Atributos del Software ............................................................................................................................................ 41 Confiabilidad ................................................................................................................................................................................ 41 Disponibilidad ............................................................................................................................................................................... 41 Seguridad ...................................................................................................................................................................................... 41 Facilidad de Mantenimiento ................................................................................................................................................... 42 Diseño Arquitectónico ............................................................................................................................................. 42 Definición General de los Casos de Uso ................................................................................................................... 44 Descripción detallada de casos de Uso ................................................................................................................... 45 Iniciar Aplicación......................................................................................................................................................................... 45 Obtener Localización................................................................................................................................................................. 46 Trazar Trayectoria a Destino .................................................................................................................................. 47 Modo Caminante ....................................................................................................................................................................... 48 Ubicar Punto de Interés en Radio .......................................................................................................................................... 49 Definición General de Casos de Uso para Servicios Web ........................................................................................ 50 Sintetizar Texto a Voz ................................................................................................................................................................ 51 Obtener Dirección Postal Sintetizada ................................................................................................................................... 52 Obtener Trayectoria a Destino sintetizada ......................................................................................................................... 52 Ubicar Punto de Interés en Radio .......................................................................................................................................... 53 Diagramas de Clases ............................................................................................................................................... 54 Aplicación Móvil – Implementación del Localizador ....................................................................................................... 55 Aplicación Móvil – Modulo Principal .................................................................................................................................... 56 Servicios Web – Paquetes Involucrados ............................................................................................................................... 57 Paquete Integrador y Expositor de Funciones ................................................................................................................... 57 Diagrama Paquete TTS – Sintetizador de Voz ................................................................................................................. 58 Diagrama Paquetes DB + GEO. Ubicación de Puntos de Interés en Radio ............................................................... 59 Paquete GPS - Interfaz con API de Localización de Google MAPS .......................................................................... 60 Diagramas de Actividades ...................................................................................................................................... 61 Aplicación Móvil ........................................................................................................................................................................... 61 Servicio de Síntesis de Voz ........................................................................................................................................................ 62 Servicio GPS ................................................................................................................................................................................. 62 Obtener Localización................................................................................................................................................................. 62 Procesamiento de Trayectoria ................................................................................................................................................ 63 Servicio GEO ................................................................................................................................................................................ 64 Determinación de Puntos de Interés ..................................................................................................................................... 64 Página 3 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Diccionario de Datos del Modelo ............................................................................................................................ 65 Diagrama de Base de Datos ................................................................................................................................... 65 Plan de Pruebas (Test)............................................................................................................................................ 65 Modulo de Localización ............................................................................................................................................................ 67 Modulo de Procesamiento de Trayectoria .......................................................................................................................... 67 Modulo Caminante .................................................................................................................................................................... 67 Modulo de Ubicación de puntos de Interés en Radio ....................................................................................................... 68 Ayudas Auditivas Extra ............................................................................................................................................................ 68 Capítulo 5 – Conclusiones Finales, Futuras Líneas de Investigación y Agradecimientos ............................................ 69 Conclusiones Finales ................................................................................................................................................ 69 Futuras Líneas de Investigación .............................................................................................................................. 70 Reconocimiento de Voz ............................................................................................................................................................70 Implementación Móvil de un Sintetizador de de Voz en Español ...............................................................................70 Buscador de Puntos de Interés dentro de Internet ...........................................................................................................70 Publicidad ....................................................................................................................................................................................70 Agradecimientos ..................................................................................................................................................... 71 Referencias y Bibliografía........................................................................................................................................ 71 Página 4 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Capítulo 1 – Introducción Justificación La ceguera es una de las cuatro enfermedades más temidas en la actualidad después del SIDA, el cáncer y el Alzheimer. Si preguntásemos a un conjunto cualquiera de personas, cuál es el sentido más preciado que poseen, probablemente nos contestarían que la vista. Y es que la visión es algo muy importante para todas y cada una de las personas. A través de los ojos percibimos las imágenes y como bien expresa el dicho “vale más una imagen que mil palabras”. Se ha estimado que existen actualmente en el mundo entre 28 y 35 millones de personas ciegas, de los cuales la gran mayoría, casi el 90%, viven en países en desarrollo, principalmente en África y Asia. Además, más de la mitad habita en comunidades en desventaja, de bajo nivel socioeconómico y en zonas rurales. En estas comunidades el riesgo de quedar ciego es de 10 a 40 veces superior que en las zonas desarrolladas1. Pero también es verdad que aunque sin la vista nos sentiríamos privados de muchas cosas, las personas invidentes consiguen desarrollar, en ocasiones, habilidades que suponen un gran logro para ellos, es decir, consiguen desempeñar papeles que desarrollarían normalmente las personas que pueden ver. Para que estas habilidades se desarrollen es necesario que los individuos con deficiencias visuales obtengan una educación adecuada a sus posibilidades que les permita desarrollarse y conseguir autonomía y validez por sí mismos. Diseñar y desarrollar tomando en cuenta a las personas con discapacidades no es un acto de bondad, es tomar consciencia de los usuarios y de paso obtener un plus para la empresa. Nuestra sociedad moderna ha sido calificada como la “sociedad de la información y el conocimiento”. Nada en este ámbito es concebible hoy sin el apoyo determinante de las denominadas Tecnologías de la Información y la Comunicación. En consecuencia, el desarrollo integral de las personas estará determinado en gran medida por el manejo y la habilidad que cada una presente en la utilización de estas tecnologías. Pero no todos los aparatos tecnológicos existentes suponen un fácil manejo por parte de ciertos individuos. Es el caso de los discapacitados. Con ellos se debe prestar un cuidado particular pues, en numerosas oportunidades, se requiere de la adaptación de estas tecnologías con el fin de evitar un factor de desigualdad o discriminación. Mejorar la accesibilidad desde el momento de la noción, diseño y producción de un dispositivo tecnológico es tener en cuenta las necesidades reales de usuarios que presentan alguna condición de discapacidad. El teléfono móvil es una herramienta que facilita nuestras vidas, nos permite comunicarnos, entretenernos, mantenernos informados y guardar información, entre otras cosas. Sin embargo, a pesar de ofrecer cada día mejores capacidades multimedia y de comunicación (tanto de corto como largo alcance) y ser cada vez más fácilmente programables, estos dispositivos aún no pueden o son difíciles de utilizar por personas con deficiencias visuales, motrices o de avanzada edad. Gran importancia toman en este aspecto aquellos usuarios que se ven afectados por alguna discapacidad visual y que, por ende, precisan de apoyo de herramientas tiflotecnológicas para desenvolverse en un medio virtual. La palabra tiflotecnología encuentra su origen semántico en los vocablos griegos tiflo, que significa ciego; tekne (”arte, técnica u oficio”) y logos (”conjunto de saberes”). De tal forma, “se entiende por tiflotecnología el conjunto de conocimientos, técnicas y recursos encaminados a procurar a los ciegos y deficientes visuales los medios oportunos para la correcta utilización de la tecnología” Creemos que la tecnología aportada por el celular puede colaborar en las actividades diarias de la comunidad, siendo utilizadas para dar mejor calidad de vida e integración social y acceso a la información a discapacitados visuales. Esta autonomía se traduce en unas mayores y mejores opciones culturales, educativas, laborales, recreativas, etc. Por este motivo, el aporte de este trabajo consiste en desarrollar un software que integrado a la telefonía móvil, la cual actualmente y en muchos modelos dispone de un receptor GPS integrado, permita a las personas con discapacidad visual, tener mayor autonomía e independencia en el uso de este tipo de información provista por su unidad móvil. Y a su vez, que se logre obtener un producto de fácil acceso económico a estas personas. Para ello el estudio estará basado en la investigación de distintas tecnologías de síntesis de voz y el análisis de su posible implementación sobre aplicaciones móviles, interactuando con información brindada por Internet en lo que GEO-localización se refiere, aprovechando el libre acceso de la misma. 1 Dato extraido de la Organización Mundial de la Salud Página 5 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Alcance y contenido de la Tesis La siguiente es una síntesis de lo que verá en cada uno de los Capítulos que componen la Tesis: Capítulo 2 - Estado del Arte. 2.1 – Evolución de las Tecnologías Móviles. Se realizara un estudio teórico y una presentación del potencial de comunicación que brinda actualmente la tecnología móvil y su futuro en el mercado. Posteriormente se realizara un estudio sobre las posibilidades de desarrollo sobre dispositivos móviles y el enfoque que hoy en día tienen algunos desarrollos tiflotecnologicos y a que problemáticas responden. 2.2 - Receptores GPS. Se realizara estudio teórico y una presentación de los beneficios brindados por los receptores GPS en general y la interacción que existiría entre la información brindada por estos receptores y la mucha información que brinda al día de hoy Internet de forma gratuita, la cual en su combinación, podría resultar beneficiosa a la hora de encarar un desarrollo enfocado en facilitar la inclusión de personas con deficiencias visuales al mundo de algunas tecnologías poco accesibles a ellos. A su vez se realiza una elección del lenguaje de programación adecuado para lograr minimizar al máximo los costos de una posible implementación del software sobre teléfonos Móviles. 2.3 - Servicios Web. Se realizara un estudio de las posibilidades que brindan los servicios web en Internet, a la hora de consumir información brindada por los mismos desde distintas plataformas, entre ellas, aplicaciones Móviles, permitiendo generar servicios con distintas complejidades, abstrayendo a los clientes (Teléfonos Celulares) de las mismas. A su vez se realiza una elección del lenguaje de programación adecuado para lograr minimizar al máximo los costos de una posible implementación del software. 2.4 - Síntesis de Voz en Español. Se realizara un estudio y presentación de la tecnología disponible y de bajo costo elegida a fin de realizar síntesis de voz en español para el soporte de todos los módulos de la solución. 2.5 - Servidor Web. Se realizara una presentación del Software Servidor de bajo costo elegido para alojar los servicios web desarrollados. 2.6 - Motor de Base de Datos. Se realizara una presentación del Motor de Base de Datos de bajo costo elegido para alojar la información necesaria para el soporte de algunos módulos de la solución. Capítulo 3 – Presentación de la problemática y propuesta de solución. Capítulo 4 – Desarrollo de la solución propuesta. Capitulo 5 – Conclusiones Finales y Futuras líneas de Investigación. Página 6 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Capítulo 2 - Estado del Arte A continuación se describirán distintas tecnologías disponibles en el mundo informático, capaces de aunar características con el fin de brindar resolución a gran cantidad de problemas que tienen las personas discapacitadas tanto en el acceso económico de tecnologías que satisfagan sus necesidades, como en facilidad de su uso. El estudio de estas tecnologías, algunas conocidas y otras no tanto, se orienta justamente a su conjunción, y como primera premisa se busco la característica de Libre Acceso y Distribución para proyectos no comerciales, con la finalidad de desarrollar un producto que desde su concepción hasta su implementación sea enteramente gratuito para sus consumidores. La Tecnología Inalámbrica Surgimiento y evolución de los Dispositivos Móviles El poder comunicar cualquier tipo de dispositivo, como pueden ser las computadoras, celulares, etc., mediante tecnología inalámbrica se presenta como una de las tecnologías que más futuro tiene. La conexión mediante Ondas de Radio o Luz Infrarroja está siendo cada vez más investigada generando resultados a veces que pueden llegar a superar lo imaginado. Las Redes Inalámbricas facilitan la operación en lugares en donde los dispositivos no pueden estar físicamente en un solo lugar para lo cual se necesita el movimiento de los mismos. Antes del nacimiento del sistema celular como se lo conoce en la actualidad, existieron distintos sistemas de comunicación móvil que tenían como finalidad llegar a cubrir las necesidades de comunicación en movimiento. Los sistemas de comunicación móvil que precedieron a la telefonía celular fueron: Comunicación Móvil de Radio Consistían en radios que se comunicaban entre sí dependiendo de la potencia de salida de cada unidad individual Servicio de Telefonía Móvil (MTS) Sistema telefónico operado manualmente que permitía a un suscriptor comunicarse a otra parte usando la red terrestre Servicio de Telefonía Móvil Mejorado (IMTS) Proporcionó selección de canal automática, conteo automático y operación simultánea full-duplex. El radio celular, como concepto, fue originalmente construido para realizar comunicaciones móviles de alta densidad sin consumir grandes cantidades de espectro. El primer bosquejo inicial de la telefonía celular para sistemas móviles de alta densidad fue realizada por la empresa American Telephone and Telegraph (AT&T) en 1940. En 1968 AT&T llevó su propuesta de un sistema celular a la Federal Communications Commission (FCC ) quien era el organismo regulador de las comunicaciones en los Estados Unidos. El concepto original de radio celular era utilizar el uso de un grupo de frecuencias dentro de una misma Celda, rehusando la frecuencia en la misma vecindad pero separándolas en espacio físico para permitir el re-uso con un bajo nivel de interferencia. El hardware necesario para implementar este tipo de sistemas no fue logrado hasta finales de los años setenta y para entonces, el concepto celular, es decir, el re-uso de frecuencia en Celdas, fue aceptado como una herramienta para la planificación de frecuencias. En 1973 se creo el primer radioteléfono en Estados Unidos, realizado por Martin Cooper, a quien se lo considera como "el creador de la telefonía celular", mientras trabajaba para Motorola; pero no fue hasta 1979 cuando aparecieron los primeros sistemas comerciales en Tokio, Japón por la compañía NTT. Los países del norte, en 1981, crearon un sistema celular similar a AMPS (Advanced Mobile Phone System). Por otro lado, en Estados Unidos, gracias a que la entidad reguladora de ese país adoptó reglas para la creación de un servicio comercial de telefonía celular, en 1983 se puso en operación el primer sistema comercial en la ciudad de Chicago. Con ese punto de partida, en varios países se fue diseminando el uso de la telefonía celular como una alternativa a la telefonía convencional inalámbrica. La tecnología tuvo gran aceptación, por lo que a los pocos años de implantarse se empezó a saturar el servicio. En ese sentido, hubo la necesidad de desarrollar e implantar otras formas de acceso múltiple al canal y transformar los sistemas analógicos a digitales, con el objetivo de poder soportar a más usuarios. Usuarios de Telefonía Móvil en el Mundo Página 7 de 72 Ranking País Cantidad 1 China 334.824,00 2 United States 194.479,36 3 Japan 91.473,90 4 Russia 74.420,00 5 Germany 71.300,00 6 India 69.193,32 7 Brazil 65.605,00 8 Italy 62.750,00 9 United Kingdom 61.091,00 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática 10 France 44.551,80 11 Spain 38.646,80 12 Mexico 38.451,10 13 Korea, South 36.586,10 14 Turkey 34.707,50 15 Philippines 32.935,90 16 Indonesia 30.000,00 17 Poland 29.260,00 18 Thailand 27.379,00 19 Taiwan 25.089,60 20 Nigeria 21.571,13 21 South África 19.500,00 22 Australia 16.480,00 23 Canada 14.984,40 24 Netherlands 14.800,00 25 Malaysia 14.611,90 26 Egypt 14.045,13 27 Ukraine 13.735,00 28 Algeria 13.661,00 29 Argentina 13.512,40 30 Czech Republic 10.782,60 Las Generaciones de la Telefonía Móvil A lo largo del desarrollo de esta tecnología se han ido gestando avances importantes que significaron un comienzo de una nueva generación de Telefonía Móvil. En la figura 3 puede observa cada uno de los acontecimientos más significativos a lo largo del tiempo que se fueron produciendo en la evolución de la Tecnología Móvil. Primera generación (1G) La 1G apareció en 1979 y se caracterizaba por ser analógica y estrictamente para voz. La calidad de los enlaces era muy baja, tenían baja velocidad (2400 bauds). En cuanto a la transferencia entre celdas, era muy imprecisa ya que contaban con una baja capacidad, basadas en FDMA, Frequency Division Múltiple y dos frecuencias portadoras distintas para establecer la comunicación TX y RX. No existía aún el concepto de seguridad. La tecnología predominante de esta generación es AMPS (Advanced Mobile Phone System). En Norteamérica a partir de 1981 comenzó a utilizarse el sistema AMPS (Advanced Mobile Phone Service), el cual ofrecía 666 canales divididos en 624 canales de voz y 42 canales de señalización de 30 Khz cada uno. Europa introduce en 1981 el sistema Nordic Mobile Telephone System o NMTS450 el cual empezó a operar en Dinamarca, Suecia, Finlandia y Noruega, en la banda de 450 MHz. En 1985 Gran Bretaña, a partir de AMPS, adoptó el sistema TACS (Total Access Communications System), el cual contaba con 1000 canales de 25 Khz cada uno y operaba en la banda de 900 MHz. En esta década también se pueden destacar la aparición de otros otos sistemas de primera generación como el NTT, estándar japonés, el CNetz estándar Alemán y French Radiocom 2000 de Francia. El problema más significativo de los sistemas de comunicaciones celulares de primera generación era el rápido agotamiento de los recursos, cuando se consideran las pequeñas bandas de frecuencias asignadas para la utilización de teléfonos celulares. Al establecer una llamada analógica, ésta se bloquea y utiliza una banda de frecuencias seleccionada hasta que la llamada termina. Página 8 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Segunda generación (2G) A diferencia de la primera se caracterizó por ser digital. Con tantos estándares diferentes, los proveedores europeos sufrieron las consecuencias de una diversidad de normas incompatibles entre sí. El reconocimiento de este problema fue un factor que impulsó el desarrollo del estándar GSM para las comunicaciones móviles. En 1982, cuando aparecieron los primeros servicios celulares comerciales, la Conférence Européenne des Postes et Télécommunications (CEPT), tomó la iniciativa de poner en marcha un grupo de trabajo, llamado Groupe Spécial Mobile (GSM), encargado de especificar un sistema de comunicaciones móviles común para Europa en las banda de 900 MHz, banda que había sido reservada por la World Administrative Radio Conference en 1978. El GSM comenzó como una norma europea para unificar sistemas móviles digitales y fue diseñado para sustituir a más de diez sistemas analógicos en uso y que en la mayoría de los casos eran incompatibles entre sí. Después de unas pruebas de campo en Francia en 1986, y de la selección del método de acceso Time Division Multiple Access (TDMA) en 1987, 18 países firmaron en 1988 un acuerdo de intenciones llamado Memorandum of understanding (MOU): En este documento los países firmantes se comprometían a cumplir las especificaciones, a adoptar este estándar único y a poner en marcha un servicio comercial GSM, que ofrece seguimiento automático de los teléfonos móviles en su desplazamiento por todos los países. Conforme se desarrolló, GSM mantuvo el acrónimo, aunque en la actualidad signifique Global System for Mobile communications. En Norteamérica, el objetivo principal de un nuevo estándar digital era aumentar la capacidad dentro de la banda de 800 MHz existente. Un prerrequisito es que los teléfonos móviles debían funcionar con los canales de habla analógicos ya existentes y con los nuevos digitales (Dual Mode). A partir de esto se empleó el termino Digital AMPS (D-AMPS) que se refiere a IS-54B, y que define una interfaz digital con componentes heredados de AMPS. La especificación IS-36 es una evolución completamente digital de D-AMPS. A causa de estos requisitos, fue natural el elegir un estándar TDMA de 30 KHz puesto que los sistemas analógicos existentes trabajan ya con esta anchura de canales. En este sistema se transmiten tres canales por cada portadora de 30 Khz. A principios de la década de los 90, también aparece un nuevo estándar el cual utiliza el método de acceso CDMA (Code Division Multiple Access). El estándar CDMAOne o IS-95, fue una tecnología desarrollada por Qualcomm y consiste en que todos usan la misma frecuencia al mismo tiempo separándose las conversaciones mediante códigos. Estas tecnologías de segunda generación ofrecían las siguientes características: Mayor calidad de las transmisiones de voz Mayor capacidad de usuarios Mayor confiabilidad de las conversaciones La posibilidad de transmitir mensajes alfanuméricos. Este servicio permitía enviar y recibir cortos mensajes que podían tener hasta 160 caracteres alfanuméricos desde un teléfono móvil. Navegar por Internet mediante WAP (Wireless Access Protocol) Tercera generación (3G) La 3G se caracteriza por contener a la convergencia de voz y datos con acceso inalámbrico a Internet; en otras palabras, es apta para aplicaciones multimedia y altas transmisiones de datos. Los avances que en materia de sistemas de tercera generación adelanta la Unión Internacional de Telecomunicaciones (ITU), a finales de los años ochenta, se denominaron en un principio como Futuros Sistemas Públicos de Telecomunicaciones Móviles Terrestres (FPLMTS – Future Public Land Mobile Telecommunication System). Actualmente se le ha cambiado de nombre y se habla del Sistema de Telecomunicaciones Móviles Internacionales (IMT-2000, International Mobil Telecommunication-2000) creado con el objetivo de valorar y especificar los requisitos de las normas celulares del futuro para la prestación de servicios de datos y multimedia a alta velocidad. La IMT-2000 es una norma de la ITU para los sistemas de la 3a. generación que proporcionan acceso inalámbrico a la infraestructura de telecomunicaciones global por medio de los sistemas satelitales y terrestres, para dar servicio a usuarios fijos y móviles en redes públicas y privadas. Página 9 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Los objetivos primarios de ITU definidos para IMT-2000 son: La eficacia operacional, particularmente para los datos y servicios de multimedia. Flexibilidad y transparencia en la provisión de servicio global La tecnología conveniente para reducir la falta de telecomunicaciones, es decir ofrecer un costo accesible para millones de personas en el mundo que todavía no tienen teléfono. La incorporación de toda una variedad de sistemas. Alto grado de uniformidad de diseño a escala mundial. Alto nivel de calidad, comparable con la de una red fija. Utilización de una terminal de bolsillo a escala mundial. La conexión móvil-móvil y móvil-fijo. La prestación de servicios por más de una red en cualquier zona de cobertura. Los requerimientos que se necesitan para utilizar un sistema de Tercera Generación son: Alta velocidad en transmisión de datos. Hasta 144 Kb/s, velocidad de datos móviles (vehicular); hasta 384 Kb/s, velocidad de datos portátil (peatonal) y hasta 2 Mb/s, velocidad de datos fijos (terminal estático). Transmisión de datos simétrica y asimétrica. Servicios de conmutación de paquetes y en modo circuito, tales como tráfico Internet (IP) y video en tiempo real. Calidad de voz comparable con la calidad ofrecida por sistemas alámbricos. Mayor capacidad y mejor eficiencia del espectro con respecto a los sistemas actuales. Capacidad de proveer servicios simultáneos a usuarios finales y terminales. Incorporación de sistemas de segunda generación y posibilidad de coexistencia e interconexión con servicios móviles por satélite. Itinerancia internacional entre diferentes operadores (Roaming Internacional). En Europa, el Instituto Europeo de Telecomunicaciones (ETSI) ha propuesto la norma paneuropea de tercera generación UMTS (Universal Mobile telecommucation System). UMTS es miembro de la familia global IMT-2000 del sistema de comunicaciones móviles de "tercera generación" de UIT. La ITU recibió tres familias de propuestas PDD (WCDMA, cdma 2000 y UWC 136) y tres propuestas TDD (UTRA /TDD, TDD-SCDMA y DECT). Posteriormente se han coordinado esfuerzos para armonizar los candidatos IMT- 2000 y finalmente disponer de las normas comprimidas de Tercera Generación. La asignación de espectro para IMT-2000 se realizó en la Conferencia Administrativa Mundial de Radiocomunicaciones 1992, WARC 92, asignando 230 MHz en las bandas 1885-2025 MHz y 2110-2200 MHz IMT-2000 comprende también una componente satelital que facilita los aspectos de roaming internacional, así como la obtención de comunicaciones en lugares donde no haya disponibilidad de sistemas terrestres, complementando las celdas Macro, micro y pico. Debido al crecimiento de Internet, las Intranets, el correo y el comercio electrónico y los servicios de transmisión de imágenes y sonido; han elevado la demanda de servicios de banda ancha, teniéndose que incrementar los requerimientos de espectro para IMT-2000. La Conferencia Mundial de Radiocomunicaciones WRC-2000 celebrada en Estambul en el año 2000, proporcionó tres bandas extras quedando compuesto el espectro para IMT-2000 de la siguiente forma: Componente terrenal: 806-960 MHz WRC 2000 1710-1885 MHz WRC 2000 1885-1980 MHz WARC 92 2010-2025 MHz WARC 92 2110-2200 MHz WARC 92 2500-2690 MHz WRC 2000 Componente Satelital: 1980-2010 MHz WARC 92 2170-2200 MHz WARC 92 2500-2520 MHz WRC 2000 2670-2690 MHz WRC 2000 Uno de los elementos más importantes para la definición de las características operativas del IMT-2000, es la selección de la Tecnología de Transmisión y Radio (RTT), también denominada interfase de aire, parte del sistema que transporta una llamada entre la estación base o móvil y la terminación del usuario. En 1998 la UIT denominó RTT (Radio Transmission Technology) a las tecnologías que harían de interfaz de aire entre las estaciones base y los terminales móviles. Las distintas interfaces propuestas ante la Unión Internacional de telecomunicaciones están basadas en CDMA que se acompañan de tres modalidades de operación, cada una de las cuales podría perfectamente funcionar sobre la red base de GSM (GSM-MAP) y sobre la red base CdmaOne (IS-41). Las especificaciones técnicas de las RTT terrestres fueron aprobadas en la WRC-2000. Las siguientes especificaciones son las que forman esta tecnología: IMT-2000 CDMA Direct Spread (UTRA W-CDMA) IMT-2000 CDMA Multi-Carrier (CDMA-2000) IMT-2000 CDMA TDD (UTRA TD-CDMA) IMT-2000 TDMA Single-Carrier (UWC-136) IMT-2000 FDMA/TDMA (DECT). Con los avances logrados en los sistemas de 3G dieron lugar a comenzar a pensar en prestar servicios a los usuarios nunca antes imaginados por ninguna empresa, algunos de estos servicios que empezaron a nacer son: Voz en banda estrecha a servicios multimedia en tiempo real y banda ancha. Apoyo para datos a alta velocidad para navegar por la world wide web, entregar información como noticias, tráfico y finanzas por técnicas de empuje y acceso remoto inalámbrico a Internet e intranets. Servicios unificados de mensajes como correo electrónico multimedia. Aplicaciones de comercio electrónico móvil, que incluye operaciones bancarias y compras móviles. Aplicaciones audio/video en tiempo real como videoteléfono, videoconferencia interactiva, audio y música, aplicaciones multimedia especializadas como telemedicina y supervisión remota de seguridad. Página 10 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática La tecnología WiMax se convierte en el estándar 3G La ITU (Unión Internacional de Telecomunicaciones) ha decidido incorporar la tecnología WiMax a su estándar 3G, abriendo el camino para el despliegue de una serie de servicios de voz, datos y multimedia tanto en dispositivos móviles como estáticos. De esta manera también se intenta dar un paso grande hacia la Internet móvil de alta velocidad demandada por los mercados de todo el mundo. Se calcula que 2.700 millones de personas se pueden beneficiar de esta decisión. Las velocidades de conexión que se podrán obtener serán similares a las obtenidas por ADSL, pero sin cables, y hasta una distancia de 50-60 km. Este nuevo estándar será compatible con otros anteriores, como el de Wi-Fi. Acceso a Internet de Banda Ancha por Celular Se lanzó en Capital Federal un nuevo servicio que posibilita tener Internet en los celulares. Son redes de telefonía móvil para celulares de 3G2, que permiten la transmisión de datos a alta velocidad, esto permitirá poder hacer videoconferencias, viendo al interlocutor en la pantalla del aparato mientras se habla, o conectarse a internet de manera inalámbrica, a una velocidad mayor a gran parte de las bandas anchas. Acaban de ser presentados en el país, aunque por el momento sólo se pueden usar en parte de la Capital Federal. Los usuarios tendrán una velocidad de transmisión de 1,2 Mbs, alta aún comparando con la banda ancha por cable. Y en un futuro cercano serán 3,2 Mbs. La Imagen 8 muestra el Área de alcance de este nuevo servicio Se calcula que para fines del 2007, habrá 183 millones de personas que usen servicios de 3G. En Argentina, esta empezando a ofrecerse la 3G, principalmente, la video llamada que parecer ser la utilidad más marketinera para insertar en el mercado la tercera generación. Sin embargo, las posibilidades son amplias. Con 3G la capacidad de transmisión se amplía y surgen nuevos servicios o se mejoran los que ya existen, permitiendo una conexión de banda ancha de 800 Mbps para descargar contenidos o navegar por Internet mediante el uso de la tecnología WCDMA. Según los Empresarios, se trata de un mercado muy propicio, ya que en el mundo existen 2.000 millones de usuarios de telefonía. En Argentina, si bien la telefonía de tercera generación recién llega, el nivel de penetración de la telefonía móvil ya está por arriba del 70%. En la zona de cobertura 3G se puede recibir y enviar e-mails a muy alta velocidad. Pero si se sale del área, el teléfono seguirá funcionando bajo la red de segunda generación. Todo lo que une a las radio bases entre ellas se mantiene igual y se reutiliza. El switch que centraliza toda la información en la operadora se reutiliza, aunque tiene que incrementar un poco la capacidad porque se va a generar más tráfico de datos, si no, se generará un cuello de botella. Telefonía Móvil de Cuarta Generación (4G) En la ciudad china de Shangai, se están llevando a cabo las primeras pruebas del mundo de la telefonía móvil de cuarta generación (4G), el cual es 50 veces más rápido que la vigente telefonía sin hilos denominada 3G, la más potente del mercado al permitir la transferencia de imágenes y sonidos a una velocidad de 2,84 megabites. Igualmente su lanzamiento se estima será dentro de cuatro años. China aún tiene pendiente la instauración de la tecnología 3G, también de producción nacional. Este hecho, unido a las grandes inversiones en infraestructuras y redes, hace suponer que las compañías del dragón rojo preferirán amortizar dicho sistema hasta que, finalmente, decidan lanzar los móviles de cuarta generación. Se espera que los teléfonos móviles 4G tengan capacidad para transmitir datos con la misma rapidez que la fibra óptica, mejorando notablemente la transferencia de imágenes de alta calidad a través de una conexión sin hilos. El crecimiento económico disparó suscitado en este país, superó en 2004 a Estados Unidos como primer mercado mundial de las telecomunicaciones. En 2010 se calcula que habrá 620 millones de usuarios de móvil, de los cuales más de 200 millones emplearán la tecnología 3G y, muy pronto, también la 4G. Lectores de pantalla para celulares Un lector de pantalla móvil es una aplicación software en teléfonos celulares, que trata de identificar e interpretar aquello que se muestra en pantalla. Esta interpretación se representa a continuación al usuario mediante sintetizadores de texto a voz. Los lectores disponibles para celulares actualmente son Talks y Mobile Speak: TALKS: Ha sido una de las primeras soluciones para Symbian y abre las puertas de este sistema operativo casi desconocido, a todos los ciegos que lo quieran usar. El revisor de pantalla TALKS se ejecuta en smartphones bajo Symbian con interfaz Series 60 o Series 90. Un interfaz gráfico de usuario implica que un revisor de pantalla sepa dónde acudir para proporcionar al usuario ciego o deficiente visual la información que le interesa. Página 11 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática La accesibilidad a los sistemas informáticos ha experimentado un progreso significativo en los últimos años. Sistemas operativos como Windows XP o Linux vienen ya equipados de serie con facilidades para la accesibilidad. Algunos ejemplos de las utilidades provistas son: Magnificadores de pantalla y sintetizadores de texto a voz para personas con problemas visuales. Herramientas que transforman sonidos del sistema en mensajes visuales para sordos. Mejoras de acceso a teclado y ratón para personas con problemas motrices. Mobile Speak: es un lector de pantalla instalado en un teléfono móvil basado en Symbian, que permite usar el teléfono incluso si no se puede leer la pantalla. La información visual que se muestra en la misma, se presenta mediante salida de voz sintetizada generada mediante el uso de tecnologías de conversión de texto a voz (TTS) y se envía al altavoz del dispositivo o a auriculares. Los contenidos de la pantalla se pueden mostrar también en Braille si el teléfono móvil se conecta a una línea Braille. Las salidas de voz y de Braille pueden utilizarse simultáneamente. Mobile Speak no toma el control de la interface de tu teléfono móvil Symbian, de forma que puedes acceder a todas sus funciones integradas y a sus aplicaciones. Más aún, se puede instalar programas compatibles de terceros para extender las utilidades de tu teléfono móvil. Así mismo, son compatibles los accesorios externos como teclados Bluetooth3 y auriculares, que permiten el control inalámbrico de la computadora. Características destacables Voces de conversión de texto a voz (TTS) de alta calidad Soporte para más de 20 idiomas incluyendo: Inglés (EE.UU y RR.UU), Español, Portugués, Italiano, Francés, Alemán, Holandés, (Holanda y Bélgica), Noruego, Finlandés, Danés, Sueco, Turco, Polaco, Checo, Islandés, Griego, Ruso, Árabe y Chino. Soporte para más de 20 dispositivos Braille Entrada y salida Braille en idiomas diferentes utilizando braille integral o estenográfico así como Braille computerizado de seis o de ocho puntos. Acceso completo a diferentes aplicaciones integradas y soporte para programas de terceros diseñados para mejorar la funcionalidad del teléfono móvil. Más de 30 opciones configurables por el usuario y la flexibilidad que proporciona el hecho de poder cambiar rápidamente entre tres perfiles de usuario (Novato, Normal y Avanzado) que pueden tener diferentes ajustes. Comandos que permiten cambiar ajustes importantes de forma inmediata, como el eco del teclado, el nivel de puntuación, el nivel de verbalización, la velocidad y el volumen. Comandos para repetir o deletrear el texto que se ha hablado anteriormente, leyendo la pantalla completa o solamente parte de ella como las teclas de función así como la interrupción de la salida vocal o el cambio rápido de habla a silencio. Posibilidad de callar la voz de forma automática cuando el teclado se bloquea pero de conservar salida vocal cuando se usan los comandos de información de estado o de fecha y de hora. De forma igualmente automática se vuelve al modo voz cuando se desbloquea el teclado. Procesos de instalación y activación del producto cómodos y sencillos Comando de ayuda disponible en cualquier parte del teléfono. Actualizaciones: MS-S v3.0 La versión 3.0 de Mobile Speak para teléfonos Symbian, incluye las siguientes novedades y mejoras significativas: Soporte para las voces integradas de Nokia en más de 20 idiomas. Soporte para las nuevas y eficientes voces de alta calidad de Loquendo en Symbian 9 para inglés británico y norteamericano, español, francés, alemán, italiano, polaco y portugués. Soporte completo para las últimas funciones de Wayfinder Access V2.0. Traducción completa para 10 nuevos idiomas: Gracias a nuestro soporte exclusivo para las voces de Nokia integradas en los teléfonos Symbian 9, Mobile Speak habla ahora en hindi, húngaro, búlgaro, cantonés, serbio, eslovaco, tagalo, rumano, urdu e indonesio. Los usuarios pueden escuchar a Mobile Speak en cualquiera de estos idiomas si el firmware de sus teléfonos Symbian 9 dispone de ellos. Tono audible opcional que indica que Mobile Speak está cargado en teléfonos Symbian 9. Función “volumen en llamada” que permite al usuario ajustar un nivel de volumen cuando Mobile Speak opera en modo normal y otro cuando el programa habla mientras el usuario está atendiendo una llamada. Función “voz en llamada” que permite a los usuarios elegir entre la voz de Nokia y la de Nokia de alta calidad durante una llamada. Nueva herramienta de diccionario para Symbian 9, que permite a los usuarios personalizar la manera en que las voces pronuncian las palabras y las frases. 3 Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPANs) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia segura y globalmente libre Página 12 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Ahora se leen el estado de la WLAN y el teclado bloqueado cuando se pulsa Edit + tecla izquierda; Mejoras globales en rendimiento y estabilidad. Respuesta del conversor texto a voz (TTS) más rápida. Integración de un magnificador a pantalla completa con funciones exclusivas como suavizado de fuentes, configuración del cursor, teclas rápidas de estado y mucho más. Compatibilidad con 12 líneas braille de BAUM, Optelec y HumanWare: Soporte para Braille Grado 1 (integral) o Grado 2 (estenográfico), así como Braille computerizado de 6 o de 8 puntos tanto para entrada como para salida, y más de 30 tablas de trascripción Braille para varios idiomas y sus variantes incluyendo Inglés (EE.UU y RR.UU), Galés, Español, Francés, Italiano, Portugués, Alemán, Holandés (Holanda y Bélgica(, Noruego, Sueco, Checo, Polaco, Griego e Hindi. Opción para configurar la salida de voz en editores secretos (por ejemplo los campos para introducir el PIN), que permite a los usuarios escuchar la palabra “asterisco” * hablada con cada carácter tecleado (como ocurría en versiones anteriores), el carácter que se está introduciendo, o ninguna salida de voz. Ventajas Competitivas “Huella” más pequeña, que significa que se usa menos cantidad de memoria al ejecutar la aplicación, lo que deriva en una mejor estabilidad y capacidad de respuesta. El soporte para nuevos modelos de teléfonos móviles y líneas Braille se implementa rápido pero sin poner en riesgo el lanzamiento de un nuevo producto que tuviera muchos errores (bugs). Mayor flexibilidad debido a la gran cantidad de ajustes configurables tanto en voz como en Braille, que se ajustan a las preferencias de usuarios diferentes. Más opciones de conversores de texto a voz (TTS) con más de un proveedor. Capacidad de utilizar diccionarios de pronunciación creados por el usuario, específicos para diferentes conversores de texto a voz (TTS). El único lector de pantallas en Symbian que soporta el uso de entrada Braille de Grado 1 (integral) y Grado 2 (estenográfico) Asignación lógica de comandos Braille que garantizan uniformidad en los diferentes tipos de líneas Braille compatibles. Cursor de revisión Braille que funciona de forma independiente y por tanto puede navegar por las distintas áreas de la pantalla que no serían accesibles con el uso del cursor del sistema. Lanzamientos regulares de versiones beta públicas, que permiten a los usuarios comprobar por sí mismos qué novedades ofrecerán las siguientes versiones y de esa forma poder contribuir al éxito de las versiones finales. Plataformas de desarrollo sobre Teléfonos Móviles Los teléfonos móviles de última generación están adoptando paulatinamente capacidades hasta ahora sólo disponibles por ordenadores personales y PDAs4 (Personal Digital Assistant). En este sentido tres plataformas de desarrollo (en el orden dado) dominan el mercado: MIDP, Symbian, y SmartPhone OS. Mobile Information Device profile o MIDP (JSR 118) Es una versión de J2ME(Java 2 Micro Edition) integrada en el hardware de celulares relativamente modernos que permite el uso en estos de aplicaciones java denominadas MIDlets, tales como juegos, aplicaciones u otros. La información de dispositivos móviles, Profile (MIDP) es un elemento clave de la plataforma Java 2, Mobile Edition (J2ME). Cuando se combina con la Conectado Limited Device Configuration5 (CLDC), MIDP proporciona un estándar de Java Runtime Environment 6 para el día de hoy más populares dispositivos de información móviles, como teléfonos celulares y las principales asistentes digitales personales (PDA. La especificación MIDP se definió a través de la Java Community Process (JCP) de un grupo de expertos de más de 50 empresas, incluidas las principales fabricantes de dispositivos, operadores inalámbricos y proveedores de software móvil. Se define una plataforma dinámica para el despliegue de forma segura y optimizada, gráficos, aplicaciones de red. CLDC y MIDP proporcionan la funcionalidad básica requerida por las aplicaciones móviles, en la forma de una normalización de Java Runtime Environment y un rico conjunto de APIs7 Java. Desarrolladores que utilizan MIDP pueden escribir aplicaciones una sola vez, entonces desplegar de forma rápida a una amplia variedad de dispositivos de información móviles. MIDP ha sido ampliamente adoptado como la plataforma de elección para aplicaciones móviles. Es desplegado a nivel mundial en millones de teléfonos y PDAs, y es apoyada por los principales entornos de desarrollo integrado (IDE). Empresas de todo el mundo ya han tomado ventaja de MIDP para escribir una amplia gama de consumidores y las empresas aplicaciones móviles. 4 PDA, del inglés Personal Digital Assistant (Asistente Digital Personal), es un computador de mano originalmente diseñado como agenda electrónica (calendario, lista de contactos, bloc de notas y recordatorios) con un sistema de reconocimiento de escritura. 5 La configuración de dispositivo limitada conectada (CLDC) es una especificación de un marco para Java . S usan en los dispositivos con los recursos muy limitados tales como paginadores y teléfonos móviles. 6 Java Runtime Environment (entorno en tiempo de ejecución Java) y se corresponde con un conjunto de utilidades que permite la ejecución de programas java sobre todas las plataformas soportadas. 7 Interfaces de Aplicación Página 13 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Kit de Compatibilidad de Tecnología El MIDP TCK puede ser objeto de licencias de Sun8 para certificar un CLDC / MIDP aplicación en una determinada Herramientas de desarrollo El Sun Java Wireless Toolkit proporciona una completa ayuda al desarrollo para el desarrollo de aplicaciones MIDP, y trabaja en combinación con el Sun ONE Studio, Mobile Edition es una tecnología Java IDE para desarrollo de aplicaciones que pueden ser desplegados en tecnología Java dispositivos móviles. Beneficios Capacidades de interfaz de usuario: aplicaciones MIDP proporcionan la base para gráfica y altamente intuitiva La interfaz gráfica de usuario está optimizada para la pequeña pantalla el tamaño, variados métodos de entrada, y otras características nativas de dispositivos móviles modernos. MIDP proporciona navegación intuitiva y la entrada de datos mediante la adopción de todas las ventajas de los teclados de teléfono, botones extra, como teclas de flecha, pantallas táctiles, y los pequeños teclados QWERTY9. MIDP aplicaciones se instalan y ejecutar a nivel local, puede funcionar tanto en red y sin modos, y puede almacenar y gestionar la persistencia local datos de forma segura. Amplia Conectividad: MIDP permite a los desarrolladores aprovechar la red de datos nativos y recibir mensajes de información de dispositivos móviles. Soporta conectividad líder normas, incluidos HTTP, HTTPS, datagramas, enchufes, tomas de corriente del servidor, y puerto serie. MIDP también apoya el servicio de mensajes cortos y Cell Broadcast 10 capacidades de servicios de GSM11 y CDMA12, redes, wi-fi a través de la mensajería API (WMA) paquete opcional. Seguridad: MIDP proporciona un robusto modelo de seguridad que cumple con los estándares abiertos y protege la red, las aplicaciones y los dispositivos de información móviles. HTTPS permite que las solicitudes de apoyo para la utilización de las normas existentes, tales como SSL y WTLS13 para enviar y recibir datos encriptados. Sistema Operativo Symbian Symbian es un Sistema Operativo, es decir, un programa básico que hace que una máquina pueda funcionar. Por encima de un sistema operativo se pueden instalar aplicaciones, controladores de dispositivo y/o interfaces gráficos para relacionarse con el usuario. Fue producto de la alianza de varias empresas de telefonía celular, entre las que se encuentran Nokia, Sony Ericsson, PSION, Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, Motorola, Mitsubishi Electric (creador de los teléfonos FOMA junto a Fujitsu, Sharp, etc.), Panasonic, Sharp, etc. Sus orígenes provienen de su antepasado EPOC32, utilizado en PDA's y Handhelds14 de PSION. En 2003 Motorola vendió el 13% de su 8 Sun Microsystems es una empresa informática de Silicon Valley, fabricante de semiconductores y software. Fue constituida en 1982 por el alemán Andreas von Bechtolsheim y los norteamericanos Vinod Koshla, Bill Joy, Scott McNealy y Marcel Newman. Las siglas SUN se derivan de «Stanford University Network», proyecto que se había creado para interconectar en red las bibliotecas de la Universidad de Stanford 9 QWERTY es un teclado que posee una distribución de teclado más común. Fue diseñado y patentado por Christopher Sholes en 1868 y vendido a Remington en 1873. Su nombre proviene de las primeras seis letras de su fila superior de teclas. 10 Cell Broadcast es una característica móvil de la tecnología definida por el comité del GSM (Global System for Mobile Communications) de la ETSI (European Telecommunications Standards Institute) y es parte del estándar del GSM 11 El Sistema Global para las Comunicaciones Móviles (GSM) es un sistema estándar para comunicación utilizando teléfonos móviles que incorporan tecnología digital. 12 Acceso múltiple por división de código o CDMA (del inglés Code Division Multiple Access) es un término genérico para varios métodos de multiplexación o control de acceso al medio basados en la tecnología de espectro ensanchado (spread spectrum). Habitualmente se emplea en comunicaciones inalámbricas (por radiofrecuencia), aunque también puede usarse en sistemas de fibra óptica o de cable. 13 Wireless Transport Layer Security (WTLS) . Capa Inalámbrica de Seguridad de Transporte (WTLS) es un protocolo basado en el estándar TSL (Transport Layer Security) el cual se basa a su vez en la especificación SSL3.0 utilizada en el entorno Web para la realización de transferencias seguras de datos. 14 Ordenador portátil para diversas aplicaciones o tambien llamados PDA’s Página 14 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática participación a Nokia, lo cual hizo que se quedara con el 32.2% de la compañía, pero más tarde Motorola, después de no tener el éxito esperado con sus terminales Linux-Like, volvió al mundo del Symbian comprándole el 50% a Sony Ericsson. El objetivo de Symbian fue crear un sistema operativo para terminales móviles que pudiera competir con el de Palm o el Windows Mobile de Microsoft. La mayoría de los móviles con Symbian son de la compañía Nokia: 3650, 3660, 5700, 6120, 6260, 6600, 6620,6630, 6680, 6681, 7650, 7610, 6670, 9300, 9500, 5700, N-Gage, N-Gage QD, E50, E60, E61, E65, E70, N70, N72, N73, N80, N81, N82, N95, N96, etc. Es decir, todos los modelos de la serie 60 y superiores, incluyéndose toda la serie N (excepto los n810 n800 n700m también se pueden llamar tablets, los cuales funcionan con Maemo/Linux) y los denominados Communicator. Son muy pocos los móviles de otros fabricantes: Sony Ericsson P800, P802, P900, P910, P990, W950 y M600i; Siemens SX1 ; Motorola A1000, A1010, A920, A925, A728 (sólo disponible en China), Z8, Z10; todos los celulares FOMA (sólo disponibles en Japón) y Samsung con dos modelos: el SGH-D720 y el SGH-D730 y dos de Panasonic (X700, X800). La lista completa de teléfonos con este sistema operativo se encuentra actualizada en el sitio oficial de Symbian. Symbian cuenta con cuatro interfaces de usuario ó plataformas para su sistema operativo, las denominadas Serie 60, Serie 80, Serie 90, UIQ y FOMA. La mayoría de los móviles utilizan la Serie 60, todos los de Sony Ericsson trabajan bajo UIQ, como así también Motorola. El desarrollo de aplicaciones para Symbian es sencillo ya que no es necesario aprender un lenguaje de programación nuevo, se puede programar a partir de lenguajes de programación de PC como Java, C++ Visual Basic, Python, Perl, Flash Lite (entre otros). Este echo ha conseguido que existan en la actualidad millones de aplicaciones para móviles Symbian que realicen todas las tareas imaginables: juegos, mapas, guías de ciudades, reproductores de vídeo, traductores, diccionarios, administradores de archivos, emuladores de otros dispositivos como consolas, navegadores web. Smartphone Un Smartphone (Teléfono inteligente en español) es un dispositivo electrónico que fusiona un teléfono celular con características similares a las de un computador personal. Casi todos los teléfonos inteligentes son celulares que soportan completamente un cliente de correo electrónico con la funcionalidad completa de un organizador personal. Una característica importante de casi todos los teléfonos inteligentes es que permiten la instalación de programas para incrementar el procesamiento de datos y la conectividad. Estas aplicaciones pueden ser desarrolladas por el fabricante del dispositivo, por el operador o por un tercero. El término "Inteligente" hace referencia a cualquier interfaz, como un teclado QWERTY en miniatura, una pantalla táctil, o simplemente el acceso seguro al correo electrónico de una compañía, como el provisto por un BlackBerry15. Los smartphones son fácilmente utilizables por no videntes, porque tienen teclado numérico simple, además de los cursores y otras teclas de función. Definición Los teléfonos inteligentes se distinguen por muchas características, que incluyen, pero no están limitadas a, pantallas táctiles, un sistema operativo así como la conectividad a Internet. El completo soporte al correo electrónico parece ser una característica definitiva encontrada en todos los modelos existentes y anunciados en 2007. Casi todos los teléfonos inteligentes también permiten al usuario instalar programas adicionales, normalmente inclusive desde terceros, pero algunos vendedores gustan de tildar a sus teléfonos como inteligentes aun cuando no tienen esa característica. Entre las características más importantes están el acceso a Internet y al correo electrónico, a los programas de agenda, las cámaras integradas, administración de contactos y algunos programas de navegación así como ocasionalmente la habilidad de leer documentos de negocios en variedad de formatos como PDF y Microsoft Office Historia El primer teléfono inteligente fue diseñado por IBM en 1992 y se llamó Simón. Fue mostrado como un producto concepto en ese año en la exposición COMDEX16. Fue liberado al público en 1993 y comercializado por BellSouth17. Aparte de ser un teléfono móvil, contenía calendario, libreta de direcciones, reloj mundial, calculadora, libreta de anotaciones, correo electrónico, enviaba y recibía FAX e incluía juegos. No tenía botones físicos para marcar. En su lugar usaba una pantalla táctil para seleccionar los contactos con el dedo o para crear facsímiles y memos con un stylus opcional. El texto era ingresado con un teclado predictivo incluido en la pantalla. Para los estándares de la actualidad, el Simon sería de lejos un teléfono de gama baja. 15 Un BlackBerry es un dispositivo handheld inalámbrico introducido en 1999 que admite correo electrónico, telefonía móvil, SMS, navegación web y otros servicios de información inalámbricos. 16 COMDEX (Computer Dealer's Exhibition) era un exposición de computadores llevada a cabo en Las Vegas, cada noviembre desde 1979 hasta el 2003. Era una de las convenciones de negocios de computadores más grandes del mundo 17 BellSouth Corporation Es una compañía estadounidense de telecomunicaciones cuya casa matriz se encuentra en Atlanta (Georgia). Página 15 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática El Nokia 9000, liberado en 1996, fue catalogado como un comunicador, pero fue discutiblemente el primero en una línea de teléfonos inteligentes. El Ericsson R380 fue vendido como un "teléfono inteligente", pero no podía ejecutar aplicaciones nativas de terceros. Aunque el Nokia 9210 fue discutiblemente el primer teléfono inteligente con sistema operativo, Nokia continuó refiriéndose a él como comunicador. Aunque el Nokia 7650 (anunciado en el 2001) fue referido como un "smart phone" en los medios de comunicación y ahora es llamado "smartphone" en el sitio de soporte de Nokia, la prensa lo calificó como un teléfono destinado al ámbito fotográfico. El término ganó credenciales cuando en el 2002 Microsoft anunció sus sistema operativo para celulares, en ese entonces conocido como "Microsoft Windows Powered Smartphone 2002".[6] Más de 1000 millones de celulares con cámara serán vendidos en el 2008. Los teléfonos inteligentes con soporte completo para el correo electrónico representarán cerca del 10%, es decir 100 millones de unidades. Sistemas operativos en teléfonos celulares: Los sistemas operativos más usados en los teléfonos inteligentes son: Symbian OS de Symbian Ltd. (72.40% del mercado ) Linux operating system (13.3% del mercado) Windows Mobile from Microsoft (6.1% del Mercado) RIM BlackBerry (5.3% del mercado) Palm OS, desarrollado por PalmSource (1.6% del mercado) Mac OS X de Apple, Inc. (1.3% del mercado) Sistemas de Posicionamiento Global (GPS) El Global Positioning System (GPS) o Sistema de Posicionamiento Global (más conocido con las siglas GPS, aunque su nombre correcto es NAVSTAR-GPS) es un Sistema Global de Navegación por Satélite (GNSS) que permite determinar en todo el mundo la posición de un objeto, una persona, un vehículo o una nave, con una precisión hasta de centímetros, usando GPS diferencial, aunque lo habitual son unos pocos metros. Aunque su invención se atribuye a los gobiernos francés y belga, el sistema fue desarrollado e instalado, y actualmente es operado por el Departamento de Defensa de los Estados Unidos. El GPS funciona mediante una red de 27 satélites (24 operativos y 3 de respaldo) en órbita sobre el globo, a 20.200 km, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra. Cuando se desea determinar la posición, el receptor que se utiliza para ello localiza automáticamente como mínimo tres satélites de la red, de los que recibe unas señales indicando la posición y el reloj de cada uno de ellos. Con base en estas señales, el aparato sincroniza el reloj del GPS y calcula el retraso de las señales; es decir, la distancia al satélite. Por "triangulación" calcula la posición en que éste se encuentra. La triangulación en el caso del GPS, a diferencia del caso 2-D que consiste en averiguar el ángulo respecto de puntos conocidos, se basa en determinar la distancia de cada satélite respecto al punto de medición. Conocidas las distancias, se determina fácilmente la propia posición relativa respecto a los tres satélites. Conociendo además las coordenadas o posición de cada uno de ellos por la señal que emiten, se obtiene la posición absoluta o coordenadas reales del punto de medición. También se consigue una exactitud extrema en el reloj del GPS, similar a la de los relojes atómicos que llevan a bordo cada uno de los satélites. La antigua Unión Soviética tenía un sistema similar llamado GLONASS, ahora gestionado por la Federación Rusa. Actualmente la Unión Europea está desarrollando su propio sistema de posicionamiento por satélite, denominado Galileo. Características El Sistema Global de Navegación por Satélite lo componen: Sistema de satélites. Está formado por 24 unidades con trayectorias sincronizadas para cubrir toda la superficie del globo terráqueo. Más concretamente, repartidos en 6 planos orbitales de 4 satélites cada uno. La energía eléctrica que requieren para su funcionamiento la adquieren a partir de dos paneles compuestos de celdas solares adosados a sus costados. Estaciones terrestres. Envían información de control a los satélites para controlar las órbitas y realizar el mantenimiento de toda la constelación. Terminales receptores: Indican la posición en la que están; conocidas también como Unidades GPS, son las que podemos adquirir en las tiendas especializadas. Evolución El GPS está evolucionando hacia un sistema más sólido (GPS III), con una mayor disponibilidad y que reduzca la complejidad de las aumentaciones GPS. Algunas de las mejoras previstas comprenden: Incorporación de una nueva señal en L2 para uso civil. Página 16 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Adición de una tercera señal civil (L5): 1176,45 MHz Protección y disponibilidad de una de las dos nuevas señales para servicios de Seguridad Para la Vida (SOL). Mejora en la estructura de señales. Incremento en la potencia de señal (L5 tendrá un nivel de potencia de -154 dB). Mejora en la precisión (1 – 5 m). Aumento en el número de estaciones monitorizadas: 12 (el doble) Permitir mejor interoperabilidad con la frecuencia L1 de Galileo El programa GPS III persigue el objetivo de garantizar que el GPS satisfará requisitos militares y civiles previstos para los próximos 30 años. Este programa se está desarrollando para utilizar un enfoque en 3 etapas (una de las etapas de transición es el GPS II); muy flexible, permite cambios futuros y reduce riesgos. El desarrollo de satélites GPS II comenzó en 2005, y el primero de ellos estará disponible para su lanzamiento en 2012, con el objetivo de lograr la transición completa de GPS III en 2017. Desafíos Representar los requisitos de usuarios, tanto civiles como militares, en cuanto a GPS. Limitar los requisitos GPS III dentro de los objetivos operacionales. Proporcionar flexibilidad que permita cambios futuros para satisfacer requisitos de los usuarios hasta 2030. Proporcionar solidez para la creciente dependencia en la determinación de posición y de hora precisa como servicio internacional. Fiabilidad de los datos Debido al carácter militar del sistema GPS, el Departamento de Defensa de los EE.UU. se reservaba la posibilidad de incluir un cierto grado de error aleatorio, que podía variar de los 15 a los 100 m. La llamada disponibilidad selectiva (S/A) fue eliminada el 2 de mayo de 2000. Aunque actualmente no aplique tal error inducido, la precisión intrínseca del sistema GPS depende del número de satélites visibles en un momento y posición determinados. Con un elevado número de satélites siendo captados (7, 8 o 9 satélites), y si éstos tienen una geometría adecuada (están dispersos), pueden obtenerse precisiones inferiores a 2,5 metros en el 95% del tiempo. Si se activa el sistema DGPS llamado SBS (WAAS-EGNOS-MSAS), la precisión mejora siendo inferior a un metro en el 97% de los casos. (Estos sistemas SBS no aplican en Sudamérica, ya que esta parte del mundo no cuenta con este tipo de satélites geoestacionarios) GPS en el móvil Guiar al usuario hacia su destino no está sólo en manos de los GPS para automóviles. Los nuevos teléfonos móviles comienzan a incluir navegadores con información útil. Su objetivo es situar las necesidades del usuario itinerante en un punto concreto del mapa. Después de la inclusión en los móviles del reproductor de MP3 y la cámara de fotos digital, contar con un navegador GPS es el siguiente movimiento de los fabricantes de cara a completar los servicios que ofrecen al usuario. Los expertos del sector esperan que durante 2010 más de un 30% de los móviles vendidos incorporen esta funcionalidad. Por el momento, la tecnología GPS es utilizada mayoritariamente en vehículos a motor y en actividades al aire libre. Sin embargo, con la incorporación de los navegadores GPS a los teléfonos móviles de gama media, se espera que las ventas de estos dispositivos superen en pocos años las de los actuales dispositivos, fabricados por marcas como TomTom o Garmin. El motivo es que los móviles con GPS pueden hacer las veces de navegadores para autos. Por su parte, los GPS para automóviles también pueden ser utilizados por los peatones. Los programas de mapas digitales como TomTom, Route, Destinator, Igo y otros, disponen en sus últimas versiones de una opción de navegación en 'modo peatón'. Este modo de utilización está pensado para un usuario que camina por la acera y, por consiguiente, no tiene en cuenta el sentido de la dirección del tráfico ni las rutas más cortas para llegar al destino. Pero tampoco es la panacea, pues en muchas de estas versiones de mapas no aparecen vías públicas de uso frecuente para el caminante como las rutas en los parques, las plazas y los jardines. Ahora preguntémonos, si el usuario es una persona no vidente o con problemas de visión. Que ventajas nos brindan hoy en día los equipos de ultima generación a fin de facilitarle la tarea a estas personas? La respuesta es, muy poca. Además, lo poco que hay en el mercado, para facilitar el manejo de estos dispositivos a personas no videntes es de muy alto costo. Seria ideal contar con un software, desarrollado con tecnologías libre de costos, disponibles en el mercado tecnológico, que se adapte a cualquier celular con GPS, y sea capaz de incorporar distintas funcionalidades que hoy en día son de fácil acceso en exclusividad de las personas con visión normal. Algunos celulares pueden vincularse a un receptor GPS diseñado a tal efecto. Suelen ser módulos independientes del teléfono que se comunican vía inalámbrica bluetooth, o implementados en el mismo terminal móvil, y que le proporcionan los datos de posicionamiento que son interpretados por un programa de navegación. Esta aplicación del GPS está particularmente extendida en los teléfonos móviles que operan con el sistema operativo Symbian, y PDAs con el sistema operativo Windows Mobile, aunque varias marcas han lanzado modelos con un módulo GPS integrado con software GNU/Linux. Página 17 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática JSR-179 API de Localización de Java para dispositivos móviles compatibles La especificación JSR-179 Location API for J2ME pone a nuestra disposición una serie de clases que permiten acceder desde Java a información relacionada con la posición y el movimiento de nuestro dispositivo. Hay que tener en cuenta que no es necesario que el móvil disponga de GPS. La Location API nos aísla del origen de los datos, que puede ser un GPS o puede ser un servicio de pago proporcionado por la operadora. Debido a esto la API nos ofrece una serie de parámetros para filtrar qué tipo de servicios nos interesan de aquellos disponibles. Fuentes de localización En lo referente a localización, existen habitualmente tres fuentes posibles de datos: GPS: nuestro móvil incorpora un GPS, o está conectado a uno (habitualmente a través de Bluetooth). Assisted GPS: además de un GPS, nuestro móvil tiene acceso a información de localización que evita que el GPS pase hasta varios minutos obteniendo esa información de los satélites antes de dar la primera posición. Para ello es necesario un servicio específico ofrecido por algunas operadoras, habitualmente de pago. Cell Id: el móvil no tiene acceso a un GPS, pero sí a un servicio que le proporciona información basada en el identificador de la célula telefónica en la que se encuentra. También suele ser un servicio de pago por parte de las operadoras. La Location API está preparada para el dispositivo tenga acceso a todo tipo de Location Providers o Proveedores de Localización, que es como se denominan a estas fuentes de datos. Para poder seleccionar entre las opciones actuales y futuras existe una clase que nos permite definir una serie de criterios que deba cumplir el proveedor que nos interese. En lo que resta de la tesis nos dedicaremos exclusivamente a la utilización de la API de localización en dispositivos móviles con GPS. Estableciendo criterios La clase javax.microedition.location.Criteria proporciona funciones que nos van a permitir filtrar los proveedores de localización disponibles. Veamos qué podemos definir en esta clase: La precisión horizontal y vertical. Se establece mediante los métodos setHorizontalAccuracy y setVerticalAccuracy. La precisión de los datos depende de su origen. Así, si indicamos una precisión de 50 metros excluiremos los datos provenientes de localización por celda telefónica, que suelen tener precisiones de cientos de metros, pero aceptaremos los datos del GPS, con precisiones típicas de pocos metros. El permiso para obtener datos a cambio de un precio. Mediante el método setCostAllowed(false) (el valor por defecto es true) impedimos que nos cobren por obtener datos de localización. Esto excluye habitualmente el A-GPS y la localización por celda telefónica, que necesitan comunicación con la red telefónica para obtener la información, además de un posible sobrecoste por el servicio. El nivel de consumo de batería. A través del método setPreferredPowerConsumption podemos indicar si permitiremos un nivel de consumo bajo, medio o alto. Hay que tener en cuenta que es el fabricante del dispositivo quien decide qué es alto, medio o bajo, pero probablemente el uso de un dispositivo GPS interno o bluetooth tendrá un consumo medio o alto. Otros criterios. El tiempo de respuesta, la velocidad o información relativa a la dirección postal. Para una descripción más extensa, véase la referencia de la clase Criteria. Accediendo al GPS Una vez definidos los criterios, obtendremos una referencia al proveedor de contenidos. La clase LocationProvider implementa un método estático getInstance(Criteria criteria) que devuelve un proveedor que se adapte a los criterios que hemos indicado. Si ninguno de los proveedores disponibles encaja en los criterios indicados, el método devolverá null. En caso de que no exista ningún proveedor de localización disponible se lanzará una LocationException. Es posible llamar a getInstance pasando null como parámetro: de esta forma se especifican los parámetros menos restrictivos para la selección. Utilizaremos la instancia obtenida de LocationProvider para obtener la posición mediante el método getLocation. En el podemos especificar un timeout, o tiempo que queremos que espere el sistema para obtener una posición. Una vez obtenida dispondremos de un objeto Location que contendrá, entre otras cosas, las coordenadas de nuestra ubicación. Un ejemplo sencillo Página 18 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Juntemos todo en un ejemplo muy sencillo, sólo útil para hacerse una idea del código descrito: // Establecemos los criterios. Queremos sólo un GPS interno o Bluetooth Criteria criteria = new Criteria(); criteria.setCostAllowed(false); // Como el valor por defecto de los siguientes parámetros // es NO_REQUIREMENT, las siguientes líneas no son necesarias criteria.setHorizontalAccuracy(NO_REQUIREMENT); criteria.setVerticalAccuracy(NO_REQUIREMENT); criteria.setPreferredPowerConsumption(NO_REQUIREMENT); // Aquí falta capturar la posible excepción y verificar que el // valor devuelto no es null LocationProvider lp = LocationProvider.getInstance(criteria); // Con -1 indicamos el timeout por defecto Location location = lp.getLocation(-1); Coordinates coordinates = location.getQualifiedCoordinates(); System.out.println("Latitud: " + coordinates.getLatitude()); System.out.println("Longitud: " + coordinates.getLongitude()); Servicios Web Introducción “Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma.” (Wikipedia) Existen múltiples definiciones sobre lo que son los Servicios Web, lo que muestra su complejidad a la hora de dar una adecuada definición que englobe todo lo que son e implican. Una posible sería hablar de ellos como un conjunto de aplicaciones o de tecnologías con capacidad para ínter operar en la Web. Estas aplicaciones o tecnologías intercambian datos entre sí con el objetivo de ofrecer unos servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios solicitan un servicio llamando a estos procedimientos a través de la Web. Estos servicios proporcionan mecanismos de comunicación estándares entre diferentes aplicaciones, que interactúan entre sí para presentar información dinámica al usuario. Para proporcionar interoperabilidad y extensibilidad entre estas aplicaciones, y que al mismo tiempo sea posible su combinación para realizar operaciones complejas, es necesaria una arquitectura de referencia estándar. Existen gran cantidad de implementaciones que ayudan al desarrollo de Servicios Web para cada uno de los lenguajes de programación. Sun provee de una serie de tecnologías en su versión Java EE para el desarrollo de Servicios Web. Éstas tecnologías son estándares de desarrollo, así como API’s que especifican el comportamiento de implementaciones. En las últimas especificaciones Sun crea una nueva especificación que facilita el desarrollo de Web Services a través de anotaciones. Principales características y ventajas Envío de información mediante protocolos estándares. Independencia del lenguaje, protocolo y plataforma Alto nivel de interoperabilidad. No requiere un conocimiento especializado de la implementación del servicio. Opera en forma asíncrona. Desventajas y limitaciones Limitaciones para realizar transacciones Su rendimiento es bajo si se compara con otros modelos de computación distribuida. Pueden esquivar medidas de seguridad basadas en firewall. Página 19 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática El siguiente gráfico muestra cómo interactúa un conjunto de Servicios Web: Según el ejemplo del gráfico, un usuario (que juega el papel de cliente dentro de los Servicios Web), a través de una aplicación, solicita información sobre un viaje que desea realizar haciendo una petición a una agencia de viajes que ofrece sus servicios a través de Internet. La agencia de viajes ofrecerá a su cliente (usuario) la información requerida. Para proporcionar al cliente la información que necesita, esta agencia de viajes solicita a su vez información a otros recursos (otros Servicios Web) en relación con el hotel y la compañía aérea. La agencia de viajes obtendrá información de estos recursos, lo que la convierte a su vez en cliente de esos otros Servicios Web que le van a proporcionar la información solicitada sobre el hotel y la línea aérea. Por último, el usuario realizará el pago del viaje a través de la agencia de viajes que servirá de intermediario entre el usuario y el servicio Web que gestionará el pago. En todo este proceso intervienen una serie de tecnologías que hacen posible esta circulación de información. Por un lado, estaría SOAP (Protocolo Simple de Acceso a Objetos). Se trata de un protocolo basado en XML, que permite la interacción entre varios dispositivos y que tiene la capacidad de transmitir información compleja. Los datos pueden ser transmitidos a través de HTTP , SMTP , etc. SOAP especifica el formato de los mensajes. El mensaje SOAP está compuesto por un envelope (sobre), cuya estructura está formada por los siguientes elementos: header (cabecera) y body (cuerpo). Página 20 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Estructura de los mensajes Para optimizar el rendimiento de las aplicaciones basadas en Servicios Web, se han desarrollado tecnologías complementarias a SOAP, que agilizan el envío de los mensajes (MTOM) y los recursos que se transmiten en esos mensajes (SOAP-RRSHB). Por otro lado, WSDL (Lenguaje de Descripción de Servicios Web), permite que un servicio y un cliente establezcan un acuerdo en lo que se refiere a los detalles de transporte de mensajes y su contenido, a través de un documento procesable por dispositivos. WSDL representa una especie de contrato entre el proveedor y el que solicita. WSDL especifica la sintaxis y los mecanismos de intercambio de mensajes. Tecnologías para servicios Web en Java Especificación de Implementación http://jcp.org/en/jsr/detail?id=109 JAX-WS: Java API for XML Web Services https://jax-ws.dev.java.net/ JAX-RPC: Java API for XML-based RPC https://jax-rpc.dev.java.net/ JAXB: Java Architecture for XML Binding https://jaxb.dev.java.net/ SAAJ: SOAP with Attachments API for Java https://saaj.dev.java.net/ StAX:Streaming API for XML http://java.sun.com/webservices/docs/1.6/tutorial/doc/SJSXP.html Web Services Metadata for the Java Platform http://jcp.org/en/jsr/detail?id=181 Los Servicios Web son actualmente uno de los pilares de los proyectos de integración, ya que permiten la comunicación entre aplicaciones de distinto lenguaje ejecutadas sobre cualquier plataforma, incluidas las aplicaciones para telefonía móvil. La arquitectura SOA favorece en gran medida el mantenimiento y escalabilidad de las aplicaciones, disminuyendo el acoplamiento de módulos. Java EE presenta dos API’s para el desarrollo de Servicios Web: JAX-RPC y JAX-WS. La mayoría de las implementaciones actuales de Web Services utilizan JAX-RPC ya que JAX-WS todavía no está extendido entre los desarrolladores. JAX-WS es más novedoso y simplifica en gran medida el desarrollo de Servicios Web por el uso de anotaciones. Página 21 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Text To Speech (TTS) ¿Qué es un sistema Text to Speech? La síntesis de voz es la producción artificial del habla humana. Se han diseñado diferentes sistemas para este propósito llamados sintetizadores de voz y pueden ser implementados tanto en hardware como en software. Un sistema TTS (text to speech) o sintetizador de voz convierte el lenguaje escrito en habla. Otros sistemas convierten el texto en representaciones simbólicas lingüísticas tales como transcripciones fonéticas. El habla sintetizada se genera concatenando segmentos de grabaciones que se encuentran almacenados en una base de datos. Los sistemas text to speech difieren en diversos aspectos, uno de ellos es el tamaño de las unidades de habla almacenados. Los sistemas que almacenen fonemas y di fonemas proveen el rango de salida más amplio, sin embargo es posible que su calidad sea baja. Para una salida de alta calidad, se utiliza la técnica de dominios específicos; en esta técnica el almacenamiento de palabras u oraciones pre-grabadas enteras permiten una salida de alta calidad. Alternativamente, un sintetizador puede incorporar un modelo del tracto vocal y otras características de la voz humana para generar una voz completamente “sintética” o “electrónica”. Un elemento para juzgar la calidad de la síntesis de voz es su parecido con la voz humana y su potencialidad para ser entendida. Un sistema TTS puede lograr que personas con discapacidad visual, de lectura o en actividades en las cuales ojos y manos están ocupadas puedan escuchar instrucciones, textos leídos, entre otros textos. Muchos sistemas operativos han incluido sintetizadores de voz desde principios de la década de los ochenta y su calidad ha variado mucho de modelo en modelo, incluso actualmente hay TTS de muy variados tipos y calidades. ¿Cómo funciona el procesamiento de texto a voz? Existe una gran gama de diferentes sistemas para el procesamiento de texto con complejidad muy variada. Sin embargo, muchos de estos sistemas comparten una arquitectura general que ha demostrado ser muy útil en muchos casos. La siguiente figura muestra esta arquitectura común para los sistemas TTS. Podemos ver que existen dos bloques principales que forman el sistema: el bloque de Procesamiento de Lenguaje Natural (Natural Language Processing o NLP) y el bloque de Proceso de Síntesis. El bloque de NLP se encarga de producir una transcripción fonética del texto leído, además de la entonación y el ritmo deseados para la voz de salida. Después, el bloque de Proceso de Síntesis transforma la información simbólica que recibe del bloque anterior, en una voz de salida. El bloque NLP tiene dos tareas importantes. La primera tarea es convertir el texto en crudo, conteniendo símbolos como números o abreviaciones, en su equivalente en palabras escritas. Esto comúnmente es llamado “normalización de texto”, “pre-procesamiento” o “señalización” (tokenization). Su segunda tarea es asignar transcripciones fonéticas a cada palabra y dividirlas en unidades prosódicas tales como frases, cláusulas y oraciones. El proceso de asignar transcripciones fonéticas en palabras es llamado conversión “texto a fonema” o conversión “grafema a fonema”. El bloque NLP tiene como salida una representación lingüística, la cual está formada tanto por las transcripciones fonéticas como por la información prosódica. El bloque de Proceso de Síntesis es el sintetizador en sí, aquí es dónde se transforma la representación de la lógica lingüística en sonido. Utilidad de los sintetizadores de voz Los sintetizadores de voz se utilizan principalmente para dar accesibilidad a personas discapacitadas visualmente, así como para actividades o situaciones en las cuales no se puede usar la vista. Así, una aplicación clásica de esta tecnología son los lectores de pantalla donde personas invidentes o de visión débil pueden escuchar todos los textos presentados en pantalla. Página 22 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Los sistemas TTS se emplean con frecuencia para apoyar a personas con dislexia y otras dificultades de lectura. También son aplicados para la educación de niños que todavía no saben leer, para ayudar a personas con discapacidad de habla a través de un sistema VOCA (Voice-Output Communication Aid), en sistemas de navegación (GPS), juegos, etc. Otras aplicaciones de la tecnología text to speech son los servicios de noticias. Sitios como ananova.com utiliza síntesis de voz para convertir noticias textuales en contenido auditivo. Esta posibilidad nos abre un gran campo en las tecnologías móviles. En la rama del entretenimiento existen aplicaciones para generar audio a través de texto con la finalidad de narración. Compañías como Animo Limited y CELSYS, Inc. utilizan un software basado en FineSpeech que genera narración y líneas de diálogo de animaciones a través de texto asignado por el usuario. Una interfaz auditiva nos puede ayudar a la educación y al aprendizaje. Con dicha interfaz es posible no solo leer la información, sino escucharla. De esta manera tendríamos una interfaz multi modal donde el sentido del oído formaría parte esencial de la manipulación y asimilación de la información. Tecnologías de Síntesis de Voz Las dos características utilizadas para describir la calidad de un sintetizador de voz son la naturalidad e inteligibilidad. La naturalidad de un sintetizador de voz se refiere a hasta qué punto suena como la voz de una persona real. La inteligibilidad de un sintetizador se refiere a la facilidad de la salida de poder ser entendida. El sintetizador ideal debe de ser a la vez natural e inteligible, y cada tecnología intenta conseguir el máximo de ambas. Algunas de las tecnologías son mejores en naturalidad o en inteligibilidad y las metas de la síntesis determinan a menudo qué aproximación debe seguirse. Hay dos tecnologías principales usadas para generar habla sintética: síntesis concatenativa y síntesis de formantes. Síntesis concatenativa La síntesis concatenativa se basa en la concatenación de segmentos de voz grabados. Generalmente, la síntesis concatenativa produce los resultados más naturales. Sin embargo, la variación natural del habla y las técnicas automatizadas de segmentación de formas de onda resultan en defectos audibles, que conllevan una pérdida de naturalidad. Hay tres tipos básicos de síntesis concatenativa. Síntesis por selección de unidades La síntesis por selección de unidades utiliza una base de datos de voz grabada (más de una hora de habla grabada). Durante la creación de la base de datos, el habla se segmenta en algunas o todas de las siguientes unidades: fonemas, sílabas, palabras, frases y oraciones. Normalmente, la división en segmentos se realiza usando un reconocedor de voz modificado para forzar su alineamiento con un texto conocido. Después se corrige manualmente, usando representaciones como la forma de onda y el espectrograma. Se crea un índice de las unidades en la base de datos basada en parámetros acústicos de la segmentación como la frecuencia fundamental, el pitch, la duración, la posición en la sílaba y los fonemas vecinos. En tiempo de ejecución, el objetivo deseado se crea determinando la mejor cadena de candidatos de la base de datos (selección de unidades). Este proceso se logra típicamente usando un árbol de decisión especialmente ponderado. La selección de unidades da la máxima naturalidad debido al hecho de que no aplica mucho procesamiento digital de señales al habla grabada, lo que a menudo hace que el sonido grabado suene menos natural, aunque algunos sistemas usan un poco de procesado de señal en la concatenación para suavizar las formas de onda. De hecho, la salida de la mejor selección de unidades es a menudo indistinguible de la voz humana real, especialmente en contextos en los que el sistema ha sido adaptado. Por ejemplo, un sistema de síntesis de voz para dar informaciones de vuelos puede ganar en naturalidad si la base de datos fue construida a base grabaciones de informaciones de vuelos, pues será más probable que aparezcan unidades apropiadas e incluso cadenas enteras en la base de datos. Sin embargo, la máxima naturalidad a menudo requiere que la base de datos sea muy amplia, llegando en algunos sistemas a los gigabytes de datos grabados. Síntesis de difonos La síntesis de difonos usa una base de datos mínima conteniendo todos los difonos que pueden aparecer en un lenguaje dado. El número de difonos depende de la fonética del lenguaje: el español tiene unos 800 difonos, el alemán unos 2500. En la síntesis de difonos, la base de datos contiene un sólo ejemplo de cada difono. En tiempo de ejecución, la prosodia de una oración se sobre impone a estas unidades mínimas mediante procesamiento digital de señales, como codificación lineal predictiva, PSOLA o MBROLA. La calidad del habla resultante es generalmente peor que la obtenida mediante selección de unidades pero más natural que la obtenida mediante sintetización de formantes. La síntesis difonos adolece de los defectos de la síntesis concatenativa y suena robótica como la síntesis de formantes, y tiene pocas ventajas respecto a estas técnicas aparte del pequeño tamaño de la base de datos, así que su uso en aplicaciones comerciales experimenta un declive, aunque continúa usándose en investigación porque hay unas cuantas implementaciones libres. Página 23 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Síntesis específica para un dominio La síntesis específica para un dominio concatena palabras y frases grabadas para crear salidas completas. Se usa en aplicaciones donde la variedad de textos que el sistema puede producir está limitada a un particular dominio, como anuncios de salidas de trenes o información meteorológica. Esta tecnología es muy sencilla de implementar, y se ha usado comercialmente durante largo tiempo: es la tecnología usada por aparatos como relojes y calculadoras parlantes. La naturalidad de estos sistemas puede ser muy grande, porque la variedad de oraciones está limitada y corresponde a la entonación y la prosodia de las grabaciones originales. Sin embargo, al estar limitados a unas ciertas frases y palabras de la base de datos, no son de propósito general y sólo pueden sintetizar la combinación de palabras y frases para los que fueron diseñados. Síntesis de formantes La síntesis de formantes no usa muestras de habla humana en tiempo de ejecución. En lugar de eso, la salida se crea usando un modelo acústico. Parámetros como la frecuencia fundamental y los niveles de ruido se varían durante el tiempo para crear una forma de onda o habla artificial. Este método se conoce también como síntesis basada en reglas pero algunos aducen que muchos sistemas concatenativos usan componentes basados en reglas para algunas partes de sus sistemas, como el front-end, así que el término no es suficientemente específico. Muchos sistemas basados en síntesis de formantes generan habla robótica y de apariencia artificial, y la salida nunca se podría confundir con la voz humana. Sin embargo, la naturalidad máxima no es siempre la meta de un sintetizador de voz, y estos sistemas tienen algunas ventajas sobre los sistemas concatenativos. La síntesis de formantes puede ser muy inteligible, incluso a altas velocidades, evitando los defectos acústicos que pueden aparecer con frecuencia en los sistemas concatenativos. La síntesis de voz de alta velocidad es a menudo usada por los discapacitados visuales para utilizar computadores con fluidez. Por otra parte, los sintetizadores de formantes son a menudo programas más pequeños que los sistemas concatenativos porque no necesitan una base de datos de muestras de voz grabada. De esta forma, pueden usarse en sistemas empotrados, donde la memoria y la capacidad de proceso son a menudo exiguas. Por último, dado que los sistemas basados en formantes tienen un control total sobre todos los aspectos del habla producida, pueden incorporar una amplia variedad de tipos de entonaciones, que no sólo comprendan preguntas y enunciaciones. Otros métodos de síntesis La síntesis articulatoria ha sido un método de interés puramente académico hasta hace poco. Se basa en modelos computacionales del tracto vocal y el proceso de articulación. Pocos de los modelos son suficientemente avanzados o eficientes computacionalmente para ser usados en sistemas comerciales de síntesis de voz. Una excepción notable es el sistema basado en NeXT, originalmente desarrollado y comercializado por Trillium Sound Research Inc, que pasó más tarde a tener una licencia GPL y se continuó como gnuspeech, siendo un proyecto GNU. El software original de NeXT y versiones del software para Mac OS/X y Linux GNUStep están disponibles en [http://savannah.gnu.org/projects/gnuspeech] junto a manuales y documentos relevantes a los fundamentos teóricos del trabajo. El sistema, que fue comercializado por primera vez en 1994, proporciona una conversión texto a voz articulatoria completa mediante una analogía de guía de onda o línea de transmisión de los tractos vocal y nasal humanos, controlados por el Modelos de Región Distintiva de Carré que está basado en el trabajo de Gunnar Fant y otros del laboratorio Stockholm Specch Technology Lab del Royal Institute of Technology sobre el análisis de la sensibilidad de formantes. Este trabajo mostró que los formantes en un tubo resonante pueden ser controlados por sólo ocho parámetros que corresponden a los articuladores disponibles en el tracto vocal humano natural. La Síntesis híbrida aúna aspectos de las síntesis concatenativa y de formantes para minimizar los defectos acústicos cuando se concatenan segmentos. La Síntesis basada en HMM es un método de síntesis basado en Modelos ocultos de Márkov (HMM en inglés). En este sistema, el habla espectro de frecuencias (tracto vocal), frecuencia fundamental (fuente vocal), y la duración (prosodia) se modelan simultáneamente por modelos ocultos de Márkov. Las formas de onda se generan desde estos modelos ocultos de Márkov mediante el criterio de máxima verosimilitud. Desafíos del front-end Desafíos de la normalización de texto El proceso de normalizar texto es pocas veces simple. Los textos están llenos de homógrafos, números y abreviaturas que tienen que ser transformados en una representación fonética. Por supuesto, en lenguas donde la correspondencia entre el texto escrito y su equivalente fonético es poca (inglés) o ninguna (mandarín), la creación de estos sistemas se complica. Muchos sistemas de texto a voz no generan representaciones semánticas de los textos de entradas, pues los sistemas para hacerlo no son fiables o computacionalmente efectivos. Como resultado, se usan varias técnicas heurísticas para estimar la manera correcta de desambiguar homógrafos, como buscar palabras vecinas y usar estadísticas sobre la frecuencia de aparición de las palabras. Página 24 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Decidir cómo convertir números en palabras es otro problema que tienen que solucionar los sintetizadores de voz. Es un desafío bastante simple programar un sistema que convierta números en palabras, como por ejemplo transformar 1325 en "mil trescientos veinticinco". Sin embargo, los números aparecen en diferentes contextos, y 1325 puede ser un ordinal, "uno tres dos cinco" si son los últimos dígitos de un DNI o "trece veinticinco" si es un número de teléfono. A menudo un sistema de síntesis de voz puede inferir cómo expandir un número en función de las palabras o números vecinos y la puntuación, y algunos sistemas proporcionan un sistema para especificar el tipo de contexto si es ambiguo. De la misma forma, abreviaturas como "etc." se pueden transformar fácilmente en "etcétera", pero a menudo las abreviaturas pueden ser ambiguas. Por ejemplo la abreviatura "am" puede ser "ante meridiam" en el ejemplo: "El vuelo aterrizará a las 11 am" o puede ser "modulación de amplitud" o simplemente "a eme" en el ejemplo "Nos puede encontrar en la sintonía 1425 am". Los sistemas con front end inteligentes pueden hacer estimaciones adecuadas acerca de como tratar abreviaturas ambiguas, mientras que otros pueden hacer lo mismo en todos los casos, dando resultados en ocasiones cómicos. Desafíos de los sistemas Texto a fonema Los sintetizadores de voz usan dos aproximaciones básicas al problema de determinar la pronunciación de una palabra basándose en su pronunciación, un proceso que a menudo recibe el nombre de conversión texto a fonema o grafema a fonema, dado que fonema es el término usado por los lingüistas para describir sonidos distintivos en una lengua. La aproximación más simple a este problema es la basada en diccionario, donde se almacena en el programa un gran diccionario que contiene todas las palabras de la lengua y su correcta pronunciación. Determinar la pronunciación correcta de cada palabra consiste en buscar cada palabra en el diccionario y reemplazar el texto con la pronunciación especificada en el diccionario. La otra aproximación para convertir texto en fonemas es la aproximación basada en reglas, donde dichas reglas para la pronunciación de las palabras se aplican a palabras para extraer sus pronunciaciones basadas en su forma escrita. Cada aproximación tiene ventajas y desventajas. La técnica basada en diccionarios tiene como ventajas ser rápida y precisa, pero falla completamente si una palabra dada no aparece en el diccionario, y a medida que crece el diccionario crecen los requerimientos de memoria del sistema de síntesis. Por otra parte, la técnica basada en reglas funciona con cualquier entrada, pero la complejidad de las reglas crece sustancialmente a medida que se van teniendo en cuenta ortografías y pronunciaciones irregulares. Como resultado, casi cualquier sintetizador de voz usa una combinación de las dos técnicas. Algunos idiomas, como el español, tienen un sistema de escritura muy regular y la predicción de la pronunciación de palabras basada en deletreos es casi siempre correcta. Los sistemas de síntesis de voz para este tipo de lenguajes generalmente usan un enfoque basado en reglas como el enfoque central para la conversión texto-fonema y auxiliándose de diccionarios pequeños para algunas palabras de origen extranjero cuya pronunciación no se deduce de la escritura. En otros como el inglés, dado que se trata de sistemas muy irregulares en su escritura, el enfoque se basa principalmente en diccionarios y sólo para palabras no usuales se basa en reglas. El Sintetizador de voz MBROLA El objetivo del proyecto MBROLA [http://tcts.fpms.ac.be/synthesis/mbrola.html], iniciado por una universidad Belga (the TCTS Lab of the Faculté Polytechnique de Mons), es obtener un grupo de sintetizadores de voz en tantos lenguajes como fuese posible, y proveer a los mismos de manera gratuita para aplicaciones y propósitos no-comerciales. El fin último es mejorar la investigación académica en la síntesis de voz y particularmente en la generación de prosodia, conocido como uno de los retos más grandes en la conversión de texto a voz. El centro del proyecto MBROLA es un programa del mismo nombre el cual es un sintetizador del habla humana basado en la concatenación de dífonos. Toma como entrada una lista de fonemas junto con la información prosódica (duración de los fonemas y una descripción del tono de los mismos) y produce una salida de audio a 16 bits, en la frecuencia de sampleo de los dífonos de la base de datos usada (por lo tanto NO es un Sintetizador de Texto-a-Voz, ya que no acepta texto crudo como entrada). La licencia de este programa es simple: se puede usar sólo para aplicación no-comercial y no-militar. Un grupo en Venezuela, específicamente en la Universidad de Los Andes, tiene una investigación en este respecto. Se narra un extracto de su experiencia: "En el ámbito Venezolano, un grupo de investigadores de la Universidad de Los Andes (ULA) logró implementar un sistema de conversión texto a voz de alta calidad para el español, capaz de convertir cualquier texto en formato electrónico a voz sintetizada en español venezolano. La capacidad de lectura se hace universal al combinarlo con un sistema OCR (optical character recognition) de escáner con conversión de caracteres a texto. Dentro de sus múltiples usos este sistema tiene una utilidad social inmediata para quienes sufren una minusvalía que les impida la comunicación oral, ya que permite por ejemplo darle capacidad de «lectura» a los ciegos e incapacita dos visuales y darle «voz» a través de un computador a personas sordomudas, mudas o con incapacidades mayores que restringen la producción de voz. Por otra parte, el sistema Página 25 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática es una herramienta de investigación muy poderosa para estudiar la entonación de nuestra lengua, una materia que apenas empieza a desenmascarar sus secretos. Los profesores de la ULA más directamente involucrados en el desarrollo de este sistema de síntesis de voz son la lingüista Elsa Mora de la Facultad de Humanidades y Educación y el ingeniero electrónico Manuel Rodríguez de la Facultad de Ingeniería." Para esta Tesis, basados en la información recolectada durante la investigación utilizaremos el proyecto MBROLA como sintetizador de voz Base, y a partir del trabajo realizado por los investigadores venezolanos de la Universidad de los Andes, nombrados anteriormente, tomaremos su base de datos de fonética para lograr síntesis de voz en español, de distribución gratuita y de libre acceso para todo el mundo. Ya que la licencia GLP permite construir y distribuir aplicaciones que utilicen tecnologías e investigaciones de terceros siempre y cuando no se utilice de modo comercial o militar. Servidores Web Introducción En informática, un servidor es un tipo de software que realiza ciertas tareas en nombre de los usuarios. El término servidor ahora también se utiliza para referirse al ordenador físico en el cual funciona ese software, una máquina cuyo propósito es proveer datos de modo que otras máquinas puedan utilizar esos datos. Este uso dual puede llevar a confusión. Por ejemplo, en el caso de un servidor web, este término podría referirse a la máquina que almacena y maneja los sitios web, y en este sentido es utilizada por las compañías que ofrecen hosting u hospedaje. Alternativamente, el servidor web podría referirse al software, como el servidor de http de Apache, que funciona en la máquina y maneja la entrega de los componentes de los páginas web como respuesta a peticiones de los navegadores de los clientes. Los archivos para cada sitio de Internet se almacenan y se ejecutan en el servidor. Hay muchos servidores en Internet y muchos tipos de servidores, pero comparten la función común de proporcionar el acceso a los archivos y servicios. Un servidor sirve información a los ordenadores que se conecten a él. Cuando los usuarios se conectan a un servidor pueden acceder a programas, archivos y otra información del servidor. En la web, un servidor web es un ordenador que usa el protocolo http para enviar páginas web al ordenador de un usuario cuando el usuario las solicita. Los servidores se conectan a la red mediante una interfaz que puede ser una red verdadera o mediante conexión vía línea telefónica o digital. Un servidor web es un programa que implementa el protocolo HTTP (HyperText Transfer Protocol). Este protocolo pertenece a la capa de aplicación del modelo OSI y está diseñado para transferir lo que llamamos hipertextos, páginas web o páginas HTML (HyperText Markup Language): textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de música. Es un programa que se ejecuta continuamente en un ordenador (también se emplea el término para referirse al ordenador que lo ejecuta), manteniéndose a la espera de peticiones por parte de un cliente (un navegador web) y que responde a estas peticiones adecuadamente, mediante una página web que se exhibirá en el navegador o mostrando el respectivo mensaje si se detectó algún error. Página 26 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Instalar un servidor web en nuestro PC nos permitirá, entre otras cosas, poder montar nuestra propia página web sin necesidad de contratar hosting, probar nuestros desarrollos vía local, acceder a los archivos de nuestro equipo desde un PC remoto (aunque para esto existen otras opciones, como utilizar un servidor FTP) o utilizar alguno de los programas basados en web tan interesantes que están viendo la luz últimamente. El problema de usar nuestro ordenador como servidor web es que conviene tenerlo encendido permanentemente (para que esté accesible de forma continua como la mayoría de los sitios webs), con el consiguiente coste debido al consumo de electricidad (conviene tener en cuenta que hay alojamientos web gratuitos, incluso sin publicidad y con interesantes funciones). Sobre el servicio web clásico podemos disponer de aplicaciones web. Éstas son porciones de código que se ejecutan cuando se realizan ciertas peticiones o respuestas HTTP. Hay que distinguir entre: Aplicaciones en el lado del cliente: el cliente web es el encargado de ejecutarlas en la máquina del usuario. Son las aplicaciones tipo Java o Javascript: el servidor proporciona el código de las aplicaciones al cliente y éste, mediante el navegador, las ejecuta. Es necesario, por tanto, que el cliente disponga de un navegador con capacidad para ejecutar aplicaciones (también llamadas scripts). Comúnmente, los navegadores permiten ejecutar aplicaciones escritas en lenguaje javascript y java, aunque pueden añadirse más lenguajes mediante el uso de plugins. Aplicaciones en el lado del servidor: el servidor web ejecuta la aplicación; ésta, una vez ejecutada, genera cierto código HTML; el servidor toma este código recién creado y lo envía al cliente por medio del protocolo HTTP. Las aplicaciones de servidor muchas veces suelen ser la mejor opción para realizar aplicaciones web. La razón es que, al ejecutarse ésta en el servidor y no en la máquina del cliente, éste no necesita ninguna capacidad añadida, como sí ocurre en el caso de querer ejecutar aplicaciones javascript o java. Así pues, cualquier cliente dotado de un navegador web básico puede utilizar este tipo de aplicaciones. Conceptos relacionados con las aplicaciones web PHP ASP Perl Python/WSGI CGI .NET JSP (Tecnología Java ) CF (Adobe Coldfusion) Algunos servidores Web importantes son: Apache IIS Cherokee Servidor HTTP Apache El servidor HTTP Apache es un servidor web HTTP de código abierto para plataformas Unix(BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf eligió ese nombre porque quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, a patchy server (un servidor "parcheado"). El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración. Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft). Ventajas Modular Página 27 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Open source Multi-plataforma Extensible Popular (fácil conseguir ayuda/soporte) Licencia La licencia de software bajo la cual el software de la fundación Apache es distribuido es una parte distintiva de la historia de Apache HTTP Server y de la comunidad de código abierto. La Licencia Apache permite la distribución de derivados de código abierto y cerrado a partir de su código fuente original. La Free Software Foundation no considera a la Licencia Apache como compatible con la versión 2 de la GNU General Public License (GPL), en la cual el software licenciado bajo la Apache License no puede ser integrado con software distribuido bajo la GPL: Este es software libre pero es incompatible con la GPL. La Apache Software License es incompatible con la GPL porque tiene un requerimiento específico que no está incluido en la GPL: tiene ciertos casos de terminación de patentes que la GPL no requiere. No consideramos que dichos casos de terminación de patentes son inherentemente una mala idea, pero a pesar de ello son incompatibles con la GNU GPL. Sin embargo, la versión 3 de la GPL incluye una provisión (Sección 7e) que le permite ser compatible con licencias que tienen cláusulas de represalia de patentes, incluyendo a la Licencia Apache. El nombre Apache es una marca registrada y puede ser sólo utilizada con el permiso expreso del dueño de la marca. Motor de base de Datos Introducción MySQL es un gestor de base de datos sencillo de usar y increíblemente rápido. También es uno de los motores de base de datos más usados en Internet, la principal razón de esto es que es gratis para aplicaciones no comerciales. Las características principales de MySQL son: Es un gestor de base de datos. Una base de datos es un conjunto de datos y un gestor de base de datos es una aplicación capaz de manejar este conjunto de datos de manera eficiente y cómoda. Es una base de datos relacional. Una base de datos relacional es un conjunto de datos que están almacenados en tablas entre las cuales se establecen unas relaciones para manejar los datos de una forma eficiente y segura. Para usar y gestionar una base de datos relacional se usa el lenguaje estándar de programación SQL. Página 28 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Es Open Source. El código fuente de MySQL se puede descargar y está accesible a cualquiera, por otra parte, usa la licencia GPL para aplicaciones no comerciales. Es una base de datos muy rápida, segura y fácil de usar. Gracias a la colaboración de muchos usuarios, la base de datos se ha ido mejorando optimizándose en velocidad. Por eso es una de las bases de datos más usadas en Internet. El software MySQL tiene una doble licencia. Los usuarios pueden elegir entre usar el software MySQL como un producto Open Source bajo los términos de la licencia GNU General Public License (http://www.fsf.org/licenses/) o pueden adquirir una licencia comercial estándar de MySQL AB. Consulte http://www.mysql.com/company/legal/licensing/ para más información acerca de nuestras políticas de licencia. Interioridades y portabilidad Escrito en C y en C++ Probado con un amplio rango de compiladores diferentes Funciona en diferentes plataformas. Usa GNU Automake, Autoconf, y Libtool para portabilidad. APIs disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl. Consulte Uso completo de multi-threaded mediante threads del kernel. Pueden usarse fácilmente en múltiples CPUs si están disponibles. Proporciona sistemas de almacenamiento transaccionales y no transaccionales. Usa tablas en disco B-tree (MyISAM) muy rápidas con compresión de índice. Relativamente sencillo de añadir otro sistema de almacenamiento. Esto es útil si desea añadir una interfaz SQL para una base de datos propia. Un sistema de reserva de memoria muy rápido basado en threads. Joins muy rápidos usando un multi-join de un paso optimizado. Tablas hash en memoria, que son usadas como tablas temporales. Las funciones SQL están implementadas usando una librería altamente optimizada y deben ser tan rápidas como sea posible. Normalmente no hay reserva de memoria tras toda la inicialización para consultas. El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así como con Valgrind, una herramienta GPL (http://developer.kde.org/~sewardj/). El servidor está disponible como un programa separado para usar en un entorno de red cliente/servidor. También está disponible como biblioteca y puede ser incrustado (linkado) en aplicaciones autónomas. Dichas aplicaciones pueden usarse por sí mismas o en entornos donde no hay red disponible. Capítulo 3 - Presentación de la Problemática y Propuesta de Solución Introducción En cualquier área de la actividad humana que pensemos, nos daremos cuenta que un gran porcentaje de la información llega a través de la vista. Por ello, las personas con ceguera y/o deficiencia visual han tenido que buscar medios y modos alternativos de acceso, para que la falta de visión no represente más limitaciones de las estrictamente necesarias. Cuando la ceguera es total, el oído y el tacto pasan a ser los principales canales en la recepción de la información, mientras que para las personas con deficiencia visual el resto de visión que poseen es un recurso más a utilizar. Internet es un medio inestimable de acceso a la información para las personas con discapacidad visual. Incluso con la evolución que ya ha alcanzado la red, este canal de comunicación puede tener una función en muchos casos compensatoria al facilitar actividades que se realizan con dificultad o a través de la asistencia de otra persona, como por ejemplo leer la prensa, hacer determinadas compras, participar en actividades formativas, y porque no, transitar por la ciudad teniendo en todo momento información acerca de donde se esta ubicado o hacia donde quiere dirigirse. Para que todo ello sea una realidad y un gran número de personas ciegas se beneficien, es necesario lograr la estandarización para que Internet sea accesible a todo tipo de usuarios. En cuanto a las iniciativas privadas cada uno desarrollará sus productos guiado por sus propios valores, pero en cuanto a la iniciativa pública y a los que persigan dar un servicio a todas las personas deberían ajustarse ya a las soluciones que conduzcan a la accesibilidad. Hoy en día los costos de las iniciativas privadas es en ocasiones excesivo, y en el ámbito de la GEO localización asistida para personas con deficiencias visuales no hay en el mercado iniciativas de acceso gratuito. Es por ello que el esta tesis permitirá demostrar que con ayuda de distintas tecnologías informáticas disponibles, en combinación con productos tecnológicos de fácil adquisición como ser los teléfonos móviles, se podría lograr el desarrollo de aplicaciones de bajo costo que permitan a sus usuarios un fácil acceso a información mas allá de que posean deficiencias visuales. Es evidente, que en el mundo de la informática son amplias las opciones que existen en cuanto a las comunicaciones multiplataforma tanto en código libre como pago. Así también, los avances en comunicación móvil, permiten al día de hoy estar permanentemente conectados a Internet a través de estos dispositivos, los cuales, a su vez, poseen distintos componentes de hardware complejos y avanzados, como es un GPS. De esta manera, realizando un estudio exhaustivo de las tecnologías libres en lo que a Síntesis y Reconocimiento de voz se refiere, se podría comenzar a elaborar un proyecto que de soporte a algunas necesidades insatisfechas de las personas con discapacidad visual y de ser posible a muy bajo costo. Página 29 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática La presente Tesis tratara de demostrar que es posible desarrollar una aplicación en beneficio de personas con deficiencias visuales, utilizando la amplia gamas de posibilidades tecnológicas de libre acceso que brinda el mercado, generando un producto de muy bajo costo tanto en su concepción como en su implementación. Y a si vez brindando idénticas prestaciones que las tecnologías pagas. Por otro lado dejando abiertas muchas posibilidades de crecimiento tanto en el desarrollo más a fondo y optimizado de las tecnologías usadas como en la aplicación de nuevas tecnologías. Detalles de funcionalidad de la Solución Planteada La solución planteada contara buscará brindarle al usuario la siguiente funcionalidad: Asistencia constante vía voz de las opciones elegidas y teclas presionadas. Reproducción vía síntesis de voz de los textos ingresados en los distintos módulos. Activación y desactivación de Ayuda auditiva para las opciones de menú y textos ingresados. Opción de Localización: Deberá determinar la Calle, Número, Barrio o Localidad, Provincia y País según la ubicación establecida por el receptor GPS del usuario brindando la misma vía voz sintetizada en español. Opción de Modo Caminante: Deberá determinar e informar cada 20 segundos la Calle, Número, Barrio o Localidad, Provincia y País según la ubicación establecida por el receptor GPS del usuario brindando la misma, vía voz sintetizada en español. Opción Determinación de Trayectoria: Dada una dirección ingresada por el usuario y en conjunto con su ubicación actual determinada por el receptor GPS, este modulo deberá elaborar el camino y brindar los distintos pasos a seguir por el usuario, junto con la distancia de cada uno de ellos, para llegar desde su ubicación actual hasta la dirección que ingreso vía teclado. Opción Puntos de interés en Radio: Este modulo deberá permitir al usuario el ingreso de un rubro determinado y en base a la ubicación actual determinada por el receptor GPS, determinar que punto de interés, correspondiente a ese rubro ingresado, esta mas cercano al usuario. Brindando vía síntesis de voz, el recorrido en pasos y distancias que deberá realizar el usuario para llegar a ese punto. Este modulo deberá estar respaldado por una base de datos, la cual deberá ser abastecida de modo comunitario con distintos puntos de interés y sus coordenadas. Para ello se propone el desarrollo de una Aplicación multi-plataforma, basada en la tecnología J2ME de Java para desarrollo de aplicaciones compatibles con teléfonos móviles. La misma utilizara la especificación JSR-179 para J2ME, también desarrollada por Java, la cual pone a nuestra disposición una serie de clases que permiten acceder desde Java a información relacionada con la posición y el movimiento de nuestro dispositivo móvil. Esta aplicación estará soportada por una serie de Servicios Web los cuales brindaran la información y funcionalidades necesarias para el procesamiento de la información brindada por el GPS del teléfono móvil y para acceder a la funcionalidad de síntesis de Voz que se necesitara a la hora de asistir a personas con deficiencias visuales a fin de poder interactuar con el móvil gracias a la asistencia auditiva que le brindara el mismo. Generalidades de funcionalidad de la Solución Móvil Localización: Se obtendrá la ubicación geográfica que nos brinda el teléfono móvil del usuario, para luego comunicarse con el servicio GPS a fin de obtener la dirección exacta de la coordenada obtenida, luego de esto, se realizara la síntesis del texto resultante (dirección) en formato de audio a través del servicio TTS. Luego se recibirá en la aplicación móvil el código binario correspondiente al audio y se decodificara el mismo y se realizara la reproducción a fin de que el usuario la escuche. Procesador de Trayectoria: Esta función permitirá en primer lugar ingresar al usuario una dirección destino deseada en un campo de texto disponible para tal fin y con asistencia auditiva. Es decir, cada tecla presionada será reproducida por el parlante a fin de que el usuario sepa lo que escribió. Luego de esto estarán disponibles 2 funciones de menú distintas. Una de ella será la de reproducir, mediante síntesis de voz, con la asistencia del Servicio Web TTS, el audio del texto ingresado por el usuario en el campo nombrado, a fin de saber con certeza si lo ingresado es correcto. En segundo lugar, luego de capturar la ubicación geográfica del móvil, el modulo contactara al Servicio Web GPS y le enviara los parámetros de Ubicación Geográfica actual junto con la dirección destino ingresada por el usuario. Este servicio trazara mediante una serie de funciones, la trayectoria entre el punto inicial y el destino ingresado y luego con ayuda del servicio TTS retornara al cliente los audios correspondientes y el modulo se encargara de reproducirlos en el parlante de forma asincrónica. Modo Caminante: Esta funcionalidad será similar a la función 1 pero generara una petición de localización cada 20 segundos informando de forma repetitiva la localización al usuario hasta tanto este detenga el procesos mediante una opción de menú. La cual también reactivara el proceso en caso de que el usuario lo solicite. Puntos de Interés en Radio: Esta función permitirá en primer lugar ingresar al usuario un rubro de comercio deseado en un campo de texto disponible para tal fin y con asistencia auditiva. Es decir, cada tecla presionada será reproducida por el parlante a fin de que el usuario sepa lo que escribió. Luego de esto estarán disponibles 2 funciones de menú distintas. Una de ella será la de reproducir, mediante síntesis de voz, con la asistencia del Servicio Web TTS, el audio del texto ingresado por el usuario en el campo nombrado, a fin de saber con certeza si lo ingresado es correcto. En segundo lugar, luego de capturar la ubicación geográfica del móvil, el modulo contactara al Servicio Web GEO y le enviara los parámetros de Ubicación Geográfica actual junto con el rubro ingresado por el usuario. Este servicio en primer lugar calculara un radio de 400 mts desde el punto de ubicación del usuario, luego obtendrá los distintos comercios del rubro ingresado y trazara mediante una serie de funciones, las trayectorias entre la ubicación del usuario y los distintos destinos ingresados para luego obtener la menor trayectoria hasta uno de los comercios del rubro deseado. Luego con ayuda del servicio TTS retornara al cliente los audios correspondientes y el modulo se encargara de reproducirlos en el parlante de forma asincrónica. Activar/Desactivar Ayuda: Esta función activa y desactiva la ayuda auditiva disponible en las opciones 2 y 4 del modulo. Página 30 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Generalidades de funcionalidad de los Servicios Web 1- Servicio TTS (Text To Speech): Brindara soporte para síntesis de voz en español. Basado en el motor de síntesis de voz MBROLA, de uso gratuito para fines no comerciales ni militares y con soporte de una base de datos de voz venezolana creada por la universidad de los Andes de ese país, desarrollada para uso de MBROLA. También, por reglas de licencia de libre distribución para fines no comerciales ni militares. Funciones generales: Recepción del texto, formateo de frases, separación y formateo de palabras, reemplazo de abreviaciones y modismos, reemplazo de palabras especiales a su pronunciación, reemplazo de valores numéricos por su correspondiente frase en texto, creación de archivos de texto (TXT) formateado para su posterior separación en fonemas, creación de archivos de fonemas (PHO). Creación de archivo de audio TTS en formato WAV basado en el archivo de fonemas creado previamente. Segmentación del archivo de audio en código binario para su transferencia a través del Servicio Web hacia el cliente que hizo la petición. 2- Servicio GPS: Brindara soporte de localización y procesamiento de trayectorias con y sin audio. Para clientes consumidores desarrollados en cualquier tipo de plataforma. En esta tesis J2ME. Su funcionamiento esta soportado por un modelo de clases a medida los cuales basan sus funciones principales en la API de localización de Google Maps de uso libre y gratuito para fines no comerciales ni militares. Funciones Generales: Recepción de coordenadas y generación de dirección exacta con y sin soporte de audio. Recepción de una dirección y traducción a una coordenada especifica. Recepción de coordenadas origen y dirección destino y generación de trayectoria con y sin soporte de audio y con generación secuencial de los pasos. A fin de poder reproducir individualmente los distintos pasos generados para una trayectoria determinada. Generación de destinos alternativos en caso de recibir una dirección destino ambigua. 3- Servicio GEO: Brindara soporte para la determinación de un radio de coordenadas a partir de un punto central de Origen y ubica las distintas trayectorias hacia un rubro comercial determinado dentro del rango de coordenadas establecido. Luego de esto determina la trayectoria mas corta y codifica el audio correspondiente con ayuda del servicio TTS. Su funcionamiento esta soportado por un modelo de clases a medida los cuales basan sus funciones principales en la API de localización de Google Maps de uso libre y gratuito para fines no comerciales ni militares. Funciones Generales: Recepción de coordenada origen y rubro determinado. Determinación de radio de coordenadas dentro de los 400 mts del Origen. Ubicación de destinos dentro del rango. Determinación de Trayectorias a destinos encontrados. Calculo de trayectoria mas corta. Segmentación del archivo de audio en código binario para su transferencia a través del Servicio Web hacia el cliente que hizo la petición. Página 31 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Capítulo 4 – Desarrollo de la Solución Propuesta Metodología de Desarrollo La decisión de tecnologías de desarrollo en primer lugar se basa en la premisa de poder utilizar un lenguaje de programación de libre acceso y de libre distribución de sus productos, con lo cual se eligió JAVA para el desarrollo de los Servicios Web y JAVA ME para el desarrollo de la aplicación Móvil. En consecuencia, para poder trabajar sobre un entorno centralizado se eligió la plataforma de desarrollo Netbeans versión 6.5.1 que brinda la posibilidad de trabajar con ambas tecnologías. Y a su vez interactuar con el Servidor Web para la publicación de los servicios. Para la publicación de los Servicios Web también se partió de la premisa de libre distribución con lo cual se Eligio el Servidor Apache Tomcat versión 5.5, de simple administración y de fácil cooperación con el entorno de desarrollo Netbeans. Para la implementación de la base de datos contenedora de Puntos de Interés se Eligio MySql, también de libre acceso y de gran soporte en Internet y de muy simple interacción a través de JAVA. En base a esto se buscó una metodología que se adapte, se decidió por utilizar el concepto que propone el modelo la Metodología RUP, que como se puede ver en la Imagen 9, divide el Desarrollo del software en 4 fases: Concepción: El Objetivo de esta etapa es determinar la visión del proyecto, que es donde se realiza todo el Análisis de Requerimiento. Elaboración: Determinar la arquitectura óptima, se centra en el Diseño. Construcción: En esta etapa el objetivo es llevar a obtener la capacidad operacional inicial, se desarrolla la mayor parte del software. Transición: El objetivo es llegar a obtener el release del proyecto, se realizarían las pruebas finales, posteriormente la instalación y el mantenimiento. Es muy difícil, casi imposible, el poder desarrollar un software de manera totalmente secuencial, definiendo primero el problema completo, diseñando toda la solución, construyendo el software y por último, testear el producto. Por lo cual lo que propone RUP es realizar un enfoque iterativo, obteniendo en una primera etapa una comprensión lo más justa del sistema a desarrollar y posteriormente a través de refinamientos sucesivos logradas por múltiples iteraciones, poder obtener una solución efectiva del mismo. Para la etapa de Concepción, en donde se realiza todo el Análisis de Requerimiento se siguieron las recomendaciones propuestas por el estándar de la IEEE 830-1993 para elaborar un documento donde estén todos los requerimientos del software de manera clara y precisa. Para la etapa de Elaboración se utilizó la Herramienta Visio - Herramienta de diseño UML a través de la cual se obtuvo el Definición de los casos de Uso, elaborando también los Diagramas de Actividades de aquellos casos de uso que así lo requerían y obteniendo finalmente el Diagrama de Clases En base a estos casos de uso se fueron realizando el Diccionario de Datos y el Diagrama de la Base de Datos utilizando la Herramienta provista por MySql WorkBench para los diagramas de Base de datos. Posteriormente, utilizando toda la documentación obtenida del sistema, se procedió a la programación del mismo utilizando la Herramienta Netbeans mencionada. Para el testeo de la aplicación se procedió a instalar la versión 2.5.2 para CLDC de Sun Java gíreles Toolkit que provee un emulador de telefonía celular con la posibilidad de accede a eventos externos simulaos a través de información provista por un XML el cual brindara la posibilidad de emular la recepción de información GPS en el celular como si el mismo fuera un equipo provisto con este dispositivo y que respete la especificación JSR-179. Especificación de Requerimiento de Software Introducción Este Proyecto buscara en su implementación, que personas con deficiencias visuales puedan interactuar con el dispositivo GPS de su unidad Móvil sin complicaciones de manipulación y con asistencia auditiva en su totalidad a fin de hacer completamente accesible toda la información que proveerá tanto el Móvil como los distintos Servicios Web que le darán soporte. Buscara también darle al usuario al sensación de independencia en cuanto a localización dentro de una ciudad e incluso fuera de ella. Dando esto un valor agregado a la aplicación. La funcionalidad de síntesis de voz, brindara la posibilidad de que el Móvil informe todo el tiempo o a pedido del usuario, las distintas opciones seleccionadas y los distintos ingresos por teclado que el usuario realizó. Y, en todo momento, los resultados obtenidos de lo Servicios Web serán reproducidos también mediante la arquitectura desarrollada para el sintetizador de voz. Página 32 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Objetivo El objetivo principal del siguiente documento es brindar una visión del funcionamiento del sistema teniendo en cuenta los procesos que lo componen, relevando y especificando todos los requerimientos del Sistema a desarrollar. La siguiente documentación está destinada a los Desarrolladores de soluciones móviles que quieran utilizar los servicios Web propuestos y a los diseñadores de servicios a fin de ampliar la funcionalidad del presente desarrollo. Se adjuntara también la documentación generada por el Documentador JAVA (JavaDoc) que permitirá tener un detalle exhaustivo de la funcionalidad del modelo de Clases, sus responsabilidades, parámetros y atributos. Alcance El Sistema que se desarrollara será llamado TesisSpeechGPS. A continuación se detallaran las sub Aplicaciones o Módulos que contendrá el Desarrollo total y la funcionalidad implementada en cada una de ellas. Aplicación Móvil: Implementación de Especificación JSR-179 y se desarrollara mediante una arquitectura que permita a la aplicación en un futuro implementar otro tipo de conexión con dispositivos GPS. (Puerto Serial, Bluetooth, Simuladores). Función de Localización asistida por servicio de Text To Speech. Función de Modo Caminante asistida por servicio de Text To Speech. Función de Determinación de Trayectoria asistida por servicio de Text To Speech. Función de Localización de Puntos de interés asistida por servicio de Text To Speech. Activación y Desactivación de Ayudas Auditivas. Implementación de una arquitectura extensible para el uso de los recursos de Audio del celular. Implementación de una arquitectura extensible para la conexión a Servicios Web externos. Descodificación de Archivos de Audio en formato Base64 para su posterior reproducción en parlante del Móvil. Servicios Web: Servicio TTS. Generación, codificación y envió de Archivo de audio .WAV generado en base a los datos de entrada recibidos por parte de los consumidores del servicio. Servicio GPS. Determinación de direcciones exactas en modo texto basado en coordenadas recibidas. Determinación de Coordenadas basado en direcciones recibidas. Determinación de trayectoria basada en coordenadas o direcciones de origen y fin recibidas. Codificación de toda la información generada en formato de audio WAV para transmisión a los clientes solicitantes. Generación segmentada de de audio de trayectoria trazada para transmisiones individuales de caminos a seguir. Servicio GEO. Determinación de Radio de coordenadas basado en una coordenada central recibida por parte del consumidor. Ubicación de Puntos de interés dentro del radio generado, basado en un rubro comercial elegido y enviado al servicio por parte del cliente. Determinación de trayectorias a los distintos puntos de interés. Calculo de trayectoria mas corta. Generación segmentada de de audio de trayectoria trazada para transmisiones individuales de caminos a seguir. Se implementara también el código necesario para la generación, transmisión y reproducción de los archivos de audio en formato MP3 a fin de reducir los tiempos de transferencia entre Servicios Web y clientes. Fuera de Alcance del Proyecto Quedan fuera de alcance del proyecto las siguientes funcionalidades: Página 33 de 72 Implementación de una interfaz que reciba información de coordenadas GPS fuera de lo previsto por la especificación JSR-179. Quedando esto como investigación a futuro a fin de abarcar la mayor cantidad de teléfonos móviles con GPS compatibles con la Aplicación. Implementación de un modulo de Administración de Puntos de interés a fin de que usuarios externos, tal vez mediante un Web Site, abastezcan de información a la base de datos dispuesta para tal fin. Implementación de un servicio que establezca una interfaz con Google Maps para la ubicación de Puntos de Interés y comercios publicados en ese Site de Búsquedas a fin de evitar el uso de una base de datos. Dejando esta implementación como una de las principales investigaciones a futuro a fin de darle mas calidad y funcionalidades a la aplicación. Implementación de una codificación a MP3 de los archivos de audios generados y transmitidos dado que para la demostración no es posible reproducción de MP3 en los emuladores utilizados. La aplicación quedara de todas maneras programada para tal fin. Testeo de la aplicación en un celular con dispositivo GPS dada la imposibilidad de contar con uno para tales pruebas. Implementación de Reconocimiento de Voz en español. Es la principal línea de investigación futuro que se deja en esta investigación. Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Definiciones, acrónimos y Abreviaturas JSR-179: API de Localización de Java para Dispositivos Móviles. J2ME: Plataforma Java 2 Micro Edition. Perl: Lenguaje de programación basado en un estilo de Bloques como los de C. WS: Web Service API: Application programmable interface Base64: Sistema de numeración posicional que usa 64 como base TTS: Text To Speech. Conversor de Texto a Voz. Mbrola: Sintetizador del habla humana basado en la concatenación de dítonos. PHO: Extensión de los Archivos de Fonemas generados para abastecer al sintetizador Mbrola. MySql: Sistema de gestión de base de datos relacional, multihilo y multiusuario. Google Maps: servicio gratuito de Google. Es un servidor de aplicaciones de mapas en Internet. Midlet: programa en lenguaje de programación Java para dispositivos embebidos (se dedican a una sola actividad), más específicamente para la máquina virtual Java MicroEdition Referencias Junto con el presente documento se deberá distribuir la documentación generada por las clases de software implementadas mediante el utilitario JavaDoc disponible en el IDE de Desarrollo NETBEANS a fin de ser útil a futuras implementaciones sobre el presente modelo desarrollado o bien para ampliaciones en la funcionalidad. Descripción General del Sistema El proyecto engloba el desarrollo e implementación de una solución informática a través de la tecnología J2ME para telefonía Móvil en primer lugar, donde se les permitirá a los usuarios con deficiencias visuales contar con información de localización, procesamiento de trayectoria y determinación de puntos de interés y trayecto hacia los mismos utilizando el dispositivo GPS instalado en su celular y toda esta información brindada por un sintetizador de voz en español a fin de facilitar el uso y entendimiento de la amplia información brindada, y a su vez abasteciéndose de información que proveerán una serie de Servicios Web, que en segunda instancia, también serán desarrollados para esta solución. Perspectiva del Producto Los celulares con dispositivos GPS incorporados han revolucionado el mercado, brindándoles a los clientes una amplia gama de posibilidades a la hora de recavar información de su localización y actuar al respecto. La independencia que esto brinda en ciudades desconocidas es muy valorada. Mucha más con la cada vez más ampliada conectividad a Internet por parte de estos dispositivos. La información que es posible obtener hoy en día es infinita ya que los celulares se comportan casi como computadoras personales, y con capacidades de almacenamiento y procesamiento que nada tienen que envidiarles a estos equipos. Lo que hoy en día es deficitario aun es la disponibilidad y libre acceso de aplicaciones que faciliten la interacción con las mismas a personas con capacidades diferentes. Entre ellas los que poseen deficiencias visuales. El presente desarrollo buscara brindar justamente un acceso libre al producto por parte de estas personas, brindándole información en formato audible, y en idioma español. Lo cual es otro valor agregado extra ya que en este idioma son pocos los productos elaborados en función de estos usuarios. En lo que a GEO-Localización se refiere, todo lo elaborado en el mercado se basa en su gran mayoría en mapas visibles y disponibles en teléfonos móviles, pero nada que brinde información en formato de audio facilitando el uso y entendimiento a personas discapacitadas. Con el mismo se espera sentar las bases para futuros desarrollos compatibles con todo tipo de usuarios y de libre acceso a los mismos a fin de que no solo los que están posibilitados de pagar grandes sumas de dinero sean los únicos que puedan a acceder a la información que necesitan. Funciones del Software: El sistema, estará dividido en dividido en 3 Módulos Principales con funciones específicas cada uno: Aplicación Móvil o Aplicación Cliente (J2ME) Aplicación Servidor o Servicios Web (JAVA) Motor de Base de Datos (MySQL) Cada uno de estos Módulos a su vez realizarán distintas tareas y a su vez interactuara según la necesidad con módulos externos o subprocesos de terceros. A continuación se describen las mismas: Aplicación Móvil Desarrollada bajo la plataforma J2ME de Java. Será una aplicación Java ME con un Midlet principal contenedor de distintos formularios que encapsularan, cada uno de ellos las distintas funciones disponibles para el usuario: Localización Modo Caminante Página 34 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Procesador de Trayectoria Puntos de Interés en Radio Activar/Desactivar Ayudas Auditivas La aplicación Móvil tendrá también la responsabilidad de establecer la comunicación con el dispositivo GPS incorporado al teléfono móvil. Para ello se utilizara la Especificación JSR-179 que provee una librería de clases y funciones que permite la conexión, comunicación y obtención de información por parte de este dispositivo. Servicios Web Desarrollados bajo plataforma J2SE de Java. Comprende un grupo de aplicaciones expuestas bajo Servicios Web que brindaran tres tipos de funciones distintos, a petición del usuario. TTS WS: Será el servicio que generará, mediante tecnología de síntesis de Voz, los archivos de audio necesarios para ser codificados y luego transferidos al cliente que realizo la petición. El cliente solicitante puede ser o bien la Aplicación Móvil o alguno de los otros Servicios Web que forman parte de este modulo. Este servicio tendrá como entrada un texto de hasta 120 caracteres y como salida generara un archivo el audio .WAV con el texto de ingreso hablado. Este servicio esta soportado por un modelo de clases complejo que lo abastece de la funcionalidad necesaria para la depuración de los textos de ingreso y la generación de los archivos de audio de salida. Métodos web expuestos: getTTSAudioWav GPS WS: Este servicio será el encargado de establecer la conexión con los servicios externos de Google Maps a fin de obtener la información requerida por el cliente y formatearla según las necesidades del mismo. Este servicio esta soportado por un modelo de clases complejo que lo abastece de la funcionalidad necesaria para recibir coordenadas Web y generar direcciones postales basado en la información provista por el servicio externo nombrado. A su vez permitirá trazar trayectorias entre una coordenada inicial y una dirección destino provistas también por el cliente que realiza la petición. A su vez, este servicio, permitirá generar información en formato de audio, utilizando el servicio TTS WS descrito anteriormente, lo cual permitirá que las peticiones puedan ser resueltas en formato de Audio, codificadas y luego enviadas al cliente para su posterior reproducción en un dispositivo Móvil. Métodos web expuestos: getTTSAdress: getTTSTrayectoria: getTTSCabeceraTrayectoria: getTTSDetalleTrayectoria: GEO WS: Este servicio será el encargado de establecer la conexión con el motor de base de datos contenedor de los puntos de interés los cuales contienen la información necesaria para su ubicación geográfica en un mapa. Este servicio permitirá, a petición del cliente, trazar un radio de coordenadas alrededor de un punto medio provisto en formato de coordenadas, y determinar el número de puntos de interés, correspondientes a un rubro también provisto por el cliente. Al obtener estos puntos de interés, con ayuda del servicio GPS WS se trazaran las trayectorias hacia ellos partiendo desde el punto medio establecido y se obtendrá la trayectoria mas corta. Una vez obtenida la misma, y con ayuda del servicio TTS WS se procederá a generar los archivos de Audio .WAV, basados en el texto de la trayectoria trazada, para ser enviados al cliente a fin de reproducirlos. Métodos Web expuestos: getTTSCabeceraPuntoInteresEnRadio getTTSDetallePuntoInteresEnRadio Página 35 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Localización Móvil Asistida por Voz Aplicación Movil Servicios Web Localización TTS WS Modo Caminante GPS WS Procesamiento de Trayectoria GEO WS Motor de Base de Datos Puntos de Interés en Radio Módulos y Sub-Módulos del Sistema Características del Usuario El sistema en desarrollo estará destinado principalmente a personas con deficiencias visuales. Restricciones Generales Se tendrá en cuenta que para la funcionalidad del sintetizador de voz, considerando la arquitectura propuesta para la aplicación, no se deberán proveer textos de más de 120 caracteres a fin de optimizar la comunicación entre los servicios Web y los consumidores de los mismos. Dependencias y Supuestos Se tiene en cuenta en primer lugar que el testeo del Sistema desarrollado será sobre un emulador provisto por Java llamado “Wireless Toolkit for CLDC” dentro del IDE de Desarrollo Netbeans. Para la generación de eventos que reproduzcan datos de localización GPS a fin de testear la aplicación, se procederá a utilizar la función de “Eventos Externos” que provee el emulador para simular la conexión a un GPS incorporado al Móvil. Para realizar las pruebas del aplicativo, se requerirá conexión a Internet permanente para el correcto funcionamiento de la lógica que utiliza los servicios externos de Google Maps. Se proveerá de una base de datos de Prueba con un número limitado de puntos de interés cargados a fines de realizar la demostración correspondiente del Aplicativo. Se parte de la premisa que los Teléfonos Móviles utilizados para la ejecución de este software deberán poseer conexión a Internet Móvil de Alta velocidad provista por la red 3G o bien una conexión WiFi disponible. Especificación de Requerimientos Requerimientos Funcionales A fines informativos se grafica un emulador Standard de Teléfono Celular para informar que teclas estarán disponibles y como serán llamadas de ahora en adelante en el presente documento. Página 36 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Aplicación Móvil (J2ME) Acceso al sistema: Introducción: No se requerirá suscripción alguna al producto. Quien se instale el aplicativo automáticamente estará habilitado para su uso. Entradas: No hay entradas solicitadas para acceso al Sistema. Procesos: Una vez ejecutado el aplicativo, el mismo instanciará las clases de Localización implementadas bajo la especificación JSR-179 las cuales permitirán acceder a la información provista por el GPS incorporado al Móvil. En caso de Falla en el acceso a esta Implementación el sistema informara en modalidad de Audio la correspondiente falla. Salida: Audio con falla de API de localización o bien Audio informando que el usuario se encuentra en el menú principal. Menú Principal: Introducción: Dado que la finalidad del presente desarrollo apunta a facilitar el uso del Aplicativo a personas con deficiencias visuales, se establece que se optimice el uso y operatoria general del mismo. Con lo cual se establece un número limitado de posibles teclas a presionar en el teclado. Con lo cual, una vez dentro del menú principal, y habiendo el aplicativo, avisado mediante un audio, del ingreso al mismo, se procederá a dejar activas únicamente 2 teclas en el Móvil. Como norma para todos los módulos se establece que la tecla izquierda retorne al menú anterior y que la tecla derecha ejecute una acción en caso de ser la única posible en el formulario o bien desligue el menú contextual correspondiente al formulario en el que esta el usuario. Esto facilitara el uso a personas no videntes. Entradas: Tecla Izquierda (Salir) Tecla Derecha (Menú contextual con Opciones 1 2 3 4 y 5) Para el acceso a una opción del menú contextual el usuario únicamente deberá presionar la tecla Derecha del Móvil y a continuación el número de opción deseada. Procesos: El sistema procederá a acceder a la opción de menú seleccionada. Salida: Mensaje Auditivo informando del acceso al Menú Principal. Opción Localización (1): Introducción: El cliente ingresara a esta opción cuando requiera saber la Localización exacta de donde se encuentra. La misma será informada en el formato de Calle + Numero + Localidad o Barrio + Ciudad + País. Mediante el proceso de Síntesis de Voz, a la que esta opción deberá acceder a través del Servicio Web GPS, la información para el usuario será provista en formato Auditivo. Página 37 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Proceso: El usuario accede a esta opción de menú y se le informa de tal situación con un mensaje auditivo. A partir de ese momento el usuario tiene la Tecla Izquierda y Tecla Derecha habilitadas. Al presionar la tecla izquierda se volverá al menú principal. Al presionar la tecla derecha el aplicativo intentara determinar la última coordenada correcta provista por el dispositivo GPS. En caso de que aun no haya coordenadas establecidas se emitirá un mensaje informando tal situación. Esto ocurrirá en caso de que el dispositivo aun no haya localizado los satélites necesarios para la localización geográfica. En consecuencia se deberá esperar unos minutos y volver a presionar la tecla derecha para solicitar nuevamente información de posicionamiento geográfico. Una vez ubicada la posición por parte del GPS se procederá a establecer una conexión con el Servicio Web GPS WS y se enviara la latitud y longitud al mismo recibiendo como respuesta el archivo de audio codificado a formato STRING con la dirección postal generada por el mismo. Posteriormente se procederá a la decodificación del STRING de Audio recibido y a la reproducción del mismo en el parlante del teléfono Móvil. Entada: No hay entrada de Información. Solo posibilidad de selección de Teclas Izquierda y Derecha Salidas: Mensaje auditivo con Información de Ingreso al Formulario en Cuestión. Mensaje auditivo informando que el dispositivo GPS aun no localizo los satélites necesarios para establecer una localización correcta. Mensaje auditivo informando la Localización exacta del usuario. Mensaje auditivo informando de algún tipo de error generado por el Servicio Web GPS. Opción Trayectoria (2): Introducción: El cliente ingresara a esta opción cuando requiera saber como llegar a una dirección determinada, estableciendo una serie de Pasos a Pie desde la ubicación actual hasta el destino ingresado. Mediante el proceso de Síntesis de Voz, a la que esta opción deberá acceder a través del Servicio Web GPS, la información para el usuario será provista en formato Auditivo. Este formulario contara con un menú contextual de 2 opciones a las cuales se accederá mediante la Tecla Derecha y luego seleccionando la opción 1 o 2 según se requiera. La opción 1 comenzara el proceso de trazado de Trayectoria para su posterior reproducción en formato auditivo. La Opción 2 reproducirá en el parlante el texto ingresado por el usuario, correspondiente a la Dirección Destino deseada, en el campo destinado para tal fin. Proceso: El usuario accede a esta opción de menú y se le informa de tal situación con un mensaje auditivo. A partir de ese momento el usuario dispone de la Tecla Izquierda y Tecla Derecha habilitadas. Al presionar la tecla izquierda se volverá al menú principal. Al presionar la tecla derecha se activara el menú contextual con 2 opciones. 1 Empezar Trazado y 2 Oír Ingreso. Al seleccionar la opción de Menú Nro. 1 se iniciara el proceso de Trazado de Trayectoria en el que el aplicativo intentara determinar los pasos a Pie a seguir desde la posición actual establecida por las coordenadas del GPS del Móvil hasta la dirección postal ingresada a mano por el usuario dentro del campo provisto para tal fin. En caso de que aun no haya coordenadas establecidas se emitirá un mensaje informando de tal situación. Esto ocurrirá en caso de que el dispositivo aun no haya localizado los satélites necesarios para establecer la ubicación geográfica del Móvil. Una vez ubicada la posición por parte del GPS se procederá a establecer una conexión con el Servicio Web GPS WS y se enviara la latitud y longitud al mismo, junto con el texto ingresado por el usuario el cual se deberá corresponder con una dirección postal correcta. Se recibirá como respuesta en primer lugar el nombre de cabecera de los archivos generados en el servidor y a su vez la cantidad de archivos contenedores de los distintos pasos para esta trayectoria. Luego de esto se llamara a un proceso asincrónico que peticione y a su vez reproduzca el audio de los distintos archivos generados en el servidor que se corresponderán con la trayectoria establecida entre ambos puntos. Al seleccionar la opción de Menú Nro. 2 el formulario establecerá una conexión con el Servicio Web TTS WS y recuperara el texto ingresado en el campo del formulario en formato audible, para su reproducción en el parlante del Móvil. El usuario dispondrá de ayuda auditiva en el momento de ingresar letras y números en el campo de texto del formulario, generando esto que al presionar las distintas teclas del Teléfono Móvil se reproduzca un audio informando la tecla presionada. Esta funcionalidad podrá desactivarse o volverse a activar con la opción Nro. 5 del menú principal. Entrada: Se deberá ingresar una dirección postal de Destino correcta, con caracteres Alfanuméricos, en el campo de Texto disponible en el formulario. Salidas: Mensaje auditivo con Información de Ingreso al Formulario en Cuestión. Mensajes auditivos informado teclas presionadas sobre el campo de Texto desplegado para ingresos del Usuario. Mensaje auditivo informando que el dispositivo GPS aun no localizo los satélites necesarios para establecer una localización correcta. Mensaje auditivo informando los pasos a Pie generados desde el punto de Localización del GPS del Móvil hasta la dirección postal Ingresada por el usuario. Mensaje auditivo informando posibles direcciones destino alternativas en caso de que el usuario ingrese una dirección que no pueda considerarse como única. En tal caso el Servicio Web GPS establecerá e informa alternativas a fin de que el usuario corrija su ingreso. Opción Modo Caminante (3): Introducción: El cliente ingresara a esta opción cuando requiera saber la Localización exacta de donde se encuentra considerando que desea ser informado de la misma en forma repetitiva sin ninguna interacción con la aplicación hasta tanto llegue al lugar que el considere. La Localización será informada en el formato de Calle + Numero + Localidad o Barrio + Ciudad + País. Mediante el proceso de Síntesis de Voz, a la que esta opción deberá acceder a través del Servicio Web GPS, la información para el usuario será provista en formato Auditivo. Proceso: El usuario accede a esta opción de menú y se le informa de tal situación con un mensaje auditivo. A partir de ese momento el usuario dispone de la Tecla Izquierda y Tecla Derecha habilitadas. Al presionar la tecla izquierda se volverá al menú principal. Al presionar la tecla derecha se iniciara el proceso de Modo Caminante en el que el aplicativo intentara determinar cada 20 segundos la última coordenada correcta provista por el dispositivo GPS. En caso de que aun no haya coordenadas establecidas se emitirá un mensaje informando tal situación. Esto ocurrirá en caso de que el dispositivo aun no haya localizado los satélites necesarios para la localización geográfica. En consecuencia se informara de esto en cada iteración del proceso (20 segundos). Una vez ubicada la posición por parte del GPS se procederá a establecer una conexión con el Servicio Web GPS WS y se enviara la latitud y longitud al mismo recibiendo como respuesta el archivo de audio codificado a formato STRING con la dirección postal generada por el mismo. Posteriormente se procederá a la decodificación del STRING de Audio recibido y a la reproducción del mismo en el parlante del teléfono Móvil. Para detener la iteración del proceso se deberá presionar nuevamente la Tecla Derecha. Página 38 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Entada: No hay entrada de Información. Solo posibilidad de selección de Teclas Izquierda y Derecha Salidas: Mensaje auditivo con Información de Ingreso al Formulario en Cuestión. Mensaje auditivo informando que el dispositivo GPS aun no localizo los satélites necesarios para establecer una localización correcta. Mensaje auditivo informando la Localización exacta del usuario. Mensaje auditivo informando de algún tipo de error generado por el Servicio Web GPS. Opción Puntos de Interés en Radio: Introducción: El cliente ingresara a esta opción cuando requiera saber como llegar a un punto de interés determinado que se corresponda con un Rubro Comercial ingresado por teclado. Estableciendo una serie de Pasos a Pie desde la ubicación actual hasta el destino correspondiente al Rubro comercial deseado mas cercano, calculado dentro de los 400 metros del radio del usuario solicitante. Mediante el proceso de Síntesis de Voz, a la que esta opción deberá acceder a través del Servicio Web GEO, la información para el usuario será provista en formato Auditivo. Este formulario contara con un menú contextual de 2 opciones a las cuales se accederá mediante la Tecla Derecha y luego seleccionando la opción 1 o 2 según se requiera. La opción 1 comenzara el proceso cálculo de trazado de Trayectoria para su posterior reproducción en formato auditivo. La Opción 2 reproducirá en el parlante el texto ingresado por el usuario, correspondiente al Rubro Comercial deseado, en el campo destinado para tal fin. Entrada: Se deberá ingresar un Rubro Comercial deseado, con caracteres Alfanuméricos, en el campo de Texto disponible en el formulario. Proceso: El usuario accede a esta opción de menú y se le informa de tal situación con un mensaje auditivo. A partir de ese momento el usuario dispone de la Tecla Izquierda y Tecla Derecha habilitadas. Al presionar la tecla izquierda se volverá al menú principal. Al presionar la tecla derecha se activara el menú contextual con 2 opciones. 1 Empezar Búsqueda y 2 Oír Ingreso. Al seleccionar la opción de Menú Nro. 1 se iniciara el proceso Búsqueda de Punto de Interés y posterior Trazado de Trayectoria en el que el aplicativo intentara determinar los pasos a Pie a seguir desde la posición actual establecida por las coordenadas del GPS del Móvil hasta la dirección postal del punto de interés calculado, correspondiente al Rubro Comercial ingresado a mano por el usuario dentro del campo provisto para tal fin. En caso de que aun no haya coordenadas establecidas por el GPS, se emitirá un mensaje informando de tal situación. Esto ocurrirá en caso de que el dispositivo aun no haya localizado los satélites necesarios para establecer la ubicación geográfica del Móvil. Una vez ubicada la posición por parte del GPS se procederá a establecer una conexión con el Servicio Web GEO WS y se enviara la latitud y longitud al mismo, junto con el texto ingresado por el usuario (Rubro Comercial). Se recibirá como respuesta en primer lugar el nombre de cabecera de los archivos generados en el servidor y a su vez la cantidad de archivos contenedores de los distintos pasos para esta trayectoria. Luego de esto se llamara a un proceso asincrónico que peticione y a su vez reproduzca el audio de los distintos archivos generados en el servidor que se corresponderán con la trayectoria establecida entre ambos puntos. Al seleccionar la opción de Menú Nro. 2 el formulario establecerá una conexión con el Servicio Web TTS WS y recuperara el texto ingresado en el Campo de Texto desplegado en el formulario en formato audible, para su reproducción en el parlante del Móvil. El usuario dispondrá de ayuda auditiva en el momento de ingresar letras y números en el campo de texto del formulario, generando esto que al presionar las distintas teclas del Teléfono Móvil se reproduzca un audio informando la tecla presionada. Esta funcionalidad podrá desactivarse o volverse a activar con la opción Nro 5 del menú principal. Salidas: Mensaje auditivo con Información de Ingreso al Formulario en Cuestión. Mensajes auditivos informado teclas presionadas sobre el campo de Texto desplegado para ingresos del Usuario. Mensaje auditivo informando que el dispositivo GPS aun no localizo los satélites necesarios para establecer una localización correcta. Mensaje auditivo informando los pasos a Pie generados desde el punto de Localización del GPS del Móvil hasta la dirección postal calculada, correspondiente al comercio mas cercano del Rubro Comercial ingresado por el usuario. Servicios Web Desplegados (J2EE) TTS WS Introducción: El Servicio Web TTS WS generara el audio vía Sintetizador de Voz MBROLA correspondiéndose con texto de entrada en idioma Español. Proceso: Se recibe un texto y se lo formatea en primer lugar a caracteres valido, luego se identifican las distintas abreviaciones del texto y se le asigna la palabra completa adecuada para su correcta pronunciación. Luego se convierten las palabras numéricas en frases de texto en español. Posteriormente se genera el archivo de texto formateado que servirá de entrada para el proceso de conversión a archivos de fonemas. Se genera el archivo de fonemas .PHO para su posterior utilización por el modulo MBROLA. Se ejecuta el modulo MBROLA con los parámetros necesarios para la generación de un archivo .WAV basado en el archivo de fonemas generado anteriormente. Se deja el modulo preparado para la generación de archivos de audio MP3 a fin de minimizar el ancho de banda necesario para una implementación a gran escala. Una vez generado el archivo de audio se codifica a BASE64 en un STRING largo para su posterior devolución al cliente a través del Servicio Web. Entrada: Texto en español conteniendo caracteres validos. Números y abreviaciones varias están soportadas por el sintetizador. Salida: Texto largo, en formato STRING que se corresponde con el audio en formato WAV o MP3 codificado en BASE64 para ser devuelto al usuario, el cual deberá decodificar y reproducir o grabar según sea necesario. GPS WS Introducción: El Servicio Web GPS WS generara toda la información necesaria para determinar direcciones postales basadas en una coordenada geográfica determinada, también determinara coordenadas geográficas basadas en una dirección postal determinada. Y por ultimo determinara la trayectoria a seguir entre 2 puntos geográficos dados. Esta última función también permitirá detectar destinos ambiguos, con lo cual generara la información necesaria para informarle al usuario los destinos alternativos que puede haber querido proveer al servicio. Todas las funciones estarán orientadas a la reproducción en habla Página 39 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática española de sus resultados con lo cual todas implementaran las funcionalidades brindadas por el servicio TTS descripto anteriormente. Proceso: Función de obtención de dirección hablada: Se enviara a esta función una coordenada geográfica determinada y mediante una interfaz con la Google Maps API se determinara la dirección aproximada. Se tiene en cuenta que esa dirección no es exacta por parte de Google, con lo cual mediante una función de cálculo se obtiene la dirección casi exacta de la coordenada dada. Posteriormente esta dirección se procesa con el sintetizador de voz para su envió al cliente. Función de determinación de trayectoria hablada: Se enviara a esta función una coordenada geográfica correspondiente al punto inicial desde donde se quiere trazar la trayectoria, también se envía una dirección postal para identificar el destino de la trayectoria. El proceso genera una interfaz con la Google Maps API y recibe la información de trayectoria en formato HTML en un STRING largo. Este STRING será formateado y depurado a fin de obtener la información importante a los fines del desarrollo. Se identificaran los distintos pasos a seguir en la trayectoria, con sus distancias correspondientes. Luego de obtener la información deseada se procesara la misma con el sintetizador de voz para su posterior envío al cliente. Teniendo en cuenta la amplitud de los STRINGS codificados en BASE64 para su devolución a través de los servicios web, y considerando que las mismas pueden afectar el correcto funcionamiento de los nombrados, se determino realizar la segmentación de las trayectorias trazadas, generando varios archivos de audio correspondiéndose cada uno de ellos a los distintos caminos que forman la trayectoria. Generando esto que el cliente reciba inicialmente con el pedido de traza, una cabecera informando en nombre y cantidad de archivos de traza generados, para luego, el cliente, realizar las solicitudes de las mismas de forma secuencial. Esto evitara Timeouts ante grandes cantidades de información recibida por parte de los Servicios Web. Entrada: Según la función deseada, recibirá coordenadas geográficas o direcciones postales, como así también coordenadas y direcciones provistas a la vez para determinar la trayectoria entre ambas. Salida: Texto largo, en formato STRING que se corresponde con el audio en formato WAV o MP3 codificado en BASE64 para ser devuelto al usuario, el cual deberá decodificar y reproducir o grabar según sea necesario. En caso de solicitar la función segmentada, se enviara en primer lugar una cabecera con el nombre genérico de los archivos de audio generados en el servidor, y luego, secuencialmente se enviaran los audios en STRING largo correspondientes a los caminos de la trayectoria trazada. GEO WS Introducción: El Servicio Web GEO WS contiene la funcionalidad necesaria para obtener la trayectoria más corta hasta un punto determinado, dentro de los 400 mts. de la ubicación del cliente, y el destino se corresponderá con un comercio de un rubro provisto por el cliente consumidor del Servicio Web. El servicio se ayudara con una base de datos que contendrá la información de localización de los comercios. Proceso: Partiendo de la posición geográfica central provista por el cliente, y utilizando la formula Haversine, se determinan las coordenadas de los 4 puntos externos que formaran el circulo de 400 mts de radio alrededor del punto central (coordenada origen). Una vez determinado ese circulo de área, se obtendrán los distintos puntos de interés, correspondientes al rubro provisto, que se detecte que están dentro del área calculada anteriormente. Luego de esto, mediante la funcionalidad de Procesamiento de Trayectorias, se trazaran las distintas trayectorias hacia los puntos obtenidos, partiendo del punto central provisto por el cliente. Una vez obtenidas todas las trayectorias, se determinara la más cercana en distancia y se generaran los archivos de audio correspondientes a los caminos que deberá tomar el usuario, junto con su cabecera descriptiva mediante el sintetizador de voz, para su posterior envío al cliente de manera secuencial. Entrada: Se recibe el dato de una coordenada geográfica correspondiente a la ubicación actual del cliente, también se recibe el rubro comercial que se desea buscar. Salida: Texto largo, en formato STRING que se corresponde con el audio en formato WAV o MP3 codificado en BASE64 para ser devuelto al usuario, el cual deberá decodificar y reproducir o grabar según sea necesario. En caso de solicitar la función segmentada, se enviara en primer lugar una cabecera con el nombre genérico de los archivos de audio generados en el servidor, y luego, secuencialmente se enviaran los audios en STRING largo correspondientes a los caminos de la trayectoria trazada. Requerimientos de Interfaces externos Interfaces de Usuario Los formularios a utilizar, al ser una aplicación orientada a personas con discapacidad visual, y al ser el medio por el cual se muestran de poco tamaño, serán simples, no contendrán imágenes que produzcan un retardo en la carga del formulario y la información a mostrar debe ser sencilla. Solo será necesario generar las opciones de menú utilizadas, las cuales procesaran los eventos indicados para que el usuario utilice el aplicativo. La facilidad de uso es la premisa principal del desarrollo, con lo cual se habilitaran y dará funcionalidad a solo 2 botones principales en los formularios. El izquierdo y derecho del teléfono móvil. Por otro lado, la asistencia auditiva será completa, indicando al usuario todas las actividades que realiza en el aplicativo. Dada la interacción del Aplicativo con servicios web expuestos en internet que darán funcionalidad extra al aplicativo, los equipos deberán tener una cuenta 3G de alta velocidad para una fácil transferencia de información entre los equipos y los servicios. También se podrá interactuar con equipos con conexión WIFI. En el mercado actual existen una amplia gama de celulares con soporte GPS, pero a los fines del desarrollo, nos centraremos en una implementación sobre un equipo que implemente la especificación JSR179 para incorporar la funcionalidad de localización. Interfaces de Hardware y Software La infraestructura técnica a utilizar se compone de la siguiente manera: 1 Application Server con Windows 2003 Server o Linux instalado Página 40 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática 1 Web Server con Apache Tomcat versión 5.5 instalado 1 Servidor de Base de Datos (MySql) En el servidor web se deberá instalara la siguiente estructura de directorios para la correcta Actividad de los Servicios. C:\RECURSOSTESIS\ \mbrola\ Mbrola.exe Mbrola-linux-i386 Readme.txt \vz1\ \output\ Motor de Síntesis de voz Mbrola para SO Windows Motor de Síntesis de voz Mbrola para SO Linux Licencia y Condiciones de Uso del Motor Mbrola Vz1 Base de Datos de Voz Venezolana para uso con Mbrola License.txt Licencia y Condiciones de Uso de Base de Datos Venezolana Venezuelan_rules1 Venezuelan_rules2 Perl.exe Tafv.pl Lame.exe Lame_enc.ini ReadMeFirst.txt Reglas Lingüísticas en Español para Voz Venezolana 1 Reglas Lingüísticas en Español para Voz Venezolana 2 Compilador Perl para generador de Archivo de Fonemas Generador de Archivo de Fonemas para Voz Venezolana Codificador WAV a MP3 Archivo de Configuración del Codificador MP3 Licencia y Condiciones de Uso para Lame.exe reemplazoPalabras.properties Archivo de Recursos para Servicio de síntesis de Voz El Sistema a desarrollar, tanto en su funcionalidad web como en su cliente Móvil, serán desarrollados en Java utilizando la plataforma Netbeans versión 6.5.1. El motor de base de datos utilizado será MySql y el servido que lo expone la funcionalidad Web será un Apache Tomcat versión 5.5. El Motor de síntesis de voz será el MBROLA, en su versión ejecutable bajo SO Windows. Restricciones de Diseño Cumplimiento de Estándares Para realizar un código legible, entendible y de fácil refactoring, se desarrollara aplicando comentarios respetando nomenclatura de JavaDoc para su posterior Documentación automática. Se aplicara una nomenclatura estándar y homogénea para la codificación. Limitaciones hardware Se deberá estudiar y considerar el crecimiento de la base de datos de Puntos de interés a fin de proyectar actualizaciones de capacidad de procesador para el Servidor de base de datos. A fin de una operación dinámica de la Aplicación Móvil se deberá tener en cuenta que los Móviles a utilizar deberán contar con una conexión a internet bajo red 3G de alta velocidad. Atributos del Software Confiabilidad La confiabilidad del sistema estará dada por la fiabilidad de que el sistema funcione correctamente, para esto se desarrollarán distintas Pruebas de Performance (Test Stress). Disponibilidad Para la disponibilidad 100% del mismo, se utilizarán Servidores Secundarios con la misma configuración y datos que el principal. Estos se utilizarán en caso de fallas del Servidor Principal. Seguridad No se especifica un desarrollo bajo ningún tipo de seguridad extra. Página 41 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Facilidad de Mantenimiento Al ser un Sistema totalmente desarrollado utilizando la metodología de desarrollo Orientada a Objetos puede ser fácilmente mantenido. Además al utilizarse una definición de estándares para la programación a utilizar, hace que el código sea legible y entendible para cualquier persona que desee ver el código del mismo para realizar mantenimiento de la Aplicación. Diseño Arquitectónico El sistema se desarrollara utilizando una Arquitectura distribuida y orientada a Servicios. La cual es un concepto que define la utilización de servicios para dar soporte a los requisitos del negocio. Permitiendo esto, que los servicios desarrollados puedan implementarse en aplicaciones de diferente origen o lenguaje. Una característica muy importante de los Principios de la Orientación a Servicios, es que todos ellos se inter-relacionan. El siguiente gráfico muestra la inter-relación de los diferentes principios: Como se puede observar en el gráfico, el objetivo de la Orientación a Servicios es obtener software totalmente reutilizable a través de un conjunto de técnicas y principios como los descritos anteriormente. Los Servicios deben proporcionar un contrato formal: Todo servicio desarrollado, debe proporcionar un contrato en el cual figuren: el nombre del servicio, su forma de acceso, las funcionales que ofrece, los datos de entrada de cada una de las funcionalidades y los datos de salida. De esta manera, todo consumidor del servicio, accederá a este mediante el contrato, logrando así la independencia entre el consumidor y la implementación del propio servicio. En el caso de los Servicios Web, esto se logrará mediante la definición de interfaces con WSDL. Los Servicios deben tener bajo acoplamiento: Es decir, que los servicios tienen que ser independientes los unos de los otros. Para lograr ese bajo acoplamiento, lo que se hará es que cada vez que se vaya a ejecutar un servicio, se accederá a él a través del contrato, logrando así la independencia entre el servicio que se va a ejecutar y el que lo llama. Si conseguimos este bajo acoplamiento, entonces los servicios podrán ser totalmente reutilizables. Los Servicios deben permitir la composición: Todo servicio debe ser construido de tal manera que pueda ser utilizado para construir servicios genéricos de más alto nivel, el cual estará compuesto de servicios de más bajo nivel. Los Servicios deben de ser autónomos: Todo Servicio debe tener su propio entorno de ejecución. De esta manera el servicio es totalmente independiente y nos podemos asegurar que así podrá ser reutilizable desde el punto de vista de la plataforma de ejecución. Los Servicios no deben tener estado: Un servicio no debe guardar ningún tipo de información. Esto es así porque una aplicación está formada por un conjunto de servicios, lo que implica que si un servicio almacena algún tipo de información, se pueden Página 42 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática producir problemas de inconsistencia de datos. La solución, es que un servicio sólo contenga lógica, y que toda información esté almacenada en algún sistema de información sea del tipo que sea. Los Servicios deben poder ser descubiertos: Todo servicio debe poder ser descubierto de alguna forma para que pueda ser utilizado, consiguiendo así evitar la creación accidental de servicios que proporcionen las mismas funcionalidades. En el caso de los Servicios Web, el descubrimiento se logrará publicando los interfaces de los servicios en registros UDDI. A continuación de muestra un grafico de la arquitectura genérica de la solución incluyendo en el mismo la interacción básica entre todos los componentes que formaran parte de la misma. El Proyecto cuenta con 2 desarrollos bien diferenciados los cuales son completamente independientes en su despliegue. Estos son, la Aplicación Móvil que brindara la información al usuario y la Aplicación Servidora que expondrá los Servicios Web. Ambos desarrollos cuentan con una Arquitectura interna de 3 capas a fin de codificar de manera ordenada y con posibilidad de ampliación de los módulos. A su vez la escalabilidad es una premisa importante dada la posibilidad de grandes cantidades de usuario usando a la vez la aplicación. La Aplicación Móvil cuenta con una capa de presentación compuesta por un MIDLET principal que servirá para la interacción con el usuario. El mismo se encargara de lanzar los eventos de Audio necesarios para informar al usuario lo que este solicite. La capa de Presentación de este modulo se desarrollara con componentes de tipo FORM de J2ME que permiten interactuar tanto con servicios externos como con la información brindada por los satélites GPS. Estos componentes encapsulan toda la funcionalidad encargada de realizar las peticiones a las interfaces que exponen la funcionalidad de los Servicios Web (Service_Stub) o el Api de Localización (JSR 179). Tanto las interfaces hacia los Servicios Web (Service_Stub) junto con la implementación de la aplicación Servidor, al igual que la Api de Localización JSR179 como los Satélites GPS compondrán nuestra capa de Datos de la Aplicación Móvil debido a que la información que este modulo manejara serán Señales Satelitales del GPS como así también Información de Audio provista por los Servicios Web publicados. Página 43 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Definición General de los Casos de Uso Definición General de Casos de Uso para Aplicación Móvil Verificar Localizador «extends» Iniciar Aplicacion «uses» «extends» «uses» Iniciar Localizador JSR179 «uses» ObtenerLocalizacion Consultar Localizador Consultar Servicio GPS Trazar Trayectoria a Destino «extends» «uses» «extends» «uses» Gestionar Conexion Consultar Servicio Servicios TTS Usuario «extends» Iniciar Modo Caminante WSDL Servicios Web «uses» Consultar Servicio GEO Ubicar Punto de Interes Definición General de Casos de uso Para Aplicación Servidor «uses» Obtener Direccion Sintetizada Google Maps API «extends» Sintetizar Texto a Voz «extends» «uses» «uses» Aplicacion Movil Determinar Trayectoria a Destino Sintetizada MBROLA «extends» Ubicar Punto de Interes en Radio «extends» Determinar Trayectoria a Destino «extends» Sintetizar Texto a Voz Página 44 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Descripción detallada de casos de Uso Iniciar Aplicación Actores involucrados Usuario Telefonía Móvil Canales habilitados GPS, Teléfono Móvil Descripción En este caso de uso se detallan los pasos a seguir cuando se inicia la aplicación Móvil. Condiciones Previas El usuario debe poseer un Teléfono móvil del la línea Nokia S60 o que implemente la especificación JSR179 y el mismo debe disponer de un dispositivo GPS incorporado. Asimismo se asume que el teléfono Móvil cuenta con la Aplicación ya Instalada. Se deberá poseer la maquina virtual de Java instalada en caso de correrse en equipos con Windows Mobile. Symbian no requiere. Pasos El usuario lanza la aplicación Móvil. El usuario selecciona la tecla derecha de comando y luego un Nro. que se corresponderá con las opciones de menú disponibles a fin de lanzar la funcionalidad deseada. El usuario selecciona la opción Nro. 1 del menú generando el lanzamiento de la funcionalidad de Localización. El usuario selecciona la opción Nro. 2 del menú generando el lanzamiento de la funcionalidad de Procesamiento de Trayectoria. El usuario selecciona la opción Nro. 3 del menú generando el lanzamiento de la funcionalidad de Modo Caminante. El usuario selecciona la opción Nro. 4 del menú generando el lanzamiento de la funcionalidad de Determinar puntos de Interés en Radio. El usuario selecciona la opción Nro. 5 del menú generando el lanzamiento de la funcionalidad de Activar y Desactivar ayuda auditiva. El usuario la tecla izquierda de comandos del dispositivo móvil. Resultado El sistema reproducirá un mensaje auditivo Indicando que se inicio la aplicación y se desplegara en pantalla el menú Principal, el cual será activado mediante la tecla Derecha de comandos del teléfono móvil. En caso de que la Api de Localización no esté disponible se emitirá un mensaje auditivo indicando que el teléfono no es apto para ejecutar la Aplicación o bien que hubo un error al instanciar le dispositivo de localización. Se desplegaran las 5 opciones de menú disponibles en la tecla derecha de comandos del teléfono móvil y la tecla izquierda correspondiente a la salida del sistema. Según la opción de menú seleccionada se redirigirá el foco de la aplicación al Formulario Móvil correspondiente. En caso de seleccionar la tecla izquierda de comandos se detendrá el proveedor de localización y se saldrá de la aplicación informando de tal situación al usuario mediante un mensaje auditivo. Diagrama: Página 45 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática «extends» Iniciar Aplicacion Verificar Localizador «extends» «extends» «uses» «uses» JSR179 Iniciar Localizador «extends» Usuario Desplegar Menu Principal Reproducir Audio Obtener Localización Actores involucrados Usuario Telefonía Móvil Canales habilitados Internet, Teléfono Móvil, GPS Descripción En este caso de uso se detallan los pasos a seguir cuando el cliente desea consultar la dirección postal de la localización en la que se encuentra. Condiciones Previas El teléfono móvil debe haber localizado señales de los Satélites GPS. La conexión a Internet debe estar Activa y disponible. Pasos El usuario ingresa al modulo de Localización. El usuario presiona el comando derecho del teléfono móvil con el fin de lanzar el evento que determinara e informará la dirección postal en la que se encuentra mediante un mensaje auditivo. El usuario presiona el comando izquierdo del teléfono móvil. Resultado Al ingresar al modulo, el usuario recibirá un mensaje auditivo que le informara que acaba de ingresar al modulo de localización; Luego de esto se desplegaran las opciones disponibles para el dispositivo en este modulo. Las mismas son el botón izquierdo y el botón derecho del dispositivo móvil. Al presionar el comando derecho del teléfono móvil, en primer lugar se establecerá una conexión con el proveedor de localización instanciado e inicializado al lanzar la aplicación. Si el mismo aun no ha detectado señal de satélites, se le informara de tal situación al usuario mediante un mensaje auditivo. Esto generara que el usuario deba esperar un tiempo prudencial y volver a presionar el comando derecho a fin de iniciar nuevamente el evento. Posteriormente se instanciara la interfaz de conexión con los servicios externos y mediante una conexión HTTP se contactara con el servicio web GPSWS a su función desplegada getTTSAddress enviándole a la misma los parámetros de latitud y longitud obtenidos del proveedor de localización. El servicio Web responderá la petición con un STRING largo conteniendo el STREAM de audio codificado de la dirección postal hablada en lengua española. Se deberá decodificar en BASE64 dicho STREAM y reproducir el mismo en el parlante del dispositivo móvil. Al presionar el comando izquierdo del teléfono móvil se saldrá del modulo y se retornara al formulario principal. Diagrama: Página 46 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Reproducir Audio ObtenerLocalizacion Gestionar Conexion Servicios «extends» Consultar Servicio GPS «uses» WSDL Servicios Web Usuario «uses» Consultar Localizador JSR179 Trazar Trayectoria a Destino Actores involucrados Usuario Telefonía Móvil Canales habilitados Internet, Teléfono Móvil, GPS Descripción En este caso de uso se detallan los pasos a seguir cuando el cliente desea consultar el trazado de una trayectoria desde la ubicación en donde se encuentra hasta una dirección ingresada a Mano. Condiciones Previas El teléfono móvil debe haber localizado señales de los Satélites GPS. La conexión a Internet debe estar Activa y disponible. Pasos El usuario ingresa al modulo de Trazado de Trayectoria. El usuario ingresa un texto con una dirección destino en el campo de texto destinado para tal fin. El usuario presiona el comando derecho del teléfono móvil con el fin abrir el menú de opciones del modulo. El usuario Selecciona la Opción 1 del Modulo a Fin de lanzar el evento que determinara e informará la Trayectoria hacia el destino Ingresado Partiendo desde la posición en la que se encuentra. El usuario Selecciona la Opción 2 del Modulo a Fin de escuchar el ingreso que realizo. El usuario presiona el comando izquierdo del teléfono móvil. Resultado Al ingresar al modulo, el usuario recibirá un mensaje auditivo que le informara que acaba de ingresar al modulo de Trazado de Trayectoria; Luego de esto se desplegaran las opciones disponibles para el dispositivo en este modulo. Las mismas son el botón izquierdo y el botón derecho del dispositivo móvil. Al presionar el comando derecho del teléfono móvil se desplegara el menú de opciones con 2 Opciones. Al presionar nuevamente se cerrara ese menú de opciones. Al presionar el comando derecho del teléfono móvil mas la opción 1 del teclado numérico, en primer lugar se establecerá una conexión con el proveedor de localización instanciado e inicializado al lanzar la aplicación. Si el mismo aun no ha detectado señal de satélites, se le informara de tal situación al usuario mediante un mensaje auditivo. Esto generara que el usuario deba esperar un tiempo prudencial y volver a presionar el comando derecho a fin de iniciar nuevamente el evento. Posteriormente se instanciará la interfaz de conexión con los servicios externos y mediante una conexión HTTP se contactara con el servicio Web GPSWS a su función desplegada getTTSCabeceraTrayectoria enviándole a la misma los parámetros de latitud y longitud obtenidos del proveedor de localización junto con el texto de la dirección Destino ingresada previamente. El servicio Web responderá la petición con un STRING Página 47 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática conteniendo el nombre de cabecera de los archivos de audio generados en el servidor junto con la cantidad de archivos. Posteriormente se realizara secuencialemente una petición al servicio Web GPSWS a su función getTTSDetalleTrayectoria enviándole como parámetro el nombre y Nro. de archivo deseado (concatenados). El servicio Web responderá la petición con un STRING largo conteniendo el STREAM de audio codificado con el camino individual trazad para la trayectoria, hablado en lengua española. Se decodificara en BASE64 dicho STREAM y reproducir el mismo en el parlante del dispositivo móvil. Al presionar el comando derecho del teléfono móvil mas la opción 2 del teclado numérico, se instanciará la interfaz de conexión con los servicios externos y mediante una conexión HTTP se contactara con el servicio Web TTSWS a su función desplegada getTTSaudioWAV enviándole a la misma el texto de la dirección Destino ingresada previamente. El servicio Web responderá la petición con un STRING largo conteniendo el STREAM de audio codificado con el texto ingresado hablado en lengua española. Se decodificara en BASE64 dicho STREAM y reproducir el mismo en el parlante del dispositivo móvil. Al presionar el comando izquierdo del teléfono móvil se saldrá del modulo y se retornara al formulario principal. Diagrama: «uses» Consultar Localizador JSR179 Trazar Trayectoria a Destino «extends» «extends» «extends» Usuario Reproducir Audio Gestionar Conexion Servicios Reproducir Audio Thread «extends» Consultar Servicio GPS «uses» WSDL «uses» Servicios Web Consultar Servicio TTS Modo Caminante Actores involucrados Usuario Telefonía Móvil Canales habilitados Internet, Teléfono Móvil, GPS Descripción En este caso de uso se detallan los pasos a seguir cuando el cliente desea consultar la dirección postal de la localización en la que se encuentra considerando que el usuario esta caminando y deberá informarse la misma cada 20 segundos. Condiciones Previas El teléfono móvil debe haber localizado señales de los Satélites GPS. La conexión a Internet debe estar Activa y disponible. Pasos El usuario ingresa al modulo de Modo Caminante. El usuario presiona el comando derecho del teléfono móvil con el fin de lanzar el evento que determinara e informará la dirección postal en la que se encuentra cada 20 segundos mediante un mensaje auditivo. El usuario presiona el comando derecho del teléfono móvil nuevamente a fin de detener el flujo de información auditiva. Página 48 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática El usuario presiona el comando izquierdo del teléfono móvil. Resultado Al ingresar al modulo, el usuario recibirá un mensaje auditivo que le informara que acaba de ingresar al modulo de localización; Luego de esto se desplegaran las opciones disponibles para el dispositivo en este modulo. Las mismas son el botón izquierdo y el botón derecho del dispositivo móvil. Al presionar el comando derecho del teléfono móvil, en primer lugar se establecerá una conexión con el proveedor de localización instanciado e inicializado al lanzar la aplicación. Si el mismo aun no ha detectado señal de satélites, se le informara de tal situación al usuario mediante un mensaje auditivo. Esto generara que el usuario deba esperar un tiempo prudencial y volver a presionar el comando derecho a fin de iniciar nuevamente el evento. Posteriormente se instanciara la interfaz de conexión con los servicios externos y mediante una conexión HTTP se contactara con el servicio Web GPSWS a su función desplegada getTTSAddress enviándole a la misma los parámetros de latitud y longitud obtenidos del proveedor de localización. El servicio Web responderá la petición con un STRING largo conteniendo el STREAM de audio codificado de la dirección postal hablada en lengua española. Se deberá decodificar en BASE64 dicho STREAM y reproducir el mismo en el parlante del dispositivo móvil. Al presionar el comando derecho del teléfono móvil nuevamente se dejara de recibir información de los servicios y se detendrán los mensajes auditivos. Al presionar el comando izquierdo del teléfono móvil se saldrá del modulo y se retornara al formulario principal. Diagrama: Consultar Localizador «uses» JSR179 Iniciar Modo Caminante «extends» «uses» «extends» Consultar Servicio Gestionar Conexion GPS Servicios WSDL Servicios Web Usuario Reproducir Audio Ubicar Punto de Interés en Radio Actores involucrados Usuario Telefonía Móvil Canales habilitados Internet, Teléfono Móvil, GPS Descripción En este caso de uso se detallan los pasos a seguir cuando el cliente desea consultar el trazado de una trayectoria desde la ubicación en donde se encuentra hasta la dirección correspondiente a un punto de interés comercial, de un rubro determinado ingresado a Mano. Condiciones Previas El teléfono móvil debe haber localizado señal de los Satélites GPS. La conexión a Internet debe estar Activa y disponible. Pasos El usuario ingresa al modulo de Ubicación de Puntos de Interés. Página 49 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática El usuario ingresa un texto con un rubro comercial determinado en el campo de texto destinado para tal fin. El usuario presiona el comando derecho del teléfono móvil con el fin abrir el menú de opciones del modulo. El usuario Selecciona la Opción 1 del Modulo a Fin de lanzar el evento que determinara e informará la Trayectoria hacia destino partiendo desde la posición en la que se encuentra. El usuario Selecciona la Opción 2 del Modulo a Fin de escuchar el ingreso que realizo. El usuario presiona el comando izquierdo del teléfono móvil. Resultado Al ingresar al modulo, el usuario recibirá un mensaje auditivo que le informara que acaba de ingresar al modulo de Localización de Puntos de Interés en Radio; Luego de esto se desplegaran las opciones disponibles para el dispositivo en este modulo. Las mismas son el botón izquierdo y el botón derecho del dispositivo móvil. Al presionar el comando derecho del teléfono móvil se desplegara el menú de opciones con 2 Opciones. Al presionar nuevamente se cerrara ese menú de opciones. Al presionar el comando derecho del teléfono móvil mas la opción 1 del teclado numérico, en primer lugar se establecerá una conexión con el proveedor de localización instanciado e inicializado al lanzar la aplicación. Si el mismo aun no ha detectado señal de satélites, se le informara de tal situación al usuario mediante un mensaje auditivo. Esto generara que el usuario deba esperar un tiempo prudencial y volver a presionar el comando derecho a fin de iniciar nuevamente el evento. Posteriormente se instanciará la interfaz de conexión con los servicios externos y mediante una conexión HTTP se contactara con el servicio Web GEOWS a su función desplegada getTTSCabeceraPuntoInteresEnRadio enviándole a la misma los parámetros de latitud y longitud obtenidos del proveedor de localización junto con el texto del Rubro comercial deseado, ingresado previamente. El servicio Web responderá la petición con un STRING conteniendo el nombre de cabecera de los archivos de audio generados en el servidor junto con la cantidad de archivos. Posteriormente se realizara secuencialemente una petición al servicio Web GPSWS a su función getTTSDetallePuntoInteresEnRadio enviándole como parámetro el nombre y Nro. de archivo deseado (concatenados). El servicio Web responderá la petición con un STRING largo conteniendo el STREAM de audio codificado con el camino individual trazado para la trayectoria, hablado en lengua española. Se decodificara en BASE64 dicho STREAM y reproducir el mismo en el parlante del dispositivo móvil. Al presionar el comando derecho del teléfono móvil mas la opción 2 del teclado numérico, se instanciará la interfaz de conexión con los servicios externos y mediante una conexión HTTP se contactara con el servicio Web TTSWS a su función desplegada getTTSaudioWAV enviándole a la misma el texto del Rubro Comercial ingresado previamente. El servicio Web responderá la petición con un STRING largo conteniendo el STREAM de audio codificado con el texto ingresado hablado en lengua española. Se decodificara en BASE64 dicho STREAM y reproducir el mismo en el parlante del dispositivo móvil. Al presionar el comando izquierdo del teléfono móvil se saldrá del modulo y se retornara al formulario principal. Diagrama: «extends» «extends» Usuario Reproducir Audio «uses» Consultar Localizador Ubicar Punto de Interes JSR179 Gestionar Conexion Servicios «extends» Consultar Servicio GEO «uses» WSDL Servicios Web Reproducir Audio Thread Definición General de Casos de Uso para Servicios Web Página 50 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Sintetizar Texto a Voz Actores involucrados Aplicación Consumidora Canales habilitados Internet. Descripción En este caso de uso se detallan los pasos a seguir cuando una aplicación consumidora del paquete de Servicios desea obtener la voz sintetizada en idioma español de un determinado texto provisto al servicio. Condiciones Previas Servicios instalados en el servidor y desplegados correctamente. Textos de entrada menores a 121 caracteres. Pasos El consumidor provee un texto en español de no más de 121 caracteres. Resultado El servicio en primer lugar generara un nombre aleatorio para los archivos generados en los distintos módulos a fin de, en caso de concurrencia de consumidores, devolver cada audio al correspondiente solicitante. Se verifica que los textos sean correctos. Se Separa el Texto en Frases y se cuentan las mismas. En cada frase se definen las palabras conteniendo datos numéricos y se reemplazan las abreviaciones. Para cada frase se determina cada una de sus palabras y se separa las mismas en silabas a fin de determinar la fonética a utilizar para su pronunciación. Se genera el archivo de Fonemas con el nombre definido anteriormente para el proceso. Se genera, mediante el sintetizador declarado, MBROLA en este caso, el archivo de audio con extensión WAV basado en el archivo de fonemas generado. Se codifica el archivo en un STRING largo mediante la codificación BASE64 y se retorna al consumidor del servicio para su utilización. Diagrama: Codificar archivo de Audio para su envio «uses» «extends» «extends» Obtener audio Sintentizado en archivo codificado Aplicacion Movil «extends» Generacion de Archivo de Audio «extends» «extends» «extends» MBROLA Generacion de Archivo de Fonemas «extends» Definir fonemas para texto Generar nombre de Archivo Aleatorio Página 51 de 72 Verificar correccion del texto Reemplazar Palabras Numericas y Abreviaciones Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Obtener Dirección Postal Sintetizada Actores involucrados Aplicación Consumidora Canales habilitados Internet. Descripción En este caso de uso se detallan los pasos a seguir cuando una aplicación consumidora del paquete de Servicios desea obtener en formato de voz sintetizada la dirección postal basada en una coordenada Geográfica GPS provista. Condiciones Previas Servicios instalados en el servidor y desplegados correctamente. Conexión disponible con el paquete de Síntesis de Voz. Conexión a internet disponible para el servicio. Pasos El consumidor provee una coordenada geográfica GPS en formato de Latitud y Longitud. Resultado Se crea una conexión HTML con la API de localización de GOOGLE MAPS y se determina la cuadra RANGO para la coordenada provista. Mediante un cálculo estadístico se calcula la dirección Exacta de la coordenada provista. Se genera, mediante el paquete de síntesis de voz el archivo de audio con extensión WAV basado en el texto de la dirección obtenida en el proceso. Se codifica el archivo en un STRING largo mediante la codificación BASE64 y se retorna al consumidor del servicio para su utilización. Diagrama: Codificar archivo de Audio para su envio Google Maps API Sintetizar Texto a «uses» Voz «extends» «extends» Aplicacion Movil Obtener Direccion Sintetizada «extends» «extends» Generar Direccion Calcular Direccion Exacta «extends» Obtener Coordenadas «extends» Establecer Conexion Google Maps Obtener Trayectoria a Destino sintetizada Actores involucrados Aplicación Consumidora Canales habilitados Internet. Página 52 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Descripción En este caso de uso se detallan los pasos a seguir cuando una aplicación consumidora del paquete de Servicios desea obtener en formato de voz sintetizada los pasos de Trayectoria generados a partir de una dirección Origen hacia una Dirección Destino. La dirección Origen será provista en formato de coordenadas Geográficas GPS. Condiciones Previas Servicios instalados en el servidor y desplegados correctamente. Conexión disponible con el paquete de Síntesis de Voz. Conexión a internet disponible para el servicio. Pasos El consumidor provee una coordenada geográfica GPS en formato de Latitud y Longitud junto con un STRING conteniendo una dirección Destino deseada a fin de trazar el camino entre los 2 puntos. Resultado Se crea una conexión HTML con la API de localización de GOOGLE MAPS y se obtienen los pasos entre los dos puntos en formato texto sin depurar. Se depura el texto obtenido correspondiente al HTML generado por la petición al servicio de GOOGLE. Se obtiene la información deseada y se genera la serie de pasos y sus distancias individuales. En caso de haber provisto al servicio de destinos ambiguos se generara una serie de Destinos Alternativos a fin de informarlos al consumidor. Se genera, mediante el paquete de síntesis de voz los archivos de audio con extensión WAV basados en cada uno de los textos correspondientes a cada uno de los caminos trazados, definidos para la trayectoria deseada, junto con sus distancias a recorrer. Se codifican los archivos en un STRING largo mediante la codificación BASE64 y se retorna al consumidor del servicio de manera segmentada por cada Camino, para su utilización. Diagrama: Codificar archivo de Audio para su envio «extends» Determinar Trayectoria a Destino Sintetizada Sintetizar Texto a Voz Google Maps API «uses» «extends» «extends» Generar Trayectoria «extends» Aplicacion Movil «extends» «extends» Depurar Texto de Peticiones HTML «extends» «extends» Segmentar Trayectoria Crear Camino Crear Destino Alternativo Establecer Conexion Google Maps Ubicar Punto de Interés en Radio Actores involucrados Aplicación Consumidora Canales habilitados Internet. Descripción En este caso de uso se detallan los pasos a seguir cuando una aplicación consumidora del paquete de Servicios desea obtener en formato de voz sintetizada los pasos de Trayectoria generados a partir de una dirección Origen hacia una Dirección Destino. La dirección Origen será provista en formato de coordenadas Geográficas GPS. Y la dirección destino será calculada mediante un algoritmo que, en base a un Rubro Página 53 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática comercial provisto por el consumidor, se determinara que comercio de este Rubro está más cercano a la Dirección Origen (Localización del Consumidor) y a la vez que se encuentra dentro de un rango de 400 Mts. a la redonda del mismo. Condiciones Previas Servicios instalados en el servidor y desplegados correctamente. Conexión disponible con el paquete de Síntesis de Voz. Conexión a internet disponible para el servicio. Pasos El consumidor provee una coordenada geográfica GPS en formato de Latitud y Longitud que será la Coordenada Origen, junto con un STRING conteniendo un rubro comercial deseado. Resultado Se crea una conexión con el Motor de Base de datos instalado en el Servidor el cual contendrá los puntos de interés previamente cargados con sus datos de coordenadas y demás info. Se Obtienen los puntos de interés correspondientes al Rubro deseado que estén dentro del rango de 400 Mts. De la ubicación correspondiente a la Coordenada Origen. Mediante la utilización de la funcionalidad provista por el procesador de Trayectorias, se establecen las distintas trayectorias hacia los puntos de interés obtenidos y se determina cuál de ellas es la más cercana al consumidor. Se genera, mediante el paquete de síntesis de voz los archivos de audio con extensión WAV basados en cada uno de los textos correspondientes a cada uno de los caminos trazados para la trayectoria obtenida, junto con sus distancias a recorrer. Se codifican los archivos en un STRING largo mediante la codificación BASE64 y se retorna al consumidor del servicio de manera segmentada por cada Camino, para su utilización. Diagrama: Codificar archivo de Audio para su envio «extends» Aplicacion Movil Google Maps API Sintetizar Texto a Voz «extends» «uses» «extends» «extends» Determinar Determinar Trazar Trayectorias Trayectoria a Punto de Interes Trayectoria Candidata «extends» Generar Trayectoria «extends» «extends» «extends» Generar Puntos de Interes Segmentar Trayectoria Obtener Rango de Coordenadas «extends» Consultar Puntos de Interes Diagramas de Clases Página 54 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Aplicación Móvil – Implementación del Localizador Página 55 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Aplicación Móvil – Modulo Principal Página 56 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Servicios Web – Paquetes Involucrados Paquete Integrador y Expositor de Funciones Página 57 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Diagrama Paquete TTS – Sintetizador de Voz Página 58 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Diagrama Paquetes DB + GEO. Ubicación de Puntos de Interés en Radio Página 59 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Paquete GPS - Interfaz con API de Localización de Google MAPS Página 60 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Diagramas de Actividades Aplicación Móvil Localizador Invalido Iniciar Aplicacion Inicializar Localizador TesisGeoTTSMidlet Lanzar Formulario Principal Activar/Desactivar Ayuda Auditiva Salir() JSR 179 Salir() PrincipalMainForm TrayectoForm() LocalizacionForm() Salir() ModoCaminanteForm() Salir() AudioHelper Audio LocalizacionForm Salir() RadioInteresesForm() ReprductorAudioStreamList Audio Nombre Archivos Server RadioInteresesForm ModoCaminanteForm TrayectoForm WSDL Web Services Página 61 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Servicio de Síntesis de Voz depurar texto TesisSpeechGPS Texto texto TTSWS Parse Frases Instancia Sintetizador Reemplazar Palabras Frase Numero Largo Parse Palabra Sintetizador MBROLA Palabra Parse Silaba Generar Audio Silaba Generar Fonema Sintetizar Voz Fonema Servicio GPS Obtener Localización Latitud + Longitud CoordenadaG Establecer URL Destino Obtener Rango Direcciones Calcular Direccion Exacta Establecer Nombres de Archivo Sintentizar texto de Direccion Codificar archivo de Audio Página 62 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Procesamiento de Trayectoria Latitud + Longitud + Direccion Destino TrayectoriaG Establecer URL Destino Obtener HTML CoordenadaG Latitud + Longitud Obtener Direccion Origen Depurar HTML Obtener Caminos Si No Destino Ambiguo Generar Trayectoria Final Generar Destinos Alternativos Sintentizar texto de Trayectoria Codificar archivo de Audio Página 63 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Servicio GEO Determinación de Puntos de Interés Establecer Conexion DB Establecer Posicion Geografica Origen Origen + Radio Establecer Filtro Circular Conexion + Rubro + Radio Obtener Puntos de Interes Trazar Trayectorias Obtener Trayectoria mas corta Sintentizar texto de Trayectoria Codificar archivo de Audio Página 64 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Diccionario de Datos del Modelo Tabla Campo Tipo Dato Clave Primaria Acepta Nulos ID_PUNTOINTERES int IDENTITY (1, 1) Si NOT NULL ID_RUBRO int NOT NULL DIRECCION varchar (100) NOT NULL LATITUD int NOT NULL LONGITUD int NOT NULL DESCRIPCION varchar (100) NOT NULL PUBLICIDAD varchar (100) NOT NULL ID_RUBRO int IDENTITY (1, 1) DESCRIPCION varchar (45) TBL_PUNTOSDEINTERES TBL_RUBROS Si NOT NULL NOT NULL Diagrama de Base de Datos Diagrama de Base de Datos diseñado con el Aplicativo MySQL Workbench versión 1.1.18. Plan de Pruebas (Test) El testeo de los aplicativos, tanto Móvil como Web serán realizados en modo Emulación, utilizando para esto los emuladores provistos por el entorno de desarrollo Netbeans y disponiendo de una publicación local vía servidor Apache Tomcat de los servicios Web necesarios para el correcto funcionamiento del desarrollo. En lo respectivo a la aplicación Móvil se deberán tener en cuenta las siguientes consideraciones a fin de poder realizar el Testeo Correctamente. En primer lugar, el proyecto deberá incorporar en su compilación, el paquete Location Based Api 1.0.1 Para esto se deberá configurar el mismo de la siguiente forma: Página 65 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Observar que en la Categoría Plataform se habilita el paquete mencionado. En caso de no realizar esta operación, el emulador trabajara como si estuviera ejecutando el Aplicativo sobre un teléfono móvil SIN receptor GPS. En este caso, al intentar instanciar la Clase de localización (Jsr179Locator) se producirá un error esperado. En segundo lugar, para el testeo del prototipo, se deberá disponer de un set de datos en formato XML conteniendo una serie de coordenadas geográficas a fin de emular la generación de eventos de localización por parte de la API de Localización JSR-179 utilizada para el desarrollo. El XML para emulación será el siguiente: TestGPS.xml Para lanzar el procedimiento de testeo se deberá ejecutar la aplicación móvil en el entorno de desarrollo Netbeans. Al abrirse el emulador seleccionar la opción External Events del menú MIDlet. Esto nos permitirá abastecer al emulador de eventos externos de distintos tipos. En la solapa Location tendremos la posibilidad de incorporar eventos que simulen la recepción de coordenadas por parte del GPS de un móvil. En esta solapa, en la opción Script, seleccionaremos el XML descripto anteriormente y lo ejecutaremos. A partir de ahora la aplicación ya está en condiciones de instanciar correctamente su clase de localización (Jsr179Locator) y abastecerse de coordenadas simuladas. En caso de no realizar esta operación, el aplicativo permanecerá en el estado de “Localización de Satélites”, estado análogo al de un móvil real en el momento en que aun no ha recibido coordenadas de los Satélites. Página 66 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática En lo que respecta al modulo de Servicios Web, a fin de lograr un testeo satisfactorio se deberá poseer una conexión a Internet Habilitada ya que si bien, en un hipotético ambiente productivo, esta disponibilidad está implícita, en modo de emulación se debe tener esto en consideración antes de lanzar las pruebas. Modulo de Localización Escenario: Se deberá lanzar el aplicativo, y al ingresar al Menú Principal presionar Tecla Derecha del Móvil mas el Nro. 1. Esto lanzara la opción número uno del menú principal (LOCALIZACION). Pruebas a realizar y Resultados Esperados: 1. Dentro del modulo de Localización, al Presionar Botón derecho (Empezar Acción de Localización), Se deberá escuchar un mensaje como el siguiente: “Localizando Satélites, aguarde unos minutos…”. 2. Al realizarse las pruebas sobre un emulador, se deberán ingresar eventos Externos al mismo. En consecuencia, seleccionar el Menú MIDlet y la opción External Events del emulador. Luego elegir el archivo XML de coordenadas de prueba y lanzar los eventos externos mediante el botón PLAY. Esto simulara la localización positiva de satélites con las coordenadas configuradas en el archivo XML. 3. Presionar nuevamente el Botón derecho (Empezar Acción de Localización) y se deberá recibir el mensaje auditivo con la Localización correspondiente, conteniendo la dirección Postal obtenida desde el servicio web invocado por el modulo. 4. Presionar el Botón izquierdo del Móvil (Salir). Se deberá retornar al menú principal, recibiendo un mensaje auditivo informándonos de tal acción. Modulo de Procesamiento de Trayectoria Escenario: Se deberá lanzar el aplicativo, y al ingresar al Menú Principal presionar Tecla Derecha del Móvil mas el Nro. 2. Esto lanzara la opción número dos del menú principal (PROCESAMIENTO DE TRAYECTORIA). Pruebas a realizar y Resultados Esperados: 1. Dentro del modulo de Procesamiento de Trayectoria, al Presionar Botón derecho mas el Nro. 1 del menú del modulo (Empezar Acción), se deberá escuchar un mensaje como el siguiente: “Localizando Satélites, aguarde unos minutos…”. 2. Al realizarse las pruebas sobre un emulador, se deberán ingresar eventos Externos al mismo. En consecuencia, seleccionar el Menú MIDlet y la opción External Events del emulador. Luego elegir el archivo XML de coordenadas de prueba y lanzar los eventos externos mediante el botón PLAY. Esto simulara la localización positiva de satélites con las coordenadas configuradas en el archivo XML. 3. Presionar nuevamente el Botón derecho mas el Nro. 1 del menú del modulo y se deberá recibir el mensaje auditivo “Error se Servicio GPS” dado que el texto correspondiente a la dirección Destino deseada esta vacio. En consecuencia se deberá ingresar un texto con una dirección valida (Congreso 3940 Coglhan Buenos Aires Argentina) y presionar nuevamente el Botón derecho mas el Nro. 1 del menú del modulo (Empezar Acción). Luego de esto se deberán recibir mensajes secuenciales conteniendo los pasos a seguir desde la dirección determinada por el GPS del móvil (a través de la coordenadas obtenidas); hacia la dirección destino ingresada por el usuario. 4. En caso de que el usuario ingrese una dirección destino ambigua, la cual podría llegar a tener varias interpretaciones en cuanto a Destino, el servicio deberá devolver al usuario un mensaje informando que “se encontraron varios destinos posibles”, luego de esto, deberá informar los mismos uno a uno. 5. Ejemplo, si ingresamos Congreso 3940 Buenos Aires Argentina, El sistema deberá informar las Ciudades o Localidades en las cuales se pueda ubicar una Calle llamada Congreso con la altura 3940. 6. Al presionar Botón derecho mas el Nro. 2 del menú del modulo (Oír Ingreso), en caso de no haber ingresado ninguna dirección valida en el campo de texto para tal fin, se deberá recibir un mensaje auditivo informando que debe ingresar un texto valido. De lo contrario, se reproducirá en el parlante del móvil el texto ingresado por el usuario. 7. Presionar el Botón izquierdo del Móvil (Salir). Se deberá retornar al menú principal, recibiendo un mensaje auditivo informándonos de tal acción. Modulo Caminante Escenario: Se deberá lanzar el aplicativo, y al ingresar al Menú Principal presionar Tecla Derecha del Móvil mas el Nro. 3. Esto lanzara la opción número tres del menú principal (MODO CAMINANTE). Pruebas a realizar y Resultados Esperados: 5. Dentro del modulo de Localización, al Presionar Botón derecho (Empezar / Terminar), Se deberá escuchar un mensaje como el siguiente: “Localizando Satélites, aguarde unos minutos…”. 6. Al realizarse las pruebas sobre un emulador, se deberán ingresar eventos Externos al mismo. En consecuencia, seleccionar el Menú MIDlet y la opción External Events del emulador. Luego elegir el archivo XML de coordenadas de prueba y lanzar los eventos externos mediante el botón PLAY. Esto simulara la localización positiva de satélites con las coordenadas configuradas en el archivo XML. Página 67 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Presionar nuevamente el Botón derecho (Empezar / Terminar) y se deberá recibir el mensaje auditivo con la Localización correspondiente, conteniendo la dirección Postal obtenida desde el servicio web invocado por el modulo. Luego de 20 segundos el modulo nuevamente deberá reproducir la nueva localización del usuario en caso de que las condiciones sigan de manera normal (señal de satélites correcta). Presionar nuevamente el Botón derecho (Empezar / Terminar) y se dejara de recibir mensajes informando la localización de usuario. Presionar el Botón izquierdo del Móvil (Salir). Se deberá retornar al menú principal, recibiendo un mensaje auditivo informándonos de tal acción. 7. 8. 9. 10. Modulo de Ubicación de puntos de Interés en Radio Escenario: Se deberá lanzar el aplicativo, y al ingresar al Menú Principal presionar Tecla Derecha del Móvil mas el Nro. 4. Esto lanzara la opción número cuatro del menú principal (PUNTOS DE INTERES EN RADIO). Pruebas a realizar y Resultados Esperados: 8. Dentro del modulo de ubicación de puntos de Interés en Radio, al Presionar Botón derecho mas el Nro. 1 del menú del modulo (Empezar Acción), se deberá escuchar un mensaje como el siguiente: “Localizando Satélites, aguarde unos minutos…”. 9. Al realizarse las pruebas sobre un emulador, se deberán ingresar eventos Externos al mismo. En consecuencia, seleccionar el Menú MIDlet y la opción External Events del emulador. Luego elegir el archivo XML de coordenadas de prueba y lanzar los eventos externos mediante el botón PLAY. Esto simulara la localización positiva de satélites con las coordenadas configuradas en el archivo XML. 10. Presionar nuevamente el Botón derecho mas el Nro. 1 del menú del modulo y se deberá recibir el mensaje auditivo “Error se Servicio GPS” dado que el texto correspondiente al Rubro Comercial deseado esta vacio. En consecuencia se deberá ingresar un texto con un Rubro Comercial al cual se quiera llegar (Farmacia) y presionar nuevamente el Botón derecho mas el Nro. 1 del menú del modulo (Empezar Acción). Luego de esto se deberán recibir mensajes secuenciales conteniendo los pasos a seguir desde la dirección determinada por el GPS del móvil (a través de las coordenadas obtenidas); hacia la dirección correspondiente al comercio más cercano dentro de los 400 mts del radio del usuario, que se corresponda con el rubro comercial deseado. Para verificar esto se deberá acceder a la tabla tbl_puntosdeinteres de la base de datos tesisspeechgps de servidor mysql disponible para el proyecto y evaluar la exactitud del proceso de cálculo de radio y determinación de los posibles destinos. 11. En caso de que el usuario ingrese un rubro comercial el cual no contenga puntos de interés cargados deberá escucharse un mensaje informado que “No hay puntos de interés en Radio”. 12. Al presionar Botón derecho mas el Nro. 2 del menú del modulo (Oír Ingreso), en caso de no haber ingresado ningún Rubro Comercial en el campo de texto para tal fin, se deberá recibir un mensaje auditivo informando que debe ingresar un texto valido. De lo contrario, se reproducirá en el parlante del móvil el texto ingresado por el usuario, ejemplo (FARMACIA). 13. Presionar el Botón izquierdo del Móvil (Salir). Se deberá retornar al menú principal, recibiendo un mensaje auditivo informándonos de tal acción. Ayudas Auditivas Extra Escenario: Se deberá lanzar el aplicativo, y al ingresar al Menú Principal presionar Tecla Derecha del Móvil mas el Nro. 2. (PROCESAMIENTO DE TRATECTORIA) o el Nro4. (PUNTOS DE INTERES EN RADIO). Estos módulos poseen una ayuda auditiva extra a la hora de introducir texto en los campos destinados para tal fin. Pruebas a realizar y Resultados Esperados: 1. 2. 3. Comenzamos ingresando letras o números el móvil en los campos de texto destinados para tal fin. El sistema, reproducirá de manera auditiva e individualmente que letra o número presiono el usuario en el teclado. Dado que este procedimiento puede enlentecer la operatoria de los módulos, esta funcionalidad puede ser desactivada desde el menú principal seleccionando la opción Nro. 5 (Activar/Desactivar ayuda auditiva). En caso de desactivar la misma, todo ingreso en los campos de texto de los módulos no será reproducido en el parlante del móvil. Página 68 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Capítulo 5 – Conclusiones Finales, Futuras Líneas de Investigación y Agradecimientos Conclusiones Finales Las personas con deficiencia visuales están imposibilitadas, sin una adaptación adecuada, a hacer uso de las nuevas tecnologías. Es por esto que la Tiflotecnología se ha convertido en una herramienta indispensable para estas personas ya que les permite acceder a las nuevas tecnologías, ya sea mediante equipos específicos o adaptaciones, de acuerdo con las necesidades u objetivos de cada usuario. En lo que respecta a Telefonía Móvil y PDA’s, si bien existen equipos para los que se han desarrollado magnificadores y lectores de pantalla, los costos de estos desarrollos hacen difícil el acceso a los mismos por parte de algunos sectores sociales. Con lo cual es imperativo el desarrollo comunitario de capacidades tecnológicas de libre acceso y disponibilidad. La empresa Google ha avanzado muchísimo en lo que a “Disponibilidad de información” se refiere, teniendo como premisa la libre y gratuita distribución de software. Este tipo de políticas, la ha posicionado a la vanguardia en el mercado mundial de empresas desarrolladoras de Software. Y parece ser un incentivo para todo el mundo informático indicándonos que siguiendo ese camino se pueden lograr objetivos económicos y su la vez brindar un servicio útil a la comunidad. Es esta problemática la que se intento resolver con este trabajo, es decir, minimizar los costos de un desarrollo, utilizando herramientas informáticas de libre utilización y distribución de sus productos resultantes, y a su vez generar un producto que facilite el acceso a la tecnología de GEO Localización por parte de personas con deficiencias Visuales y a un sin numero de información disponible y desarrollable en Internet en relación a esta tecnología. Como podemos demostrar, el desarrollo del prototipo con la solución propuesta, presenta una solución muy viable y a su vez extensible con un gran número de posibilidades a futuro, dado el gran protagonismo que adquirió de la telefonía Móvil en nuestras vidas y su constante y cada vez más estrecha relación con Internet. Si a esta propuesta se le sumara la llamada “tecnología de reconocimiento de Voz” que permite identificar palabras de un usuario y asociarlas a comandos del teléfono Móvil y poder realizar todas las operaciones propuestas en el Aplicativo sin ninguna intervención del teclado del Móvil estaríamos frente a una solución completa en cuanto a la problemática que se les presenta a las personas con deficiencias visuales. Los resultados obtenidos de las pruebas efectuadas al prototipo realizado, fueron muy satisfactorios, solo se encontraron algunos problemas a la hora de generar un flujo muy grande de información por partes de los Servicios Web e intentar enviar el audio Codificado a los Usuarios, por las limitaciones de transporte de estos Servicios, por lo cual se implemento una solución alternativa al momento de necesitar enviar grandes flujos de información, que fue la de segmentar en partes estos mensajes y enviarlos de forma secuencial al usuario. Otro de los problemas que se identifico al inicio del desarrollo fue el de la imposibilidad de realizar una implementación de un sintetizador de voz íntegramente sobre el teléfono Móvil, siempre teniendo en cuenta la premisa de la necesidad de realizar un producto de distribución libre y gratuita. En consecuencia se opto por utilizar un sintetizador que corra sobre un Servidor común conectado a Internet, brindando las funcionalidades de Síntesis de Voz a través de un Servicio Web. De todas maneras, al realizar la implementación del modelo de Negocios para el proceso de información GPS en conjunto con el modelo del Sintetizador de voz se lograron equiparar los tiempos de respuesta y disponibilidad de la información, logrando que los mismos no sean significativamente superior a que si se hubiera implementado un sintetizador de voz dentro del Teléfono Móvil. Las herramientas de programación que hoy se disponen para diseñar sistemas sobre los dispositivos móviles son muy variadas y útiles, la utilización del IDE Netbeans, junto con las diferentes APIs ya provistas por el mismo (Ejemplo JSR179), hacen que el desarrollo sea mucho más fácil. Otra de las herramientas que ayudo al diseño del prototipo fue el emulador provisto por el Entorno de desarrollo, el cual permiten desarrollar y observar los resultados al momentos como si estuviéramos testeando el modelo en un Teléfono Móvil real y sin necesidad de realizar grandes inversiones en Hardware. Con el desarrollo de esta Tesis además se logró poner en práctica los conocimientos adquiridos durante el transcurso de la carrera, los cuales ayudaron significativamente a poder realizar de manera precisa cual debería ser el funcionamiento que del sistema propuesto, para que al momento de programar el mismo se cuente con toda la información necesaria para hacerlo. Por ser una tecnología que se va perfeccionando momento a momento y por el fuerte apoyo que tiene de grandes Empresas a nivel mundial, las principales barreras que tenía, como ser la velocidad y la seguridad ya están casi superadas. Gracias al crecimiento de la Tecnología y a la motivación de personas como nosotros en busca de realizar nuevos sistemas, es que continuamente siguen apareciendo nuevos y mejores usos del Teléfono Móvil, lo cual hace que se convierta en una poderosa herramienta que comienza a solucionar necesidades de diversos grupos sociales que tal vez hasta hoy no tenían posibilidad de acceder a determinada información, ampliamente disponible para otros grupos de personas. Página 69 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Estos tipos de desarrollos y enfoques, podrían cambiar considerablemente la manera en la que las personas se manejan diariamente con su entorno, pero a su vez podría incluso dar soluciones a nivel empresarial o comercial como se vera en alguna de las líneas de investigación a Futuro propuestas. Futuras Líneas de Investigación Reconocimiento de Voz La implementación de tecnología de reconocimiento de voz En Español permitiría independizar completamente al usuario de la manipulación del teléfono móvil por medio del teclado, dando esto un enfoque resolutivo integro a este modelo de solución y a la idea que lo inspira a su vez escalando el espectro de alcance de mercado, permitiendo dar soluciones a otro tipo de problemáticas como ser la manipulación de teléfonos móviles o dispositivos GPS dentro de los vehículos, siendo esta una de las causantes principales de accidentes de transito. Implementación Móvil de un Sintetizador de de Voz en Español La implementación de tecnología de síntesis de voz En Español incorporada a la funcionalidad de la Aplicación móvil permitiría independizar completamente al programa de la utilización de un servicio Web que brinde el servicio de síntesis. Agilizando de esta manera la operatoria. Buscador de Puntos de Interés dentro de Internet Mediante el desarrollo de un buscador normalizado de puntos de interés dentro de la gran cantidad de información que nos brinda Internet se podría independizar el modelo desarrollado de lo que en primera medida es la implementación de una base de datos. El servicio de Google llamado Local Business Center apunta a esto pero hoy en día esta solo disponible para Estados Unidos y no posee una API de implementación para desarrollar productos con esta información. Publicidad En este desarrollo se dejaron implementadas características que permitirían desarrollar el envió de pautas publicitarias habladas ya sea con ofertas o frases características a clientes que transiten por la ciudad y se aproximen a los comercios que deseen incorporar sus avisos a este servicio. Página 70 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática Agradecimientos El Autor quiere agradecer la guía recibida por parte del Profesor Luis Campos, de la Cátedra de Discapacidad, de la Facultad de Informática de la Universidad de Morón para la realización de este trabajo. A mis varios compañeros de trabajo, por facilitarme sus celulares y servirme de conejillos de Indias para las pruebas del aplicativo y ante todo, a mi madre por el apoyo eterno y por preguntarme un sin numero de veces como iba con el proyecto, motivo suficiente para terminarlo de la mejor manera posible. Referencias y Bibliografía Como elaborar y asesorar una investigación de Tesis – Primera Edición - Carlos Muños Razo 1998. Ceguera. Introducción, causas, prevención, rehabilitación - http://www.latinsalud.com/articulos/00131.asp?ap=4 Accesibilidad para discapacitados a través de teléfonos y servicios móviles adaptables - Diego Lopez de Ipiña - Amparo Rodríguez - Iñaki Velásquez - Facultad de Ingeniería - Universidad de Deusto - 2005 Code Factory: Haciendo accesibles los teléfonos móviles y PDAs a las personas con discapacidad - http://www.codefactory.es/es Spanish Adaptation of SAMPA and automatic phonetic transcription – Joaquin Llisterri – Universidad Autónoma de Barcelona – 1993. Yaiza Martínez (2008): Tendencias de la Telecomunicación. En Revista Tendencias21- martes 03 Junio 2008. Buenos Aires http://www.tendencias21.net/Convierten-el-telefono-movil-en-un-lector-para-invidentes_a2072.html Symbian OS - http://www.symbianone.com/content/view/4663/121/ Servicios Web con Netbeans 6.0. http://www.netbeans.org/kb/60/websvc/. Java a Tope – Java 2 Micro Edition – Sergio Galvez Rojas – Lucas Ortega Díaz – Universidad de Málaga. How Do I… Netbeans Community. http://www.netbeans.org/community/index.html Página 71 de 72 Rodrigo H. Elhaibe - 1330 0081 Localización Móvil asistida por Voz - Trabajo de Diploma Universidad de Morón – Facultad de Informática MySql Documentation. http://dev.mysql.com/doc/ The Mbrola Project – Mbrola Team – 1996 – 2006. Venezuelan Spanish – TTS in Perl – Manuel Rodriguez and Alistair Conkie – Universidad de Caracas - 2004 Diseño y creación de un corpus oral para su aplicación en el modelo de síntesis de voz Mbrola – Pérez Martinez, Alberto – Vicente Cabeza, Oliver – Universidad de Valladolid – 2002. Google Maps Api - code.google.com/apis/maps – Google. JSR 179: Location API for J2ME – Java Comunity Process – Final Release 2 ActiveState – The Dynamic Languages Company - www.activestate.com/activeperl Apache Tomcat 5.5 – The Apache Software Foundation - www.apache.org Harvesine Formula – Wikipedia - en.wikipedia.org/wiki/Haversine_formula Accesibilidad: hacia el desarrollo inclusivo - Nixa Espínola B. - Consultora de Amable. www.capire.info/2007/12/01/accesibilidad-hacia-el-desarrollo-inclusivo/ Página 72 de 72 Rodrigo H. Elhaibe - 1330 0081