Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Grado en Ingeniería Informática ...
←
→
Transcripción del contenido de la página
Si su navegador no muestra la página correctamente, lea el contenido de la página a continuación
Escuela Politécnica Superior Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal Grado en Ingeniería Informática Trabajo Fin de Grado Autor: Miguel Ros Amaya Tutor/es: Elena Lloret Pastor Mayo 2021
Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Autor Miguel Ros Amaya Tutor/es Elena Lloret Pastor Departamento de Lenguajes y Sistemas Informáticos Grado en Ingeniería Informática Escuela Politécnica Superior ALICANTE, Mayo 2021
Preámbulo El presente Trabajo de Fin de Grado consiste en el desarrollo de un sistema conversacional para responder preguntas sobre la actividad física personal. En la actualidad el uso de relojes inteligentes o pulseras de actividad ha crecido notable- mente. Es por ello, por lo que también han empezado surgir nuevas ideas a desarrollar que se pueden incorporar en dichos dispositivos. Debido al auge que están teniendo estos dispositivos y viendo la gran utilidad que podía llegar a tener la aplicación fueron algunos de los motivos por los que me decanté a realizar el trabajo sobre el desarrollo de un sistema conversacional para responder actividades físicas. Desde un primer momento me llamó la atención puesto que, veía que podía llegar a ser una aplicación muy interesante de llevar a cabo. Además, el estar ligado al deporte fue otro de los motivos por los que decidí involucrarme en este proyecto ya que hizo que me resultara aún más interesante porque al hacer uso de dicho dispositivo vi que dicha aplicación puede tener mucho futuro y ser yo mismo el que hiciera uso de ella. Todos estos motivos han sido los que me han servido de motivación para llevar a cabo dicho trabajo.
Agradecimientos En esta sección quisiera agradecer a todas las personas que han estado involucradas en la realización de este trabajo y durante mi etapa universitaria ya que, sin ellos no habría sido posible conseguir todo lo que he llevado a cabo. En primer lugar, agradecerle a toda mi familia todo el apoyo constante e incondicional brindado durante estos cuatro años en los cuales han habido momentos fáciles pero, sobre todo difíciles y ellos han sabido estar ahí sin esperar nada a cambio. Gracias a ellos y a todo lo que me han aportado durante mi vida, he podido llegar a donde estoy hoy día. También quisiera agradecerles a mis amigos que llevan compartiendo vida conmigo durante mucho tiempo todo el apoyo recibido. Ellos han sido capaces de estar ahí siempre, dándome consejos, compañía o conocimientos que me han hecho crecer como persona durante toda esta etapa y por lo que les estaré siempre agradecido. Agradecerle también a la universidad haberme dado la oportunidad de conocer personas con las que hoy día comparto mucho más que una simple carrera. Sin esas personas este camino hubiera sido mucho más difícil por lo que, les tengo que estar agradecido por todo lo que me han aportado y con las que espero seguir compartiendo mucho más tiempo. Por último, darle las gracias a mi tutora, Elena Lloret, por acompañarme durante esta etapa guiándome, ayudándome y aportándome conocimientos sin los cuales no habría sido posible acabar este Trabajo de Fin de Grado. Es a ellos a quien dedico este trabajo.
Son tus decisiones y no tus condiciones lo que determina tu destino Will Smith. ix
Índice general 1 Introducción 1 2 Objetivos 3 3 Marco Teórico 5 3.1 Inteligencia Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Bots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 Procesamiento de Lenguaje Natural . . . . . . . . . . . . . . . . . . . . . . . 10 3.4 Aplicaciones similares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4.1 Siri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4.2 Amazon Alexa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4.3 Cortana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.4.4 Google Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4 Diseño y desarrollo de la aplicación 17 4.1 Tecnologías utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.1.1 Tecnologías para el desarrollo general del TFG . . . . . . . . . . . . . 17 4.1.2 Tecnologías para el desarrollo del VoiceBot . . . . . . . . . . . . . . . 18 4.2 Planificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 Recopilación de información . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.4 Diseño de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.5 Diseño e implementación de la Base de Datos . . . . . . . . . . . . . . . . . . 25 4.5.1 Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.5.2 Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.6 Implementación de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.6.1 Escuchar al usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.6.2 Escuchar la consulta del usuario . . . . . . . . . . . . . . . . . . . . . 34 4.6.3 Analizar la consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.6.3.1 Consulta a la tabla Registro Diario . . . . . . . . . . . . . . 40 4.6.3.2 Consulta a la tabla Actividad . . . . . . . . . . . . . . . . . . 41 4.6.4 Emitir respuesta por voz . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5 Evaluación y resultados 45 5.1 Pruebas realizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.1.1 Pruebas realizadas a cada módulo . . . . . . . . . . . . . . . . . . . . 45 5.1.2 Pruebas realizadas a la aplicación completa . . . . . . . . . . . . . . . 47 5.2 Diseño del cuestionario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3 Resultados del cuestionario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.3.1 Probando consultas del cuestionario . . . . . . . . . . . . . . . . . . . 57 xi
xii Índice general 5.4 Análisis de errores y aspectos de mejora de la aplicación . . . . . . . . . . . . 59 5.4.1 Aspectos de mejora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6 Conclusiones y trabajo futuro 61 Bibliografía 63 7 Anexo 65 7.1 Ejemplos del funcionamiento de la aplicación . . . . . . . . . . . . . . . . . . 65 7.2 Cuestionario para la evaluación de la aplicación . . . . . . . . . . . . . . . . . 66 7.3 Cuestiones realizadas por los participantes del cuestionario . . . . . . . . . . 68
Índice de figuras 3.1 Tipos de Machine Learning. Fuente: https://towardsdatascience.com/what -are-the-types-of-machine-learning-e2b9e5d1756f . . . . . . . . . . . . 6 3.2 Porcentaje de tráfico mundial de internet. Fuente: https://www.itsecurityguru .org/2015/12/10/report-humans-take-back-the-web-from-the-bots/ . . 8 3.3 Estructura con los análisis del Procesamiento de Lenguaje Natural. Fuente: http://pln-ri-hmm.orgfree.com/pln.html . . . . . . . . . . . . . . . . . . 11 3.4 Ejemplo aplicación Siri. Fuente: https://www.cnet.com/es/noticias/que -es-siri/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5 Dispositivo Alexa. Fuente: https://www.electrocosto.com/domotica/amazon -alexa-echo-plus-generacion-2-negro . . . . . . . . . . . . . . . . . . . . 14 3.6 Dispositivo Google Home. Fuente: https://www.tuttoandroid.net/google/ google-home-interrompe-la-riproduzione-musicale-senza-motivo-442064/ 15 4.1 Fases del proyecto. Fuente: Elaboración propia . . . . . . . . . . . . . . . . . 19 4.2 Diseño de los procesos del VoiceBot. Fuente: Elaboración propia . . . . . . . 22 4.3 Diseño del proceso “Analizar consulta”. Fuente: Elaboración propia . . . . . . 24 4.4 Diseño de la Base de Datos. Fuente: Elaboración propia . . . . . . . . . . . . 27 4.5 Esquema físico de la base de datos. Fuente: Elaboración propia . . . . . . . . 29 4.6 Trigger asociado a la tabla Actividad. Fuente: Elaboración propia . . . . . . . 31 4.7 Trigger asociado a la tabla Correr/Andar. Fuente: Elaboración propia . . . . 31 4.8 Consulta para añadir datos a la tabla Correr/Andar. Fuente: Elaboración propia 32 4.9 Módulo Escuchar al usuario. Fuente: Elaboración propia . . . . . . . . . . . . 34 4.10 Módulo Escuchar consulta. Fuente: Elaboración propia . . . . . . . . . . . . . 36 4.11 Consulta analizada lingüísticamente a nivel morfosintáctico. Fuente: Elabora- ción propia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.12 Patrón introducido en el Matcher. Fuente: Elaboración propia . . . . . . . . . 39 4.13 Conexión con la base de datos. Fuente: Elaboración propia . . . . . . . . . . . 40 4.14 Sentencia para la extracción de datos de la tabla Registro Diario. Fuente: Elaboración propia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.15 Sentencia para la extracción de datos entre dos fechas de la tabla Registro Diario. Fuente: Elaboración propia . . . . . . . . . . . . . . . . . . . . . . . . 41 4.16 Sentencias para la extracción del tipo de actividad. Fuente: Elaboración propia 41 4.17 Sentencias para la extracción de datos generales de una actividad. Fuente: Elaboración propia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.18 Sentencias para la extracción de datos específicos de la actividad de tipo Co- rrer/Andar. Fuente: Elaboración propia . . . . . . . . . . . . . . . . . . . . . 42 4.19 Módulo conversión texto a voz. Fuente: Elaboración propia . . . . . . . . . . 43 4.20 Ejemplo del funcionamiento completo de la aplicación. Fuente: Elaboración propia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 xiii
xiv Índice de figuras 5.1 Porcentaje de cada sexo que ha participado en el cuestionario. Fuente: Elabo- ración propia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.2 Edades por rangos de los participantes en el cuestionario. Fuente: Elaboración propia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.3 Información (en porcentaje) sobre la posesión de pulseras de actividad física/- relojes inteligentes entre los usuarios. Fuente: Elaboración propia . . . . . . . 54 5.4 Información (en porcentaje) sobre si los usuarios consideran que es útil la posibilidad de interactuar con la pulsera de actividad física/reloj inteligente mediante voz. Fuente: Elaboración propia . . . . . . . . . . . . . . . . . . . . 55 7.1 Ejemplo del funcionamiento correcto de la aplicación tras introducirle una consulta sobre la frecuencia cardíaca. Fuente: Elaboración propia . . . . . . . 65 7.2 Ejemplo del funcionamiento correcto de la aplicación tras introducirle una consulta sobre las horas dormidas un día que no tiene almacenado. Fuente: Elaboración propia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 7.3 Ejemplo del funcionamiento correcto de la aplicación tras realizarle varias con- sultas sobre el día de ayer. Fuente: Elaboración propia . . . . . . . . . . . . . 66 7.4 Ejemplo del funcionamiento correcto de la aplicación tras realizarle varias con- sultas sobre una actividad. Fuente: Elaboración propia . . . . . . . . . . . . . 66
Índice de tablas 5.1 Consultas planteadas y probadas en el Voicebot. Fuente: Elaboración propia. 51 5.2 Resumen de los resultados obtenidos tras las pruebas. Fuente: Elaboración propia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3 Consultas sobre la actividad física personal obtenidas en el cuestionario. Fuen- te: Elaboración propia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.4 Consultas fuera del alcance de la aplicación obtenidas en el cuestionario. Fuen- te: Elaboración propia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.5 Consultas sobre la actividad física personal obtenidas en el cuestionario junto con el su resultado tras introducirlas en la aplicación (Xindica las preguntas contestadas correctamente. X indica las preguntas contestadas erróneamente. - indica las preguntas contestadas erróneamente debido a que la base de datos no incluye esta información). Fuente: Elaboración propia. . . . . . . . . . . . 58 5.6 Evaluación de las pruebas realizadas con las cuestiones recogidas en el cues- tionario. Fuente: Elaboración propia. . . . . . . . . . . . . . . . . . . . . . . . 59 7.1 Conjunto de preguntas sobre la actividad física personal obtenidas en el cues- tionario junto con el su resultado tras introducirlas en la aplicación (Xindica las preguntas contestadas correctamente. X indica las preguntas contestadas erróneamente. - indica las preguntas contestadas erróneamente debido a que la base de datos no incluye esta información). Fuente: Elaboración propia. . . 69 xv
1 Introducción Hoy en día el uso de las pulseras de actividad física o también llamados relojes inteligentes ha aumentado de una forma notable, convirtiéndose en un accesorio cotidiano de mucha gente. Un ejemplo claro lo podemos ver en la marca Huawei, la cual este último año ha aumentado las ventas de los relojes inteligentes un 118,5%1 . O también si miramos a nuestro alrededor o cuando vamos por la calle podemos observar cómo mucha más gente, comparado con hace un par de años, lleva relojes inteligentes. Es un accesorio tan polivalente que la gente lo utiliza para todo tipo de situaciones, ya que al estar en auge tenemos muchos modelos los cuales nos permiten tanto utilizarlos para el día a día, (por ejemplo, controlar los pasos que recorremos al día), como para realizar actividades físicas. Este uso tan masivo se debe a las múltiples acciones y funciones que contiene un reloj inteligente, algunas de ellas pueden ser: mirar alguna notificación que te ha llegado al móvil, medir el ritmo cardíaco, medir los pasos recorridos durante el día, aparte de todas las funciones que puede tener un reloj digital, como dar la hora, cronómetro, etc. Debido a todo esto la gente ha pasado de comprarse un reloj tradicional, a aprovecharse y comprarse un reloj inteligente, puesto que ofrece muchas más funciones y el precio es muy similar. Un gran uso, y uno de los motivos principales por el cual mucha gente se compra un reloj inteligente es por la monitorización que te ofrece a la hora de realizar alguna actividad física, ya que nos permite obtener información muy relevante sobre la actividad física que estamos realizando, como correr, ir en bici, nadar, etc. Esta información depende del reloj que tengas, ya que algunos ofrecen más datos que otros, así como algunos permiten monitorizar más actividades físicas que otros. Algunos de los datos que nos ofrecen pueden ser el ritmo que llevas cuando estás corriendo, la distancia recorrida, altitud acumulada, etc. En algunos de alta gama podemos incluso indicarle una ruta por la montaña y que el reloj nos vaya indicando por dónde debemos ir. Uno de los problemas o inconvenientes asociados al uso de estos relojes es que debido a las dimensiones que tiene, la información que nos muestra no aparece con un gran tamaño y por lo tanto, muchos usuarios podrían tener dificultad para verlo. Este problema lo podemos encontrar tanto para personas que lo utilizan para un uso diario como para las personas que realizan alguna actividad física. Pero se acentúa más a la hora de realizar deporte, ya que al estar en movimiento es más difícil ver toda la información en una pantalla tan pequeña, además de que normalmente toda la información que nos ofrece durante la actividad física no solo aparece en una pantalla por lo que el usuario tiene que navegar por las diferentes pantallas para obtener la información que quiere, dificultando aún más su uso, y suponiendo 1 https://computerhoy.com/noticias/tecnologia/huawei-aumenta-ventas-relojes-inteligentes -658491 (accedido Febrero 2021) 1
2 Introducción un riesgo, puesto que dejaría de prestar atención por donde está yendo y este hecho, podría ocasionarle un accidente. Por tanto, una posible solución que contribuiría a mejorar las capacidades de los relojes inteligentes y permitir así consultar la información a la vez que se está haciendo ejercicio, sería la creación de un sistema conversacional para monitorizar y responder preguntas sobre la actividad física personal. Esta solución permitiría estar informados de toda la información que el reloj les proporciona sin la necesidad de estar mirando el reloj, sino que con unas simples preguntas se tendría toda la información deseada. Todo esto proporcionaría una funcionalidad adicional e inclusiva, puesto que personas con dificultad a la hora de leer, podrían utilizar el reloj sin ningún problema. Además, contribuiría a evitar el riesgo de accidente durante la actividad física que estén realizando. Por otro lado, también podría incentivar más a que la gente se pase al lado de los relojes inteligentes y esto podría hacer que la gente se viera más incentivada para hacer deporte, ya que la monitorización de las actividades físicas puede servir de motivación para superarse día tras día al llevar un control de todo lo que está haciendo. Precisamente, es esta la idea en la que se va a basar este TFG, y para ello, se va a proponer el desarrollo de una aplicación que tenga la capacidad de proporcionar la información que el usuario solicite en cualquier momento sobre los datos que almacena la pulsera de actividad física, y mediante voz.
2 Objetivos El objetivo principal del proyecto es el desarrollo de un sistema conversacional (VoiceBot) para monitorizar y responder preguntas sobre la actividad física que realiza una persona. Por lo tanto, el objetivo general se conseguirá logrando con éxito los siguientes objetivos específicos: • Aprender nociones básicas sobre el Procesamiento de Lenguaje Natural, y en concreto sobre los sistemas conversacionales. • Planificar el proyecto de una forma adecuada para cumplir con los objetivos propuestos. • Analizar y decidir las tecnologías más apropiadas para desarrollar el trabajo. • Analizar las diferentes pulseras de actividad física que actualmente hay en el mercado para obtener toda la información que le ofrecen a los usuarios. • Diseñar y desarrollar de un VoiceBot para interactuar con la persona usuaria a partir de la información sobre su actividad física. • Adquirir los conocimientos necesarios para utilizar de forma correcta las herramientas que se utilicen en el desarrollo de la aplicación. • Diseñar e implementar una base de datos que pueda albergar toda la información que ofrece una pulsera de actividad física. • Estudiar e implementar diferentes técnicas para poder evaluar lo que el usuario solicita y emitir una respuesta. • Crear una aplicación que integre un sistema de búsqueda de respuestas (question ans- wering). • Evaluar la aplicación desarrollada y valorar su potencial, así como sus aspectos de mejora. 3
3 Marco Teórico En este apartado vamos a ver algunos de los conceptos básicos relacionados con el proyecto que se va a desarrollar y que son necesarios comprender. Estos conceptos son: Inteligencia Artificial, Bots, Procesamiento de Lenguaje Natural y aplicaciones que tienen similitud con el proyecto propuesto. Además, podremos observar que este último concepto es un tema en auge con una evolución constante y cada día está más presente en la sociedad. 3.1 Inteligencia Artificial La Inteligencia Artificial (IA) es uno de los campos que este proyecto engloba. Es un concepto bastante conocido puesto que a mucha gente le hemos escuchado hablar, pero no todo el mundo sabe cómo funciona o cuál es su función realmente. Por ello, a continuación, veremos más en detalle algunos de los conceptos básicos de la Inteligencia Artificial como: qué es, cuál es su función, etc. Lo primero que tenemos que saber es qué es la Inteligencia Artificial, pero su respuesta es compleja ya que, podemos encontrar distintas definiciones al respecto. Si lo que buscamos es una definición simple se puede decir que la Inteligencia Artificial es el intento de imitar la inteligencia humana usando un robot o un programa. Sin embargo, Takeyas (2007) definió la IA como una rama de las ciencias computacionales encargada de estudiar modelos de cómputo capaces de realizar actividades propias de los seres humanos basándose en dos de sus características primordiales: el razonamiento y la conducta. También podemos encontrar otra definición; esta viene dada por parte de John McCarthy que definió la Inteligencia Artificial como “la ciencia e ingenio de hacer máquinas inteligentes, especialmente programas de cómputo inteligentes” (McCarthy, 2007). Por lo tanto, podemos llegar a la conclusión de que la Inteligencia Artificial es la combinación de algoritmos cuyo propósito es que una máquina adopte el comportamiento de un humano con todas sus características. Dentro de la Inteligencia Artificial, existen varios enfoques para abordar un problema. Los más usados recientemente se basan en: • Machine Learning o Aprendizaje Automático, en esta rama lo que se pretende es que las máquinas tengan la capacidad de aprender por sí solas sin estar programadas para ello, siendo capaces de revisar cientos de datos y conseguir predecir comportamientos futuros. Un ejemplo sería los coches autónomos, capaces de detectar si tienen algún vehículo cercano y así evitar algún accidente. En esta rama encontramos tres tipos de aprendizaje automático: 5
6 Marco Teórico – Supervisado: en este caso los datos ya han sido etiquetados para indicarle al algo- ritmo cómo se tiene que comportar. Un ejemplo en este caso sería pasarle imágenes de números para que luego cuando se le pase una foto nueva pueda indicarnos qué dígito es. – No supervisado: en este caso los algoritmos reciben datos, pero esta vez sin etiqueta y tienen que ser ellos mismos los que encuentren una forma de clasificarlos. Por ejemplo, pasarle datos de diferentes personas y que el algoritmo consiga clasificarlos en diferentes grupos. – De refuerzo: en este caso el algoritmo aprende a partir de la experiencia, cuando acierta recibe una recompensa. A los algoritmos de este tipo no se les indica que acciones deben tomar, sino que ellos mismos deben experimentar, y ver cuáles son las acciones que los llevan a un resultado positivo. Este tipo de aprendizaje automático se puede utilizar en sistemas de navegación de robots, drones y coches autónomos. Figura 3.1: Tipos de Machine Learning. Fuente: https://towardsdatascience.com/ what-are-the-types-of-machine-learning-e2b9e5d1756f • Deep Learning, también es un tipo de Machine Learning, pero a diferencia de los tipos comentados anteriormente, Deep Learning utiliza redes neuronales. Esta rama es uti- lizada para resolver problemas muy complejos y que necesitan grandes cantidades de datos. El Deep Learning consiste en redes neuronales, organizadas en capas conectadas entre sí, y formadas por neuronas. Su función es reconocer patrones en los diferentes datos de entrada. Algunas de las aplicaciones que tiene esta rama es la visión artificial, identificación de vehículos, reconocimiento de voz, etc. • Sistemas basados en reglas, es otro enfoque de la Inteligencia Artificial basado en resol- ver situaciones complejas haciendo uso de reglas deterministas. Este enfoque, es capaz de conseguir sistemas automáticos que se comportan como humanos, permitiendo así, que sean los propios sistemas los que tomen las decisiones. Algunos ejemplos donde
3.2. Bots 7 se aplica dicho enfoque son los siguientes: diagnóstico de enfermedades, transiciones bancarias, control del tráfico. Dentro de la Inteligencia Artificial tenemos diferentes áreas, una de ellas es el Procesamiento del Lenguaje Natural y en la que nos centraremos, pero esta la comentaremos más adelante y con mayor profundidad (sección 3.3), ya que es un campo importante del proyecto propuesto. Ahora vamos a ver algunas de las aplicaciones que tiene la Inteligencia Artificial: • Finanzas: Los bancos usan este campo para organizar operaciones, invertir acciones o administrar propiedades. Además de detectar pagos o reclamos fuera de lo normal. • Servicio de atención al cliente: Muchas empresas ya tienen implementados algunos chatbots que se encargan de mantener una conversación con el cliente para resolverles cualquier problema, reduciendo así costes de personal. • Reconocimiento de imágenes: aplicaciones que son capaces de etiquetar imágenes o aplicaciones capaces de detectar productos falsificados. • Detección y clasificación de objetos: se encarga de detectar cierto objeto y dar una respuesta. Un ejemplo de aplicación podría ser un vehículo autónomo, ya que tiene que detectar los diferentes objetos y situaciones en la calzada y emitir una respuesta. Una vez ya tenemos claro el concepto de Inteligencia Artificial podemos ver que esta va a estar presente en nuestro proyecto ya que al diseñar un VoiceBot (explicado en la sección 3.2) necesitaremos que nuestra aplicación sea capaz de dar respuesta a lo que el usuario solicite sin tenerlo programado, sino que ella sea capaz de analizar la pregunta y formular la respuesta. 3.2 Bots El concepto de bots es otro tema que está muy ligado al proyecto, puesto que es objetivo al que queremos llegar. Actualmente el tema de los bots está creciendo cada vez más, dónde cada día se potencia más la investigación en este tema y su uso ha aumentado de manera exponencial a pesar de no ser totalmente conscientes. Un ejemplo de ello lo podemos ver en los datos extraídos por la Corporación Internacional de datos (IDC)1 , ya que ha dicho que el 50% de las plataformas digitales de empresas comerciales utilizarán bots que interactúen con los clientes. Además, para el 2024 se espera que el 50% de las tareas repetitivas sean automatizadas2 . A continuación, vamos a comentar aspectos importantes sobre los bots como: qué es un bot, cómo funcionan, qué usos tienen y qué tipos hay. Se considera bot a un programa o software informático autónomo que es capaz de realizar alguna tarea de manera automática como si fuera un humano3 , por lo que los bots tienen rela- ción con la inteligencia artificial puesto que sin ella no se podrían llevar a cabo. Estos pueden 1 https://www.idcspain.com/ (accedido Mayo 2021) 2 https://www.anda.cl/influencia-bots-marketing-digital (accedido Febrero 2021) 3 https://raiolanetworks.es/blog/que-es-un-bot/ (accedido Marzo 2021)
8 Marco Teórico estar programados en cualquier lenguaje y dependiendo de complejidad de la programación que tengan podrán realizar tareas más simples o tareas más complejas. Con respecto a los usos que tienen los bots podemos encontrar dos grupos bien diferenciados (Figura 3.2), los bots con fines buenos y por otro lado los bots que tienen usos maliciosos (Molina León, 2019). Actualmente se estima que el 66% de bots que hay en internet se utiliza con fines maliciosos4 . Figura 3.2: Porcentaje de tráfico mundial de internet. Fuente: https://www.itsecurityguru.org/ 2015/12/10/report-humans-take-back-the-web-from-the-bots/ • Bots para fines buenos: los bots de este tipo son los que han sido creados con la finalidad de facilitar ciertas tareas que podrían realizar humanos. Dentro de este tipo de bots podemos encontrar diferentes usos: – Videojuegos: estos bots tienen como finalidad jugar de manera autónoma como lo haría una persona para poder enfrentarte a ellos. En la mayoría de juegos podemos encontrar bots donde sus capacidades aumentan o disminuyen dependiendo la dificultad que se elija. – Obtener información: son los encargados de recoger y analizar toda la información de un servidor web, y cuyo objetivo es realizarlo más rápido que un humano. Un ejemplo lo podemos encontrar en el CNN bot5 el cual tiene la función de contarte las noticias más importantes que han sucedido en todo el mundo. – Conversacionales: engloban todos los bots con los que podemos mantener una con- versación como si de un humano se tratase. Podemos encontrar tanto chatbots 4 https://www.enredia.es/que-son-los-bots-tipos-usos (accedido Febrero 2021) 5 Miguel Ángel Ossorio Vega. «Así funciona el chatbot de la CNN para Messenger» https:// www.media-tics.com/noticia/6447/medios-de-comunicacion/asi-funciona-el-chatbot-de-la-cnn -para-messenger.html (accedido Mayo 2021)
3.2. Bots 9 como VoiceBots, siendo la diferencia entre ambos que con los chatbots la comu- nicación es mediante texto y con los VoiceBots la comunicación es mediante voz. Aunque de estos últimos hablaremos más adelante de forma más detallada. • Bots maliciosos: los bots que se consideran de este tipo son los que tienen como finalidad realizar tareas malvadas. En este tipo de bots también encontramos diferentes usos: – Spam: este tipo de bots son los que tienen como objetivo enviar mensajes los cuales han sido definidos por su creador. Para ello se crea cuentas en la plataforma indicada y una vez dentro envían multitud de mensajes facilitando así el trabajo del usuario ya que si lo hiciera él tardaría mucho más tiempo. – Hacker: los bots que se encuentran dentro de este tipo son los encargados de robar o piratear lo que el usuario que los crea les ha indicado, además también pueden estar programados para distribuir virus camuflados en correos electrónicos, mensajes, etc. – Denegación de servicio: los bots que se incluyen en este tipo se encargan de que un número de máquinas bastante alto ataquen a algún servicio web con el objetivo de que este se sobrecargue y deje de funcionar. Pueden recibir el nombre de Botnet ya que este es el término que se usa para referirse a los bots informáticos que se ejecutan de manera automática y autónoma. Para conseguir una red de máquinas se va distribuyendo el bot por diferentes máquinas y desde la máquina con la cual se ha iniciado esa distribución es desde donde se puede manejar e indicar las acciones a realizar. De todos los tipos de bots comentados previamente, los bots conversacionales (VoiceBots o chatbots) son los que más nos interesan puesto que nuestro objetivo al fin y al cabo es crear uno centrado en las actividades físicas. Se considera bot conversacional a cualquier sistema que es capaz de responder automá- ticamente y de forma autónoma utilizando el lenguaje humano. Esta respuesta la podemos obtener tanto por texto como por voz incluso podemos encontrar bots conversacionales mix- tos, es decir, que reciban la pregunta mediante texto y respondan mediante voz y viceversa. Este tipo de bots (VoiceBots o chatbots) son unos de los más conocidos y están en pleno auge ya que cada día van apareciendo aplicaciones de bots conversacionales nuevos o dispo- sitivos que ya lo incluyen. Esto se debe a las diferentes funcionales que ofrecen, además al tener un uso tan sencillo facilita que la gente los utilice mucho más. Por lo tanto, podemos encontrar múltiples ejemplos: • Freddy de HelloFresh6 : es un chatbot que ofrece Facebook Messenger y con el cual podemos obtener ideas de que poder comer, obtener recetas o incluso jugar con el mediante preguntas sobre comida para ver cuánto sabes. 6 https://chatfuel.com/blog/posts/hellofresh-reduces-support-wait-times-with-chatfuel -messenger-bot (accedido Marzo 2021)
10 Marco Teórico • Alerta de Salud de la Organización Mundial de la Salud7 : este caso es un chatbot que ofrece la OMS para poder informarte en cualquier momento sobre cualquier duda sobre el coronavirus. Este bot solamente se puede utilizar mediante WhatsApp. En nuestro caso el bot que se va a diseñar en este proyecto tendría como canal de entrada y como canal de salida la voz, puesto que lo que nos interesa es realizar una pregunta sin tener que pararnos a escribirla y que escuchemos la respuesta ya que si mostráramos mediante texto lo que el usuario ha solicitado no tendría sentido. 3.3 Procesamiento de Lenguaje Natural El concepto de Procesamiento de Lenguaje Natural (PLN) también es importante enten- derlo puesto que es algo fundamental en nuestro proyecto, ya que la aplicación tiene que ser capaz de entender por ella misma qué es lo que se le está preguntando, además de ser una de las ramas de la Inteligencia Artificial y un concepto esencial para la realización de bots conversacionales. Por lo que a continuación veremos aspectos importantes sobre este tema para tener una idea clara. El PLN como ya hemos podido ver anteriormente es un campo de la Inteligencia Artificial, el cual tiene como objetivo conseguir que los humanos se consigan comunicar con las máquinas mediante el uso de cualquier lenguaje natural y sin utilizar un lenguaje formal8 . Adquirir este propósito es bastante difícil porque conseguir que una máquina consiga entender el lenguaje natural con el significado que le quiere dar el humano no es sencillo. Debido a esto aún se sigue investigando para conseguir que la máquina sea cada vez más capaz de entender el lenguaje tal y como lo puede llegar a entender un humano. Y gracias a ello las máquinas hoy en día pueden llegar a ser capaces de leer texto, escuchar una voz, interpretarlo, extraer el sentimiento y ver qué partes son las más importantes. Para poder llegar a tener la capacidad de realizar todo lo anterior el PLN debe de estar compuesto por diferentes análisis que varían dependiendo el objetivo al que se quiera llegar. Para ello vamos a ver qué tipos de análisis pueden componer el PLN9 : • Análisis morfológico o léxico: se encarga de analizar las palabras, extrayendo las raíces, sufijos, prefijos u otros fenómenos. Con la parte léxica obtenemos la raíz y con la parte morfológica podemos obtener el género y número. • Análisis sintáctico: se encarga de analizar de forma sintáctica todos los componentes de la oración y así poder ver como se combinan las diferentes palabras para formar estructuras gramaticales correctas. Por ejemplo, con en análisis sintáctico podrían saber cuál es el sujeto de la oración, si la palabra es el objeto directo en esa oración, etc. 7 Albert Cuesta.«WhatsApp y la OMS envían alertas sobre el virus mediante un chatbot» https://www.mobileworldlive.com/spanish/whatsapp-y-la-oms-envian-alertas-sobre-el-virus -mediante-un-chatbot (accedido Mayo 2021) 8 https://www.iic.uam.es/inteligencia/que-es-procesamiento-del-lenguaje-natural/ (accedido Mar- zo 2021) 9 http://pln-ri-hmm.orgfree.com/pln.html (accedido Abril 2021)
3.3. Procesamiento de Lenguaje Natural 11 • Análisis semántico: tiene como objetivo extraer el significado de la frase, resolviendo ambigüedades léxicas y estructurales. Para ello trata el significado de las palabras in- dividualmente y como todas ellas unidas dan significado a la oración. • Análisis pragmático: consiste en añadir información extra a partir del contexto. Este nivel es muy complejo por lo que dificulta su implementación. Seguidamente se muestra una imagen con la estructura que hay que seguir para realizar el análisis del Procesamiento de Lenguaje Natural (Figura 3.3): Figura 3.3: Estructura con los análisis del Procesamiento de Lenguaje Natural. Fuente: http://pln-ri-hmm.orgfree.com/pln.html Al tener como objetivo crear un sistema conversacional necesitaremos aplicar PLN en el proceso que diseñemos y tener en cuenta todos los tipos de análisis lingüísticos, ya que es importante toda la información y cuanto más detallada, mejor. Debido a todo lo que puede realizar el PLN este tiene múltiples aplicaciones las cuales veremos a continuación: • Sistemas conversacionales: han ido evolucionando ya que al principio solamente eran capaces de reconocer ciertas palabras y ahora son capaces de mantener una conversación con un humano. • Traducción automática: se utiliza para traducciones simples puesto que, las complejas no ofrecen cierta fiabilidad. Pero está en constante mejora. • Resúmenes de textos automáticos: otra utilidad que tiene el PLN es ofrecernos resúme- nes para ver de una forma más rápida si el contenido es relevante. • Motores de búsqueda: el PLN está presente también en cualquiera que utilice Internet ya que gracias a ello podemos encontrar lo que buscamos, puesto que todos o la gran mayoría de motores de búsqueda que encontramos utilizan este campo para encontrar los archivos o las páginas web que estamos buscando. • Análisis del sentimiento de los textos: esta aplicación que nos ofrece el PLN se utiliza para leer una gran cantidad de mensajes y a partir de ellos sacar una opinión sobre algún tema, persona o acontecimiento.
12 Marco Teórico • Búsqueda de respuestas (Question Answering): esta utilidad que presenta el PLN tiene como objetivo localizar, extraer y presentar al usuario única y exclusivamente aquella información relevante a lo que ha solicitado en forma de pregunta y respuesta concreta. El uso del PLN puede aportar múltiples beneficios; seguidamente vamos a ver algunos de ellos: • Agiliza el trabajo a mano: permite realizar diferentes acciones que se realizan a mano de forma automática y de una forma mucho más rápida. • Análisis a gran escala: el PLN nos permite analizar y comprender gran cantidad de datos que pueden ser relevantes para la finalidad que queramos. • No malgastar tiempo: al ser capaz de extraer los datos importantes y mostrárnoslos nos ofrece encontrar lo que buscamos de una manera más rápida y haciéndonos que no malgastemos nuestro tiempo. Por lo tanto y como hemos podido comprobar el PLN va a estar muy presente en este proyecto siendo uno de los pilares fundamentales ya que, la comprensión y generación del texto es necesaria para obtener una respuesta acorde a la pregunta realizada. 3.4 Aplicaciones similares Por último, vamos a describir aplicaciones similares que tienen cierta similitud con el pro- yecto propuesto. 3.4.1 Siri Siri10 es uno de los asistentes de voz más famosos del mundo y esto se debe a que está incorporado en los dispositivos móviles, relojes y tablets de la marca Apple siendo esto a la vez un pequeño inconveniente ya que no está disponible para todo el mundo. Esta aplicación es una inteligencia artificial con funciones de asistente personal con su propia personalidad. Además, utiliza el PLN para responder preguntas, conversar con los usuarios, junto con muchas más funciones. El funcionamiento de esta aplicación es muy simple solamente tenemos que mantener el botón central y una vez se nos abre la aplicación decirle por voz lo que queramos. Esta aplicación también nos ofrece poder realizar consultas mediante texto, y la respuesta nos la muestra tanto por pantalla como por voz. Además, también nos ofrece poder programar alarmas, realizar llamadas, etc. 10 https://www.apple.com/es/siri/ (accedido Marzo 2021)
3.4. Aplicaciones similares 13 Figura 3.4: Ejemplo aplicación Siri. Fuente: https://www.cnet.com/es/noticias/que-es-siri/ 3.4.2 Amazon Alexa Amazon Alexa11 es el asistente de voz más presente en los hogares, y cada vez, es más utilizado. Siendo el 26,2% de los 146,9 millones de altavoces inteligentes vendidos en 2019 en todo el mundo12 . Este dispositivo es un asistente de voz controlado por voz, aquí encontramos una diferencia con respecto a Siri ya que no admite texto en la comunicación. Su funcionamiento es sencillo: tienes que decir Alexa y a partir de ese momento empieza a escucharte por lo que solamente tienes que decirle mediante voz lo que quieras y a continuación recibirás respuesta a través del altavoz. Por otra parte, se trata de un dispositivo que nos ofrece múltiples funciones, en este caso encontramos bastantes diferencias con respecto a Siri, ya que Siri solamente podía realizar cosas que se encontraban dentro del dispositivo móvil. En cambio, Alexa puede manejar otros dispositivos. Algunas de las funciones que nos ofrece Alexa son las siguientes: • Reproducir música. • Mandar un mensaje o realizar una llamada. • Hacer la compra en Amazon. • Manejar diferentes dispositivos de nuestra casa como las persianas o luces. 11 https://developer.amazon.com/es-ES/alexa (accedido Marzo 2021) 12 https://www.elperiodico.com/es/activos/innovadores/20200301/alexa-crece-espana-amazon -desarrolladores-skills-7865015 (accedido Febrero 2021)
14 Marco Teórico Figura 3.5: Dispositivo Alexa. Fuente: https://www.electrocosto.com/domotica/ amazon-alexa-echo-plus-generacion-2-negro 3.4.3 Cortana Por otro lado, tenemos el asistente virtual Cortana13 el cual te ayuda a ahorrar tiempo. Este asistente virtual ha sido creado por Microsoft para todos los dispositivos que tengan Windows 10. Su funcionamiento también es simple, solamente debemos pulsar sobre el botón de cortana y empezar a charlar. Como Siri, este asistente tiene un canal de comunicación tanto por voz como por texto y sus respuestas también son iguales ya que la recibimos escritas y por voz. Este asistente tiene diferentes configuraciones para adaptarlo a lo que más nos interese. Además, aparte de poderle preguntar cualquier cosa para que nos informe podemos realizar lo siguiente: • Configurar avisos y alarmas • Crear y administrar listas • Abrir aplicaciones en tu equipo. 3.4.4 Google Home Por último, tenemos el altavoz inalámbrico Google Home14 , este altavoz utiliza la inteli- gencia del asistente de Google, por lo tanto, su uso es similar. Podemos encontrar diferentes altavoces Google Home que varían en tamaño y diseño. Su funcionamiento es muy similar a los anteriores. Para poder ponerlo en marcha y para que nos dé respuesta a lo que solicitamos solo nos basta con decir ‘Ok Google’ y a partir de 13 https://support.microsoft.com/es-es/topic/-qué-es-cortana-953e648d-5668-e017-1341 -7f26f7d0f825 (accedido Marzo 2021) 14 https://www.pccomponentes.com/que-es-google-home-y-para-que-sirve (accedido Marzo 2021)
3.4. Aplicaciones similares 15 ese momento ya podremos solicitarle lo que queramos. Una de las diferencias que podemos encontrar respecto al resto de los dispositivos analizados es la posibilidad que nos da de poder conectarlo con Chromecast. Este último dispositivo comentado sirve para poder conectar tu ordenador, móvil o tableta al televisor. Por lo tanto, con Google Home tenemos la posibilidad de manejar la televisión por voz. Y, por último, otra funcionalidad que nos ofrece Google Home es la de manejar nuestra casa en el caso de que este domotizada, ofreciéndonos, por ejemplo, la posibilidad de encender o apagar las luces mediante voz, entre otras funcionalidades. Figura 3.6: Dispositivo Google Home. Fuente: https://www.tuttoandroid.net/google/ google-home-interrompe-la-riproduzione-musicale-senza-motivo-442064/ El objetivo del proyecto propuesto es realizar un VoiceBot más concreto sobre las acti- vidades físicas que realiza una persona. Por lo tanto, el análisis de estas aplicaciones nos ha permitido conocer de una forma más detallada cómo es su funcionamiento, además de, adquirir ideas para ser capaces de enfrentarnos al VoiceBot. A pesar de que nuestro objetivo es diferente ya que, lo que buscamos es realizar una aplicación enfocada solamente a aportar información relacionada con la actividad física realizada, por lo tanto se enfocará de otra ma- nera. Este análisis nos sirve de ayuda para su desarrollo, puesto que al no encontrar ninguna pulsera que permita consultar los datos mediante voz no la podemos usar de modelo.
4 Diseño y desarrollo de la aplicación En este apartado vamos a explicar detalladamente el proceso de desarrollo del VoiceBot para monitorizar y responder preguntas sobre la actividad física. 4.1 Tecnologías utilizadas Antes de adentrarnos en las diferentes etapas del desarrollo de la aplicación vamos a co- mentar las diferentes tecnologías utilizadas para poder llevar a cabo el proyecto. Estas han sido divididas en dos tipos: tecnologías para el desarrollo general del TFG y tecnologías para el desarrollo del VoiceBot. 4.1.1 Tecnologías para el desarrollo general del TFG Las tecnologías que encontramos a continuación son las que nos han permitido llevar a cabo todo el desarrollo del TFG de forma general, como puede ser la documentación, las reuniones periódicas, etc. • Latex1 : es una herramienta orientada a la creación de documentos escritos por lo que ha permitido la realización de la memoria de este proyecto con una composición tipográfica de alta calidad. Esta herramienta nos ofrece múltiples funcionalidades para realizar una documentación los más completa posible. También permite tener de forma organizada todos los apartados de la documentación, lo cual es importante cuando esta es muy extensa, haciendo así que su manejo sea mucho más sencillo. • Google Meet2 : es una aplicación que permite mantener videollamadas de manera muy sencilla. Gracias a ella, se ha podido realizar diferentes reuniones con la tutora para poder llevar a cabo un seguimiento del proyecto, así como resolver cualquier duda surgida. Ha sido una herramienta bastante útil puesto que, debido a la situación actual se han podido realizar las reuniones como si de forma presencial se tratase, pero con total seguridad. • Gmail3 : es una herramienta que ofrece un servicio de correo electrónico de forma gratuita. Esta ha permitido mantener una comunicación completa con la tutora ya que, gracias a dicha herramienta, hemos podido contactar, acordar reuniones o intercambiar archivos de forma rápida y sencilla. 1 https://www.latex-project.org/ (accedido Abril 2021) 2 https://meet.google.com/ (accedido Abril 2021) 3 https://www.gmail.com/mail/help/intl/es/about.html (accedido Mayo 2021) 17
18 Diseño y desarrollo de la aplicación 4.1.2 Tecnologías para el desarrollo del VoiceBot En este apartado vamos a comentar las tecnologías utilizadas para poder llevar a cabo todo el desarrollo del VoiceBot como puede ser su programación, diseño, etc. • Python4 : una de las herramientas más importantes en este proyecto ha sido Python, debido a que la aplicación ha sido programada con este lenguaje. Python al ser un lenguaje con bastante libertad a la hora de programar permite realizar múltiples cosas de una manera mucho más sencilla. Además, concede cierta flexibilidad y por lo tanto posibilita la oportunidad de centrarse en lo importante y no preocuparse tanto por los pequeños detalles. Otra de las ventajas que aporta el lenguaje de programación Python al proyecto son sus múltiples librerías que ofrece. En este proyecto se han utilizado varias librerías para poder llevar a cabo el PLN necesario para poder comprender lo que el usuario solicita, y que si se hubiera tenido que implementar en otro lenguaje hubiera sido mucho más complejo. También se han utilizado librerías que permiten conectar la aplicación a la base de datos (pymysql) donde estarían almacenados todos los datos del reloj y extraerlos. Y, por último, también se han utilizado librerías que son capaces de extraer en texto lo que se capta por el micrófono y viceversa (speech_recognition). Por todos estos motivos comentados son por lo que se ha elegido este lenguaje para desarrollar la aplicación. • MySQL Workbench5 : es otra de las herramientas utilizadas y con una importancia considerable en el proyecto. Es una herramienta visual para el diseño de bases de datos que también integra administración, diseño, gestión y mantenimiento de estas. Con todo lo comentado anteriormente lo que ha permitido esta herramienta ha sido poder implementar una base de datos lo más similar posible a la de un reloj inteligente, además de poder llevar un mantenimiento de todos los datos almacenados. Uno de los motivos por los que se ha utilizado esta herramienta ha sido por su fácil manejo además de mostrar de manera muy clara todos los datos almacenados. Por otro lado, también permite implementar los modelos de bases de datos de manera gráfica y luego automáticamente construye un script que se ejecuta para crear todas las tablas con sus atributos y sus relaciones. Por todo lo comentado anteriormente y también debido a que nos permite crear una conexión con cualquier programa Python a través de librerías específicas de una manera muy sencilla han sido los motivos por los que se ha escogido esta herramienta entre todas las disponibles. • Draw.io6 : es otra de las herramientas utilizadas a lo largo del proyecto ha sido Draw.io. Esta herramienta es un software de diagramas que permite realizar múltiples esquemas como UML, diagramas de red, flujo, procesos, etc. Es una herramienta con libertad para poder crear cualquier gráfico de una forma muy sencilla. Es por ello que ha sido la elegida para el desarrollo de todos los gráficos necesarios para poder llevar a cabo la aplicación. A pesar de ser una herramienta muy simple ha sido de gran ayuda para el desarrollo del proyecto puesto que, gracias a ella hemos podido llevar una organización 4 https://www.python.org/ (accedido Abril 2021) 5 https://www.mysql.com/products/workbench/ (accedido Abril 2021) 6 https://drawio-app.com/ (accedido Abril 2021)
4.2. Planificación 19 de todos los procesos de desarrollo de la aplicación, así como de la estructura que debía tener la base de datos. • Visual Studio Code7 : es un editor de código fuente que además permite la ejecución en su escritorio. Esta herramienta está disponible en los sistemas operativos Windows, Linux y MacOS. Es una herramienta muy completa puesto que ofrece la posibilidad de instalar múltiples extensiones para diferentes lenguajes ayudando así a no cometer errores puesto que los indica antes de su ejecución. Esta herramienta ha sido esencial para el desarrollo del proyecto debido a que, se ha realizado todo el código en ella, además, de ofrecer la posibilidad de ejecutar la aplicación desde la misma herramienta evitando así el uso de terminales externas. Es por estos motivos por los cuales ha sido elegida para el desarrollo de aplicación entre todos los editores de código fuente que podemos encontrar actualmente. 4.2 Planificación Para poder llevar a cabo un proyecto es muy importante la organización por lo que antes de comenzar con el desarrollo, en este apartado se comentarán cuáles son las fases a seguir para poder desarrollar la aplicación. Todas estas fases se han de realizar de forma paralela junto con la realización de la memoria para conseguir una documentación lo más detallada posible. A continuación, en la Figura 4.1, podemos ver un diagrama con todas las fases del proyecto resumidas y ordenadas para tener una visión de ellas de forma más clara: Figura 4.1: Fases del proyecto. Fuente: Elaboración propia La primera etapa consiste en la recopilación de toda la información necesaria para desarrollar la aplicación. En esta etapa debemos extraer toda la información sobre los temas que abarca un Voicebot para poder llevar a cabo su desarrollo. Además, también consiste en 7 https://code.visualstudio.com/ (accedido Abril 2021)
20 Diseño y desarrollo de la aplicación decidir las herramientas necesarias para poder obtener un resultado óptimo (explicada en la sección 4.3). Una vez finalizada la etapa de recopilación de información, la siguiente consiste en realizar el diseño de la aplicación (descrita sección 4.4) de manera muy general para tener una idea de todos los procesos necesarios para conseguir el objetivo propuesto. Una vez realizado el diseño de la aplicación, lo siguiente que debemos realizar es la búsqueda de una fuente de información en la que se almacenen todos los datos del reloj inteligente y la aplicación pueda consultarla para extraer dicha información. En esta fase tendremos dos opciones: una sería encontrar una fuente de información ya hecha, es decir, que desde el propio reloj pudiéramos descargar los datos en una base de datos con la posibilidad de conectarla a la aplicación que vamos a realizar. O, la otra opción, es crear un diseño propio de una base de datos lo más similar posible a la de un reloj inteligente. Además, en este proceso debemos tener en cuenta que el VoiceBot tiene que ser capaz de extraer la información de la base de datos por sí solo. En el caso de tener que diseñar una base de datos (véase sección 4.5.1), cuando el diseño esté completado la siguiente fase debe ser su implementación (explicada en la sección 4.5.2). Posteriormente, y tras acabar la fase de la búsqueda de una fuente de información, la siguiente fase es la implementación de la aplicación (explicada en la sección 4.6). Esta fase es una de las más importantes ya que, es donde desarrollaremos todo el código necesario para conseguir los objetivos marcados. Además, será la fase donde tendremos que conectar el código con la base de datos para poder extraer la información que almacena como si de un reloj se tratase y cómo extraerlos para mostrárselos al usuario. Finalmente, tras realizar la aplicación la siguiente fase debe consistir en evaluar la apli- cación creada y mostrar los resultados obtenidos (véase sección 5). Por lo que se deberán realizar diferentes pruebas para detectar posibles errores o mejoras. Y, por último, extraer las conclusiones a las que nos ha llevado este proyecto. 4.3 Recopilación de información El objetivo que tenemos en esta fase es recopilar toda la información necesaria para poder llevar a cabo el proyecto. Para ello hemos tenido que investigar sobre todos los temas que abarca un VoiceBot ya que, necesitamos conocerlo con detalle para poder implementarlo correctamente. Tras la investigación realizada hemos visto que para poder realizar un VoiceBot necesitamos conocer los siguientes temas: • Funcionamiento de la Inteligencia Artificial en los VoiceBot. • Bases de Datos de relojes inteligentes.
También puede leer