Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Grado en Ingeniería Informática ...

Página creada Laura Campo
 
SEGUIR LEYENDO
Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Grado en Ingeniería Informática ...
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 - Grado en Ingeniería Informática ...
Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Grado en Ingeniería Informática ...
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
Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Grado en Ingeniería Informática ...
Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Grado en Ingeniería Informática ...
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.
Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Grado en Ingeniería Informática ...
Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Grado en Ingeniería Informática ...
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.
Desarrollo de un sistema conversacional (VoiceBot) para responder preguntas sobre la actividad física personal - Grado en Ingeniería Informática ...
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