URL: https://linuxfr.org/users/be-root/journaux/nocomprendo-le-retour Title: NoComprendo, le retour Authors: be.root Date: 2025年01月06日T11:50:20+01:00 License: CC By-SA Tags: nocomprendo, commande_vocale, reconnaissance_vocale, synthèse_vocale et elograf Score: 45 # Rappel des faits Il y a déjà 5 ans, quelques semaines avant le début du grand enfermement, je vous présentais NoComprendo, un programme de commande vocale pour Linux. Il permet d'associer des énoncés (mot ou groupe de mots précédés et suivis d'un silence) à des actions pré-programmée. Les actions disponibles sont : séquences de touches (raccourcis claviers), saisie de texte, déplacement de souris, lancement de programme plus quelques métas commandes de pilotage de l'application. [Première présentation](https://linuxfr.org/users/be-root/journaux/nocomprendo-la-commande-vocale-pour-linux) [Dépêche de l'époque](https://linuxfr.org/news/nocomprendo-version-1-0) Les premières versions utilisaient les bibliothèques PocketSphinx pour la reconnaissance vocale, et libxdo pour la simulation du clavier et de la souris. PocketSphinx n'avait plus le développement actif, et le nombre de langues disponibles était assez limité. La libxdo s'appuyant sur X11, le destin de NoComprendo était déjà scellé. Depuis la reconnaissance vocale a beaucoup progressé, et de nouveaux outils sont apparus pour piloter le clavier et la souris. En me promenant sur les forums Mageia (ma distibution habituelle) j'ai découvert [elograf](https://blog.mageia.org/fr/2024/01/03/elograf-rendre-la-reconnaissance-vocale-accessible/), développé par Papoteur, qui réalise la dictée vocale. Un petit tour dans le code pour découvrir les bibliothèques utilisées, et voilà de quoi faire renaître le moribond. # Quoi de neuf ? De simple outil de commande vocale, NoComprendo est devenu une application complète d'accessibilité en intégrant la dictée et la synthèse vocale. ![Fenêtre principale](http://be.root.free.fr/soft/nocomprendo/screenshots2/main-full-fr.png) ## Nouveaux composants Une bibliothèque de reconnaissance et de dictée vocale : [Vosk](https://github.com/alphacep/vosk-api) avec une vingtaine de langues disponibles. Un outil de simulation de clavier et de souris compatible X11/Wayland : [dotool](https://sr.ht/~geb/dotool/). N'ayant pas de wayland opérationnel sur une machine, je n'ai pas encore pu vérifier si la compatibilité est réelle. Je m'en tiens donc aux promesses du site. Un programme de synthèse vocale : [svox-pico](https://github.com/jpwhiting/svox-pico). Reconnaissance et synthèse vocales sont effectuées hors-ligne, comme dans la version précédente. Les Gafam ne vous enregistreront pas. ## Interface remaniée La principale différence avec les versions 1.x, c'est qu'il n'y a plus besoin de définir de vocabulaire spécifique. PocketSphinx cherchait à reconnaître des groupes de mots dans un ensemble de mots qu'il fallait déclarer au préalable. La nouvelle bibliothèque connaît l'ensemble de la langue française, rien à déclarer. On clique sur l'icône du micro et on articule bien devant le micro. Par contre on ne peut pas dire n'importe quoi, on en reparlera plus loin. ![Edition d'une commande](http://be.root.free.fr/soft/nocomprendo/screenshots2/command-key-fr.png) Les groupes de commande sont affichés dans les onglets de la fenêtre principale. Le premier onglet contient la liste des groupes de commandes. Les onglets suivants sont les groupes actifs. Il y a moins de fenêtres à ouvrir pour ajouter/modifier des groupes ou des commandes. Si une commande ne convient pas, on double clique dessus et on ré-enregistre. Tout le monde n'a pas besoin de commandes vocales, on peut n'être intéressé que par la dictée. Si c'est votre cas, il suffit de désactiver les groupes de commandes et commencer la dictée en cliquant sur le bouton prévu pour cet usage. Mais c'est plus marrant de commencer en disant "Je commence à dicter". Les commandes vocales permettent de gérer facilement les "point", "point à la ligne" ou "virgule". Le principe de la synthèse vocale (TTS : Text to speech) consiste comme d'habitude, à copier du texte dans le presse-papier, et de faire vocaliser le contenu du presse-papier. Il n'y a que six langues disponibles pour la synthèse vocale. ## Premier démarrage ### Modèle de langage Pour fonctionner, NoComprendo a besoin d'un modèle de langage. Celui-ci n'est pas intégré à l'application, il faut en télécharger un avant de commencer. NoComprendo se connecte sur le site [alphacephei.com](https://alphacephei.com/vosk/models) et vous propose la liste des modèles de langues disponibles. Pour le français, il y a un modèle 'fr' (1.4G) et un 'small-fr' (41M). Le choix du modèle n'est pas anodin, la reconnaissance vocale donnera des résultats différents d'un modèle à l'autre. Les groupes de commandes sont associées au modèle choisi. Je conseille l'utilisation du modèle 'fr'. ### Peut nécessiter un redémarrage Si dotool a été installé avec NoComprendo, il a besoin d'un redémarrage système pour prendre en compte de nouveaux droits d'écriture (simulation du clavier et de la souris). NoComprendo devrait détecter cette situation et suggérer un redémarrage, sinon seulement le lancement de programme et les métas commandes fonctionneront. # Formulation des énoncés L'ancienne bibliothèque PocketSphinx reconnaissait des mots individuellement. Les énoncés étaient faits de deux ou trois mots : `fermer fenêtre` pour émettre `Ctrl+W`, par exemple. Vosk est un modèle entrainé sur des exemples de langage, imprégné de statistiques et de probabilités que certains mots se retrouvent ensembles. Il va chercher à faire une phrase syntaxiquement correcte. Il vaudra mieux dire `Fermer la fenêtre`, la reconnaissance sera plus facile. Mais suivant le modèle utilisé ('fr' ou 'small-fr'), il peut écrire plutôt `Fermez la fenêtre` ou `Fermé la fenêtre`. La solution que j'ai retenu pour la plupart des exemples est `Ferme la fenêtre`. Il y a parfois des singuliers avec un modèle qui sont reconnus comme des pluriels avec l'autre. Tout ça pour justifier que le choix du modèle est important, et que les commandes vocales ne sont pas toujours interchangeables. La langue française est accompagnée d'un jeu d'exemples de commandes. Il n'y a presque rien en anglais, car mon terrible accent n'est pas reconnu. Je suis prêt à intégrer des exemples de commandes qui me seraient fournies par d'authentiques anglophones. # Empaquetage Pour les versions 1.X, j'avais fourni des paquets pour différentes distributions Linux via Open Build Service. La mise à jour des paquets demande un suivi annuel fastidieux, à chaque sortie de nouvelle version d'une distribution. Je n'ai plus le temps ni l'envie de m'en occuper. Dorénavant, seuls les sources en .tar.gz et un paquet Mageia seront disponibles sur mon site. Ça se compile avec Qt. Je ne sais pas si Vosk et dotool sont bien intégrés dans les autres distributions Linux. En cas de difficulté, les empaqueteurs peuvent me contacter. # Où trouver ça ? [NoComprendo](http://be.root.free.fr/?soft=nocomprendo) [L'aide intégrée est aussi disponible sur le site](http://be.root.free.fr/?soft=nocomprendo&menu=help).

AltStyle によって変換されたページ (->オリジナル) /