Passer de la parole au texte dans la fenêtre ouverte
L’utilisateur place son curseur dans un éditeur ou un champ de message, active le microphone et dicte. Le texte arrive dans cette même application, sans copier-coller manuel. Après le téléchargement initial des modèles, la reconnaissance reste sur l’ordinateur.
J’ai construit le parcours complet autour de Whisper, exécuté avec faster-whisper, et du détecteur de parole Silero. Les raccourcis permettent de suspendre l’écoute, de transcrire le fragment restant ou de mettre l’outil en veille. Le collage sous X11 restaure ensuite le contenu du presse-papiers.
Attendre une fin de phrase sans couper les hésitations
Reconnaître les mots ne suffit pas : il faut décider quand envoyer l’enregistrement au modèle. Un silence peut terminer une phrase ou simplement marquer une hésitation. J’ai combiné sa durée avec la baisse d’énergie et la hauteur de voix pour ajuster cette attente.
Les seuils sont étagés : le silence seul attend davantage que plusieurs indices concordants. Un test vérifie leur ordre pour que les conditions les plus simples ne masquent pas les autres. Lorsque le bruit gêne la détection automatique, un mode manuel laisse l’utilisateur décider du moment de transcription.
J’ai aussi distingué les motifs courts et les expressions longues dans le filtre des sorties parasites. Une égalité exacte pour les mots courts évite de supprimer une phrase légitime qui contient simplement le même mot.
Préserver la capture et les ressources
Le visualiseur PySide6 tourne dans un processus séparé du traitement audio. Il reçoit les états et le texte par un flux SSE, adapté à cette communication principalement unidirectionnelle. Cette séparation vise à éviter qu’un blocage de l’interface interrompe la capture.
La veille réduit l’activité quand l’outil n’est pas utilisé, puis décharge les modèles après une absence prolongée. J’ai désactivé par défaut la prévisualisation continue : sa deuxième passe Whisper consomme des ressources pour un bénéfice limité dans ce parcours.
Vérifier les changements de traitement
J’ai remplacé une boucle Python du filtre passe-haut par son équivalent vectorisé dans SciPy. Sur le tampon de 30 secondes mesuré, le prétraitement passe de 445 à 10 ms, avec un écart numérique maximal de 1,2 × 10⁻⁷.
Cette mesure concerne le filtre. Une démonstration sur fichier audio et les tests de détection permettent aussi d’examiner les composants sans microphone, en complément de l’usage au bureau.
Architecture et décisions · Tests du filtre · Tests de fin de phrase