Comment fonctionne Dictata ?
Je suis fier de partager avec vous mon application Dictata, un outil que j'ai développé en Rust pour faire de la transcription vocale directement sur son ordinateur.
L'application permet de lancer une transcription avec un raccourci clavier, de parler, puis d'insérer automatiquement le texte dans l'application utilisée.
L'objectif est de pouvoir utiliser la dictée vocale facilement, tout en gardant les données en local. Voici comment cela fonctionne :
1. Capture de l'audio
D'abord, Dictata récupère l'audio depuis la source sélectionnée.
Il est possible d'utiliser son microphone, l'audio du système ou les deux en même temps. Une fois l'enregistrement terminé, l'audio est envoyé au moteur de transcription.
2. Transcription
Pour gérer la transcription, Dictata utilise un autre de mes projets : DictataEngine.
J'ai créé ce moteur pour avoir une interface commune entre plusieurs moteurs de reconnaissance vocale et pouvoir les utiliser facilement depuis une application Rust.
Il supporte notamment Whisper, Parakeet, SenseVoice, Moonshine et Zipformer.
L'avantage est que Dictata peut changer de moteur sans avoir à modifier toute la partie qui gère la transcription. Tout fonctionne hors ligne, directement sur la machine.
3. Insertion du texte
Une fois la transcription terminée, Dictata récupère le texte et l'insère automatiquement à l'endroit où se trouve le curseur. Il suffit donc de lancer Dictata avec le raccourci, de parler, puis de continuer à utiliser son application normalement.
Un mode continu permet également de transcrire progressivement pendant que l'on parle.
4. Traitement du texte
Dictata peut également utiliser un LLM local pour retravailler le texte obtenu.
Cela permet par exemple de nettoyer une transcription ou de transformer directement le texte en message, email ou autre format.
5. Gestion des modèles
Dictata permet également de gérer directement les modèles utilisés pour la transcription.
Depuis l'application, il est possible de voir les modèles disponibles, de télécharger ceux dont on a besoin et de choisir celui que l'on souhaite utiliser.
Cette gestion est directement liée à DictataEngine, ce qui permet de garder la partie téléchargement et gestion des modèles séparée de l'application.
Le projet est encore en développement, mais cette architecture me permet maintenant d'expérimenter facilement avec différents modèles de transcription et d'améliorer Dictata sans être limité à un seul moteur.
Vous pouvez retrouver les deux projets sur GitHub :