Bonjour,
Je maintiens et développe le soft gSpeech, qui est, à l’heure actuel une GUI (en python) au dessus du TTS picovox.
Vu que ce dernier est assez perfectible sur le français (c’est un euphémisme), j’ai rajouté une brique qui à l’aide de qlqs algos simples et des dictionnaires effectue un pre-process pour corriger pas mal de choses.
L’inconvénient, c’est que picovox est directement intégré dans speechd et Firefox est en mesure de l’utiliser via ses outils de lecture.
Dans un premier temps, l’idée était de créer un module speechd « generic » afin de s’en sortir mais ça reste plus compliqué que prévu : https://github.com/brailcom/speechd/issues/606
J’en ai finalement déduis que le plus simple (et le plus propre), serait sans doute de passer par une config speechd spécifique.
Si l’on définit un préprocesseur, celui sera utilisé pour récupérer le flux textuel en entrée, le mettre en forme et le repasser à notre TTS.
J’en ai profité pour le soumettre au projet grâce à https://github.com/brailcom/speechd/issues/612 mais l’auteur me renvoi dans les cordes :
- il n’est pas défavorable mais attend une contribution de ma part.
Etant assez rouillé en C (et surtout dans les outils complémentaires tel que autotools/make et cie), je me retrouve dans une impasse.
J’ai donc cloné le dépôt et rajouté ce qu’il fallait à minima pour me créer mon paquet debian (apt-get source pour obtenir le dossier debian et les configs).
J’ai réussi à générer mon paquet via debuild sur la fraiche Debian 11 Bulleyes. (non sans mal car l’installation de dh-python m’a cassé mon zsh et à abouti à un bug report)
J’ai mis ça à disposition dans une branche « debian-pack » => https://github.com/mothsART/speechd/tree/debian-pack.
Néanmoins, j’ai beau parcourir les sources, j’ai du mal à savoir par quel bout commencer.
J’aimerais éviter de faire un « debuild » puis « dpkg -i monpaquet.deb » à chaque modif pour débugger mais pour l’instant, je n’ai pas vraiment d’autres idées pour faire ça.
Pour redéfinir ce que je cherche à faire :
dans le fichier de conf de picovox, pouvoir rajouter une option de ce genre :
PicoPreprocessor "picovoxPreprocess -l $VOICE -i $DATA"
Si elle est présente, le texte à lire n’est pas directement passé au TSS picovox mais à « picovoxPreprocess ».
Le retour du pré-processeur est quant à lui passé au TTS.
Du coup, par exemple :
La chaine « Un parent de la famille se sert du bacon et un yaourt » formaterais le préprocesseur ainsi :
picovoxPreprocess -l fr -i "Un parent de la famille se sert du bacon et un yaourt"
et communiquerais le texte suivant à picovox « un paran de la famille se sert du bécone et un ya ourte ».
Voilà, j’espère déjà avoir bien expliqué mon besoin et sollicite l’aide de quelqu’un de plus expérimenté dans le domaine.
Je ne cherche pas à ce qu’on fasse à ma place mais bien qu’on me donne des pistes.