Transformation de voix d`homme en voix de femme I. Partie

Transcription

Transformation de voix d`homme en voix de femme I. Partie
Phelma / SICOM 3A - Projet de Traitement et Filtrage Numérique des Signaux
Transformation de voix
Transformation de voix d’homme
en voix de femme
I. Partie théorique
I.1. Objectifs du projet
Les techniques de transformation automatique de la voix ont de multiples applications. La
plus importante concerne probablement les systèmes de synthèse vocale : il s’agit alors d’adapter
un signal de parole pré-stocké (et donc figé) dans la mémoire du système aux consignes ponctuelles
de la synthèse. Par exemple on peut vouloir ralentir/allonger ou accélérer/raccourcir le signal
(relativement facile), ou on peut vouloir simuler une certaine émotion (très difficile). Dans ce
projet, on vise à effectuer une transformation du signal de parole prononcé par un homme de façon
à ce qu’il semble avoir été prononcé par une femme. Cette application est ici avant tout ludique et
sert de cadre de travail pour l’étude des outils de traitement du signal et du traitement de parole
impliqués. Elle fait toutefois écho à des applications plus sérieuses du type de celles visant à rendre
la voix non identifiable par exemple.
Les systèmes de transformation de la voix sont généralement des systèmes qu’on qualifie de
systèmes d’analyse-synthèse, et qu’on devrait plus précisément appeler systèmes d’analysetransformation-synthèse, voire d’analyse-modélisation-transformation-synthèse (mais c’est un peu
long n’est-ce pas?). Comme cette dénomination l’indique, il s’agit d’une chaîne de traitement qui
consiste à d’abord analyser le contenu (i.e. les caractéristiques) du signal de parole, puis à modifier
ces caractéristiques, et finalement à resynthétiser le signal à partir des caractéristiques modifiées.
Très souvent, et ce sera le cas dans ce projet, ce traitement implique une phase de modélisation
paramétrique, c’est-à-dire que le signal ou certaines de ces caractéristiques sont remplacées par un
modèle mathématique dépendant d’un certain nombre de paramètres. L’intérêt est que la phase de
transformation du signal est alors effectuée en transformant les paramètres du modèle, et que la
resynthèse consiste simplement à appliquer plus ou moins directement les équations du modèle sur
les paramètres modifiés. On sent tout particulièrement l’intérêt de cette approche lorsque les
paramètres ont un sens physique fort, et encore plus lorsque ces paramètres physiques sont
directement reliés à la transformation visée. Dans ce projet, ce sera le cas par exemple de la
fréquence centrale des formants du signal de parole.
I.2. Voix d’homme(s) et voix de femme(s)
D’une façon relativement simpliste, on peut caractériser les différences entre voix
d’hommes et voix de femmes essentiellement en termes de gamme de fréquence fondamentale
1
Phelma / SICOM 3A - Projet de Traitement et Filtrage Numérique des Signaux
Transformation de voix
(pour les sons voisés) et de caractéristiques des formants (principalement la fréquence de ce
formant). Rappelons que dans un signal de parole naturelle, la fréquence fondamentale F0 du signal
sur les portions voisées varie continûment au cours du temps. La gamme de F0 est de l’ordre de
100–250Hz pour les hommes, avec des valeurs typiques autour de 120Hz, et elle est de l’ordre de
150–450Hz pour les femmes, avec des valeurs typiques autour de 200Hz. Ces différences sont
essentiellement dues à la différence de longueur et de masse des cordes vocales, plus courtes et
moins lourdes chez les femmes que chez les hommes. De même, le conduit vocal est plus court
chez les femmes que chez les hommes, et les fréquences des formants du signal de parole sont plus
élevées pour les femmes que pour les hommes. Ce décalage est difficile à caractériser précisément
car il est non-linéaire sur l’ensemble du domaine de réalisation des voyelles. disons qu’il est de
l’ordre de 10 à 20% selon le phonème et les formants (voir le Tableau 1). Les autres caractéristiques
des formants (bande passante et intensité) peuvent aussi être modifiées, mais on ne rentrera pas
forcément dans ce type de détails dans ce projet.
.
Tableau 1 – Valeurs typiques de fréquences centrales de formants (d’après [Calliope, 1989]).
2
Phelma / SICOM 3A - Projet de Traitement et Filtrage Numérique des Signaux
Transformation de voix
I.3. Transformation voix d’homme vers voix de femme
La transformation du signal de parole en voix d’homme vers voix de femme passe donc par
la modification de la fréquence fondamentale et de la position des formants. Dans une
approximation assez simpliste, exploitée dans ce projet, ces deux caractéristiques peuvent être
considérées comme indépendantes et seront donc modifiées par deux traitements indépendants (ce
qui n’empêche pas de réfléchir à les combiner / chaîner astucieusement).
I.3.1. Changement de fréquence fondamentale avec PSOLA
En ce qui concerne le changement de fréquence fondamentale, on se basera sur la technique
dite PSOLA pour Pitch-Synchronous OverLap-Add, proposée dans [Laroche and Moulines, 1995].
Le principe, illustré par la Figure 1, est le suivant. On commence par détecter les portions voisées et
non-voisées de la parole ; le traitement s’applique bien sûr uniquement sur les portions voisées et
les portions non voisées ne sont pas affectées. Pour chaque portion voisée, on détecte les différentes
pseudo-périodes du signal (c’est l’analyse), ensuite on isole chaque pseudo-période (en fait deux
pseudo-périodes consécutives) en appliquant une fenêtre de pondération locale appropriée, puis on
rapproche ou on éloigne les pseudo-périodes les unes des autres selon que l’on veut augmenter ou
diminuer la fréquence fondamentale, et enfin on additionne les pseudo-périodes fenêtrées déplacées
pour générer le signal transformé (c’est la resynthèse). La forme en cloche typique de la fonction de
pondération des pseudos-périodes est destinée à éviter les cassures abruptes dans les valeurs
d’échantillons de signal resynthétisé, ces cassures se traduisant généralement par des clics sonores
désagréables à l’écoute.
Figure 1 – Illustration de la technique d’analyse-synthèse PSOLA (Dutoit & Leich, 1993).
3
Phelma / SICOM 3A - Projet de Traitement et Filtrage Numérique des Signaux
Transformation de voix
Comme il n’y a pas de modélisation mathématique sophistiquée dans ce traitement, on notera qu’il
s’agit d’une analyse-synthèse dite non-paramétrique (bien que la pseudo-période T0 puisse être
considérée comme un paramètre d’un modèle harmonique non-stationnaire sous-jacent). Pour la
détection des pseudo-périodes, on pourra soit réaliser cette détection à la main (c’est simple mais
fastidieux), soit exploiter un algorithme d’estimation de la fréquence fondamentale tel que celui du
logiciel Praat [Boersma, 1993], la méthode AMDF [Ross et al, 1974] ou le fameux algorithme YIN
[de Cheveigné & Kawahara, 2002]. Notons que ces méthodes s’appliquent en pratique sur des
fenêtres successives de signal où le signal peut être considéré comme stationnaire, et donc F0 est
considérée comme constante sur la fenêtre d’analyse1.
I.3.2. Déplacement de formants basé sur la modélisation LPC
En ce qui concerne le déplacement des formants, ce traitement nécessite d’abord d’analyser
et caractériser ceux-ci. Pour cela, on se basera dans ce projet sur la technique de prédiction linéaire
(appelée aussi LPC pour Linear Predictive Coding, [Markel and Gray, 1976]) très largement
utilisée en analyse et modélisation spectrale de la parole, ainsi qu’en compression. Cette technique
consiste à modéliser le signal de parole comme le résultat d'un processus de couplage source-filtre
entre une excitation normalisée u(n) d’enveloppe spectrale plate et un filtre linéaire invariant dans
le temps H(z) modélisant l’influence du conduit vocal (et de la forme d’onde glottique). De plus,
dans le modèle LPC, le filtre H(z) est un filtre tout-pôles (voir l’Annexe 1) :
.
Les caractéristiques des formants sont donc directement reliées à celles des pôles du filtre (c’est-àdire les racines du dénominateur). En particulier, une paire de pôles conjugués de module proche du
cercle unité correspondra généralement à un formant. On pourra donc modifier les formants du
signal de parole en modifiant les pôles du filtre H(z) au cœur d’un processus d’analyse-synthèse
LPC : calcul des paramètres du filtre et extraction de l’excitation u(n) par filtrage inverse (c’est
l’analyse), déplacement des formants par déplacement des pôles du filtre, et resynthèse du signal
modifié par filtrage de l’excitation à travers le filtre modifié. Il s’agit ici bien sûr d’un processus
d’analyse-synthèse paramétrique.
1
Il faut bien différentier la notion de fenêtre d’analyse et la notion de pseudo-période (elle-même fenêtrée dans la
technique PSOLA) : pour faire l’analyse de F0, la fenêtre d’analyse contient généralement plusieurs pseudo-périodes
qui ne sont pas forcément de taille parfaitement identique : la valeur analysée de F0 représente alors une valeur
moyenne sur la fenêtre d’analyse).
4
Phelma / SICOM 3A - Projet de Traitement et Filtrage Numérique des Signaux
Transformation de voix
I.3.3. Fenêtrage des signaux
Le signal de parole est un signal globalement non-stationnaire, pouvant être considéré
comme stationnaire par morceaux. Il est très important de noter que, tout comme pour l’analyse de
F0, l’analyse LPC à un sens si elle est réalisée sur une portion limitée de signal de parole pouvant
être considérée comme stationnaire, c’est-à-dire une portion où les caractéristiques spectrales et
statistiques du signal peuvent être considérées comme stables. En pratique, on se place à l’échelle
d’un(e portion de) phonème, c’est-à-dire un bloc d’échantillons de signal de quelques dizaines de
millisecondes. Le traitement d’un signal de parole continue implique que le processus d’analysetransformation-synthèse doit être appliqué sur des blocs successifs, en prenant un soin particulier à
assurer une bonne jonction des blocs à la resynthèse pour ne pas introduire d’artefacts de type
« clics sonores ». On pourra s’inspirer à ce titre des principes de base de la technique PSOLA
mentionnés précédemment : recouvrement des blocs et pondération par une fenêtre dont la forme
vise à éviter les cassures de signal lors de la resynthèse du signal complet par addition des blocs
successifs. Si on note wi(n) la fenêtre de pondération du i-ème bloc à la synthèse2, pour conserver
correctement l’énergie du signal une bonne pondération doit vérifier pour tout échantillon n :
,
II. Partie pratique
La partie pratique se fera sous le logiciel MATLAB. L’implémentation sous MATLAB a deux
objectifs principaux. Le premier est d’illustrer et d’approfondir les aspects théoriques de ce projet
en exploitant les fonctionnalités de calcul et d’affichage des résultats (numériques et graphiques) de
ce bel outil. Le deuxième objectif est de simuler et tester la chaîne complète de traitement de parole,
quasiment en condition réelle d’utilisation dans un système dédié, hormis le temps-réel que ne
permet pas Matlab. La méthodologie d’implémentation est laissée libre. Une méthodologie
suggérée par sécurité est d’abord de bien s’approprier les outils théoriques de base par des tests
extensifs sur une portion stationnaire de signal de parole, avant de passer au traitement complet
d’une longue séquence de parole continue (avec la prise en compte de la segmentation voisée / nonvoisée et de la gestion des blocs, et de la combinaison des deux techniques PSOLA et analysesynthèse LPC.)
2
A priori rien n’oblige à ce que la fenêtre de pondération utilisée pour capturer un bloc à l’analyse soit la même que
celle qui est utilisée à la resynthèse. Les fenêtres les plus couramment utilisées à l’analyse sont les fenêtres du type
Hamming ou Hann/Hanning, alors qu’à la synthèse on peut se contenter de fenêtres triangulaires (impliquant un
recouvrement de 50%) ou trapézoïdales (avec un recouvrement sur les parties montantes/descendantes). Pour se
simplifier la vie, on peut penser à utiliser à l’analyse et à la synthèse des fenêtres avec la même taille et le même
recouvrement, mais cela pose un problème particulier dans le cadre d’une analyse-synthèse impliquant un processus de
filtrage…
5
Phelma / SICOM 3A - Projet de Traitement et Filtrage Numérique des Signaux
Transformation de voix
II.1. Plan de vol
Les différents points d’études sont les suivants. Cette liste est non exhaustive et est à lire
entièrement avant de commencer le projet, cela peut aider à organiser sa méthodologie… :
• Etude et implémentation de la technique PSOLA : analyse de F0 (demander éventuellement le
code des algorithmes disponibles), segmentation voisé / non voisé, analyse des pitch-marks
(frontières de pseudo-période), pondération, resynthèse, influence de la fenêtre de pondération, de
son positionnement dans la pseudo-période, conséquences spectrales du traitement, qualité du signal
resynthétisé…
• Etude et implémentation de l’analyse-synthèse LPC (dans un premier temps sans transformation
des formants) : calcul des coefficients de prédiction ai et du gain G (théorique et pratique : d’où
viennent-ils ? Quel est l’algorithme de calcul implémenté sous Matlab ?), affichage et étude de la
réponse en fréquence du filtre LPC, lien avec les pôles, filtrage inverse et filtrage direct, préemphase et dé-emphase, influence de la fenêtre de pondération d’analyse, influence de l’ordre p de
l’analyse, analyse spectrale du signal d’excitation et lien avec la réponse en fréquence du filtre et
avec le spectre du signal de parole, analyse de sons voisés (par exemple une voyelle quasipériodique) et de son non voisés (par exemple un [s])…
• Etude et implémentation de la transformation des formants : liens entre formants et pôles LPC,
conséquences pour la modification de pôles, précautions à prendre, autres représentations LPC pour
la modification des formants, influence de l’amplitude du déplacement des formants sur la qualité
du signal transformé…
• Etude et implémentation de la chaine complète de traitement : jonction des blocs, proposition de
combinaisons astucieuse des différents modules (par exemple fenêtrage conjoint pour l’analyse de
F0 et l’analyse LPC), un point très important : quel ordre et quelle(s) combinaison(s) possible(s)
pour la mise en cascade de PSOLA et LPC ? : PSOLA d’abord puis analyse-synthèse LPC ou bien
l’inverse ? ou bien Analyse LPC – PSOLA sur le signal d’excitation – synthèse LPC ? Avantages et
inconvénients de chaque configuration ? Un autre point important : par essence, appliquée telle
quelle, la technique PSOLA modifie la durée du signal de parole : proposer et implémenter une
amélioration de la technique permettant de conserver (à peu près) la taille initiale du signal (ce point
est un peu délicat mais est très important dans l’optique d’une application en temps-réel). Autre
point (relié au précédent) : on a parlé jusqu’ici de transformation de voix d’homme vers voix de
femme. Peut-on implémenter facilement une conversion voix de femme vers voix d’homme ?
Quel(s) problème(s) cela pose-t-il a priori ? Implémentation et test.
• Si l’avancement le permet : vers une solution temps-réel ? Implémentation « séquentielle au bloc
i+1 », simulation de précision de calcul limitée (on pourra se baser sur les connaissances du
cours/BE de DSP).
6
Phelma / SICOM 3A - Projet de Traitement et Filtrage Numérique des Signaux
Transformation de voix
II.2. Matlab pour les nuls
Voici quelques fonctions et programmes utiles pour mener à bien ce projet. La liste est bien sûr
non-exhaustive, sachant que la commande la plus importante sous MATLAB est help.
filter – Filtrage numérique mono-dimensionnel causal
filtfilt – Filtrage numérique mono-dimensionnel non-causal
freqz – Réponse en fréquence de filtre numérique
impz – Réponse impulsionnelle de filtre numérique
randn – Génération d’un bruit blanc gaussien
lpc – Calcul de coefficients de prédiction linéaire
hamming – Fenêtre de Hamming (il y en a plein d’autres !)
conv – Produit de convolution / multiplication de polynômes
soundsc – Restitution des signaux par la carte son
II.3. Signaux de parole
Les signaux de parole utilisés seront soit fournis, soit enregistrés pendant les séances. Ils seront
stockés dans des fichiers au format « .wav » pouvant être chargés par MATLAB avec la fonction
wavread (les sauvegardes au même format .wav se faisant avec la fonction wavwrite).
L’enregistrement se fera avec un microphone relié à la carte son du PC et par l’intermédiaire d’un
logiciel d’acquisition, par exemple le « Magnétophone Windows ». La manipulation de ce logiciel
est très simple mais elle ne doit pas dispenser de prendre les précautions minimales pour un
enregistrement. Notamment, le niveau d’enregistrement devra être réglé suffisamment fort pour
quantifier correctement le signal tout en évitant la saturation. Faire attention aussi au choix des
paramètres de base : fréquence d’échantillonnage et quantification adaptée à la parole, mode mono.
III. Quelques points pratiques
Le projet comporte 28 heures de TP, partagées en 7 séances de 4 heures. Vingt heures seront
encadrées et 8 heures seront en libre-service (c’est-à-dire non encadrées). Dans ce dernier cas, la
salle MISTI et son matériel seront sous la responsabilité d’un étudiant volontaire ou à défaut
désigné !
Pensez à faire des sauvegardes de votre travail après chaque séance (si vous travaillez sur votre
disque, pas de problème ; si vous travaillez en local, le système d’exploitation Windows XP ne
garantit pas la protection de vos fichiers).
L’évaluation du travail se fera par un compte-rendu synthétique du travail à la fin du projet,
complété par une présentation orale suivie de questions. Ces points seront précisés/confirmés lors
des séances.
7
Phelma / SICOM 3A - Projet de Traitement et Filtrage Numérique des Signaux
Transformation de voix
Références
P. Boersma, “Accurate short-term analysis of the fundamental frequency and the harmonics-tonoise ratio of a sampled sound,” Proceedings of the Institute of Phonetic Sciences, Volume 17,
Pages 97-110, University of Amsterdam, 1993.
Calliope, “La Parole et son Traitement Automatique”, Paris: Masson, 1989
A. de Cheveigné, H. Kawahara, “YIN, a fundamental frequency estimator for speech and music,”
Journal of the Acoustical Society of America, Volume 111, Issue 4, Pages 1917-1930, 2002
T. Dutoit, H. Leich, “MBR-PSOLA: Text-To-Speech synthesis based on an MBE re-synthesis of
the segments database”, Speech Communication, Volume 13, Issues 3–4, Pages 435-440, 1993
J. D. Markel, A. H. Gray Jr., “Linear Prediction of Speech,” Springer, New York, NY, USA, 1976.
E. Moulines, J. Laroche, “Non-parametric techniques for pitch-scale and time-scale modification of
speech,” Speech Communication, Volume 16, Issue 2, Pages 175–205, 1995.
M. J. Ross, H. L. Shaffer, A. Cohen, R. Freudberg, H.J. Manley, “Average magnitude difference
function pitch extractor,” IEEE Trans. Acoust., Speech, Signal Processing, Volume 22, Pages. 353362, 1974.
8
Phelma / SICOM 3A - Projet de Traitement et Filtrage Numérique des Signaux
Transformation de voix
ANNEXE 1 : Modélisation du signal de parole par prédiction linéaire
La modélisation d’un signal de parole par prédiction linéaire d’ordre p consiste à estimer le signal
par une combinaison linéaire de ses p échantillons passés, soit
.
L’algorithme de Durbin-Levinson permet d’obtenir le jeu de coefficients ai qui minimise l’énergie
de l’erreur de prédiction
sur une fenêtre d’analyse donnée de N échantillons s(n).
Cette erreur est aussi le résultat du filtrage de s(n) par le filtre A(z) avec
.
Dans le domaine des z, on peut noter E(z) = A(z)S(z). A(z) est un filtre blanchisseur, c’est-à-dire
qu’il tend à rendre le spectre de e(n) en sortie le plus plat possible. A l’inverse on a :
.
(On normalise généralement e(n) en u(n) et G est le gain prenant en compte l’énergie de e(n) sur la
fenêtre d’analyse). Le signal de parole peut donc être considéré comme le résultat d'un processus de
couplage source-filtre entre une excitation u(n) unitaire et de spectre plat et un filtre H(z)
modélisant l’influence du conduit vocal :
.
Cette modélisation source-filtre est exploitée en codage. Par exemple, l’excitation u(n) peut être
modélisée pour la synthèse du signal par un bruit blanc centré réduit dans le cas des sons non-voisés
ou un train d’impulsion unité périodique dans le cas des sons voisés.
En analyse spectrale, la modélisation du conduit vocal en filtre tout-pôles permet de décrire
correctement l'enveloppe spectrale du signal de parole lorsque z parcours le cercle unité alors que
l'excitation contient les informations sur la structure fine du signal. Ainsi, un bon estimateur de la
densité spectrale de puissance du signal en terme d’enveloppe spectrale est donné par :
.
9