Journal gSpeech passe en 0.10

Posté par  . Licence CC By‑SA.
20
27
juin
2020
Ce journal a été promu en dépêche : gSpeech passe en 0.10.

Bonjour à tous.

gSpeech est un petit utilitaire que je vous avait déjà présenté ici pour le lancement de la 0.8 : https://linuxfr.org/users/mothsart/journaux/lancement-de-gspeech-0-8 et qui permet la synthèse vocale sur linux.
Une présentation, somme toute sommaire est disponible ici : https://wiki.primtux.fr/doku.php/gspeech

Je rappel que avant tout, j'ai repris et amélioré ce soft en vue d'améliorer l'expérience utilisateur dans la distribution Primtux et par conséquent pour le milieu francophone.
Maintenant, son usage permet bien évidement de couvrir un champ plus large.

Voici donc les évolutions depuis la présentation précédente :

  • la possibilité de modifier la vitesse de lecture : fonctionnalité au combien demandé dans le milieu scolaire ou on veut souvent réécouter une portion de texte au ralenti.
  • création d'un paquet .deb en bonne et du forme : l'existant installait tout dans /opt
  • mise en place d'un PPA pour tous les utilisateurs de Ubuntu et variantes : https://launchpad.net/~jerem-ferry/+archive/ubuntu/tts/+packages
  • création d'un paquet nix et intégration dans nixpkgs (https://github.com/NixOS/nixpkgs/pull/86641) Je tiens à préciser que la distrib Nix est pour le coup, la première à intégrer nativement gSpeech !
  • mise en place d'un dialogue de configuration. En effet, jusqu'à présent, gSpeech utilisait les boites de dialogue de notification par défaut (si il détecte la fonctionnalité sur le système). Ce comportement, assez intrusif n'est pas du gout de tout le monde et peut donc désormais être désactivé.
  • résolution de bug sur les gros fichier. gSpeech utilise une librairie du nom de picoTTS pour sa synthèse vocale. Cette librairie n'est malheureusement plus maintenu et présente plusieurs défauts. Notamment, elle ne gère pas les textes de plus de 30000 caractères.

Du coup, gSpeech tente de résorber ça en :
1. découpant les textes en paquet de 3000 caractères max en coupant en fin de phrase. Sinon, on perdrait potentiellement la qualité d’intonation sur les raccords : par exemple, fin de phrase interrogative.
2. en parallélisant (pour que ça soit le plus rapide) la conversion de ces paquets via picovox.
3. on rassemble les fichiers produits et on les lit via un petit utilitaire du nom de "sox"

  • passage à flake8.
    Pour les amoureux de Python, il existe un utilitaire du nom de flake8 qui permet d'améliorer la lisibilité du code.(c'est grosso modo un linter)
    C'est toujours un travail ingrat mais obligatoire pour gagner en sérieux.
    flake8 est également intégré dans l'intégration continue.

  • découplage et meilleur choix dans les noms des variables, fichiers, classes etc : toujours dans une optique de maturité.

  • toutes les nouvelles fonctionnalités sont systématiquement traduites en anglais et français.

  • mise en place d'un makefile pour mieux piloter les actions récurrentes du projet

  • ajout de la prise en charge de nouveaux mots et expressions.
    Autre soucis de picoTTS : il lit de manière brutal sans aucune intelligence.
    gSpeech essai de résorber ça avec un ensemble de dictionnaires, d'expressions régulières et quelques algos custom.
    Une liste d'exemples non exhaustif :

  • prise en compte de l'œ

  • lettre muette sur certains mots : "choeur" se prononce "coeur"

  • lettre non muette sur certains mots : "coq" se prononce "coque"
    etc.

Ma dernière lubie a été de prendre en charge une part de vocabulaire anglais devenu courant :
foot, burger, week-end, western etc.

J'ai également rajouté quelques mots provenant de notre monde inondé par le numérique : twitter, facebook, geek, hardware etc.

Pour l'instant j'implémente dans cet ordre :
- phrases lu dans des applicatifs Primtux en priorité suprême
- ajout d'une liste complète sur un thème précis : https://fr.wiktionary.org/wiki/Annexe:Mots_fran%C3%A7ais_d%E2%80%99origine_anglaise par exemple

J'ai pas vraiment de méthodologie propre mais mon objectif est bien évidement de couvrir les cas les plus commun.
Je suis donc ouvert à toute proposition pour aboutir a une couverture de plus en plus grande !
Pourquoi pas faire un peu d'IA, de la gamification ou autre idée cool du moment que ça soit raisonnable à implémenter et que surtout ça porte du fruit.

Il faudra sans doute que je me penche progressivement vers une analyse plus fine du texte avec des règles selon la grammaire, le contexte etc.

Rien n'interdit de me prévenir via ce journal, un ticket github, par mail etc dès que vous avez identité un ou plusieurs mots/expressions mal pris en charge.
Je ne serais que ravi de pouvoir corriger ça.

  • # Ne lis pas

    Posté par  . Évalué à 1.

    Bonjour,
    J'ai bien installé gspeech sur mon Linux Mint, mais quand je sélectionne du texte rien ne se lis à haute voix. J'ai bien une fenêtre qui dit "I'm reading the text, one moment please", mais pas de son…

    arnauld

    • [^] # Re: Ne lis pas

      Posté par  . Évalué à 1.

      J'en déduis que tu l'as installé via le ppa ?
      Peux-être un soucis de dépendance oublié dans mon .deb.

      Si tu lances gspeech via un terminal et que tu fais la même manip, as-tu un message d'erreur ?
      Tu peux aussi le lancer en ligne de commande (il te faut alsa-utils pour lancer aplay) :

      gspeech-cli -i "mon texte" -o son.wav && aplay son.wav

  • # soucis d'installation ou d'utilisation

    Posté par  . Évalué à 2.

    Si vous rencontrez le moindre soucis d'installation ou d'utilisation de Gspeech, j'ai créé une entrée sur le forum dédié : https://linuxfr.org/forums/linux-debian-ubuntu/posts/installation-de-gspeech

    Merci d'avance

  • # Licence?

    Posté par  (site web personnel) . Évalué à 3.

    Il me semble que Svox Pico ne soit pas libre, est-ce vrai?

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: Licence?

      Posté par  . Évalué à 1.

      Effectivement, je pense que tu es dans le vrai.
      Sur Ubuntu, c'est classé dans multiverse et sur Nix, je tombe sur la même licence https://nixos.org/nixos/packages.html?channel=nixos-20.03&query=pico

      Vu que j'ai repris le projet (gSpeech) et qu'il était sous GPL 3, je ne me suis pas posé de questions outre mesure pensant que c'était déjà tranché.

      Je ne sais pas trop si j'ai par conséquent un soucis de licence vu que gSpeech se retrouve a être une GUI au dessus d'un moteur TTS propriétaire.

      • [^] # Re: Licence?

        Posté par  (site web personnel) . Évalué à 4. Dernière modification le 27 juin 2020 à 19:49.

        Et chez Debian c'est dans le dépôt nonfree. Je ne pense pas qu'il y ait de problème pour ton interface, tu peux très bien faire un logiciel libre qui s'interface avec des bibliothèques proprios (attention par contre si ces bibliothèques sont inclues lors de la compilation). Pour la redistribution il ne devrait pas y avoir de problème non plus, apparemment le binaire est sous licence Apache.

        Mais le code source n'est pas disponible, ça empêche le portage et l'amélioration, la maintenance, et empêche d'inspecter le code. C'est vraiment dommage.

        Un LUG en Lorraine : https://enunclic-cappel.fr

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.