- Vise le problème du TTS zero-shot, capable de cloner le timbre d’un locuteur à partir d’un court audio de référence et de le faire parler dans plusieurs langues, sans entraînement supplémentaire par locuteur
- Le point clé est une architecture qui sépare le clonage du timbre du contrôle de la langue et du style : le base speaker TTS produit l’émotion, l’accentuation, le rythme, les pauses et l’intonation, puis le tone color converter applique le timbre du locuteur de référence
- Le clonage cross-lingual zero-shot est possible même sans grand jeu de données multilocuteurs pour une nouvelle langue ; l’entraînement utilise 30K phrases pour le base TTS et 20K personnes / 300K échantillons audio pour le converter
- L’implémentation complète repose sur une architecture feed-forward sans composant autorégressif ni de diffusion ; la version optimisée atteint des performances 12× temps réel sur un seul GPU A10G et génère 1 seconde de voix en 85 ms
- Le code source et les poids du modèle ont été publiés ; OpenVoice a été déployé comme moteur vocal de MyShell.ai auprès de plus de 2 millions d’utilisateurs dans le monde, et sa version interne a été utilisée des dizaines de millions de fois entre mai et octobre 2023
Le problème de clonage vocal instantané visé par OpenVoice
- Le clonage vocal instantané (IVC) est un TTS qui reproduit la voix d’un locuteur précis à partir d’un court audio de référence ; on parle aussi de TTS zero-shot, car il fonctionne sans entraînement supplémentaire par locuteur
- Les cas d’usage couvrent la production de contenus multimédias, les chatbots personnalisés, et même les interactions multimodales entre humains, ordinateurs ou grands modèles de langage
- Les approches existantes ont chacune des limites en matière de vitesse, de contrôlabilité et d’extension à d’autres langues
- Les approches autorégressives comme VALLE ou XTTS clonent le timbre en conditionnant sur les acoustic tokens ou les speaker embeddings de la voix de référence, mais il est difficile d’y manipuler finement le style comme l’émotion, l’intonation, le rythme, les pauses ou la prosodie
- Les approches non autorégressives comme YourTTS ou Voicebox offrent une inférence rapide, mais ne permettent pas de contrôler souplement les paramètres de style au-delà du timbre
- Les méthodes existantes de clonage vocal cross-lingual nécessitent généralement un jeu de données MSML contenant de nombreux locuteurs pour chaque langue, ce qui complique l’ajout de nouvelles langues
- OpenVoice poursuit trois objectifs à la fois
- Cloner le timbre du locuteur de référence tout en contrôlant séparément l’émotion, l’accentuation, le rythme, les pauses et l’intonation
- Réaliser un clonage cross-lingual même lorsque la langue du locuteur de référence ou la langue générée n’existe pas dans les données d’entraînement MSML
- Fournir une inférence rapide en temps réel, sans dégradation de qualité, dans un contexte commercial à grande échelle
Une architecture qui sépare timbre et style
- L’idée centrale d’OpenVoice est de ne pas faire apprendre à un seul grand modèle, en même temps, le timbre, la langue et le style, mais de découper le problème en sous-tâches plus simples
- Le base speaker TTS model est chargé de la langue et du style
- Il peut s’agir d’un modèle TTS monolocuteur ou multilocuteur
- VITS peut être modifié pour injecter des embeddings de style et de langue dans le text encoder et le duration predictor
- InstructTTS peut recevoir un prompt de style
- Des modèles commerciaux comme Microsoft TTS, qui permettent de spécifier émotion, pauses et articulation via SSML, peuvent aussi être utilisés
- Un humain peut également lire directement le texte dans la langue et le style souhaités afin de produire une voix de base
- Dans l’implémentation publique, c’est VITS qui est utilisé par défaut
- Le tone color converter transforme ensuite la voix du base speaker en lui appliquant le timbre du locuteur de référence
- L’encoder est un réseau neuronal convolutif 1D qui prend en entrée le spectre obtenu par short-time Fourier transform de la voix du base speaker
- Le tone color extractor est un réseau neuronal convolutif 2D qui extrait depuis le mel-spectrogram un vecteur unique contenant l’information de timbre
- Le normalizing flow retire l’information de timbre de la voix de base tout en préservant la langue et le style
- Cette représentation est alignée sur l’axe temporel avec des features fondées sur l’IPA
- L’inverse flow conditionne ensuite sur le vecteur de timbre du locuteur de référence pour appliquer ce nouveau timbre à la feature map
- HiFi-GAN génère enfin le raw waveform final
- Le modèle complet de l’implémentation publique fonctionne en feed-forward, sans composant autorégressif
- Les approches d’extraction d’unités basées sur HuBERT ont le défaut de supprimer non seulement le timbre, mais aussi l’émotion et l’intonation
- D’autres méthodes qui construisent un goulot d’étranglement informationnel pour ne conserver que le contenu vocal n’éliminent pas complètement le timbre
- L’originalité d’OpenVoice réside moins dans l’invention de chaque sous-module que dans ce cadre qui sépare le clonage du timbre du contrôle du style et de la langue
Données d’entraînement et objectifs d’apprentissage
- L’entraînement du base speaker TTS s’appuie sur des données de 4 locuteurs
- 1 locuteur d’anglais américain, 1 locuteur d’anglais britannique, 1 locuteur de chinois et 1 locuteur de japonais
- 30K phrases au total, avec une longueur moyenne de 7 secondes
- Les données en anglais et en chinois disposent d’étiquettes de classification des émotions
- Le VITS modifié prend en entrée un emotion categorical embedding, un language categorical embedding et le speaker id dans le text encoder, le duration predictor et la flow layer
- Le modèle de base entraîné peut changer l’accentuation et la langue en changeant de base speaker, et lire un même texte avec différentes émotions
- Des expériences avec des données d’entraînement supplémentaires montrent que le rythme, les pauses et l’intonation peuvent aussi être appris de la même manière que les émotions
- L’entraînement du tone color converter utilise 20K personnes et 300K échantillons audio
- Environ 180K échantillons en anglais
- Environ 60K échantillons en chinois
- Environ 60K échantillons en japonais
- Cet ensemble est appelé jeu de données MSML
- Le converter a deux objectifs d’apprentissage
- Utiliser une mel-spectrogram loss et une perte HiFi-GAN pour que l’encoder-decoder produise un son naturel
- Entraîner la flow layer à supprimer autant que possible l’information de timbre des features audio
- Pour apprendre cette suppression du timbre, le texte est converti en séquence de phonèmes IPA, puis un learnable embedding et un transformer encoder produisent des text content features qui sont alignées avec les features audio via dynamic time warping afin de minimiser la divergence de KL
- La flow layer n’est conditionnée ni par le style ni par la langue, afin de ne pas supprimer d’autres informations que le timbre
- Comme la flow layer est une structure inversible, il est possible d’exécuter le processus inverse en la conditionnant sur une nouvelle information de timbre, afin de réinjecter le timbre du locuteur de référence tout en conservant le même contenu et le même style
Résultats expérimentaux et limites observées
- L’évaluation du clonage vocal est difficile à comparer objectivement d’une étude à l’autre, car les jeux d’entraînement, les jeux de test et les conditions d’évaluation par Mean Opinion Score varient
- L’évaluation d’OpenVoice met davantage l’accent sur sa propre analyse qualitative et sur la publication d’échantillons audio que sur une comparaison chiffrée directe avec les méthodes existantes
- Le jeu de test du clonage de timbre inclut des locuteurs de référence célèbres, des personnages de jeux vidéo et des personnes anonymes
- Il comprend à la fois des voix très expressives et distinctives, ainsi que des échantillons plus neutres dans la distribution des voix humaines
- À partir de 4 base speakers et de plusieurs locuteurs de référence, le système clone le timbre de référence et génère de la parole dans plusieurs langues et avec plusieurs accents
- L’évaluation du contrôle du style consiste à créer un corpus de 1K échantillons de styles variés à partir du base speaker model et de Microsoft TTS SSML, puis à les convertir avec le timbre de référence
- L’émotion, l’accentuation, le rythme, les pauses et l’intonation sont bien conservés
- Dans de rares cas, l’émotion devient légèrement plus neutre
- Ce problème peut être atténué en remplaçant, pour une phrase donnée, le tone color embedding vector par un vecteur moyen calculé à partir de plusieurs phrases émotionnelles différentes du même base speaker
- Le clonage cross-lingual fonctionne en near zero-shot pour des langues absentes du jeu de données MSML
- Même si la langue du locuteur de référence n’existe pas dans le jeu de données MSML, il est possible de cloner son timbre
- Même si la langue à générer n’existe pas dans le jeu de données MSML, on peut la faire parler avec le timbre de référence si le base speaker TTS la prend en charge
- Il faut toutefois disposer d’un base speaker pour cette langue
- Dans les tests de vitesse, la version optimisée d’OpenVoice, incluant le base speaker model et le tone converter, atteint 12× le temps réel sur un seul GPU A10G
- La génération d’1 seconde de voix prend 85 ms
- D’après l’analyse de l’usage GPU, la limite supérieure est estimée à environ 40× le temps réel, mais cette amélioration reste un chantier futur
- L’usage de l’IPA est important pour la conversion de timbre cross-lingual
- L’IPA sert de dictionnaire phonémique unifié entre les langues, ce qui permet à la flow layer de produire une représentation neutre vis-à-vis de la langue
- Avec d’autres dictionnaires phonémiques, on observe une tendance à mal prononcer certains phonèmes de langues absentes de l’entraînement
- Même si l’audio d’entrée est correct, l’audio de sortie peut présenter des problèmes ou sonner comme celui d’un locuteur non natif
Ressources publiées et usage en production
- OpenVoice publie son code source et ses modèles entraînés pour permettre la reproduction des recherches et les travaux ultérieurs
- Les résultats qualitatifs sont disponibles via la démo OpenVoice
- Les démonstrations détaillées sont réparties dans les catégories suivantes
- Avant sa publication, la version interne a été utilisée des dizaines de millions de fois par des utilisateurs du monde entier entre mai et octobre 2023
- Chez MyShell.ai, OpenVoice a servi de backend de clonage vocal instantané, et la plateforme a connu une croissance du nombre d’utilisateurs de plusieurs centaines de fois
- Aujourd’hui, OpenVoice est proposé comme moteur vocal de MyShell.ai à plus de 2 millions d’utilisateurs dans le monde
1 commentaires
Commentaires sur Hacker News
C’est bien que les auteurs l’aient rendu facile à tester immédiatement, mais pour un usage général de clonage vocal, ce n’était pas vraiment convaincant
Je lui ai fait lire le premier paragraphe de Wikipédia sur les livres, puis générer la phrase suivante, et à l’oreille cela sonnait clairement comme une voix produite par ordinateur
Exemple audio : https://storage.googleapis.com/dalle-party/sample.mp3
Voix clonée (conversion mp3) : https://storage.googleapis.com/dalle-party/output_en_default...
J’ai simplement installé le package avec
pip, fourni un échantillon audio et exécutédemo_part1.ipynb, et sur un portable avec une 3070 Ti / 8GB, c’était terminé presque instantanémentJe me demande à quel point cela s’améliorerait avec davantage de matériel vocal d’origine
Je me demande si on pourrait utiliser ça, ou Eleven Labs, pour créer un modèle vocal à injecter dans le TTS d’un téléphone Android
Un ami atteint d’une paralysie du larynx communique souvent en tapant sur son téléphone ou sur un petit ordinateur portable
Il apprécierait énormément si on pouvait récupérer sa voix à partir d’anciens enregistrements et lui rendre au moins un peu “sa” propre voix
En revanche, je ne sais pas s’il existe une solution pour Android
J’ai vu récemment une vidéo de la voix personnalisée créée par Google pour les patients atteints de SLA, mais je n’arrive pas à la retrouver en ligne
Android ne propose pas encore la génération de voix personnalisée, mais iOS 17 prend désormais en charge la génération de voix personnalisée
ModelTalker [3] semble être un projet de recherche au long cours sur la génération de voix personnalisées pour les personnes ayant des troubles de la parole, et comme son TTS semble prendre en charge Android, cela pourrait être une autre option
[0] https://www.acapela-group.com/
[1] https://www.speakunique.co.uk/
[2] https://vocalid.ai/
[3] https://www.modeltalker.org/
J’ai contribué au TTS chez Google et j’ai aussi travaillé côté Android, et cette fonction est intégrée à iOS
Il n’y a pas de chef de produit Google plus motivé que “Apple vient juste de le sortir”, donc c’est peut-être paradoxalement un signal encourageant
Je travaille en ce moment sur de l’inférence on-device cross-platform, vous pouvez regarder FONNX sur GitHub, et c’est l’un des 100 sujets qui me restent en tête depuis un moment, donc je vous contacterai peut-être si j’ai un peu de temps
Édition : un app Android avec un clavier et un bouton “parler” qui appelle l’API Eleven Labs serait-il déjà suffisamment utile pour valoir la peine d’être tenté ?
GitHub : https://github.com/myshell-ai/OpenVoice
Checkpoints : hxxps://myshell-public-repo-hosting.s3.amazonaws.com/checkpoints_1226.zip
J’ai neutralisé le lien des checkpoints, car je suis réticent face aux liens pointant directement vers un fichier zip hébergé sur Amazon
Je n’ai pas non plus vérifié ce que contient le fichier
Pour les checkpoints, je n’ai aucune réticence et je ne vais pas faire de théâtre de la sécurité
https://github.com/myshell-ai/OpenVoice?tab=readme-ov-file#i... pointe vers
https://myshell-public-repo-hosting.s3.amazonaws.com/checkpo...
J’aime bien cet article
Il se lit comme : “voilà comment nous avons fait, et nous voulons aider d’autres personnes à pouvoir le faire aussi”
J’apprécie particulièrement la section “Remark on Novelty”, qui explique que la contribution d’OpenVoice n’est pas d’inventer des sous-modules de l’architecture du modèle, mais un framework qui sépare le style vocal et le contrôle de la langue du clonage du timbre
Ils ne cherchent pas à exagérer leur contribution
Exemples : https://research.myshell.ai/open-voice
Cela semble assez impressionnant
La licence est la Creative Commons Attribution-NonCommercial 4.0 International License, donc elle interdit l’usage commercial, et il est indiqué que MyShell peut détecter si un audio a été généré avec OpenVoice, avec ou sans filigrane
Dans ce cas, ce n’est pas vraiment “open”, et on ne peut pas gagner d’argent avec, si ?
On peut consulter le code, l’utiliser et le modifier autant qu’on veut, donc je considère que c’est plutôt ouvert
Bien sûr, les escrocs qui ignorent les licences non commerciales, eux, le peuvent
Ce n’est pas très bien mis en avant, et je ne sais même pas si Apple continue à le développer, mais iOS dispose d’une fonction de clonage vocal appelée Personal Voice
L’entraînement sur sa propre voix prend environ 15 minutes, puis le traitement on-device à l’écran verrouillé prend quelques heures
On peut l’utiliser pour les appels téléphoniques et FaceTime, et je ne sais pas si c’est possible ailleurs
Ce serait bien si on pouvait aussi l’utiliser pour du TTS classique
La formulation sur l’usage dans les appels ou sur FaceTime donne l’impression qu’il s’agit de conversion voix-à-voix, mais en réalité c’est réservé au TTS
Comme ce n’est pas de la conversion voix-à-voix, cela ne peut pas conserver les signaux qui donnent l’impression d’une vraie voix, comme le bégaiement, la prosodie, etc.
J’ai appelé il y a quelques jours l’une des grandes banques de détail britanniques, et ils recommandaient encore de s’inscrire à cet idiot de programme « ma voix est mon mot de passe »
Vu le niveau atteint par l’IA, ça donne juste une impression de négligence
Ils m’ont demandé de répondre à quelques questions, puis m’ont annoncé que je venais d’être inscrit à leur programme d’identification vocale
Maintenant, ça me fait une chose de plus à ajouter à ma liste de tâches pour l’annuler
On dirait que toutes les entreprises promeuvent les plus stupides à des postes de management
Ma première pensée est que les usages immoraux ou criminels du clonage vocal seront bien plus nombreux que les usages légitimes, et c’est déjà le cas aujourd’hui
On peut créer des vidéos YouTube sans utiliser sa vraie voix, tout en conservant des intonations et des accents personnels qu’une voix TTS générée par IA ne sait pas reproduire
Ou encore s’en servir dans le développement de jeux indépendants
En apprenant un minimum le jeu de voix pour réduire le côté maladroit, on pourrait interpréter soi-même tous les personnages avec plusieurs voix
YouTube permettra aux gens d’entendre des versions localisées dans la voix de l’auteur original
Il ne faut tout simplement pas accepter la voix comme moyen d’authentification
L’usage le plus courant sera probablement la production programmatique d’art et de contenus sans comédiens de doublage
Une fois qu’on saura finaliser des pipelines vidéo ou de modèles 3D avec des transformations image par image pour les rendre réalistes, il y a de fortes chances qu’on n’ait presque plus besoin d’acteurs non plus
Certaines banques utilisent l’authentification vocale lors des appels, et il faut demander explicitement à en être retiré