EyeSense Help

Solución Técnica

Arquitectura general del sistema

El núcleo de EyeSense es una aplicación Android desde la que se coordinan todos los componentes de hardware y software. El smartphone actúa como el cerebro del sistema: recibe los datos del sensor de emociones Shimmer3R, procesa las imágenes de la cámara de eye tracking, proyecta el teclado en las gafas XReal One, se comunica con el Arduino para los LEDs y envía peticiones al modelo de IA.

Los módulos principales son: seguimiento ocular (cámara IR + OpenCV), interfaz visual (teclado en gafas XReal One), predicción con IA (LLM + contexto), detección emocional (Shimmer3R), síntesis de voz (TTS + clonación), indicadores LED (Arduino Bluetooth) y captura de audio de la conversación.

En la siguiente imagen se puede ver un ejemplo de lo que vería el usuario que lleva las gafas:

Imagen de la aplicación

Gafas de realidad aumentada

Las gafas XReal One son unas gafas de realidad aumentada que permiten ver el mundo real mientras se superponen elementos digitales en el campo de visión. Su diseño es muy similar al de unas gafas convencionales, lo que las hace mucho más discretas e inclusivas que los sistemas de pantalla fija tradicionales. Se conectan al smartphone mediante USB-C y nuestra aplicación proyecta el teclado virtual directamente en el espacio visual del usuario.

Con estas gafas el usuario puede mantener el contacto visual con sus interlocutores mientras usa el teclado, participar en clase con la mirada al frente y llevar el sistema puesto durante toda la jornada escolar, no solo cuando está sentado frente a una pantalla.

En la siguiente imagen se puede ver un ejemplo de las gafas XReal ONE gafas:

Gafas de Realidad Aumentada Xreal One

Sistema de seguimiento ocular

Para el eye tracking usamos una cámara de infrarrojos montada en la montura 3D de las gafas, apuntando directamente al ojo del usuario. La cámara captura imágenes a alta velocidad que la aplicación Android procesa en tiempo real con OpenCV. El algoritmo aplica los siguientes pasos: conversión a escala de grises, umbralización para separar la pupila del resto del ojo, detección de la elipse negra que corresponde a la pupila, suavizado del reflejo especular del infrarrojo y limitación de la zona de búsqueda para reducir errores. Las coordenadas de la pupila se normalizan usando los valores de una calibración previa para determinar a qué tecla está mirando el usuario.

La selección de una tecla se produce cuando el usuario mantiene la mirada fija sobre ella durante un tiempo preestablecido (tiempo de dwell). Una animación visual indica al usuario cuánto tiempo lleva mirando esa tecla, para que sepa cuándo se va a activar.

Frame para las gafas de realidad aumentada con la cámara que se usa para el seguimiento ocular:

Marco impreso con Impresora 3D para las gafas de realidad aumentada con la cámara para el seguimiento ocular.

A continuación se puede ver un ejemplo de la app en la calibración del seguimiento ocular a través de la detección de la pupila:

Ejemplo de la calibración en la aplicación para la detección de la pupila.

Teclado virtual optimizado para el español

Uno de los módulos más novedosos de EyeSense es el teclado diseñado para minimizar el recorrido ocular en español. Tras analizar el diccionario de la Real Academia Española para determinar la frecuencia de cada letra, colocamos las más usadas (A, E, O, S, N, R, I...) en la zona central del teclado, y las menos frecuentes en los extremos. Además, usamos un formato de teclas en rombo en lugar del rectángulo estándar, lo que permite encajarlas sin huecos y mantener una distribución más uniforme. También eliminamos los símbolos y caracteres especiales que apenas se usan en conversaciones cotidianas.

A partir del tercer carácter escrito, el sistema comienza a mostrar tres predicciones de frase completa en la parte superior del teclado. El usuario puede seleccionar una mirándola durante el tiempo de dwell, o seguir escribiendo letra a letra si ninguna le convence.

A continuación se puede ver un ejemplo de la app en la calibración del seguimiento ocular a través de la detección de la pupila:

Teclado virtual desarrollado para el seguimiento ocular en idioma español.

Predicción de frases con Inteligencia Artificial

El motor de predicción usa un modelo de lenguaje de gran escala (LLM) al que se envía un prompt estructurado con tres elementos:

  • Un resumen actualizado de la conversación que se ha mantenido hasta el momento.

  • El estado emocional actual del usuario detectado por el Shimmer3R.

  • Los caracteres que el usuario ha escrito hasta ese instante.

La conversación se transcribe automáticamente usando la API de reconocimiento de voz de Android y se almacena en una base de datos local. Para evitar que el prompt sea demasiado largo, se genera periódicamente un resumen de la conversación acumulada. El modelo responde con tres predicciones de frase que aparecen en el teclado para que el usuario elija. El número de predicciones es personalizable. A más predicciones más lento se hace el sistema.

Detección de emociones

El sensor Shimmer3R GSR+ es un dispositivo portátil y wearable que mide la respuesta galvánica de la piel (GSR) mediante dos electrodos secos colocados en los dedos del usuario, y la frecuencia cardíaca mediante un sensor óptico de pulso (PPG). Estos datos se transmiten por Bluetooth a la aplicación Android cada cierto tiempo (aproximadamente cada 2 minutos).

A partir de esas señales, y basándonos en la literatura científica sobre reconocimiento emocional, hemos desarrollado algoritmos que clasifican el estado emocional del usuario en cuatro categorías: neutro, alegría, tristeza y enfado. Este estado se incluye en el prompt que se envía al modelo de IA para ajustar las predicciones al contexto emocional del momento.

Alumno con el Shimer3R realizando pruebas:

Alumno con el Shimer3R realizando pruebas

Síntesis y clonación de voz

Cuando el usuario selecciona una frase, esta se transforma en audio y se reproduce en voz alta para que los interlocutores la escuchen directamente. Si el usuario dispone de grabaciones de audio o vídeo de su propia voz, EyeSense permite clonarla: una biblioteca de clonación de voz entrena un modelo personalizado con esas muestras y el sistema usa ese modelo para la síntesis. Si no hay grabaciones, el usuario puede elegir entre una selección de voces disponibles.

Indicadores LED (Arduino Bluetooth)

Un Arduino Nano se comunica con la aplicación Android por Bluetooth y controla dos LEDs montados en la montura de las gafas. El primero es un LED de estado que parpadea mientras el usuario está seleccionando letras o frases, equivalente a la función 'escribiendo...' que vemos en los chats. El segundo es un LED RGB que muestra el estado emocional del usuario: rojo (enfado), amarillo (alegría), azul (tristeza) y blanco (neutro). Este segundo LED es opcional: el usuario decide si quiere que sea visible para sus interlocutores.

Montura de Gafas Impresas en 3D

Para integrar todos los componentes electrónicos en las gafas XReal One de forma ergonómica y segura, diseñamos una montura personalizada que imprimimos en 3D. Esta montura sujeta la cámara de infrarrojos apuntando al ojo, los dos LEDs en una posición visible para los interlocutores y todos los cables necesarios de forma ordenada. El diseño se realizó teniendo en cuenta el peso de los componentes para no añadir una carga excesiva a las gafas.

Frame para las gafas que permite sujetar la cámara y los leds:

Alumno con el Shimer3R realizando pruebas

Flujo completo de uso de la aplicación

El funcionamiento de EyeSense en una conversación real es el siguiente: el usuario se coloca las gafas y realiza una calibración rápida del eye tracking. A continuación, cuando se inicia una conversación, puede activar la grabación para generar contexto. La voz se captura y transcribe automáticamente cada pocos minutos.

Cuando el usuario quiere intervenir, empieza a seleccionar letras con los ojos: el LED de escritura empieza a parpadear y los interlocutores saben que debe esperar su turno. A partir de la tercera letra, la IA empieza a ofrecer predicciones de frase. Si el usuario acepta una predicción, la frase se reproduce en voz alta. Si prefiere seguir escribiendo, la IA sigue ofreciendo nuevas predicciones con cada letra adicional. En paralelo, el sensor Shimmer3R captura el estado emocional del usuario y lo envía a la IA para ajustar las predicciones.

17 March 2026