Une première note: la plupart des systèmes de synthèse vocale modernes, comme celui d'AT & T auquel vous avez lié, utilisent la synthèse vocale concaténative . Cette technique utilise une grande base de données d'enregistrements de la voix d'une personne prononçant une longue collection de phrases - sélectionnées de manière à ce que le plus grand nombre de combinaisons de phonèmes soit présent. La synthèse d'une phrase peut être faite simplement en enchaînant des segments de ce corpus - le bit difficile rend le enchaînement transparent et expressif.
Il y a deux gros obstacles si vous voulez utiliser cette technique pour faire dire au président Obama des mots embarrassants:
- Vous devez avoir accès à une grande collection de phrases de la voix cible, de préférence enregistrées avec des conditions d'enregistrement uniformes et de bonne qualité. AT&T a un budget pour enregistrer des dizaines d'heures de la même enceinte dans le même studio, mais si vous voulez simuler la voix de quelqu'un à partir de seulement 5 minutes d'enregistrement, ce sera difficile.
- Il y a une quantité considérable d'alignement manuel et de prétraitement avant que la matière première enregistrée ne soit dans le bon "format" à exploiter par un système de synthèse vocale concaténative.
Votre intuition que c'est une solution possible est valide - à condition que vous ayez le budget pour s'attaquer à ces deux problèmes.
Heureusement, il existe d'autres techniques qui peuvent fonctionner avec moins de supervision et moins de données. Le domaine de la synthèse vocale intéressé à «simuler» ou «imiter» une voix à partir d'un enregistrement est appelé conversion vocale . Vous avez un enregistrement A1 du locuteur cible A disant la phrase 1, et un enregistrement B2 du locuteur source B disant la phrase 2, vous visez à produire un enregistrement A2 du locuteur A disant la phrase 2, éventuellement avec accès à un enregistrement B1 du locuteur B reproduisant avec sa voix le même énoncé que le locuteur cible.
Les grandes lignes d'un système de conversion vocale sont les suivantes:
- Les caractéristiques audio sont extraites de l'enregistrement A1 et sont regroupées en classes acoustiques. À ce stade, c'est un peu comme si les sacs étaient tous "un" du haut-parleur A, tous des "o" du haut-parleur A, etc. reconnaître les mots correctement formés - et nous ne savons même pas quel sac contient "o" et quel sac contient "a" - nous savons simplement que nous avons plusieurs instances du même son dans chaque sac.
- Le même processus est appliqué sur B2.
- Les classes acoustiques de A1 et B2 sont alignées. Pour continuer l'analogie avec les sacs, cela équivaut à jumeler les sacs des étapes 1 et 2, de sorte que tous les sons que nous avons dans ce sac du haut-parleur A correspondent aux sons que nous avons dans ce sac du haut-parleur B. Cette correspondance est beaucoup plus facile à faire si B1 est utilisé à l'étape 2.
- Une fonction de cartographie est estimée pour chaque paire de sacs. Puisque nous savons que ce sac contient des sons provenant du haut-parleur A, et que le sac a les mêmes sons mais dit par le haut-parleur B - nous pouvons trouver une opération (par exemple une multiplication matricielle sur des vecteurs de caractéristiques) qui les fait correspondre. En d'autres termes, nous savons maintenant comment faire en sorte que le «o» du haut-parleur 2 sonne comme le «o» du haut-parleur 1.
- À ce stade, nous avons toutes les cartes en main pour effectuer la conversion vocale. À partir de chaque tranche de l'enregistrement de B2, nous utilisons le résultat de l'étape 2. pour déterminer à quelle classe acoustique il correspond. Nous utilisons ensuite la fonction de cartographie estimée à l'étape 4 pour transformer la tranche.
J'insiste sur le fait que cela fonctionne à un niveau bien inférieur à celui de la reconnaissance vocale sur B2, puis à la réalisation de TTS en utilisant la voix d'A1 comme corpus.
Diverses techniques statistiques sont utilisées pour les étapes 1 et 2 - GMM ou VQ étant les plus courantes. Différents algorithmes d'alignement sont utilisés pour la partie 2 - c'est la partie la plus délicate, et il est évidemment plus facile d'aligner A1 vs B1, que A1 vs B2. Dans le cas le plus simple, des méthodes comme Dynamic Time Warping peuvent être utilisées pour effectuer l'alignement. Comme pour l'étape 4, les transformations les plus courantes sont des transformations linéaires (multiplication matricielle) sur des vecteurs de caractéristiques. Des transformations plus complexes permettent des imitations plus réalistes mais le problème de régression pour trouver la cartographie optimale est plus complexe à résoudre. Enfin, comme pour l'étape 5, la qualité de la resynthèse est limitée par les fonctionnalités utilisées. Les LPC sont généralement plus faciles à gérer avec une méthode de transformation simple (prendre la trame de signal -> estimer le résidu et le spectre LPC -> si nécessaire le décalage de hauteur tonale -> appliquer le spectre LPC modifié au résidu modifié). Utiliser une représentation de la parole qui peut être inversée dans le domaine temporel et qui offre une bonne séparation entre prosodie et phonèmes est la clé ici! Enfin, à condition d'avoir accès à des enregistrements alignés des locuteurs A et B disant la même phrase, il existe des modèles statistiques qui abordent simultanément les étapes 1, 2, 3 et 4 dans une seule procédure d'estimation de modèle.
Je pourrais revenir avec une bibliographie plus tard, mais un très bon endroit pour commencer à comprendre le problème et le cadre général utilisé pour le résoudre est Stylianou, Moulines et Cappé "Un système de conversion vocale basé sur une classification probabiliste et une harmonique plus le modèle de bruit ".
Il n'y a à ma connaissance aucun logiciel de conversion vocale largement répandu - seulement un logiciel modifiant les propriétés de la voix source - comme les paramètres de hauteur et de longueur des voies vocales (par exemple, le transformateur IRCAM TRAX) - avec lequel vous devez jouer dans l'espoir de faire votre enregistrer le son plus près de la voix cible.