Skip to content

Latest commit

 

History

History
357 lines (249 loc) · 15.8 KB

File metadata and controls

357 lines (249 loc) · 15.8 KB

dictée

Parler, c'est plus simple.

Parlez librement, tapez instantanément — dictée vocale 100% locale pour Linux avec 25+ langues, traduction, diarisation et retour visuel en temps réel. Le texte apparaît directement sous votre curseur.

Dernière release Licence GPL-3.0 Rust PyQt6 / Bash Linux

InstallationConfigurationInterfaces visuellesUtilisationPour aller plus loinFeuille de route


dictee est un système complet de dictée vocale pour Linux. La transcription est réalisée 100% en local — aucune donnée audio ne quitte votre machine. Appuyez sur un raccourci, parlez, et le texte est tapé directement dans l'application active.

  • 4 backends ASR : Parakeet-TDT (25 langues, ponctuation native), Canary-1B (traduction intégrée, GPU), Vosk (léger, ~50 Mo), faster-whisper (99 langues)
  • Mode daemon : modèle chargé une seule fois, transcriptions quasi-instantanées (~0,8s sur CPU)
  • Traduction : 4 backends — Google, Bing, LibreTranslate (local), ollama (local)
  • Diarisation : identification des locuteurs, jusqu'à 4 via Sortformer (CLI uniquement, pas encore dans la dictée vocale)
  • 3 interfaces visuelles : widget KDE Plasma, icône de notification, animation plein écran

Popup du plasmoid (enregistrement)
dictee --setup


Installation

Télécharger le .deb depuis les Releases, puis :

# Version GPU (nécessite le dépôt NVIDIA CUDA — voir « Dépendances CUDA » ci-dessous)
sudo dpkg -i dictee-cuda_1.2.0_amd64.deb

# Version CPU (tout ordinateur, aucun dépôt supplémentaire requis)
sudo dpkg -i dictee-cpu_1.2.0_amd64.deb

# Installer les dépendances manquantes
sudo apt-get install -f

Note : La version GPU nécessite cuDNN provenant du dépôt NVIDIA CUDA, qui n'est pas inclus dans les dépôts standards Ubuntu/Fedora. Sans celui-ci, la version GPU fonctionnera en mode CPU uniquement.

Fedora / openSUSE :

# Version GPU (NVIDIA CUDA — voir « Dépendances CUDA » ci-dessous)
sudo dnf install ./dictee-cuda-1.2.0-1.x86_64.rpm

# Version CPU (tout ordinateur)
sudo dnf install ./dictee-cpu-1.2.0-1.x86_64.rpm

Arch Linux (AUR) :

Un PKGBUILD est disponible à la racine du dépôt. Il compile depuis les sources et inclut tous les composants (x86_64 et aarch64).

aarch64 (ARM64) :

Les paquets pré-compilés sont x86_64 uniquement. Sur aarch64 (Raspberry Pi 5, Ampere, etc.), compilez depuis les sources — voir ci-dessous. CUDA est limité aux NVIDIA Jetson sur cette architecture ; la plupart des utilisateurs utiliseront le mode CPU.

Autres distributions (.tar.gz) :

tar xzf dictee-1.2.0_amd64.tar.gz
cd dictee-1.2.0
sudo ./install.sh

Depuis les sources :

tar xzf dictee-1.2.0-source.tar.gz
cd dictee-1.2.0-source
cargo build --release --features sortformer
sudo ./install.sh

Pour les instructions de compilation détaillées et les features Cargo, voir docs/building.md.

Version GPU : dépendances NVIDIA CUDA

La version GPU (dictee-cuda) nécessite cuDNN, qui n'est pas disponible dans les dépôts standards Ubuntu/Fedora. Il faut ajouter le dépôt NVIDIA CUDA :

Ubuntu / Debian :

wget -qO - https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub | \
  sudo gpg --dearmor -o /usr/share/keyrings/cuda-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/cuda-archive-keyring.gpg] \
  https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /" | \
  sudo tee /etc/apt/sources.list.d/cuda-ubuntu2404-x86_64.list
sudo apt update
sudo apt install libcudnn9-cuda-12

Remplacer ubuntu2404 par votre version (ubuntu2204, ubuntu2504, etc.). Voir dépôts NVIDIA CUDA.

Fedora :

sudo dnf config-manager addrepo --from-repofile=https://developer.download.nvidia.com/compute/cuda/repos/fedora41/x86_64/cuda-fedora41.repo
sudo dnf install libcudnn9-cuda-12

Sans cuDNN, la version GPU fonctionne automatiquement en mode CPU. dictee-setup détectera le problème et vous guidera.


Configuration

Au premier lancement, un assistant vous guide pour choisir le backend, télécharger le modèle et configurer les raccourcis clavier. Vous pouvez reconfigurer à tout moment depuis le menu application, le tray, le widget Plasma ou en lançant dictee --setup depuis le terminal :

dictee --setup Post-traitement dictionnaire

Backend ASR

Quatre backends de transcription mutuellement exclusifs, commutables depuis dictee --setup :

Backend Langues Taille modèle Latence (chaud) Type
Parakeet-TDT 25 ~2,5 Go ~0,8s CPU · ~0,16s GPU ONNX Runtime (Rust)
Canary-1B 4 (EN,ES,FR,DE) ~5 Go ~0,7s GPU ONNX Runtime (Python, GPU recommandé)
faster-whisper 99 ~500 Mo–3 Go ~0,3s CTranslate2 (Python)
Vosk 9+ ~50 Mo ~1,5s Python (léger)

Chaque backend tourne en service systemd utilisateur — même protocole socket Unix, totalement transparent pour l'utilisateur.

Raccourcis clavier

dictee --setup capture et enregistre les raccourcis automatiquement (KDE Plasma / GNOME). Deux raccourcis séparés : un pour la dictée, un pour la dictée + traduction.

Pour les WM tiling (Sway, i3, Hyprland…), l'outil indique la commande à ajouter manuellement à votre config.

Traduction

Backend Confidentialité Vitesse Qualité Installation
Canary-1B 100% local Intégrée Meilleure Inclus avec le backend ASR
LibreTranslate 100% local 0,1–0,3s Bonne Guidé depuis le setup
ollama 100% local 2,3–3,4s Meilleure Guidé depuis le setup
translate-shell (Google) En ligne 0,2–0,7s Bonne Inclus
translate-shell (Bing) En ligne 1,7–2,2s Bonne Inclus

Changement rapide de backend

Changez de backend ASR ou traduction instantanément depuis la ligne de commande, le menu du tray ou le widget Plasma :

# Changer de backend ASR
dictee-switch-backend asr canary

# Changer de backend traduction
dictee-switch-backend translate ollama

# Voir les backends actifs
dictee-switch-backend status
# → ASR: parakeet (dictee.service, active)
# → Translate: google (trans)

Le tray et le widget Plasma incluent des sous-menus pour changer de backend sans ouvrir la configuration.


Interfaces visuelles

Widget KDE Plasma

Un widget natif KDE Plasma 6 avec visualisation audio en temps réel pendant l'enregistrement, état du daemon et contrôles rapides (dictée, traduction, annulation).

Popup du widget (enregistrement)

Configuration du plasmoid

Cinq styles d'animation avec enveloppe Hanning, sensibilité par style et dégradés de couleurs optionnels :

Barres Onde Pulsation Points Forme d'onde
Barres Onde Pulsation Points Forme d'onde

Tous les styles supportent les dégradés de couleurs, une enveloppe Hanning ajustable (forme et fréquence centrale), une courbe de sensibilité par style, et des options de réglage fin (nombre de barres, espacement, rayon, vitesse…).

# Installer (inclus dans le .deb, ou manuellement)
kpackagetool6 -t Plasma/Applet -i /usr/share/dictee/dictee.plasmoid

Clic droit sur le panneau → « Ajouter des composants graphiques… » → chercher « Dictée ».

Pour la documentation complète des réglages du widget, voir docs/plasmoid.md.

Icône de zone de notification (dictee-tray)

dictee-tray est l'alternative au widget KDE Plasma pour les bureaux non-KDE (GNOME, Xfce, Sway, Hyprland…). Il affiche une icône dans la zone de notification qui reflète l'état en temps réel : idle, enregistrement (vert), transcription (bleu), daemon arrêté (rouge).

Menu contextuel dictee-tray

  • Clic gauche → lancer une dictée
  • Clic molette → annuler
  • Menu contextuel → toutes les actions (dictée, traduction, daemon, configuration)
# Lancer manuellement
dictee-tray

# Activer au démarrage de la session
systemctl --user enable --now dictee-tray

L'icône s'adapte automatiquement au thème clair/sombre.

Le widget Plasma et le tray incluent tous deux :

  • Sélecteurs de backend — changer de backend ASR et traduction sans ouvrir dictee-setup
  • Détection premier lancement — propose de lancer l'assistant de configuration si pas encore configuré
  • Détection d'installation (widget Plasma) — affiche un message clair si dictee n'est pas installé

animation-speech

animation-speech est un projet autonome qui fournit une animation visuelle plein écran pendant l'enregistrement, avec annulation via la touche Echap. Il fonctionne sur tout compositeur Wayland supportant wlr-layer-shell (KDE Plasma, Sway, Hyprland…).

démo animation-speech — cliquez pour voir sur YouTube

sudo dpkg -i animation-speech_1.2.0_all.deb

Télécharger : releases animation-speech

Note : animation-speech n'est pas compatible GNOME (pas de support wlr-layer-shell). Les utilisateurs GNOME peuvent utiliser dictee-tray pour le retour visuel. Les contributions pour une extension GNOME Shell sont les bienvenues — voir le code source du plasmoid comme architecture de référence.

Sans aucune interface visuelle, dictee fonctionne normalement mais sans retour visuel pendant l'enregistrement.


Utilisation

# Dictée simple — transcrit et tape
dictee

# Avec traduction (défaut : langue système → anglais)
dictee --translate
dictee --translate --ollama    # traduction 100% locale via ollama

# Changer les langues de traduction
DICTEE_LANG_TARGET=es dictee --translate    # → espagnol

# Annuler l'enregistrement en cours (via raccourci ou touche Echap)
dictee --cancel

# Tester les règles de post-traitement
dictee-test-rules                    # mode interactif
dictee-test-rules --loop             # boucle de test continue
dictee-test-rules --wav fichier.wav  # tester depuis un fichier audio

# Changer de backend en ligne de commande
dictee-switch-backend status         # voir les backends actifs
dictee-switch-backend asr canary     # passer à Canary
dictee-switch-backend translate bing # traduction vers Bing

Pour aller plus loin

Post-traitement

dictee inclut un pipeline configurable de transformation du texte qui s'exécute après la transcription :

  • Règles personnalisées — remplacement par regex (ex : commandes vocales « à la ligne », « virgule »)
  • Dictionnaire — corriger les erreurs récurrentes de l'ASR
  • Continuation — détecter les phrases incomplètes entre plusieurs dictées
  • Élisions — règles de grammaire française (ex : « le arbre » → « l'arbre »)
  • Conversion des nombres — nombres dictés en chiffres (ex : « vingt-trois » → « 23 »)
  • Capitalisation automatique — majuscule après ponctuation finale
  • Correction LLM — correction optionnelle grammaire/orthographe via Ollama avant les règles

Configuration depuis dictee --setup → onglet Post-traitement, ou testez les règles avec dictee-test-rules.

Post-traitement : dictionnaire, règles regex, continuation

Documentation Description
docs/cli-programs.md Binaires CLI, utilisation directe, modèles ONNX
docs/building.md Compilation depuis les sources, features Cargo, pipeline audio
docs/plasmoid.md Réglages du widget, styles d'animation, configuration détaillée
Post-traitement Pipeline de transformation du texte : règles, dictionnaire, élisions, text2num, capitalisation, correction LLM

Feuille de route

v1.2.0 (actuelle) : 4 backends ASR (+ Canary), pipeline de post-traitement, changement rapide de backend, assistant premier lancement, dictee-test-rules

  • (v1.3) Hotword boosting — biaiser le décodage ASR vers des noms et termes personnalisés sans ré-entraîner (beam search + Aho-Corasick en Rust)
  • Diarisation depuis le tray/plasmoid — sélection de fichier audio, transcription avec identification des locuteurs
  • CLI speech-to-text (pipe audio, récupérer le texte)
  • Coordinateur dictee-ctl — point d'entrée unique, élimine les race conditions
  • VAD (Voice Activity Detection) — dictée mains libres sans push-to-talk
  • Transcription streaming temps réel avec affichage en direct
  • Overlay visuel intégré (remplacer animation-speech externe)
  • Packaging AppImage / Flatpak
  • Applet COSMIC / GNOME (contributions bienvenues !)

Crédits

Le moteur de transcription s'appuie sur parakeet-rs par Enes Altun, qui fournit la bibliothèque Rust pour l'inférence des modèles NVIDIA Parakeet via ONNX Runtime. Le backend Canary-1B utilise onnx-asr par Ivan Stupakov pour l'inférence ASR via ONNX.

Licence

Ce projet est distribué sous licence GPL-3.0-or-later (voir LICENSE).

Le code original de parakeet-rs par Enes Altun est sous licence MIT (voir LICENSE-MIT).

dotool par geb est intégré pour la simulation de saisie clavier et est sous licence GPL-3.0.

Les modèles ONNX Parakeet (téléchargés séparément depuis HuggingFace) sont fournis par NVIDIA. Ce projet ne distribue pas les modèles.