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