- Handy est une application de bureau gratuite et open source de transcription voix-texte qui fonctionne entièrement hors ligne, avec une conception centrée sur la protection de la vie privée
- Conçue sur Tauri (Rust + React/TypeScript), elle permet d’appuyer sur un raccourci, de parler, puis de voir la voix saisie directement dans un champ de texte
- Elle prend en charge les modèles Whisper et Parakeet V3, et effectue la reconnaissance vocale en local via accélération GPU ou sur CPU
- Elle fonctionne sur Windows, macOS et Linux, et a été développée avec une architecture privilégiant la facilité d’extension et de fork, afin d’encourager les contributions des développeurs
- Outil de saisie vocale axé sur la confidentialité, il traite tout en local sans envoi vers le cloud, avec un fort potentiel en matière d’accessibilité et de personnalisation
Vue d’ensemble
- Handy est une application de reconnaissance vocale gratuite, open source et extensible qui fonctionne entièrement hors ligne, sans connexion Internet
- Elle repose sur le framework Tauri et combine un backend Rust avec un frontend React/TypeScript
- L’utilisateur appuie sur un raccourci clavier pour parler, puis, en relâchant, le modèle Whisper ou Parakeet V3 convertit la voix en texte et le colle dans l’application active
- Toutes les données vocales sont traitées en local, ce qui élimine le risque de fuite de données personnelles
La philosophie de Handy
- Gratuit : les outils d’accessibilité doivent être utilisables par tout le monde
- Open source : chacun peut étendre et améliorer les fonctionnalités
- Respect de la vie privée : les données vocales ne sont pas envoyées vers le cloud
- Simplicité : se concentrer sur un seul objectif, à savoir convertir la voix en texte
- L’objectif n’est pas de créer l’application « la plus parfaite », mais celle qui est « la plus facile à forker »
Fonctionnement
- L’utilisateur peut démarrer et arrêter l’enregistrement avec un raccourci clavier ou utiliser un mode push-to-talk
- Silero VAD filtre les silences, puis les modèles Whisper ou Parakeet V3 convertissent la voix
- Modèles Whisper : versions Small, Medium, Turbo et Large, avec prise en charge de l’accélération GPU
- Parakeet V3 : optimisé CPU, avec détection automatique de la langue
- Le texte converti est automatiquement inséré dans le champ de saisie de l’application utilisée
- Compatible avec Windows, macOS et Linux
Architecture
- Frontend : React + TypeScript + Tailwind CSS
- Backend : basé sur Rust, chargé du traitement audio et de l’inférence de machine learning
- Bibliothèques clés
whisper-rs : reconnaissance vocale locale avec les modèles Whisper
transcription-rs : reconnaissance CPU avec le modèle Parakeet
cpal : entrées/sorties audio
vad-rs : détection d’activité vocale
rdev : gestion des raccourcis globaux et des événements système
rubato : rééchantillonnage audio
- Mode debug : accessible avec
Cmd+Shift+D (macOS) ou Ctrl+Shift+D (Windows/Linux)
Problèmes connus et limitations
- Crashs des modèles Whisper : des problèmes de plantage existent dans certains environnements Windows/Linux
- Prise en charge limitée de Wayland : sur Linux avec Wayland, l’installation de
wtype ou dotool est nécessaire
- Outils de saisie de texte
- X11 :
xdotool
- Wayland :
wtype ou dotool
- Si ces outils ne sont pas installés,
enigo est utilisé à la place, avec une compatibilité limitée
- Overlay Linux désactivé par défaut : pour éviter les conflits de focus, il est désactivé par défaut
Configuration système requise
- Pour les modèles Whisper
- macOS : Mac série M ou Intel Mac
- Windows/Linux : GPU Intel, AMD, NVIDIA (Ubuntu 22.04/24.04 recommandé)
- Pour le modèle Parakeet V3
- CPU uniquement, Intel Skylake (6e génération) ou plus recommandé
- Environ 5 fois plus rapide que le temps réel sur un matériel de milieu de gamme
- Détection automatique de la langue incluse
Feuille de route de développement
- Fonctionnalités en cours
- Ajout de fichiers de logs de debug
- Améliorations des raccourcis macOS (prise en charge de la touche Globe, réécriture de la gestion des raccourcis globaux)
- Fonction d’analyse optionnelle : collecte anonyme de données d’usage, sur la base d’un consentement explicite
- Refactorisation du système de configuration et amélioration des abstractions
- Réorganisation de la structure des commandes Tauri et amélioration de la sûreté des types
Dépannage et installation manuelle des modèles
- Dans les environnements à restrictions réseau, les modèles peuvent être téléchargés et installés manuellement
- Créer un dossier
models dans le répertoire de données de l’application, puis y placer les fichiers de modèle
- Modèles Whisper : copier directement les fichiers
.bin
- Modèle Parakeet : extraire l’archive
.tar.gz en conservant le nom de dossier spécifié
- Après l’installation, les modèles sont détectés automatiquement au redémarrage de l’application
Comment contribuer
- Vérifier les issues GitHub, puis créer un fork et une branche
- Tester suffisamment sur la plateforme cible avant de soumettre une Pull Request
- Il est possible de rejoindre la communauté par e-mail (contact@handy.computer) ou via Discord
- L’objectif est de fournir une base que la communauté peut faire évoluer grâce à une codebase simple et bien structurée
Projets liés et licence
- Handy CLI : version en ligne de commande basée sur Python
- handy.computer : site officiel avec démo
- Distribué sous licence MIT
- Repose sur des projets open source comme Whisper (OpenAI), Silero et Tauri
Citation
- « Handy peut mettre fin à votre recherche d’un outil de reconnaissance vocale non pas parce qu’il est parfait, mais parce que vous pouvez le rendre parfait. »
Aucun commentaire pour le moment.