CAPÍTULO 1: DESCRIPCIÓN DEL PROYECTO
1.5. Aspectos Relevantes del Desarrollo
Para el reconocimiento de voz, se utilizó Wit.ai como un proveedor de servicios. Es una plataforma de tecnología abierta que reconoce palabras y discursos (lenguaje natural), y los trasforma al formato Json (JavaScript Object Notation). Desarrollada para aplicaciones que necesitan convertir oraciones en datos estructurados.
Para realizar este proceso de reconocimiento, Wit.ai utiliza una red neuronal recurrente (RNN) por proyecto. Una RNN es una red de aprendizaje que el estado actual influye en el estado siguiente. Es útil en el proceso de reconocimiento de habla porque cada letra influye en la probabilidad de la siguiente. Esta red es alimentada por un espectrograma de segmentos de audio de 20-40 ms. Por cada porción de 20ms se trasforma una letra, al finalizar se termina con una secuencia de letras. Después, se elimina los espacios en blanco y se combinan las letras para formar una palabra o una frase. Al pasar el archivo de audio por Wit.ai, se obtiene un archivo Json con el contenido del comando.
Wit.ai cuenta con una plataforma en la nube, a la cual se accede por una página web. En la plataforma se indica cuáles son las entidades que se van a utilizar. Las entidades son los comandos que se ingresaran al sistema. Los comandos que se enseñaron son: activar alarma, desactivar alarma, activar gas, desactivar gas, encender luz, apagar luz y palabras
Figura 16. Modelo de una red neuronal recurrente para reconocimiento de voz Fuente: (Thomas Eberman, 2015)
40
claves. Se le enseña a entender una frase por partes como: activar alarma la comprende como dos entidades, activar como encendido (on) y alarma como otra entidad.
Además, en Wit.ai se puede observar por medio del historial (logs) la salida que genera al realizar el cambio de audio a un archivo Json. El archivo Json es la salida de la red neuronal, se compone de entidades, valores y el nivel de confianza. El nivel de confianza es el valor de lo que entendió la red neuronal en relación a las entidades ingresadas.
Para conectar el sistema de vigilancia y detección con la aplicación móvil, se utilizó la plataforma Firebase como puente. Firebase es una plataforma de desarrollo móvil que permite desarrollas apps multiplataforma (Android, iOS, etc). Firebase cuenta con varios
Figura 18. Entidades en Wit.ai. Fuente: Elaboración propia
Figura 17. Ingreso de entidades a Wit.ai Fuente: Elaboración propia
41
servicios en el proyecto se utilizaron: la base de datos en tiempo real, autentificación y dashboards.
En la base de datos en tiempo real (Realtime Database) de Firebase, los datos se almacenan como objetos Json. La base de datos tiene forma de un árbol Json, sin tablas ni registros. Cuando se agrega datos al árbol Json, se convierten en nodos de la estructura. La base de datos que se creó en Firebase es pequeña pero necesaria para los datos que se utilizan en el sistema de vigilancia y detección. Son diez datos que se estructuran como un árbol, con un padre como “home” (raíz) que tiene hijos como ramas.
Para la autentificación Firebase permite varios métodos como: por correo/contraseña, por teléfono, por una cuenta de google, por una cuenta de Facebook, por una cuenta en twitter o por una cuenta de GitHub. Se utilizó la autentificación por correo/contraseña por ser el método más usado por los usuarios, que prefieren ingresar con un correo de cualquier proveedor. En la plataforma se visualiza los usuarios creados, la fecha de creación, la fecha del último acceso y un identificador de usuario. El administrador de la plataforma en la sección de autentificación puede: agregar otros usuarios, restablecer la contraseña, inhabilitar la cuenta y borrar la cuenta.
Figura 19. Base de datos en Firebase Fuente: Elaboración propia
42
En la parte de analytics se visualizan varios dashboards que muestran: los usuarios activos, en que parte de la aplicación interactúan más los usuarios (pantalla), cual es el porcentaje de retención de usuarios y de qué país es la audiencia de la aplicación. Por ser una aplicación pequeña solo se tomara en cuenta para la administración de la aplicación los usuarios activos y en que pantalla interactúa mayormente el usuario.
En el gráfico se puede visualizar el número de usuarios activos, estos datos son de diciembre 2018 a enero de 2019, fecha en que fueron realizadas las pruebas para registrar nuevos usuarios. En este rango de 28 días los usuarios activos fueron 27 para comprobar que el registro de nuevos usuarios funcione correctamente, y en un rango de siete días fue de un usuario activo. Este dashboard le permite al administrador observar la cantidad de usuarios que utilizan la aplicación en un rango personalizado, de un mes (30 o 28 días) y de siete días.
Figura 20. Administrador de usuarios de Firebase Fuente: Elaboración propia
43
En el siguiente gráfico se puede observar cual es la pantalla en que los usuarios tienen más interacción con la aplicación móvil. Los datos que se visualizan son en el mismo rango que el gráfico anterior (diciembre 2018 a enero 2019). Se puede visualizar que el usuario interactúa mayor tiempo en la pestaña de menú principal (MainActivity), la segunda pantalla es la de iniciar sesión (LoginActivity) para que los usuarios pueden ingresar a la aplicación y la tercera pantalla es la de la información de la aplicación. Este dashboard le permite al administrador observar cual es el tiempo y pantalla en que los usuarios emplean más tiempo.
Figura 21. Dashboard usuarios activos Fuente: Elaboración propia
Figura 22. Dashboard interacción de usuarios Fuente: Elaboración propia
44
CAPITULO 2: DOCUMENTACIÓN TÉCNICA