Comment imiter / copier / simuler la voix de quelqu'un?


19

Existe-t-il une application existante pour échantillonner la voix de quelqu'un et l'utiliser pour moduler une autre voix ou synthétiser un texte pour ressembler à l'original?

Par exemple, cette démo de synthèse vocale par AT&T vous permet de choisir une voix et une langue parmi les préréglages qui, je suppose, sont basés sur une voix humaine qui a été échantillonnée.

Comment appelez-vous ce processus? Est-ce de la modulation vocale? Synthèse vocale?


Je suppose que si vous aviez suffisamment d'échantillons de formation, pour des mots particuliers, cela pourrait être possible
Phorce

Dans la communauté des chercheurs, cela s'appelle la "conversion vocale".
pichenettes

@ user1582478 J'en ai beaucoup, comment procéderiez-vous?
clapas

Est-il possible de créer une voix à partir, disons, d'un ami, puis de la prendre en direct lors d'un appel téléphonique, un peu comme un morph de voix, mais avec la voix que vous avez créée?

Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire en dessous de son article - vous pouvez toujours commenter vos propres articles, et une fois que vous aurez une réputation suffisante, vous pourrez commenter n'importe quel article .
Matt L.

Réponses:


24

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:

  1. 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.
  2. Le même processus est appliqué sur B2.
  3. 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.
  4. 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.
  5. À 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.


Super réponse! Je n'aurais sans doute pas pu le comprendre sans l'analogie des sacs ... Il n'y a qu'une chose que je ne comprends pas après cette explication si claire: à ma connaissance, on peut toujours avoir B1! Merci beaucoup.
clapas

Pas si A et B parlent une langue différente (il existe des applications étranges de conversion vocale dans lesquelles le TTS dans une autre langue est lu avec votre propre voix!). Ou si A et B sont des personnes célèbres, pour lesquelles vous ne pouvez pas trouver une phrase commune suffisamment longue dans tous les enregistrements accessibles au public, et si vous ne parlez pas leur langue, vous ne pouvez pas utiliser un enregistrement de votre voix comme "pont" entre les deux.
pichenettes

Je vois. Merci encore @pichenettes. Je vais essayer de jeter un coup d'œil au livre mentionné par Stylianou et al. Cheers
clapas

Veuillez mettre à jour votre réponse avec des liens vers les acronymes que vous avez utilisés. Par exemple LPC, VQ, GMM.
aaronsnoswell

En réponse au commentaire de aaronsnoswell: LCP: codage prédictif linéaire, VQ: quantification vectorielle, GMM: modèle de mélange gaussien. Il n'est pas évident que la simple extension de ces acronymes aide beaucoup car chacun est une idée compliquée, mais (grosso modo) chaque idée concerne la modélisation ou l'explication de pst ou de données futures à partir d'un ensemble d'échantillons existants.
GregD

2

Vous pouvez utiliser quelque chose comme MorphVox . Voici une démonstration. Le processus est appelé morphing ou conversion de la voix. Si vous êtes intéressé par les aspects techniques, un article récent que vous pouvez étudier est la conversion vocale utilisant la régression des moindres carrés partiels du noyau dynamique .


La voix de Dark Vador se marie, c'était drôle. Eh bien, j'ai déjà vu des effets similaires. Merci
clapas

1

Je cherche la même chose, mais cela ne peut pas être fait. Il y a une entreprise en Écosse appelée CereProc qui fait de la modélisation vocale, mais ils ont besoin de quelqu'un dans leur laboratoire pour enregistrer des heures d'audio et le coût de modélisation d'une seule voix est d'environ 30 000 USD.


0

Ce que vous recherchez s'appelle un vocodeur.

Avez-vous essayé le vocodeur d'Audcity? Audacity peut être téléchargé à partir de: http://audacity.sourceforge.net/download . Une démo sur la façon de l'utiliser peut être trouvée à https://www.youtube.com/watch?v=J_rPEmJfwNs .


1
Le vocodage consiste à appliquer l'enveloppe spectrale d'un enregistrement audio (qui est généralement une voix) pour filtrer un autre son (qui est généralement un son de synthétiseur brut et non modulé). Il ne peut pas être utilisé pour simuler la voix de quelqu'un.
pichenettes

Oui, je connais Audacity, mais je n'ai pas essayé le vocodeur. Je pense que vous ne pouvez appliquer que du bruit blanc à l'enveloppe de la voix enregistrée. Merci
clapas
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.