Skip to content

🎤 Nix flake for offline French speech-to-text with nerd-dictation. Includes VOSK, French model, and auto-detection for Wayland/X11. Zero configuration required! / Flake Nix pour dictée vocale française hors ligne avec détection automatique Wayland/X11.

Notifications You must be signed in to change notification settings

fclaeys/nix-nerd-dictation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nerd-dictation Nix Flake

⚠️ WORK IN PROGRESS / TRAVAIL EN COURS

🇬🇧 This project is currently a work in progress and only functions under specific conditions:

  • âś… Tested on Linux with Wayland (COSMIC DE)
  • âś… Works with PulseAudio/PipeWire audio systems
  • ⚠️ May require audio system configuration
  • ⚠️ Microphone permissions needed
  • 🇫🇷 Currently optimized for French language only

🇫🇷 Ce projet est actuellement en cours de développement et ne fonctionne que dans certaines conditions :

  • âś… TestĂ© sur Linux avec Wayland (COSMIC DE)
  • âś… Fonctionne avec les systèmes audio PulseAudio/PipeWire
  • ⚠️ Peut nĂ©cessiter une configuration du système audio
  • ⚠️ Permissions microphone requises
  • 🇫🇷 Actuellement optimisĂ© pour le français uniquement

Ce flake Nix fournit un package et des modules NixOS/Home Manager pour nerd-dictation, un outil de dictée vocale hors ligne.

✅ Installation complètement automatisée

VOSK et le modèle français sont maintenant inclus automatiquement dans le package !

  • âś… VOSK 0.3.45 inclus
  • âś… Modèle français vosk-model-small-fr-0.22 inclus
  • 🎯 DĂ©tection automatique Wayland/X11 pour l'injection de texte
  • 🇫🇷 Configuration française automatique avec ponctuation
  • 🚀 PrĂŞt Ă  l'emploi sans configuration

Utilisation

Package seul

nix run github:votre-utilisateur/nix-nerd-dictation

Module NixOS

{
  inputs.nerd-dictation.url = "github:votre-utilisateur/nix-nerd-dictation";
  
  imports = [ inputs.nerd-dictation.nixosModules.default ];
  
  services.nerd-dictation = {
    enable = true;
    modelPath = "/path/to/vosk-model";
    audioBackend = "parec";  # ou "sox", "pw-cat"
    inputBackend = "xdotool"; # ou "ydotool", "dotool", "wtype"
    configScript = ''
      def text_replace_function(text):
        text = text.replace("new line", "\n")
        text = text.replace("tab", "\t")
        return text
    '';
  };
}

Module Home Manager

{
  imports = [ inputs.nerd-dictation.homeManagerModules.default ];
  
  programs.nerd-dictation = {
    enable = true;
    modelPath = "/home/user/.local/share/vosk-model";
    keyBindings = {
      "super+d" = "nerd-dictation begin";
      "super+shift+d" = "nerd-dictation end";
      "super+ctrl+d" = "nerd-dictation suspend";
    };
    enableSystemdService = true;
  };
}

Configuration

Options principales

  • modelPath : Chemin vers le modèle VOSK
  • audioBackend : Backend audio (parec, sox, pw-cat)
  • inputBackend : Backend d'entrĂ©e (xdotool, ydotool, dotool, wtype)
  • configScript : Script Python de configuration personnalisĂ©
  • timeout : Timeout en millisecondes pour la reconnaissance vocale
  • idleTime : Temps d'inactivitĂ© avant l'arrĂŞt de l'enregistrement
  • convertNumbers : Convertir les mots nombres en chiffres

Détection automatique de l'environnement

Le package détecte automatiquement votre environnement graphique :

  • Wayland (COSMIC, GNOME, Sway, etc.) → utilise wtype
  • X11 (i3, XFCE, etc.) → utilise xdotool

Configuration française automatique

Au premier lancement, une configuration française est automatiquement créée dans ~/.config/nerd-dictation/nerd-dictation.py qui inclut :

  • Ponctuation : "virgule" → ,, "point d'interrogation" → ?, etc.
  • Symboles : "arobase" → @, "pourcentage" → %, "plus" → +, etc.
  • Navigation : "nouvelle ligne" → retour Ă  la ligne, "tabulation" → tab

Exemples de dictée :

  • "Bonjour virgule comment allez-vous point d'interrogation" → "Bonjour, comment allez-vous ?"
  • "Mon email arobase exemple point com" → "Mon email @exemple.com"
  • "Quarante-deux pour cent" → "42%"

Raccourcis clavier (Home Manager)

Le module Home Manager peut configurer automatiquement les raccourcis clavier pour i3 et sway :

programs.nerd-dictation.keyBindings = {
  "ctrl+alt+d" = "nerd-dictation begin";
  "ctrl+alt+shift+d" = "nerd-dictation end";
};

Service systemd

Le module NixOS crée un service système, tandis que le module Home Manager peut créer un service utilisateur optionnel.

Alias shell

Le module Home Manager ajoute automatiquement des alias pratiques :

  • nd-begin : DĂ©marrer la dictĂ©e
  • nd-end : ArrĂŞter la dictĂ©e
  • nd-suspend : Suspendre/reprendre la dictĂ©e

About

🎤 Nix flake for offline French speech-to-text with nerd-dictation. Includes VOSK, French model, and auto-detection for Wayland/X11. Zero configuration required! / Flake Nix pour dictée vocale française hors ligne avec détection automatique Wayland/X11.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •