(Courriels de diversion: <mordillees@enseveliraient-assagie.com> <dispersait@aimants-soldee.com> <necrologiques@belligerante-emulee.com> <montgolfieres@deliberant-aviserai.com> <emergeriez@impartiaux-inacceptation.com> <collera@guerissable-recipiendaires.com> <coopteras@renouvellerai-sacraliser.com> <denoncerez@frequenterons-patrimoine.com> <nordir@joignes-ping-pong.com> <debudgetiserons@seigneuriale-pilotes.com> )


Merci de bien vouloir commenter et développer ce document, votre participation 
active est plus qu'indispensable pour résoudre le problème de la licence 
MBrola. En l'absence de toute information qui me permette d'envisager 
rapidement l'accès au code, et donc de sa pérennité, je me refuse à aller 
plus loin sur le sujet de la synthèse sans disposer d'un outil GPL. Roger 
poursuit (reprend) ses travaux d'investigation sur Festival. De mon point de 
vue un substitut de MBrola ne compromet aucunement ces travaux, au contraire.

Cahier des charges pour un moteur SON de synthèse vocale

Avertissement: à ce stade, le terme de cahier des charges est un peu 
présomptueux.

1 Considération générale
Ce logiciel doit se développer sous la forme d'un programme autonome. Mais il 
a vocation à être une library statique, voir dynamique ou même un module 
système.

2 Principe général
Le moteur final à pour fonction d'associer une suite de paramètres décrivants 
la synthèse à produire et une "base de données" sonore (échantillon) de 
manière à produire le son continu correspondant.
L'ensemble logiciel doit inclure le module nécessaire pour la fabrication de 
la base de données sonore.

3 Préalable
La base des paramètre décrivants la synthèse est constituée de phonèmes qui 
sont identifés par un code-alphabet unique et standard, le code SAMPA
(http://www.phon.ucl.ac.uk/home/sampa/french.htm).
Les paramètres de synthèse sont constitués des eléments suivants:
- phonèmes (code SAMPA)
- la hauteur (fréquence)
- la durée (ou pitch?)

4 Définition du projet
Il y a deux composantes disctinctes dans ce projet:
- constitution de la base vocale
- constitution du moteur
Le développement de ces composantes s'il fait appel principalement à des 
compétences informatiques, nécessitent aussi la participation de linguiste. 
En outre le dévoppement de toute base vocale recquiert la participation de 
volontaires (plus ils seront nombreux plus large sera le choix des voix).

4.1 Constitution  de la base vocale
Le principe général de fonctionnement obéit aux règles de la prononciation par 
diphones. Les diphones sont constitués de deux éléments successifs issus de 
phonèmes élémentaires. Il existe 3 grandes catégories de diphones:
a) début de mot : qui sera symbolisé par _ en début de mot
b) milieu de mot
c) fin du mot : qui sera symbolisé par _ en fin de mot

Exemple "synthèse", donc en SAMPA french : se~tEz et qui donnera au final 
_se~tEz_
Autre exemple "synthèse vocale" soit au final _se~tEz__vOkal
Les deux __ indiquent qu'il n'y a pas de liaison, par contre pour "les 
enfants" le final serait _le_z_a~fa~_ la liaison étant calculée 
antérieurement par le moteur phonétique.
Un premier outil, arbitrairement intitulé CAPVOICE, doit avoir les 
caractéristiques suivantes:
- enregistrement avec un micro
- sélection d'une partie du son capturé
- identification de la sélection (représentation SAMPA + catégorie)
- enregistrement de l'échantillon au format WAV et de l'indentification 
associée au format TXT, soit deux fichiers portant le même radical et se 
distingant par l'extension.
CAPVOICE doit permettre d'utiliser le même enregistrement pour constituer 
plusieurs échantillon.
Pour tester ce premier outil, et l'utiliser complètement il faut constituer un 
corpus (travail de linguiste, succession de mots représentatifs de la langue 
française).

Un deuxième outil, arbitrairement intitulé COLVOICE, doit permettre de 
constituer une base de donnée, sous forme d'un fichier unique linéaire, 
rassemblant la totalité des éléments produit par CAPVOICE. Cet outil devra 
disposer des fonctions suivantes:
- gestion indexée des articles (un article est un élément issu de CAPVOICE et 
est constitué de l'élément de description, TXT, et de l'élément sonore, WAV)
Remarque : le son finalement enregistré dans la base COLVOICE pourra l'être 
dans un format compressé (OGG par exemple) qui préserve autant que possible 
la qualité du son enregistré (échantillonage à définir).

4.2 Moteur
Arbitraiement cet outil est nommé OUTVOICE, il s'agit d'un programme autonome 
ayant vocation à devenir une library (statique ou dynamique) ou un module 
système.
OUTVOICE est destiné à combiner les paramètres issus de l'élaboration 
phonétique et la base voix. Différent paramètres généraux devront pouvoir 
être pris en compte (localisation de la base voix, localisation des 
paramètres phonétiques pouvant aussi arriver en mode stdin, fréquence vocale 
de base, vitesse de base, format du fichier son à produire déduit du nom du 
fichier ou du fonctionnement en stdout).

5 Principe de développement
a) les sons seront tous au format WAV (CAPVOICE, COLVOICE, OUTVOICE)
b) de nature CAPVOICE et COLVOICE seront pilotés via une interface graphique 
(nécessité de visualiser la graphique son)
c) OUTVOICE de nature est un programme "ligne de commande" mais pour le 
développement une interface graphique peut être utilisée mais à condition 
qu'elle puisse disparaître très simplement
d) utilisation du langage C et non C++ ou C#, la majorité de l'équipe ne 
maitrisant que le C de base.

PS : les noms que j'ai choisi ont une signification, mais bien entendu ils 
peuvent changer (CAPture, COLlectivisation, OUT... out).

-- 
FaVdB