Le script Praat de MOMEL (MOdélisation MELodique), algorithme proposé en 1991 par Daniel Hirst et Robert Espesser de l'Institut Phonétique d'Aix, a pour but de fournir une représentation de la courbe mélodique, caractérisant les variations temporelles de la fréquence laryngienne, via une approximation quadratique (Quadratic Spline Function Function). Le principe de base de cette approche est de considérer les variations de F0 comme la superposition de deux phénomènes distincts, la macroprosodie (qui caractérise le choix intonatif de l'élocution) et la microprosodie (propre aux phonèmes constituant le lexique de la phrase). La macroprosodie permet donc d'avoir une approche globale de la courbe mélodique, la microprosodie se caractérisant quant à elle par des variations locales des paramètres prosodiques. C'est le cas par exemple des consonnes généralement non voisées telles que [f], [s], [ch] qui se caractérisent par l'absence de vibrations des cordes vocales, ce qui se traduit par une discontinuité de la courbe de F0 obtenue depuis le signal acoustique. Les plosives quant à elles, s'identifient par une montée rapide de F0, suivie généralement par une absence de voisement.
Un corpus constitué de consonnes sonores [m], [n], [l], [v], [r] en contexte intervocalique (CV CV) permet d'obtenir des courbes de F0 "continues", excepté en absence de locution (pauses). La synthèse par PSOLA (Pitch Synchronous OverLap and Add) d'un signal original, et d'un signal dont seule la courbe de F0 a été remplacée par sa modélisation quadratique, permet l'obtention de deux signaux perceptivement semblables : rares sont les endroits où une différence peut être remarquée. L'approche qui est développée dans l'algorithme MOMEL, et ci-après détaillée, permet donc bien le filtrage microprosodique recherché, conservant intacte la caractéristique macroprosodique, porteuse des informations que sont l'intonation et l'accentuation.
Principe de l'algorithme MOMEL
L'algorithme MOMEL repose sur l'acceptation de l'hypothèse suivante : la courbe mélodique peut être approximée par morceaux par une fonction quadratique (polynôme de degré 2).
Pour ce faire, une fenêtre glissante de taille A (typiquement 300 ms) parcours de manière chronologique le signal acoustique. Sur chaque fenêtre est extraite la courbe de F0, et les paramètres d'un polynôme du second degré sont calculés de manière à minimiser l'erreur quadratique de la distance entre la courbe de F0 et son approximation polynomiale. Les points de la courbe initiale situés à plus de 5% (paramètre delta) au-dessous du polynôme sont supprimés. Un nouveau polynôme est alors calculé, et ainsi de suite jusqu'à accepter tous les points restants. A cet instant, le sommet de la parabole (annulation de la dérivée du polynôme), s'il appartient bien en abscisse à la fenêtre A, et en ordonné à l'intervalle [Hzmin, Hzmax] (respectivement valeurs de F0 minimum acceptée, et de F0 maximum acceptée) est sauvegardé : il est appelé candidat.
L'étape suivante consiste donc à extraire de ces candidats les points qui constitueront les points cibles (extrema) de la courbe finale.
Pour ce faire, l'espace temporel est partitionné de manière à isoler chacun des lieux où se regroupent les points d'inflexion. Sur chaque partition sont alors calculés la moyenne des candidats, et l'écart type des réalisations (écart type en temps et en fréquence). Les valeurs éloignées des valeurs moyennes d'une distance supérieure à l'écart type (soit en temps, soit en fréquence) sont supprimées, et la moyenne est alors recalculée sur les points restants. Le point cible final correspond donc à cette moyenne en temps et en fréquence.
Le processus est répété sur chacun des espaces de partition, et l'on obtient donc un ensemble de points cibles, sur lesquels on effectue une régression quadratique, qui correspond à l'approximation mélodique désirée.
Les paramètres suivants sont modifiables dans l'appel du programme :
Il est à noter qu'un point cible est obtenu en dehors de la fenêtre temporelle (temps négatif). En effet sur l'ancienne version de l'algorithme, une erreur dans le code quant au test d'appartenance à la fenêtre en cours existe, mais a été rectifiée dans la version PRAAT, qui donne la courbe suivante :
Les valeurs des paramètres doivent être ajustées en fonction du débit du locuteur. En effet, si le débit augmente, les accents sont moins marqués, mais surtout plus rapprochés dans le temps. De ce fait, la fenêtre A d'une durée de 300ms ne peut plus être approchée par un polynôme du second degré, il est donc nécessaire d'en réduire sa taille. Il en est de même pour la taille de R.
La valeur de delta (par défaut 5%) peut être conservée quelque soit le débit, mais il peut être judicieux également de permettre d'avantage d'erreur pour un débit plus rapide.
Enfin, les valeurs du Hzmin et Hzmax peuvent être conservées telles qu'elles quelque soit le débit, mais il peut être intéressant de les ajuster en fonction du sexe du locuteur (80 à 250 pour une homme, et 200 à 400 pour une femme). Pour le tracé final (si l'option Draw_mode a été choisie), les valeurs des axes en ordonnés sont choisies de manière à obtenir une dynamique correcte de la courbe de F0.
Enfin, l'option Debug_mode permet l'obtention de fichiers intermédiaires qui peuvent être utiles pour d'autres applications. Ce sont :
Le script peut donc être lancé sous PRAAT quelque soit la plate-forme (PC, MAC, UNIX, LINUX), mais également depuis la ligne de commande de l'OS. Ainsi la commande
Praat momel.script son.wav 5 30 20 80 500 No Yes SPLINE MOMEL
Exécutera le script sur le fichier "son.wav", avec :
delta = 5
A = 30 (30 * 10 ms = 300 ms)
R = 20 (20 * 10ms = 200 ms)
Hzmin = 80Hz
Hzmax = 500Hz
Draw_mode : Non
Debug_mode : Oui
Spline
Momel
Les fichiers son.f0, son.pref, son.cibles et son.momel seront automatiquement générés.
Synthèse sous PRAAT
Un second script, change_f0.script, également disponible, permet la resynthèse des signaux (par la méthode PSOLA), à partir de la courbe de F0 générée par l'algorithme. Les signaux resynthétisés depuis la courbe de F0 originale, et la stylisation (quadratique ou linéaire) peuvent alors être perceptivement comparer. Des test psycho-acoustiques permettent de juger de la qualité de l'approximation effectuée.