Journal Lancement de Gspeech 0.8

Posté par  . Licence CC By‑SA.
Étiquettes :
43
16
avr.
2020

Bonjour à tous.

J'ai décidé de dépoussiérer un logiciel qui me semblait avoir un bon potentiel mais quelques lacunes.

gSpeech est un petit utilitaire qui permet de lire du texte. (synthèse vocale)
Pour un descriptif détaillé : https://wiki.primtux.fr/doku.php/gspeech et pour un complément d'information : https://doc.ubuntu-fr.org/svoxpico

Bon, on peut pas dire que le TTS (Text To Speech) soit la joie sous Linux.

Ça fait maintenant quelques années que j'aide au développement de la distribution Primtux et gSpeech (ainsi que la lib pico Vox) est au cœur de la synthèse vocale.

Au début j'ai donc timidement apporté quelques patchs au projet puis avec le temps, j'ai approfondi.

Qu'est-ce qu'apporte cette version 0.8 :

  • meilleur couverture de la traduction (en français)
  • utilisation en cli : ça a permis de créer les contenus oraux de cette l'appli Primtux "J'écoute puis j'écris" (non finalisé) : https://primtux.fr/applications/ecoute-ecris/

  • migration de python 2 à python 3

  • migration de GTK 2 à GTK 3

  • refactoring avec un meilleur découpage. (C'est encore loin d'être ça mais quand on reprend un soft, il faut déjà avoir une vision général avant de tout recadrer.

  • mise en place de tests unitaires et d'intégration continue

  • source pour la création de paquet debian : le paquet le plus à jour, trouvé dans un PPA mettais tout en vrac dans /opt.
    j'ai rendu les choses un peu plus élégant au sens arbo UNIX. (mais la perfection n'est pas de ce monde, il reste des warning Lintian)

  • possibilité de tester sous docker : process dans le README

  • gestion plus fine des dictionnaires

Je souhaites attirer votre attention sur ce point qui sera sans doute la pierre d'angle de mes futures travaux :
améliorer la reconnaissance de texte.

Pour cela, je m'appuie sur 3 axes :

  • utilisation de dictionnaires "clé" => "valeurs". La clé représente le mot retrouvé et la valeur le remplacement pour qu'il soit lu de la meilleur manière par picovox. Par exemple : "parent" est transformé en "paran" pour qu'il ne soit pas lu "par". Autre exemple : prise en compte du œ, non reconnu par pico Vox donc remplacé avant lecture par "oe".

Pourquoi plusieurs dictionnaires ? Car avant, tout était mélangé dans un et ça devenait ingérable.
Maintenant, on a des dictionnaire pour : les abréviations, les acronymes, les marques, les noms propres, les expressions, les termes techniques, l'argot etc.
Bref, une meilleur classification, de meilleurs diff git.

  • utilisation de dictionnaire avec des expressions régulières : certains cas nécessite plus de finesse.

  • utilisation d'algos maisons car les expressions régulières ne couvrent pas tout et peuvent être gourmandes.

Ces règles sont strictement confinés (il fallait que je place ce mot) à la langue sélectionné.

Pour des raisons évidentes de temps (et de capacité), je me suis uniquement concentré sur la langue française mais il n'est pas interdit de proposer votre aide.

J'ai malheureusement noté les évolutions effectués que très récemment. C'est donc loin d'être exhaustif.

Et dans l'avenir ?

J'ai des projets un peu plus nobles encore pour une version 1.0 digne de ce nom.
J'aimerais pouvoir créer un daemon pour la synthèse vocale qui ferait tampon entre gSpeech et picoVox et qui encapsulerais toute la partie reconnaissance de texte.
Ce moteur intermédiaire traiterait de la phonétique et non une pseudo langue. (dédié à pico Vox)
Il pourrait aussi s'interfacer avec d'autres moteurs de synthèse : je pense par exemple à DeepSpeech de Mozilla (https://github.com/mozilla/DeepSpeech)
mais aussi aux API web de Google par exemple. (POC here : https://github.com/mothsART/speechscripts)
Egalement, il mettrait à disposition une API C (avec un ou plusieurs exemples de wrapper) et une API web pour pouvoir être piloté par des applis.
Pour cela, un daemon aurait la capacité d'éviter de jouer plusieurs lectures en simultanée et de se retrouver avec des cas de cacophonie.
Bref, les idées ne tarisse pas et j'ai déjà fait un 1er jet (wrapper en python et dev en Rust) : https://github.com/mothsART/speechtux
GSpeech redeviendrait en quelque sorte ce qu'il a toujours été : une simple GUI au dessus de tout ça.

Enfin, je compte également proposer un paquet Nix. (projet pour lequel je me passionne depuis peu)

Bien entendu, je suis ouvert à toute proposition d'amélioration, de correctif.

  • # oubli : appli "j'écoute puis j'écrit"

    Posté par  . Évalué à 6.

    J'ai oublié de mettre le lien de l'app Primtux "J'écoute puis j'écris" (non finalisé) : https://primtux.fr/applications/ecoute-ecris/

  • # Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

    Posté par  (site web personnel, Mastodon) . Évalué à 1. Dernière modification le 16 avril 2020 à 17:18.

    Ça l'air d'être vraiment intéressant mais, je suis désolée de le dire, le journal sent la personne dans son truc, super contente d'avoir fait du bon boulot (ce que je peux comprendre), mais tellement dans son truc qu'elle oublie qu'on ne sait pas forcément ce qu'est ce logiciel et de quoi il est capable. Du coup, on a peut-être un peu de mal à rentrer dans les détails techniques.

    J'ai cru comprendre qu'il s'agissait d'un logiciel de reconnaissance vocale (ce qui est super bien et semble manquer sous Linux) mais une présentation plus détaillée serait une bonne idée : qu'est-ce que ça fait, de quoi ça a besoin, comment cela fonctionne, quels sont les résultats ? Des captures d'écran peut-être aussi (ou peut-être pas) ?

    Merci d'éclairer ma lanterne :-)

    « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

    • [^] # Re: Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

      Posté par  . Évalué à 8.

      J'ai cru comprendre qu'il s'agissait d'un logiciel de reconnaissance vocale

      L'inverse en fait : TTS pour text to speech, désigne la synthèse vocale

    • [^] # Re: Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

      Posté par  . Évalué à 6.

      T'as pas à être désolé, il manque effectivement un prélude. (je pensais, à tord que c'était assez connu)

      Y'a un peu de doc ici : https://doc.ubuntu-fr.org/svoxpico et je viens d'éditer ça :
      https://wiki.primtux.fr/doku.php/gspeech

      Je compléterais sans doute mais tu m'as pris de court.

      Et oui, c'est bien de la synthèse vocale (et non de la reconnaissance vocal).

      • [^] # Re: Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

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

        Si tu veux ajouter une intro à ton journal, tu demandes. Comme tu ne peux pas le modifier, il suffit que tu l'indiques dans un commentaire et que tu demandes à la modération de le faire et on le fera. Mais on n'interviendra pas dessus de notre propre chef.

        « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

        • [^] # Re: Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

          Posté par  . Évalué à 2. Dernière modification le 16 avril 2020 à 20:40.

          Très bien.

          Serais-ce possible à un modérateur de rajouter en intro :

          gSpeech est un petit utilitaire qui permet de lire du texte. (synthèse vocale)
          Pour un descriptif détaillé : https://wiki.primtux.fr/doku.php/gspeech
          et pour un complément d'information : https://doc.ubuntu-fr.org/svoxpico

          Egalement, serait-il possible de remplacer :

          utilisation en cli : ça a permis de créer les contenus oraux de cette appli :

          par :

          utilisation en cli : ça a permis de créer les contenus oraux de cette l'appli Primtux "J'écoute puis j'écris" (non finalisé) : https://primtux.fr/applications/ecoute-ecris/

          • [^] # Re: Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

            Posté par  (site web personnel, Mastodon) . Évalué à -4.

            L'équipe de modération est mixte et c'est moi qui ait fait les modifications. J'en ai profité aussi pour corriger une graphie fautive qui me faisait mal aux yeux.

            « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

            • [^] # Re: Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

              Posté par  . Évalué à 2.

              le mot "modérateur" est neutre hein.

            • [^] # Re: Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

              Posté par  . Évalué à 10.

              L'équipe de modération est mixte et c'est moi qui ait fait les modifications

              La guerre des +/- est lancée   :-)

               
              note : ce message est bienveillant. Mon expression est souvent perçue comme froide, et certaines personnes imaginent des intensions négatives. Du coup je précise parce que la suite est sujet à polémique (m'en fiche, j'ai un karma en béton armé, je peux oser des trucs sans que mon égo ne fasse ses valises).
               

              Il serait probablement plus « productif » d'indiquer en quoi cela pose problème en restant factuel.
              « problème » n'est peut-être pas le mot, tu es mieux placée que les autres pour définir le bon terme.

              Le fait de rester factuel engendre bien moins de conflits (sauf via les trolls, c'est le propre des trolls qui sont des casses-pieds quelle que soit la formulation, osef par rapport à d'habitude), et a tendance à générer des avancées positives bien plus facilement.

              Sur le présent site les contributeurs sont probablement dans leur immense majorité bienveillants, voir plus. La forme n'y est pas forcément, coucou Zenitram que j'ai déjà taquiné avec ça   :-)   mais de mon point de vue (ça vaut ce que ça vaut) le niveau est très bon et le climat est bienveillant. C'est un plaisir pour moi de lire et participer, de tenter de dérouler des arguments, de les confronter, bref d'apprendre et d'évoluer si possible dans le bon sens.

              Exemple factuel et explicatif totalement inventé : « Modifications effectuées, ainsi qu'une correction de graphie (xxx remplacé par yyy). Je suis modératrice sur ce site, et je sens à chaque fois un petit pincement lorsque la formulation "modérateur" est uniquement au masculin. Rien de grave, il y a bien pire nous sommes bien d'accord. Lorsque vous ajoutez le féminin je me sens bien plus à ma place et je me sens considérée. Ça fait partie des "petits riens" qui rendent la vie plus agréable et qui font la différence à la fin de la journée. Si vraiment ça vous file des boutons à cause de l'actuelle guerre féministe contre le reste du monde, vous pouvez mettre par exemple "la modération" ou "l'équipe de modération". Pensez à nous, pauvres modérateurs et modératrice (au singulier pour le moment), qui œuvrons dans l'ombre et loin de la gloire pour le bien de tous. »

              Si quelqu'un a une meilleure formulation, c'est sous licence libre faites-vous-plaisir.

              Avec ce genre de formulation, il n'y a que les vicieux qui trouvent à attaquer. C'est purement factuel, il n'est pas possible de prétendre que ce que la personne ressent ou apprécie est faux (à moins de considérer que la personne mente, c'est un autre sujet).
              « ce film est nul » <-- pas factuel, il est souvent facile de montrer que ce n'est pas vrai
              « je n'ai pas apprécié ce film » <-- factuel, non attaquable. Ça n'empêche pas les avis contraires, mais non attaquable

              Ceux qui répondent que « modérateurs est neutre » peuvent avoir raison ou pas, mais cela ne vient en rien contredire ce qui vient d'être dit. Il suffit de le rappeler et le fil ne se tranforme pas en bataille rangée.
              Ça fonctionne même avec une demande totalement en dehors des règles de grammaire. Par exemple un modérateur membre de l'équipe de modération qui est sujet à la dépression pourrait écrire « ça me ferait vraiment plaisir un petit mot de temps en temps parce que xxxxx », on peut être à peu près sûr que fleuriront les formulations originales.

              • [^] # Re: Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

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

                Je partage ton avis. J'ajoute que la réaction épidermique produite est en soi un bon indicateur : un terme est utilisé, une personne concernée réagit, d'autres personnes non concernées par le point initial la blâment. Si j'emploie 'un black' ou 'un vieux' ou 'un asiat', que quelqu'un me répond merci d'utiliser plutôt tel terme, je ne lui répond pas 'je nie ton sentiment et je m'assois dessus', soit je ne lui réponds pas car je considère la polémique inutile, soit je reformule et/ou explique que c'est involontaire/non destiné à la blesser. Et surtout si j'ai une bonne grosse envie de lui répondre vertement, alors je sais qu'il a vu juste quelque part, parce que sinon je n'aurais pas répondu dans l'émotionnel mais dans les idées. Bref ça manque d'empathie (l'autre) au profit de l'autocentré (comment ose-t-on ME répondre ça même pas à moi) pour le dire vite.

                • [^] # Re: Ça a l'air intéressant mais on aimerait avoir une présentation du logiciel

                  Posté par  . Évalué à 6.

                  Effectivement, quand j'ai vu que ça s'emballait… j'ai préféré ne pas répondre par peur que ça soit mal interprété peu importe mes propos.

                  Bien évidemment, en employant "modérateur", je partais du postulat que ce mot est neutre.
                  D'apprendre que l'équipe de modération est mixte me réjoui.
                  J'essaierai (dans la mesure de mes capacités) d'y faire attention à l'avenir.

  • # Common Voice

    Posté par  (site web personnel, Mastodon) . Évalué à 8.

    Bon, on peut pas dire que le TTS (Text To Speech) soit la joie sous Linux.

    Si ce n'est pas déjà fait, n'oubliez pas d'aller contribuer sur Common Voice, projet Mozilla ayant pour but de concevoir un système de reconnaissance vocale libre, ainsi qu'une synthèse vocale de qualité.

    Et comme ça manque cruellement de voix féminines, n'hésitez pas non plus à parler du projet aux femmes de votre entourage.

    • [^] # Re: Common Voice

      Posté par  . Évalué à 2.

      Quand on arrive sur la page on tombe sur une courbe de la participation, on voit bien un plateau depuis quelques mois.
      Ce serait le moment pour la fondation de faire une relance, avec toutes ses personnes en télétravail chez eux

    • [^] # Re: Common Voice

      Posté par  . Évalué à 1. Dernière modification le 17 avril 2020 à 15:01.

      J'avais un peu oublié ce projet.
      Je vais prendre le temps d'y participer.

      Qui sait, un jour gSpeech s'interfacera peut-être dessus.

  • # synergie ?

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

    Vu qu'il s'agit d'un projet sur la langue française, il y a peut être des synergies à faire avec le projet grammalecte.net qui analyse déjà de façon poussé les textes, non ?

    "La première sécurité est la liberté"

    • [^] # Re: synergie ?

      Posté par  . Évalué à 4.

      C'est effectivement quelque chose que j'ai déjà envisagé.
      Pour un autre projet, je me suis déjà amusé à mettre le nez dans les sources de grammalecte et parser certains dictionnaires.

      Je dirais que l'intérêt pour gSpeech résiderais plus sur les données collectés plutôt que sur les algos qui sont plus dédiés a de la reconnaissance en vue d'un correctif.
      En fait, la lib picovox lit déjà naturellement pas mal de texte correctement.
      Il y a malheureusement quelques subtilités (que je comble avec les algos énumérés plus haut) et il est très délicat de les appréhender. (à part l'identifier via une lecture)

      Je ne suis pas certain qu'il y ai des données tel que de la phonétique dans grammalecte mais si c'est le cas, ça pourrait être du pur caviar pour le second projet : speechtux.

      Mais oui, y'a sans doute des pistes à explorer tel qu'une lecture gardé fluide malgré quelques fautes d'orthographes ou de saisie par exemple.

    • [^] # Re: synergie ?

      Posté par  . Évalué à 2.

      Si je me souviens bien grammalecte utilise des expressions rationnelles, non ?

      https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

Suivre le flux des commentaires

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