Voix hors ligne à l’échelle du système vers des commandes ou du texte, système enfichable

Service SL5 Aura - Fonctionnalités et compatibilité du système d’exploitation

Bienvenue au service SL5 Aura ! Ce document fournit un aperçu rapide de nos fonctionnalités clés et de leur compatibilité avec le système d’exploitation.

Aura n’est pas seulement un transcripteur ; il s’agit d’un puissant moteur de traitement hors ligne qui transforme votre voix en actions et en texte précis.

Il s’agit d’un assistant complet hors ligne construit sur Vosk et LanguageTool, conçu pour une personnalisation ultime grâce à un système de règles enfichable et un moteur de script dynamique.

Traductions : Ce document existe également en other languages.

Remarque : De nombreux textes sont des traductions générées automatiquement de la documentation originale en anglais et sont uniquement destinés à des conseils généraux. En cas de divergences ou d’ambiguïtés, la version anglaise prévaut toujours. Nous apprécions l’aide de la communauté pour améliorer cette traduction !

SL5 Aura (v0.7.0.2): A Deep Dive Under the Hood – Live Coding & Core Concepts (https://skipvids.com/?v=tEijy8WRFCI)

Principales fonctionnalités

  • Hors ligne et privé : 100 % local. Aucune donnée ne quitte votre machine.

  • Moteur de script dynamique : Allez au-delà du remplacement de texte. Les règles peuvent exécuter des scripts Python personnalisés (on_match_exec) pour effectuer des actions avancées telles que l’appel d’API (par exemple, rechercher sur Wikipédia), interagir avec des fichiers (par exemple, gérer une liste de tâches) ou générer du contenu dynamique (par exemple, un message d’accueil par e-mail contextuel).

  • Moteur de transformation à contrôle élevé : implémente un pipeline de traitement hautement personnalisable et basé sur la configuration. La priorité des règles, la détection des commandes et les transformations de texte sont déterminées uniquement par l’ordre séquentiel des règles dans les cartes floues, nécessitant une configuration, pas un codage.

  • Utilisation conservatrice de la RAM : Gère intelligemment la mémoire, en préchargeant les modèles uniquement si suffisamment de RAM libre est disponible, garantissant ainsi que les autres applications (comme vos jeux PC) ont toujours la priorité.

  • Multiplateforme : Fonctionne sous Linux, macOS et Windows.

  • Entièrement automatisé : Gère son propre serveur LanguageTool (mais vous pouvez également en utiliser un externe).

  • Blazing Fast : La mise en cache intelligente garantit des notifications instantanées « Écoute … » et un traitement rapide.

##Documents

Pour une référence technique complète, y compris tous les modules et scripts, veuillez visiter notre page de documentation officielle. Il est généré automatiquement et toujours à jour.

Go to Documentation >>

État de la construction

Linux Manjaro Linux Ubuntu Linux Suse macOS Windows 11

Documentation

Lisez ceci dans d’autres langues :

🇬🇧 English | 🇸🇦 العربية | 🇩🇪 Deutsch | 🇪🇸 Español | 🇫🇷 Français | 🇮🇳 हिन्दी | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇵🇱 Polski | 🇵🇹 Português | 🇧🇷 Português Brasil | 🇨🇳 简体中文


##Installation

La configuration est un processus en deux étapes :

  1. Clonez ce référentiel sur votre ordinateur.

  2. Exécutez le script d’installation unique pour votre système d’exploitation.

Les scripts d’installation gèrent tout : les dépendances du système, l’environnement Python et le téléchargement des modèles et outils nécessaires (~ 4 Go) directement depuis nos versions GitHub pour une vitesse maximale.

Pour Linux, macOS et Windows

Ouvrez un terminal dans le répertoire racine du projet et exécutez le script pour votre système :

# For Ubuntu/Debian, Manjaro/Arch, macOs  or other derivatives

bash setup/{your-os}_setup.sh

# For Windows in Admin-Powershell

setup/windows11_setup.ps1

Pour Windows

Exécutez le script d’installation avec les privilèges d’administrateur “Exécuter avec PowerShell”.

Installez un outil pour lire et exécuter, par ex. CopyQ ou AutoHotkey v2. Ceci est requis pour l’observateur de saisie de texte.


Utilisation

1. Démarrez les services

Sous Linux et macOS

Un seul script gère tout. Il démarre automatiquement le service de dictée principal et l’observateur de fichiers en arrière-plan.

# Run this from the project's root directory
./scripts/restart_venv_and_run-server.sh

Sous Windows

Le démarrage du service est un processus manuel en deux étapes :

  1. Démarrez le service principal : Exécutez start_dictation_v2.0.bat. ou démarrez à partir de .venv le service avec python3

2. Configurez votre raccourci clavier

Pour déclencher la dictée, vous avez besoin d’un raccourci clavier global qui crée un fichier spécifique. Nous recommandons fortement l’outil multiplateforme CopyQ.

Notre recommandation : CopyQ

Créez une nouvelle commande dans CopyQ avec un raccourci global.

Commande pour Linux/macOS :

touch /tmp/sl5_record.trigger

Commande pour Windows lors de l’utilisation de CopyQ :

copyq:
var filePath = 'c:/tmp/sl5_record.trigger';

var f = File(filePath);

if (f.openAppend()) {
    f.close();
} else {
    popup(
        'error',
        'cant read or open:\n' + filePath
        + '\n' + f.errorString()
    );
}

Commande pour Windows lors de l’utilisation de AutoHotkey :

; trigger-hotkeys.ahk
; AutoHotkey v2 Skript
#SingleInstance Force ; Stellt sicher, dass nur eine Instanz des Skripts läuft

;===================================================================
; Hotkey zum Auslösen des Aura Triggers
; Drücke Strg + Alt + T, um die Trigger-Datei zu schreiben.
;===================================================================
f9::
f10::
f11::
{
    local TriggerFile := "c:\tmp\sl5_record.trigger"
    FileAppend("t", TriggerFile)
    ToolTip("Aura Trigger ausgelöst!")
    SetTimer(() => ToolTip(), -1500)
}

3. Commencez à dicter !

Cliquez dans n’importe quel champ de texte, appuyez sur votre touche de raccourci et une notification “Écoute…” apparaîtra. Parlez clairement, puis faites une pause. Le texte corrigé sera tapé pour vous.


Configuration avancée (facultatif)

Vous pouvez personnaliser le comportement de l’application en créant un fichier de paramètres local.

  1. Accédez au répertoire config/.

  2. Créez une copie de settings_local.py_Example.txt et renommez-la en settings_local.py.

  3. Modifiez settings_local.py pour remplacer tout paramètre du fichier principal config/settings.py.

Ce fichier settings_local.py est (peut-être) ignoré par Git, donc vos modifications personnelles ne seront (peut-être) pas écrasées par les mises à jour.

Structure et logique du plug-in

La modularité du système permet une extension robuste via le répertoire plugins/.

Le moteur de traitement adhère strictement à une Chaîne de priorités hiérarchique :

  1. Ordre de chargement des modules (haute priorité) : Les règles chargées à partir des modules linguistiques principaux (de-DE, en-US) ont priorité sur les règles chargées à partir du répertoire plugins/ (qui se chargent en dernier par ordre alphabétique).

  2. Ordre dans le fichier (micro-priorité) : Dans tout fichier de carte donné (FUZZY_MAP_pre.py), les règles sont traitées strictement par numéro de ligne (de haut en bas).

Cette architecture garantit que les règles de base du système sont protégées, tandis que les règles spécifiques au projet ou sensibles au contexte (comme celles de CodeIgniter ou des contrôles de jeu) peuvent être facilement ajoutées en tant qu’extensions de faible priorité via des plug-ins.

Scripts clés pour les utilisateurs Windows

Voici une liste des scripts les plus importants pour configurer, mettre à jour et exécuter l’application sur un système Windows.

Configuration et mise à jour

  • setup/setup.bat : Le script principal pour la configuration initiale unique de l’environnement.

  • or Exécutez PowerShell -Command "Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force; .\setup\windows11_setup.ps1"

  • update.bat : exécutez-les à partir du dossier Projet obtenez le dernier code et les dernières dépendances.

Exécution de l’application

  • start_dictation_v2.0.bat : Un script principal pour démarrer le service de dictée.

Scripts de base et d’assistance

  • dictation_service.py : Le service Python principal (généralement démarré par l’un des scripts ci-dessus).

  • get_suggestions.py : Un script d’assistance pour des fonctionnalités spécifiques.

🚀 Principales fonctionnalités et compatibilité du système d’exploitation

Légende de compatibilité du système d’exploitation :

  • 🐧 Linux (par exemple, Arch, Ubuntu)

  • 🍏 macOS

  • 🪟 Windows

  • 📱 Android (pour les fonctionnalités spécifiques aux mobiles)


Moteur principal de synthèse vocale (Aura)

Notre principal moteur de reconnaissance vocale et de traitement audio hors ligne.

Aura-Core/ 🐧 🍏 🪟
├─ dictation_service.py (Service Python principal orchestrant Aura) 🐧 🍏 🪟
├┬ Live Hot-Reload (Configuration et cartes) 🐧 🍏 🪟
│├ Traitement et correction de texte/ Regroupés par langue ( par exemple de-DE, en-US, … )
│├ 1. normalize_punctuation.py (Standardise la ponctuation après la transcription) 🐧 🍏 🪟
│├ 2. Pré-correction intelligente (FuzzyMap Pre - The Primary Command Layer) 🐧 🍏 🪟
││ * Exécution de script dynamique : Les règles peuvent déclencher des scripts Python personnalisés (on_match_exec) pour effectuer des actions avancées telles que des appels d’API, des E/S de fichiers ou générer des réponses dynamiques.
││ * Exécution en cascade : Les règles sont traitées séquentiellement et leurs effets sont cumulatifs. Les règles ultérieures s’appliquent au texte modifié par les règles antérieures.
││ * Critère d’arrêt de priorité la plus élevée : Si une règle obtient une Correspondance complète (^…$), l’ensemble du pipeline de traitement pour ce jeton s’arrête immédiatement. Ce mécanisme est essentiel pour implémenter des commandes vocales fiables.
│├ 3. correct_text_by_lingualtool.py (Intègre LanguageTool pour la correction de grammaire/style) 🐧 🍏 🪟
│└ 4. Post-correction intelligente (FuzzyMap)** – Affinement post-LT** 🐧 🍏 🪟
││ * Appliqué après LanguageTool pour corriger les sorties spécifiques à LT. Suit la même logique stricte de priorité en cascade que la couche de pré-correction.
││ * Exécution de script dynamique : Les règles peuvent déclencher des scripts Python personnalisés (on_match_exec) pour effectuer des actions avancées telles que des appels d’API, des E/S de fichiers ou générer des réponses dynamiques.
││ * Fuzzy Fallback : Le Fuzzy Similarity Check (contrôlé par un seuil, par exemple 85 %) agit comme la couche de correction d’erreurs la plus basse priorité. Elle n’est exécutée que si l’exécution complète de la règle déterministe/en cascade précédente n’a pas réussi à trouver une correspondance (current_rule_matched est False), optimisant ainsi les performances en évitant les vérifications floues lentes autant que possible.
├┬ Gestion des modèles/
│├─ prioritize_model.py (Optimise le chargement/déchargement du modèle en fonction de l’utilisation) 🐧 🍏 🪟
│└─ setup_initial_model.py (Configure la première configuration du modèle) 🐧 🍏 🪟
├─ Délai d’expiration VAD adaptatif 🐧 🍏 🪟
├─ Raccourci clavier adaptatif (Démarrer/Arrêter) 🐧 🍏 🪟
└─ Changement de langue instantané (expérimental via le préchargement du modèle) 🐧 🍏

Utilitaires système/
├┬ Gestion du serveur LanguageTool/
│├─ start_lingualtool_server.py (Initialise le serveur LanguageTool local) 🐧 🍏 🪟
│└─ stop_lingualtool_server.py (Arrête le serveur LanguageTool) 🐧 🍏 ├─ monitor_mic.sh (par exemple pour une utilisation avec un casque sans utiliser le clavier ni le moniteur) 🐧 🍏 🪟

Gestion des modèles et des packages

Outils pour une gestion robuste des grands modèles de langage.

Gestion de modèles/ 🐧 🍏 🪟
├─ Téléchargeur de modèles robuste (morceaux de la version GitHub) 🐧 🍏 🪟
├─ split_and_hash.py (Utilitaire permettant aux propriétaires de dépôts de diviser des fichiers volumineux et de générer des sommes de contrôle) 🐧 🍏 🪟
└─ download_all_packages.py (outil permettant aux utilisateurs finaux de télécharger, vérifier et réassembler des fichiers en plusieurs parties) 🐧 🍏 🪟

Aide au développement et au déploiement

Scripts pour la configuration de l’environnement, les tests et l’exécution des services.

DevHelpers/
├┬ Gestion de l’environnement virtuel/
│├ scripts/restart_venv_and_run-server.sh (Linux/macOS) 🐧 🍏
│└ scripts/restart_venv_and_run-server.ahk (Windows) 🪟
├┬ Intégration de dictée à l’échelle du système/
│├ Intégration Vosk-System-Listener 🐧 🍏 🪟
│├ scripts/monitor_mic.sh (surveillance des microphones spécifiques à Linux) 🐧
│└ scripts/type_watcher.ahk (AutoHotkey écoute le texte reconnu et le tape dans tout le système) 🪟
└─ Automation CI/CD/
└─ Workflows GitHub étendus (installation, tests, déploiement de documents) 🐧 🍏 🪟 (S’exécute sur les actions GitHub)

Fonctionnalités à venir/expérimentales

Fonctionnalités actuellement en cours de développement ou à l’état de projet.

Fonctionnalités expérimentales/
├─ ENTER_AFTER_DICTATION_REGEX Exemple de règle d’activation “(ExampleAplicationThatNotExist|Pi, votre IA personnelle)” 🐧
├┬Plugins
│╰┬ Live Lazy-Reload (*) 🐧 🍏 🪟
(Les modifications apportées à l’activation/désactivation du plug-in et à leurs configurations sont appliquées lors de la prochaine exécution du traitement sans redémarrage du service.)
│ ├ commandes git (Contrôle vocal pour envoyer des commandes git) 🐧 🍏 🪟
│ ├ wannweil (Carte de localisation Allemagne-Wannweil) 🐧 🍏 🪟
│ ├ Poker Plugin (Draft) (Contrôle vocal pour les applications de poker) 🐧 🍏 🪟
│ └ 0 A.D. Plugin (Draft) (Commande vocale pour le jeu 0 A.D.) 🐧
├─ Sortie sonore au démarrage ou à la fin d’une session (Description en attente) 🐧
├─ Sortie vocale pour les malvoyants (Description en attente) 🐧 🍏 🪟
└─ Prototype Android SL5 Aura (Pas encore entièrement hors ligne) 📱


(Remarque : des distributions Linux spécifiques comme Arch (ARL) ou Ubuntu (UBT) sont couvertes par le symbole général Linux 🐧. Des distinctions détaillées peuvent être couvertes dans les guides d’installation.)

<détails>

Cliquez pour voir la commande utilisée pour générer cette liste de scripts
{ find . -maxdepth 1 -type f \( -name "dictation_service.py" -o -name "get_suggestions.py" \) ; find . -path "./.venv" -prune -o -path "./.env" -prune -o -path "./backup" -prune -o -path "./LanguageTool-6.6" -prune -o -type f \( -name "*.bat" -o -name "*.ahk" -o -name "*.ps1" \) -print | grep -vE "make.bat|notification_watcher.ahk"; }

</détails>

regardez graphiquement ce qu’il y a derrière :

yappi_call_graph

pydeps -v -o dependencies.svg scripts/py/func/main.py

Modèles utilisés :

Recommandation : utilisez les modèles de Mirror https://github.com/sl5net/SL5-aura-service/releases/tag/v0.2.0.1 (probablement plus rapide)

Ces modèles zippés doivent être enregistrés dans le dossier models/

mv vosk-model-*.zip modèles/

Modèle

Taille

Taux d’erreur de mot/Vitesse

Remarques

Licence

vosk-model-en-us-0.22

1,8G

5,69 (librispeech test-clean)
6,05 (tedlium)
29,78 (centre d’appels)

Modèle générique précis en anglais américain

Apache2.0

vosk-model-de-0.21

1,9G

9,83 (Tuda-de test)
24,00 (podcast)
12,82 (cv-test)
12,42 (mls)
33,26 (mtedx)

Grand modèle allemand de téléphonie et de serveur

Apache2.0

Ce tableau donne un aperçu des différents modèles Vosk, y compris leur taille, leur taux d’erreur de mots ou leur vitesse, leurs notes et leurs informations de licence.

Licence de LanguageTool : GNU Lesser General Public License (LGPL) v2.1 or later


Soutenez le projet

Si vous trouvez cet outil utile, pensez à nous offrir un café ! Votre soutien contribue à alimenter les améliorations futures.

ko-fi

Stripe-Buy Now