GNU/Linux s’ouvre à de nouvelles voix de synthèse !

34
5
nov.
2016
Bureautique

À l’occasion de la sortie par Hypra d’une nouvelle synthèse vocale, plus naturelle et plus intelligible, il m’a semblé utile de vous présenter le contexte. Car cette sortie, c’est surtout un module supplémentaire pour speech‐dispatcher, la plate‐forme libre de synthèses vocales sous GNU/Linux. Malheureusement, le module libre ne marche qu’avec la synthèse, qui n’est pas libre. Mais sait‐on jamais, l’université pourrait y venir avec le temps.

L’existant

Si une application veut être accessible, les événements correspondant à ses objets graphiques (affichage, interaction par l’utilisateur, saisie, etc.) doivent être étiquetés (« labellisés ») et branchés au bus d’accessibilité. Inutile de coder une synthèse vocale pour son application, c’est compliqué et le résultat pourrait décevoir le développeur et les utilisateurs.

Il suffit, sur GNU/Linux, de faire en sorte que son application envoie le nécessaire à une plate‐forme existante, laquelle se chargera de mettre ces éléments à disposition des aides techniques. Ces aides, qui peuvent assister une personne déficiente visuelle à l’usage de l’ordinateur, aider une personne dyslexique à déchiffrer un texte, soulager la fatigue d’un écran ou concerner tout autre besoin moteur, cognitif ou sensoriel, assurent un lien entre ce qui est mis à leur disposition et ce que l’utilisateur comprend. Pour transmettre ce que le logiciel leur donne sous forme vocale, elles envoient le tout à speech‐dispatcher.

Ce logiciel, monopolistique depuis la disparition de GNOME speech en 2012, regroupe un moteur acheminant le signal d’une assistance technologique vers une sortie vocale et les modules des synthèses vocales prises en charge. C’est un peu le SAPI de Windows sous GNU/Linux. Précisons que sapi4linux semble plutôt en sommeil.

Le problème posé

Jusque‐là, speech‐dispatcher, dont tous les modules sont sous licence libre, prennait déjà en charge de nombreuses solutions : Espeak, Mbrola, Svox Pico, Festival, ibmtts, Flite, pour ne parler que de celles connues. Malheureusement, la qualité de ces outils restait franchement moyenne pour des utilisateurs lambdas, débutants, voire non informatisés. Le grand public, âgé ou en situation de handicap, à qui on montre GNU/Linux avec Espeak recule. Précisons que parmi ces outils, peu sont libres, puisque les meilleurs ne le sont pas totalement (mbrola, ibmtts, svox, Pico). Espeak a de réels atouts, mais reste réservé à un public résistant à la voix robotique.

Or, d’autres synthèses (certes peu) offrent déjà une prise en charge sur GNU/Linux. Elles ne sont pas libres non plus, mais leur qualité est supérieure en naturel et intelligibilité. Il ne restait donc qu’à les faire prendre en charge par Speech-dispatcher pour que les gens y aient accès et découvrent un GNU/Linux sympathique dès le premier abord (eh oui, sauf à être sensibilisé, si le premier abord échoue, le grand public n’y revient pas, surtout vu l’exigence des populations pour qui l’informatique est un bien précieux au quotidien).

La nouveauté technique

Depuis aujourd'hui, un patch a été soumis pour que Speech-dispatcher intègre un nouveau module. Il s'agit de Kali. Ce module, libre, permettra :

  • d'accéder à 3 voix francophones supplémentaires, plus naturelles et intelligibles ;
  • d'accéder à deux voix supplémentaires en anglais ;
  • d'entendre l'ordinateur avec une voix féminine ou masculine.

Certes, pour profiter de cette synthèse vocale, il en coûtera près de 85 euros. Le module Speech-dispatcher la faisant tourner sur GNU/Linux est libre, mais pas la synthèse elle-même. Il faut cependant préciser que les chercheurs qui travaillent sur ce produit depuis plus de 30 ans sont de loin plus accessibles que les grands services de R&D des entreprises faisant autorité sur le secteur. L'ouverture de ce code n'est peut-être pas si loin malgré tout.

Des usages à explorer

Je pense que cette sortie offre à ceux qui recherchent l’amélioration de la qualité vocale de nouvelles perspectives. Les personnes aveugles ou malvoyantes s’y intéresseront particulièrement. Grâce à ce module, Orca, le logiciel leur permettant de savoir ce qu’affiche leur écran, pourra leur parler avec une voix plus jolie. Et qui articule !

Une jolie publication donc, qui en anticipe d’autres, puisqu’il n’est pas exclu que les voix de Voxygen aient aussi leur module speech-dispatcher. GNU/Linux atteindrait ainsi, après plus de 15 ans de travail, le niveau de qualité vocale des autres plates‐formes. J’aime autant vous dire qu’avec des voix naturelles comme celles‐là, les usages se multiplient :

  • diminution de la fatigue visuelle pour une personne âgée ou à la vue en baisse ;
  • concentration sur le fond pour les dyslexiques ;
  • conversion de fichiers texte en fichiers audio lus par une voix, très utile pour un aveugle ou quelqu’un préférant écouter que lire un livre.

GNU/Linux, version « bureau », entre ainsi dans le paysage de l’innovation des usages, sans pour autant s’inscrire dans le mouvement général du design flashy et du tactile, mais davantage sur un aspect peu exploré jusque‐là par d’autres gens que les aveugles. Il rattrape du retard et dépasse les solutions moins flexibles.

  • # lien michel = lien patrick

    Posté par . Évalué à 5 (+3/-0).

    problème de copier coller ?

  • # Une pièce importante du puzzle

    Posté par (page perso) . Évalué à 6 (+6/-3).

    La synyhèse vocale est une pièce importante de la chaine :

    • reconnaissance vocale
    • analyse lexicale,grammaticale, syntaxique, lever de doute sémantique
    • traduction
    • synthèse vocale

    Le chemin est encore long avant que nous ayons un traducteur dans nos smartphones mais la progression est inexorable.
    Actuellemenent Google Translate fait un très bon travail de traducton mais il n'est pas libre et ne peut pas être intégré dans de nouvelles applications.
    Quant à la reconnaissance vocale, elle est encore très loin de ce que nous pourrions espérer.

    J'avais parlé de cela il y a longtemps sur http://pjarillon.free.fr/eurolang/cetral-propos.fr.html mais l'évolution est lente, beaucoup trop lente…

    • [^] # Re: Une pièce importante du puzzle

      Posté par . Évalué à 6 (+6/-0).

      "Google Translate fait un très bon travail de traducton" (sic)
      Ah bon? Avais pas remarqué!
      Tant que la traduction aura pour base et pour pivot l' anglais l'étatsunien, on pourra rigoler (ou pleurer ou s'arracher les cheveux selon les cas) en lisant un texte traduit du xxx vers une lanque quelconque, puis retraduire de cette langue quelconque vers le xxx.

    • [^] # Re: Une pièce importante du puzzle

      Posté par . Évalué à 3 (+2/-0).

      La synyhèse vocale est une pièce importante de la chaine :

      Je n'arrive pas à percevoir la nuance. CMU Sphinx se situe dans quelle categorie, par exemple?

      Merci

      note: Je ne comprends pas le moinssage que subit Pierre. o_O

      • [^] # Re: Une pièce importante du puzzle

        Posté par . Évalué à 3 (+2/-0).

        CMU Sphinx c'est la reconnaissance vocale.

        Reconnaissance vocale: de la voix vers le texte (speech to text)
        Synthèse vocale: du texte vers la voix (text to speech)

        Les deux ont des applications assez différente. Le but de CMU Sphinx en particulier est surtout de pouvoir commander un logiciel avec la voix (E.T. appel maison), le genre de chose que tu trouve aussi sur les serveurs vocaux (pour parler au président dites "président"). D'autres logiciels visent carrément la dictée (comme sur les téléphones portables).

  • # qualité

    Posté par (page perso) . Évalué à 4 (+2/-0).

    J'avais fait quelques tests en 2015 et pico semblait le meilleur choix gratuit (tests à ecouter: https://tuxicoman.jesuislibre.net/2015/05/synthese-vocale-sous-linux.html )

    Un usage interessant egalement c'est l'assistant non visuel (ex guide pour gps). J'avais essayé de faire un bot de maison mais la voix metallique m'a arrêté, trop usant pour les oreilles et selon les mots, parfois on ne comprenait rien.

    Depuis j'ai vu que des services sur le web tentent de garder le savoir de leur coté et facturer au service par une api en JS.
    Par exemmle https://responsivevoice.org/ qui est de meilleure qualité que pico. Mais bon ca introduit de la latence car le son edt generé ailleurs. Apparement selon la technique de synthese utilisé, il faut pas mal d'espace pour stocker des samples. Ca peut aussi etre un contrainte.

  • # .

    Posté par . Évalué à 10 (+15/-0).

    Bien meilleure dépêche que la précédente.

    Mais si je puis me permettre il faudrait encore travailler la clarté. L'améliorer permettrait d'éviter des recherches au lecteur…

    Exemple :

    À l'occasion de la sortie par Hypra d'une nouvelle synthèse vocale, plus naturelle et plus intelligible, il m'a semblé utile de vous présenter le contexte. Car cette sortie, c'est surtout un module supplémentaire pour speech-dispatcher,

    Ok vous avez écrit un module libre.

    la plateforme libre de synthèses vocales sous GNU/Linux.

    Speech-dispatcher est donc une plateforme libre.

    Malheureusement le module, libre, ne marche qu'avec la synthèse, qui n'est pas libre.

    Qu'est-ce que cette synthèse qui n'est pas libre ? Comment s'articule votre module, cette synthèse, speech-dispacher ?

    Mais sait-on jamais, l'Université pourrait y venir avec le temps.

    Que vient faire l'université là dedans ?

    Bref, c'est pas très clair pour quelqu'un qui ne connaît pas déjà le sujet et je pense que c'est à améliorer.

  • # C'est cher, et tout pourri.

    Posté par . Évalué à 6 (+6/-0).

    Visiblement, vous n'avez pas fait votre travail de googlemineur!
    Blagues à part, pour avoir une synthèse qui ne fasse plus so 1980, la meilleure solution actuelle est Voxygen ou NeoSpeech en anglais.
    Pour l'utiliser sous Linux, il y a 2 solutions.
    La première solution, sur un linux basé sur Arm ou x86, c'est d'acheter le package Android à 3€ et d'utiliser la librairie qui va bien pour porter les API android sur un Linux normal (type libhybris).
    L'autre solution, à 39€, c'est d'utiliser les voix Best-Of-Vox de Voxygen, via Wine (c'est le plus simple) mais c'est limité à x86.
    Voir ce blog pour le "HOW-TO". Cette dernière solution fonctionne avec Speech-dispatcher.

    Et puis, il y a aussi MaryTTS qui est une référence (non listée dans la liste des moteurs de synthèse) et qui s'améliore de mois en mois (qui a 3 voix en français).
    Et Cereproc qui est la solution la plus ouverte sous linux (ça coûte 79€ si je me rappelle bien), mais il faut programmer pour l'utiliser (ce qui est un avantage pour moi, mais pas pour ceux qui veulent du "speech-dispatcher" compatible)

    Pour conclure, aujourd'hui, ce qui limite la qualité de la voix de synthèse, c'est le manque de matériel audio correctement taggué pour pouvoir faire du "unit selection" (meilleure technologie actuelle). Ça demande un temps très important, et c'est pourquoi nous n'avons pas de modèle en Français gratuit et libre. Franchement, vu la qualité d'un Cereproc ou Voxygen (cocorico), pour le prix, j'hésite pas une seconde, je préfère passer mon temps à coder que d'enregistrer 50h d'audio à tagguer manuellement pour sortir un modèle qui sonne bien.

  • # Un bon dessin....

    Posté par . Évalué à 8 (+8/-0).

    "Car cette sortie, c'est surtout un module supplémentaire pour speech-dispatcher, la plateforme libre de synthèses vocales sous GNU/Linux. Malheureusement le module, libre, ne marche qu'avec la synthèse, qui n'est pas libre."

    Hello,

    Merci bcp pour l'article (ainsi que les liens en commentaires)… L'accessibilité des FOSS est un sujet qui m'intéresse particulièrement.

    Malheureusement, bien qu'informaticien, je ne suis pas expert dans ce domaine.

    Là on parle de modules, de synthèses, de voix, d'OS, de bus, etc. J'ai un peu de mal à comprendre qui fait quoi. J'aurais bien apprécié un petit dessin de la structure générale d'un système de synthèse vocale libre pour m'éclairer :)

Envoyer un commentaire

Suivre le flux des commentaires

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