Le moteur de synthèse vocal de studyvox

Adaptation du projet dynakit au projet gramdyna

On trouve dans le sous-répertoire source de gramdyna, tous les fichiers qui permettent de compiler winmain.exe

Ces fichiers ont été obtenus, à partir de dynakit\source, que l'on a copié dans gramdyna\source, puis on a effectué quelques modifications, pour les adapter au traitement d'une synthèse vocale.

Pour éviter toute confusion, on a changé le nom des fichiers modifiés, en y remplaçant le suffixe kit, par le suffixe gram. Ainsi, dynagram.cpp remplace dynakit.cpp, grampho.wav remplace kitpho.wav...

Les principales modifications dans dynagram.cpp

On décrit au début de dynagram.cpp, quelles sont les principales modifications.

Elles concernent essentiellement la fonction diredyna et la fonction gram. diredyna permet de traiter un texte, qui peut contenir des symboles, des nombres, des ponctuations, des formules... La fonction gram appelle le moteur gram00, qui transforme un texte écrit en français, en une suite de phonèmes.

Les phonèmes sont au nombre de 33, et leurs échos sonores sont placés dans la banque grampho.wav Vous trouverez leur nom dans listewav.ind

Traitement des nombres et des caractères isolés

Les modes texte, chiffre texte, et dictée, sont définis par la variable d'environnement imode.

Dans le mode texte obtenu pour imode=0, le texte est uniquement transformé par la fonction gram.

Dans le mode chiffre texte, obtenu pour imode=1, on commence par transformer les nombres par la fonction chiffre, qui les remplace par leur écriture en toute lettre. On transforme les caractères isolés, par la fonction isoler, pour qu'ils soient prononcés correctement. Le résultat est ensuite transformé par la fonction gram.

Dans ces 2 modes, les ponctuations sont transformées en silence, tandis que pour le mode dictée, obtenu pour imode=2, les ponctuations sont lues oralement.

La fonction gram laisse passer tous les caractères ou symboles qui ne correspondent pas à une règle de grammaire pour le français.

Les symboles qui correspondent aux caractères de la chaîne listesep, sont prononcés avec les données sonores de la langue courante.

Les sources sonores qui interviennent dans une phrase, sont lues les unes après les autres, si iparle=1, ou concaténées pour être lues après concaténation, pour iparle=3. Dans ce dernier cas, on copie dans le répertoire où se trouve winmain.exe, des fichiers de préfixe prv, qui peuvent servir pour l'analyse et la synthèse des phrases. Il est facile de se débarasser de ces fichiers provisoires, par la commande erase prv*.*, si besoin est.

Les fichiers .wav sont les sources sonores concaténées, tandis que les .ind sont les fichiers d'indications qui leur sont associés.

Ces données peuvent être utilisées par analymain.exe Pour plus de détails sur l'utilisation des fichiers d'indications, consultez le tutoriel du répertoire dynakit.

Le code de la fonction diredyna est facile à comprendre. Il est par contre plus difficile d'élaborer un moteur de grammaire, qui traite toutes les règles de prononciation du français, ainsi que les nombreuses exception, les nom propres ou étrangers...

La bibliothèque bibli.c de studyvox

Pour plus de clarté, tout ce qui concerne le moteur de synthèse, a été placé dans la bibliothèque bibli.c

retour au sommaire de gramdyna

retour dans le sommaire de la rubrique winweb du site studyvox webups