L'appli de Philippe (merci à lui) "j'écoute puis j'écris"
http://forum.primtux.fr/viewtopic.php?id=1991&p=4 m'a permis de corriger pas mal de soucis de lecture de gspeech sur des mots, expressions assez courantes.
Néanmoins, c'est un terrain assez friable car une petite modif peu avoir un impact significatif. (apporter des régressions)
Pour améliorer la maintenance, j'ai fini par mettre en place de l'intégration continue (CI).
Je vais bien entendu expliquer qu'est-ce que c'est, les avantages et comment ça marche.
1. On met en place des tests automatisés qui vont testés une partie du soft.
2. on utilise un outil de CI : ici Travis qui est couplé à Github. (mais y'en a plein d'autres)
3. A chaque commit sur le dépôt, l'ensemble des tests vont être joués et si ils passent tous, le build est vert, sinon il est rouge.
Dans le cas ou ça ne passe pas, il est possible de voir la raison sur Travis (
https://travis-ci.org/github/mothsART/gSpeech) ou de rejouer les tests en local.
Je reçois d'ailleurs un mail à chaque push avec le résultat du build.
On peut voir "build passing" en vert dans mon README :
https://github.com/mothsART/gSpeech/
Dans le cas de Gspeech, j'ai mis en place des tests fonctionnels.
Dans un premier temps, je fais lire des phrases à Gspeech et si je les considères comme "juste", je sauvegarde le résultat (fichier son en .wav) dans un dossier spécifique :
https://github.com/mothsART/gSpeech/tree...ests/fr_FR
Les tests vont rejouer ce type de phrase automatiquement, les mettre dans un fichier temporaire et je vérifie qu'ils sont conforme à ceux enregistés.
(je compare les md5)
Pour l'instant, je n'ai mis qu'un texte en place mais je pense incorporer l'ensemble des textes de "j'écoute puis j'écris".
Une fois fait, à chaque fois que je rajouterais une règle de lecture spécifique, il vérifiera que l'ensemble des lectures précédentes n'ont pas été impactés.
Les tests se lance en local comme ceci :
Code :
python3 -m unittest speech/tests/tests.py
et Travis est configuré ici :
https://github.com/mothsART/gSpeech/blob...travis.yml
Travis lance en réalité une Ubuntu donc je lui dit d'installer préalablement la lib "libttspico-utils" puis je lance mes tests. (exactement comme en local)
Voilà, j'espère que mes explications ont pu vous éclairer sur l'intérêt de l'intégration continue et pourquoi il faut commencer à en distiller (intelligement) dans Primtux.