Skip to content

fr Troubleshooting

rcspam edited this page May 29, 2026 · 5 revisions

🌐 Langue : English | Français

Dépannage

Problèmes courants, leurs symptômes et fixes — organisés par catégorie. Si votre problème n'est pas listé, voir FAQ ou ouvrir une issue sur https://github.com/rcspam/dictee/issues avec les extraits de logs listés au fond.

Pour chaque problème : symptôme (ce que vous voyez), cause (pourquoi ça arrive), fix (comment résoudre).

Table des matières


Problèmes d'installation

Conflits de paquets entre variantes CPU et CUDA

Symptôme : apt install ./dictee-cuda_1.3.1_amd64.deb échoue avec "paquet en conflit dictee-cpu".

Cause : Les deux variantes sont mutuellement exclusives — toutes deux fournissent dictee.

Fix :

sudo apt remove dictee-cpu
sudo apt install ./dictee-cuda_1.3.1_amd64.deb

Dépendances manquantes sur vieilles distros

Symptôme : dpkg: dependency problems prevent configuration of dictee-cpu: pyqt6-pyside6 >= 6.5 is not installable.

Cause : Ubuntu 22.04 livre PyQt6 5.15, mais dictée a besoin de 6.5+.

Fix : Soit upgrade vers Ubuntu 24.04, soit installer PyQt6 depuis pip :

pip install --user 'PyQt6>=6.5'

libcudnn9-cuda-12 introuvable

Symptôme : Unable to locate package libcudnn9-cuda-12 pendant l'install CUDA.

Cause : Dépôt CUDA NVIDIA non ajouté.

Fix : Suivre la configuration par distro dans GPU-Setup.


Problèmes GPU

Paquet CUDA sur une machine sans driver NVIDIA fonctionnel

Depuis v1.3.1. Si vous installez dictee-cuda sur une machine où le driver NVIDIA est absent, cassé ou simplement non exposé (typique sur VM virtio ou conteneurs headless), le daemon affiche désormais ceci dans les logs et bascule en CPU au lieu de crasher en boucle :

[dictee] No NVIDIA GPU detected (or DICTEE_FORCE_CPU set) — using CPU provider.

La détection regarde /proc/driver/nvidia/gpus/ et /dev/nvidia0. Si vous voulez forcer le mode CPU même quand un GPU est présent (par ex. pour partager la VRAM avec un autre process), exportez DICTEE_FORCE_CPU=1 avant de démarrer le service :

systemctl --user edit dictee
# ajoutez :
# [Service]
# Environment=DICTEE_FORCE_CPU=1
systemctl --user restart dictee

Avec v1.3.0 et avant, le daemon dictee-cuda crashait avec cudaSetDevice failed: driver insufficient et dictee-ptt ne se connectait jamais à sa socket. Mettez à jour vers v1.3.1 pour corriger sans toucher au driver.

GPU non détecté — fallback CPU silencieux

Symptôme : La transcription marche mais est lente (~1 s latence chaude au lieu de ~0,16 s sur GPU).

Vérification :

nvidia-smi                                         # pilote présent ?
journalctl --user -u dictee | grep -iE "cuda|gpu"  # daemon a vu le GPU ?

Sortie attendue si GPU fonctionne :

dictee[12345]: Loading Parakeet-TDT on CUDA execution provider
dictee[12345]: GPU: NVIDIA GeForce RTX 4070 Laptop GPU (8 GB)

Si le daemon est tombé sur CPU :

dictee[12345]: CUDA init failed: libcudnn.so.9: cannot open shared object file

→ Installer libcudnn9-cuda-12 (Debian/Ubuntu) ou libcudnn9 (Fedora).

CUDA OOM sur audio long

Symptôme :

Failed to allocate memory for requested buffer of size 1073741824
 on /pre_encode/conv/conv.0/Conv

Cause : Un bug connu dans le modèle Parakeet-TDT v3 fait planter l'outil en ligne de commande brut transcribe sur tout audio de plus de ~5:20 min sur tout GPU. L'erreur exacte dans les logs est right operand cannot broadcast on dim 3. Sur les GPU bas de gamme avec ≤ 4 Go de mémoire vidéo, vous pouvez heurter une erreur de mémoire (Failed to allocate memory sur /pre_encode/conv/conv.0/Conv) sur un fichier légèrement plus court. Dans les deux cas, le contournement est le même — utiliser le pipeline découpé. Voir Parakeet-TDT-Deep-Dive#utilisation-vram--limites-durée pour les détails techniques.

Fix :

  • Le plus simple (depuis v1.3.4) : ouvrir le fichier dans dictee-transcribe (l'interface graphique). Elle découpe automatiquement les fichiers longs en morceaux plus petits (180 s chacun, bien sous le bug) et les réassemble. Aucun découpage manuel, aucun plafond.
  • Alternative ligne de commande : utiliser transcribe-diarize-batch <fichier> au lieu du transcribe brut (voir CLI-Reference#transcribe-diarize-batch).
  • Si aucune des deux n'est disponible : découper le fichier manuellement en morceaux de 5 minutes ou moins (par ex. ffmpeg -i input.wav -f segment -segment_time 300 chunks-%03d.wav) et transcrire chacun séparément.
  • Note : le backend CPU n'aide pas — le bug est dans le modèle lui-même, pas dans le driver GPU.

Voir Parakeet-TDT-Deep-Dive#utilisation-vram--limites-durée pour la matrice complète.

Mismatch version cuBLAS / cuDNN

Symptôme :

libcublasLt.so.12: version `libcublasLt.so.12` not found

Cause : cuBLAS système plus ancien que ce avec quoi dictée a été buildé.

Fix : Le paquet CUDA intègre cuBLAS en interne (via venv pip à /usr/lib/dictee/venv-cuda/) depuis v1.3. Vérifiez que vous n'avez pas supprimé ce répertoire et que transcribe-daemon positionne LD_LIBRARY_PATH correctement. Réinstaller le paquet en cas de doute :

sudo apt reinstall dictee-cuda

Pilote trop ancien

Symptôme : CUDA error: forward compatibility was attempted on non supported HW.

Fix : Le pilote NVIDIA < 535 n'est pas supporté. Upgrade :

# Ubuntu
sudo ubuntu-drivers install nvidia-driver-550

# Fedora
sudo dnf install --refresh akmod-nvidia
sudo reboot

Problèmes audio

Pas de son capturé (PipeWire)

Symptôme : La dictée démarre, le plasmoid affiche "recording", mais la transcription est vide ou contient du charabia.

Vérification :

wpctl status | grep -iE "audio|source"

Fix : S'assurer qu'une source est configurée par défaut :

wpctl set-default <SOURCE_ID>   # ID depuis wpctl status

Microphone reste muet après dictée

Symptôme : Après une dictée réussie, le micro reste muet dans pavucontrol. Les dictées suivantes échouent silencieusement.

Cause : dictée mute automatiquement le micro pendant la transcription pour éviter le bleed, et parfois échoue à le remettre sur les chemins d'erreur.

Fix : Unmute manuel :

wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 0

Ou reset état dictée :

dictee --reset

PipeWire introuvable, fallback sur ALSA

Symptôme : Warning dans les logs : parecord not found, falling back to arecord.

Cause : PipeWire non installé (setups XFCE/i3 minimaux).

Fix : Soit installer pipewire-pulse, soit laisser ALSA gérer — les deux marchent, PipeWire est juste préféré pour l'intégration mixer.


Problèmes daemon

F8 mort sur Fedora / RHEL / openSUSE fraîchement installé

Symptôme : Le push-to-talk ne fait rien. journalctl --user -u dictee-ptt montre :

evdev.uinput.UInputError: "/dev/uinput" does not exist or is not a
character device file - verify that the uinput module is loaded

Cause : Fedora, RHEL et openSUSE ne chargent pas automatiquement le module kernel uinput par défaut (Arch et Ubuntu si). Sans ce module, /dev/uinput n'existe pas et dictee-ptt / dotool ne peuvent pas injecter de touches.

Correction en v1.3.1 : le paquet shippe désormais /etc/modules-load.d/dictee-uinput.conf et lance modprobe uinput depuis son hook post-install. Réinstallez ou mettez à jour vers v1.3.1 pour récupérer le fix automatiquement.

Workaround manuel sur les anciennes versions :

sudo modprobe uinput                                       # charger maintenant
echo uinput | sudo tee /etc/modules-load.d/uinput.conf     # auto-load au boot
sudo udevadm control --reload-rules
sudo udevadm trigger /dev/uinput
systemctl --user restart dictee-ptt

Permission refusée sur socket transcribe-daemon

Symptôme :

Connection refused: /run/user/1000/transcribe.sock

Cause : Daemon non lancé, ou $XDG_RUNTIME_DIR inaccessible.

Fix :

systemctl --user status dictee
systemctl --user restart dictee

Daemon irréactif après suspend/resume

Symptôme : La dictée se bloque après que le portable se réveille de la veille.

Cause : Le contexte CUDA meurt parfois à travers les cycles de suspend.

Fix :

systemctl --user restart dictee

Ou configurer systemd pour auto-restart au resume :

# ~/.config/systemd/user/dictee.service.d/override.conf
[Service]
Restart=always
RestartSec=5

Conflit multi-utilisateur

Symptôme : Deux utilisateurs sur la même machine → l'état d'un utilisateur fuit dans les dictées de l'autre.

Cause : Corrigé en v1.3-beta1. Les versions pré-beta1 partageaient /dev/shm/.dictee_state sans suffixe UID.

Fix : Upgrade vers v1.3.0 ou plus récent.


Problèmes post-traitement

La correction LLM retourne du texte vide

Symptôme : Quand le LLM est activé, la sortie finale est vide ou répète le texte ASR brut.

Vérification :

# Ollama est joignable ?
curl http://localhost:11434/api/tags

# Le modèle est pullé ?
ollama list

Fix :

  • Ollama ne tourne pas : systemctl start ollama
  • Modèle manquant : ollama pull gemma3:4b
  • Mauvais endpoint : export DICTEE_OLLAMA_HOST=http://localhost:11434
  • Essayer de contourner le LLM pour la dictée problématique : DICTEE_PP_LLM=0 dictee

Règles non appliquées après édition

Symptôme : Vous avez édité ~/.config/dictee/rules.conf mais les dictées ne reflètent pas les nouvelles règles.

Cause : dictee-postprocess cache le fichier de règles par invocation. Le cache est frais à chaque dictée, donc pas de redémarrage nécessaire — mais vous pourriez tester une sortie obsolète.

Fix : Lancer dictee-test-rules pour vérifier que la règle marche. Puis re-dicter.

Commandes vocales produisant une mauvaise sortie

Symptôme : Dire "virgule" produit le mot "virgule" dans la sortie, pas ,.

Cause : Les règles de commandes vocales sont désactivées ou remplacées par une règle utilisateur.

Fix :

# Lister toutes les règles actives
dictee-test-rules --list

# Vérifier si votre règle utilisateur a la priorité
grep -n "virgule" ~/.config/dictee/rules.conf

Voir Rules-and-Dictionary#commandes-vocales pour le set FR par défaut.

Nombres non convertis

Symptôme : "vingt-trois" reste en texte au lieu de devenir "23".

Vérification : la conversion des nombres est activée dans le wizard (Post-traitement → Nombres).

Fix : Activer, ou vérifier que text2num est installé :

pip show text2num
# ou via paquet système
dpkg -l python3-text2num

Problèmes UI

Icône plasmoid non visible

Symptôme : Widget ajouté via clic droit → chercher → "Dictée", mais rien n'apparaît dans le panneau.

Vérification :

kpackagetool6 -t Plasma/Applet -l | grep dictee

Fix :

  • Non installé : sudo apt install dictee-plasmoid ou kpackagetool6 -t Plasma/Applet -i /usr/share/dictee/dictee.plasmoid
  • Installé mais caché : clic droit panneau → Entrer en mode édition → Ajouter des widgets → Dictée → glisser sur panneau

Icône tray manquante sur GNOME

Symptôme : dictee-tray tourne mais aucune icône n'apparaît dans la barre du haut.

Cause : GNOME a retiré le system tray natif en 3.26.

Fix : Installer l'extension AppIndicator et recharger GNOME Shell (Alt+F2, r sur Xorg ; deconnexion/reconnexion sur Wayland).

Popup plasmoid reste ouvert après clic

Symptôme : Clic sur plasmoid → popup s'ouvre → clic sur un bouton → popup devrait se fermer mais reste.

Cause : Bug connu avant v1.3.0 (commit 130ab95).

Fix : Upgrade vers v1.3.0 ou plus récent.


Collecte de logs

Quand vous reportez une issue, attachez ces logs :

# Daemon principal
journalctl --user -u dictee -n 100 > dictee.log

# Tray
journalctl --user -u dictee-tray -n 50 > dictee-tray.log

# Wizard setup (tourne au premier plan, pas de systemd)
dictee-setup 2>&1 | tee dictee-setup.log

# Daemon détaillé
DICTEE_DEBUG=1 dictee 2>&1 | tee dictee-debug.log

# État GPU
nvidia-smi > nvidia-smi.log

# Info paquets
dpkg -l | grep -E "dictee|cudnn|cuda" > packages.log

Puis ouvrir sur github.com/rcspam/dictee/issues.

Résumé emplacements des logs

Composant Chemin
Daemon principal (tous backends ASR) journalctl --user -u dictee
Daemon Canary journalctl --user -u dictee-canary
Daemon Whisper journalctl --user -u dictee-whisper
Daemon Vosk journalctl --user -u dictee-vosk
Tray journalctl --user -u dictee-tray
Push-to-talk journalctl --user -u dictee-ptt
État /dev/shm/.dictee_state_<UID>
Socket $XDG_RUNTIME_DIR/transcribe.sock

Le presse-papier Wayland casse la dictée Electron

Symptôme : avec « Copier la transcription dans le presse-papier » activé dans dictee-setup (ou DICTEE_CLIPBOARD=true dans ~/.config/dictee.conf), la dictée F9 tourne et le daemon journalise une transcription réussie, mais le texte n'apparaît pas dans certaines apps cibles — typiquement Claude Desktop, certains terminaux, et autres apps Electron. Le curseur du champ de saisie arrête de clignoter ; cliquer à nouveau dans le champ ré-active la saisie.

Cause : wl-clipboard < 2.3.0 (le défaut sur Ubuntu LTS et d'autres distros plus anciennes) ne parle pas le protocole Wayland ext-data-control-v1 que KDE/Plasma 6.x expose. Pour poser le presse-papier, wl-copy retombe sur un contournement qui prend brièvement le focus clavier via une surface transparente, puis le relâche. Les apps Electron blurent leur champ de saisie interne sur tout focus-out et ne le re-focusent pas au retour rapide → les touches que dotool injecte juste après partent dans un champ bluré et sont perdues. Affecte Electron en --ozone-platform=x11 ET =wayland ; les apps Qt/Wayland natives (Kate, etc.) encaissent sans problème.

Fix : dictee désactive la copie presse-papier par défaut depuis v1.3.5. Si vous l'aviez activée, ouvrez dictee-setup et décochez « Copier la transcription dans le presse-papier » (ou mettez DICTEE_CLIPBOARD=false dans ~/.config/dictee.conf).

Pour activer la copie en toute sécurité, upgradez wl-clipboard vers ≥ 2.3.0 :

  • Arch — déjà à jour via pacman.
  • Ubuntu 24.04 / Debian stable — backport, ou build depuis source :
    git clone -b v2.3.0 https://github.com/bugaevc/wl-clipboard
    cd wl-clipboard && meson setup build && ninja -C build && sudo ninja -C build install
  • Fedora Rawhide — généralement à jour.

Une fois wl-clipboard ≥ 2.3.0 installé, wl-copy utilise la voie focus-neutre ext-data-control-v1 sur KDE et la pose du presse-papier ne vole plus le focus.

Limitation GNOME : Mutter n'expose pas encore ext-data-control-v1 en stable (mutter#524 toujours ouverte). Même avec wl-clipboard ≥ 2.3.0, le contournement focus-volant continue à se déclencher → laissez l'option presse-papier désactivée sur GNOME jusqu'à ce que Mutter intègre ext-data-control.


Étapes suivantes

📖 dictee Wiki

🇬🇧 Home · 🇫🇷 Accueil


Getting started / Premiers pas

Speech recognition / ASR

Translation / Traduction

Post-processing / Post-traitement

CLI

Reference / Référence


🏠 Repo · 📦 Releases · 🐛 Issues

Clone this wiki locally