Cette IA peut cloner votre voix !
L'année dernière, nous avons vu l’explosion de l'IA générative pour les images et le texte, plus récemment avec ChatGPT. Au cours de la première semaine de 2023, des chercheurs ont déjà créé un nouveau système de données audio appelé VALL-E.
VALL-E est capable d'imiter la voix de quelqu'un à partir de seulement un enregistrement de 3 secondes avec une similitude et un naturel plus élevés que jamais auparavant. ChatGPT est capable d'imiter un écrivain humain ; VALL-E fait de même pour la voix.
Voyons comment VALL-E peut cloner la voix de quelqu'un et écoutons quelques résultats (ou écoutez par vous-même sur leur site Web) (vidéo en anglais) :
Comme vous l'avez entendu, les résultats sont incroyables. Vous pouvez désormais générer facilement du texte à l'aide de ChatGPT, puis lui donner une voix humaine à l'aide de VALL-E. Fusionnez cela avec un deepfake et vous avez un être humain complètement faux pour produire automatiquement du contenu à l’infini ! Les choses deviennent de plus en plus folles avec le temps, mais ce qui est encore plus cool c'est comment ces modèles fonctionnent…
Alors, comment pouvons-nous imiter la voix de quelqu'un?
La vue d'ensemble de VALL-E. Image tirée du papier.
Nous commençons par encoder un court exemple de message texte que vous souhaitez générer avec la voix que vous envisagez d'imiter, que nous appelons nos prompts. Ces prompts seront envoyées à un autre modèle, qui générera nos codes de codec audio, puis les décodera en un nouveau discours personnalisé. Mais tout ceci est probablement trop flou pour être compris d’un coup. Recommençons…
Comme je l'ai mentionné, nous avons d'abord nos invites textuelles et audio qui contiennent le texte pour la génération de la parole ainsi que la voix que nous voulons imiter. Ensuite, nous voulons les donner à notre modèle principal pour qu'il génère notre nouvel audio. Pour cela, nous devons le traduire en quelque chose que notre modèle peut comprendre, qui sont souvent des matrices et des nombres, et non des mots ou des sons. Cela signifie que nous utiliserons d'autres modèles appelés encodeurs pour passer du texte et de la voix aux matrices et aux valeurs et nombres spécifiques représentant le locuteur et les informations acoustiques. C'est la même étape qu'avec la plupart des modèles de langage pour comprendre et traiter les entrées de langage.
Ensuite, nous devons prendre ces matrices nouvellement créées représentant la voix et le texte que nous voulons et faire de la magie pour fusionner les deux en créant une nouvelle piste audio avec la voix clonée et le texte souhaité.
Présentation du modèle de langage de codec neuronal. Image tirée du papier.
C'est là qu'intervient notre modèle principal, notre modèle de codec audio neuronal. Il faudra prendre les matrices que nous venons de produire et apprendre à cloner au mieux la voix tout en faisant correspondre le nouveau texte. Cela fonctionne en utilisant une architecture de modèle relativement basique appelée encodeur-décodeur convolutif, comme nous l'avons vu dans les GANs et d'autres approches dans plusieurs de mes articles précédents pour générer des images. Ce réseau d'encodeurs-décodeurs apprendra simplement de ses exemples lors de la formation à cloner la voix en compressant les informations en ne gardant que le contenu le plus pertinent et en utilisant cette version compressée de ce que nous avons pour reconstruire le nouvel audio que nous voulons. Cela fonctionnera, grâce aux milliers d'exemples qu'il a vu pendant sa phase d'entraînement, tout comme un joueur de tennis professionnel sait déjà où la balle atterrira de son côté du terrain dès que l'autre joueur frappera la balle. Grâce à ce qu'il a vu dans le passé, il est capable de prédire où la balle finira et comment elle rebondira, en ne tenant compte que du coup initial.
Maintenant que nous avons nos matrices transformées, la seule étape consiste à les ramener dans le monde réel, ce qui signifie créer une piste audio à partir de celles-ci. Cela se fait en utilisant une architecture très similaire à celle de l'encodeur audio que nous avons vu dans la première étape, mais à l'envers. Ce système d’encodeur-décodeur a en fait été formé ensemble pour passer de l'audio, l'encoder dans des matrices et des nombres et le ramener au même audio. Ensuite, nous pouvons diviser ce modèle en deux et utiliser la première moitié dans la première étape que nous avons vue et la seconde moitié ici pour obtenir nos résultats finaux : notre nouveau discours personnalisé. Nous allons donc “sandwich” notre model de langage de codec neuronal entre un encodeur et un décodeur lui permettant de “communiquer” avec le monde réel (passer de nombres à une voix).
Une comparaison entre VALL-E et les systèmes actuels. Image tirée du papier.
Et pourquoi ça marche si bien ? En raison de cette architecture que nous venons de décrire et l’approche de cette tâche comme une tâche de modèle de langage avec des codes de codec audio au lieu de l'approche traditionnelle des “mel spectrograms” , mais principalement parce qu'ils exploitent une énorme quantité de données semi-supervisées. Plus précisément, des centaines de fois plus grandes que les systèmes existants, similaire aux grands modèles récents comme GPT-3 ou ChatGPT qui sont beaucoup plus puissants grâce aux quantités de données élevés qu’ils peuvent utiliser. Comme toujours, les données sont la clé.
Et voilà ! C'est ainsi que vous pouvez copier la voix de quelqu'un et dire tout ce que vous voulez, ce qui est à la fois fascinant et incroyablement dangereux.
J'aimerais entendre vos réflexions sur tous ces nouveaux outils génératifs comme ce modèle VALL-E et ChatGPT. Vous attendiez-vous à des progrès aussi rapides ? Selon vous, quelle est la prochaine étape concernant le contenu génératif ?
J'espère que vous avez apprécié cet article. Je vous verrai la prochaine fois avec un autre papier incroyable!
Références
Link for the audio samples: https://valle-demo.github.io/
Wang et al., 2023: VALL-E. https://arxiv.org/pdf/2301.02111.pdf