Speathe : Communication pilotée par la respiration pour utilisateurs paralysés
Speathe : Communication pilotée par la respiration pour utilisateurs paralysés
Speathe est une plateforme de communication innovante et évolutive qui convertit les schémas respiratoires d'un utilisateur en parole audible et texte. Conçue pour les personnes ayant perdu la parole à cause de la paralysie, elle offre une méthode discrète, mains libres, pour transmettre messages, émotions et phrases quotidiennes.
Composants matériels
- Haut-parleur
- 3 W, 4 Ω pour une sortie audio claire.
- Appareil Android
- Exécute l'application mobile React‑Native.
- Walabot
- Capteur acoustique qui capture l'énergie du souffle et la classe en souffles courts ou longs.
- Raspberry Pi 3 Model B
- Exécute le back-end Python et le serveur Flask.
Pile logicielle
- Python 3 – pour la logique back-end et l'intégration Walabot.
- Flask – serveur web léger sur le Raspberry Pi.
- React‑Native – interface mobile multiplateforme.
Fonctionnement
Détection de respiration et encodage type Morse
Le capteur Walabot mesure l'énergie de chaque souffle. Après une brève calibration, les énergies de souffle sont comparées à un seuil pour classifier les souffles comme courts (point) ou longs (trait). Une séquence de souffles est traduite en un motif code Morse (ex. « -.-.- »). Le Raspberry Pi fait correspondre ce motif à des lettres et phrases prédéfinies.
Acronymes prédéfinis
Pour réduire l'effort de saisie, des acronymes courants de trois lettres (ex. ABC, XYZ) sont directement mappés à des phrases complètes. Quand le système détecte un acronyme, l'application mobile affiche le texte étendu immédiatement.
Architecture serveur
Le Raspberry Pi héberge un serveur Flask sur une IP statique. Il reçoit les données dérivées de la respiration, stocke la variable « message » courante et expose des endpoints pour que l'application mobile puisse interroger ou poster des réponses.
sudo nano /etc/dhcpcd.conf # Ajouter à la fin du fichier 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 # Sauvegarder avec Ctrl+O et quitter avec Ctrl+X sudo reboot
Application mobile
L'application React‑Native interroge en continu l'endpoint Flask pour le dernier message. Quand une chaîne non vide est reçue, elle affiche le texte et le lit à voix haute. L'utilisateur peut répondre en tapant dans l'application, ce qui poste le texte vers le serveur. Le serveur prononce alors la réponse via le haut-parleur, permettant une communication bidirectionnelle.
Étapes d'implémentation
- Installez Python 3 sur le Raspberry Pi.
- Téléchargez le SDK Walabot pour votre OS. Explorez le
BreathingExample.pyfourni pour comprendre l'acquisition de données du capteur. - Configurez le serveur Flask sur le Raspberry Pi et configurez une IP statique comme indiqué ci-dessus.
- Construisez l'application React‑Native, mettez à jour l'URL du serveur pour correspondre à l'IP de votre Pi.
- Connectez le Walabot au Pi, le haut-parleur, et l'appareil Android via Wi‑Fi.
- Lancez l'application, effectuez une calibration rapide, et commencez à parler par la respiration.
Tests
Exécutez le back-end Python sur le Raspberry Pi, assurez-vous que l'IP statique est accessible, et déployez l'APK sur votre appareil Android. Ouvrez l'application, alignez votre schéma respiratoire, et observez la traduction temps réel de souffle en texte.
Pour des exemples de code plus détaillés et astuces de débogage, consultez la documentation du dépôt.
Rejoindre la communauté
Nous invitons développeurs, chercheurs et professionnels de santé à contribuer à l'évolution de Speathe. Ensemble, nous pouvons créer une aide à la communication robuste et accessible pour la communauté paralysée.
Contact et Ressources
- Documentation API Walabot : https://walabot.com/api/_pythonapi.html
- Téléchargements Python 3 : https://www.python.org/downloads/
- React‑Native : https://reactnative.dev/
Processus de fabrication
- Maîtriser les types de données Python : Guide pratique
- Maîtriser les opérateurs Python : Guide complet
- Maîtriser l'instruction pass en Python : Guide pratique
- Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
- Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
- Maîtriser les itérateurs Python : fonctionnement et création des vôtres
- Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
- Maîtriser Python datetime : guide pratique pour les dates, heures et fuseaux horaires
- Python : Aperçu - Langage de haut niveau, lisible, interactif et orienté objet