Speathe: comunicación impulsada por respiración para usuarios paralizados
Speathe: Comunicación impulsada por respiración para usuarios paralizados
Speathe es una innovadora plataforma de comunicación en evolución que convierte patrones de respiración del usuario en habla audible y texto. Diseñada para personas que perdieron el habla por parálisis, ofrece método discreto, manos libres para transmitir mensajes, emociones y frases cotidianas.
Componentes hardware
- Altavoz
- 3 W, 4 Ω para salida de audio clara.
- Dispositivo Android
- Ejecuta la aplicación móvil React-Native.
- Walabot
- Sensor acústico que captura energía de respiración y la clasifica como respiraciones cortas o largas.
- Raspberry Pi 3 Model B
- Ejecuta back-end Python y servidor Flask.
Pila software
- Python 3 – para lógica back-end e integración Walabot.
- Flask – servidor web ligero en la Raspberry Pi.
- React-Native – interfaz móvil multiplataforma.
Cómo funciona
Detección de respiración y codificación tipo Morse
El sensor Walabot mide energía de cada respiración. Tras breve calibración, energías se comparan contra umbral para clasificar respiraciones como cortas (punto) o largas (raya). Una secuencia de respiraciones se traduce a patrón código Morse (ej. "-.-.-"). La Raspberry Pi compara este patrón con letras y frases predefinidas.
Acrónimos predefinidos
Para reducir esfuerzo de escritura, acrónimos comunes de tres letras (ej. ABC, XYZ) mapean directo a frases completas. Cuando el sistema detecta un acrónimo, la app móvil muestra el texto expandido inmediatamente.
Arquitectura servidor
La Raspberry Pi aloja servidor Flask en IP estática. Recibe datos derivados de respiración, almacena variable "mensaje" actual y expone endpoints para que la app móvil consulte o envíe respuestas.
sudo nano /etc/dhcpcd.conf # Añade al final del archivo interface eth0 static ip_address=192.168.43.211 static routers=192.168.43.1 static domain_name_servers=192.168.43.1 interface wlan0 static ip_address=192.168.43.211 static routers=192.168.43.1 static domain_name_servers=192.168.43.1 # Guardar con Ctrl+O y salir con Ctrl+X sudo reboot
Aplicación móvil
La app React-Native sondea continuamente endpoint Flask para último mensaje. Cuando recibe cadena no vacía, muestra el texto y lo reproduce en voz. Usuario puede responder escribiendo en la app, que envía el texto al servidor. El servidor pronuncia la respuesta por el altavoz, permitiendo comunicación bidireccional.
Pasos de implementación
- Instala Python 3 en la Raspberry Pi.
- Descarga SDK Walabot para tu SO. Explora el
BreathingExample.pyprovisto para entender adquisición de datos del sensor. - Configura servidor Flask en la Raspberry Pi y IP estática como se muestra arriba.
- Construye la app React-Native, actualizando URL del servidor a la IP de tu Pi.
- Conecta Walabot a la Pi, altavoz y dispositivo Android vía Wi-Fi.
- Lanza la app, haz calibración rápida y empieza a hablar mediante respiración.
Pruebas
Ejecuta back-end Python en la Raspberry Pi, asegura que IP estática es accesible, y despliega APK en tu dispositivo Android. Abre la app, alinea tu patrón de respiración y observa traducción en tiempo real de respiración a texto.
Para ejemplos de código detallados y tips de depuración, consulta la documentación del repositorio.
Únete a la comunidad
Invitamos a desarrolladores, investigadores y profesionales de salud a contribuir a la evolución de Speathe. Juntos, podemos crear ayuda de comunicación robusta y accesible para la comunidad paralizada.
Contacto y recursos
- Docs API Walabot: https://walabot.com/api/_pythonapi.html
- Descargas Python 3: https://www.python.org/downloads/
- React-Native: https://reactnative.dev/
Proceso de manufactura
- Dominando tipos de datos en Python: Guía práctica
- Dominando operadores en Python: Guía completa
- Dominando la sentencia pass en Python: Guía práctica
- Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
- Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
- Dominando Iteradores en Python: Cómo Funcionan y Cómo Crear los Tuyos
- Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
- Dominando datetime en Python: Guía Práctica de Fechas, Horas y Zonas Horarias
- Visión general de Python: Lenguaje de alto nivel, legible, interactivo y orientado a objetos
- Números en Python: Entendiendo tipos de datos numéricos inmutables
- Dominando cadenas en Python: Creación, acceso y manipulación