Projet client

Voxy : dictée vocale en temps réel dans l'application active (Windows)

Résultat clé

Validation documentée, livrable installateur

Situation initiale

L'idée était de dicter dans l'application déjà au premier plan (navigateur, messagerie, traitement de texte), plutôt que de faire d'une fenêtre de dictée le centre du flux.

Problème

Il fallait un outil discret, accessible depuis la barre des tâches, qui envoie la transcription dans le champ actif sans abîmer le presse-papiers ni viser la mauvaise fenêtre.

Solution apportée

Application Windows 10/11 (64 bits) centrée sur la zone de notification (.NET 8, WPF). Raccourcis globaux (Toggle, Démarrer/Arrêter, Push-to-Talk), capture micro via WASAPI (PCM 16 kHz mono 16 bits, trames ~20 ms après rééchantillonnage), client WebSocket « Protocol A » vers un point d'extrémité paramétrable, transcription en streaming. Le texte est injecté dans la fenêtre au premier plan via le presse-papiers et Ctrl+V (SendInput). En Toggle et Démarrer/Arrêter, injection progressive append-only sur temporisation (environ 1 s puis ~2,5 s entre ticks, selon la documentation) et vidage en fin de segment. En Push-to-Talk, injection uniquement sur segments finalisés pour limiter le va-et-vient du presse-papiers sur les appuis courts. État visuel de l'icône, sauvegarde/restauration du presse-papiers pour le texte Unicode, pas d'injection lorsque la fenêtre Voxy est au premier plan, test de connexion jusqu'à session_created. Serilog avec rotation, paramètres JSON dans AppData. L'installateur ne fournit pas de serveur de transcription ; la validation documentée s'appuie sur un proxy local Python/FastAPI, et tout backend compatible Protocol A peut être configuré. Installateur Inno Setup (option démarrage avec Windows), script build-installer.ps1.

Résultats

  • Livraison v1.0.0 avec installateur Windows autonome, documentation utilisateur et technique, rapport de validation

  • Scénarios de validation bout en bout et tests d'injection sur Gmail, LinkedIn, WhatsApp Web, Google Docs, champs navigateur, Notepad, Word

  • Comportement dégradé maîtrisé lorsque le backend s'arrête en cours de dictée. Récupération de paramètres corrompus testée

  • Hors périmètre formel du rapport : changement de micro USB à chaud pendant une session active