Anglais | 简体中文 | 日本語
Le modèle actuellement publié prend en charge la conversion vocale sans prise de vue ? , conversion vocale en temps réel sans tir et conversion vocale chantée sans aucune formation . Sans aucune formation, il est capable de cloner une voix étant donné un discours de référence de 1 à 30 secondes.
Pour trouver une liste de démos et des comparaisons avec les modèles de conversion vocale précédents, veuillez visiter notre page de démonstration
Nous continuons à améliorer la qualité du modèle et à ajouter plus de fonctionnalités.
Nous avons effectué une série d'évaluations objectives sur les capacités de conversion vocale de notre Seed-VC. Pour faciliter la reproduction, les audios sources sont 100 énoncés aléatoires de LibriTTS-test-clean, et les audios de référence sont 12 voix sauvages sélectionnées au hasard avec des caractéristiques uniques.
Les fichiers audio sources peuvent être trouvés sous ./examples/libritts-test-clean
Les audios de référence peuvent être trouvés sous ./examples/reference
Nous évaluons les résultats de conversion en termes de similarité cosinus d'intégration du locuteur (SECS), de taux d'erreur sur les mots (WER) et de taux d'erreur sur les caractères (CER) et avons comparé nos résultats avec deux bases de référence open source solides, à savoir OpenVoice et CosyVoice.
Les résultats du tableau ci-dessous montrent que notre modèle Seed-VC surpasse considérablement les modèles de base en termes d'intelligibilité et de similarité des locuteurs.
ModèlesMesures | SEC↑ | WER↓ | CER↓ | SIG↑ | bak↑ | OVRL↑ |
---|---|---|---|---|---|---|
Vérité terrain | 1.0000 | 8.02 | 1,57 | ~ | ~ | ~ |
Ouvrir la voix | 0,7547 | 15h46 | 4,73 | 3,56 | 4.02 | 3.27 |
CosyVoix | 0,8440 | 18,98 | 7.29 | 3.51 | 4.02 | 3.21 |
Seed-VC (le nôtre) | 0,8676 | 11,99 | 2,92 | 3.42 | 3,97 | 3.11 |
Nous avons également comparé des modèles de conversion vocale non-zéro-shot pour plusieurs haut-parleurs (en fonction de la disponibilité des modèles) :
Personnages | ModèlesMesures | SECS↑ | WER↓ | CER↓ | SIG↑ | bak↑ | OVRL↑ |
---|---|---|---|---|---|---|---|
~ | Vérité terrain | 1.0000 | 6.43 | 1h00 | ~ | ~ | ~ |
Tokai Teio | Donc-VITS-4.0 | 0,8637 | 21h46 | 9.63 | 3.06 | 3,66 | 2,68 |
Seed-VC (le nôtre) | 0,8899 | 15h32 | 4,66 | 3.12 | 3,71 | 2,72 | |
Vert laiteux | Donc-VITS-4.0 | 0,6850 | 48.43 | 32.50 | 3.34 | 3.51 | 2,82 |
Seed-VC (le nôtre) | 0,8072 | 7.26 | 1.32 | 3,48 | 4.07 | 3.20 | |
Matikane Tannhuaser | Donc-VITS-4.0 | 0,8594 | 16h25 | 8.64 | 3.25 | 3,71 | 2,84 |
Seed-VC (le nôtre) | 0,8768 | 12.62 | 5,86 | 3.18 | 3,83 | 2,85 |
Les résultats montrent que, bien qu'il n'ait pas été formé sur les haut-parleurs cibles, Seed-VC est capable d'obtenir des résultats nettement meilleurs que les modèles non-zéro-shot. Cependant, cela peut varier considérablement en fonction de la qualité du modèle SoVITS. Les relations publiques ou les problèmes sont les bienvenus si vous trouvez cette comparaison injuste ou inexacte.
(Modèle Tokai Teio de zomehwh/sovits-tannhauser)
(Modèle Matikane Tannhuaser de zomehwh/sovits-tannhauser)
(Modèle Milky Green de sparanoid/milky-green-sovits-4)
Résultat ASR en anglais calculé par le modèle Facebook/hubert-large-ls960-ft
Intégration des haut-parleurs calculée par le modèle resemblyzer
Vous pouvez reproduire l'évaluation en exécutant le script eval.py
python eval.py --source ./examples/libritts-test-clean --target ./exemples/référence --output ./examples/eval/converti --étapes de diffusion 25 --length-adjust 1.0 --inference-cfg-rate 0,7 --xvector-extractor "resemblyzer"--baseline "" # remplir openvoice ou cosyvoice pour calculer le résultat de base --max-samples 100 # max d'énoncés sources à parcourir
Avant cela, assurez-vous que les dépôts openvoice et cosyvoice sont correctement installés sur ../OpenVoice/
et ../CosyVoice/
si vous souhaitez exécuter une évaluation de base.
Une évaluation supplémentaire de la conversion de la voix chantée est effectuée sur l'ensemble de données M4Singer, avec 4 locuteurs cibles dont les données audio sont disponibles ici.
La similarité des locuteurs est calculée en faisant la moyenne des similitudes cosinusoïdales entre le résultat de la conversion et tous les échantillons disponibles dans l'ensemble de données de caractères respectif.
Pour chaque caractère, un énoncé aléatoire est choisi comme invite pour une inférence sans tir. À titre de comparaison, nous avons formé le modèle RVCv2-f0-48k respectif pour chaque personnage comme référence.
100 énoncés aléatoires pour chaque type de chanteur sont utilisés comme source audio.
ModèlesMesures | F0CORR↑ | F0RMSE↓ | SECS↑ | CER↓ | SIG↑ | bak↑ | OVRL↑ |
---|---|---|---|---|---|---|---|
RVCv2 | 0,9404 | 30.43 | 0,7264 | 28h46 | 3.41 | 4.05 | 3.12 |
Seed-VC (le nôtre) | 0,9375 | 33h35 | 0,7405 | 19h70 | 3.39 | 3,96 | 3.06 |
Type de chanteur source | Personnages | ModèlesMesures | F0CORR↑ | F0RMSE↓ | SEC↑ | CER↓ | SIG↑ | bak↑ | OVRL↑ |
---|---|---|---|---|---|---|---|---|---|
Alto (Femme) | ~ | Vérité terrain | 1.0000 | 0,00 | ~ | 8.16 | ~ | ~ | ~ |
Azuma (Femme) | RVCv2 | 0,9617 | 33.03 | 0,7352 | 24h70 | 3.36 | 4.07 | 3.07 | |
Seed-VC (le nôtre) | 0,9658 | 31.64 | 0,7341 | 15.23 | 3.37 | 4.02 | 3.07 | ||
Diane (Femme) | RVCv2 | 0,9626 | 32.56 | 0,7212 | 19.67 | 3.45 | 4.08 | 3.17 | |
Seed-VC (le nôtre) | 0,9648 | 31.94 | 0,7457 | 16.81 | 3.49 | 3,99 | 3.15 | ||
Ding Zhen (homme) | RVCv2 | 0,9013 | 26.72 | 0,7221 | 18h53 | 3.37 | 4.03 | 3.06 | |
Seed-VC (le nôtre) | 0,9356 | 21.87 | 0,7513 | 15.63 | 3.44 | 3,94 | 3.09 | ||
Kobe Bryant (homme) | RVCv2 | 0,9215 | 23h90 | 0,7495 | 37.23 | 3.49 | 4.06 | 3.21 | |
Seed-VC (le nôtre) | 0,9248 | 23h40 | 0,7602 | 26,98 | 3.43 | 4.02 | 3.13 | ||
Basse (mâle) | ~ | Vérité terrain | 1.0000 | 0,00 | ~ | 8.62 | ~ | ~ | ~ |
Azuma | RVCv2 | 0,9288 | 32,62 | 0,7148 | 24.88 | 3.45 | 4.10 | 3.18 | |
Seed-VC (le nôtre) | 0,9383 | 31.57 | 0,6960 | 10h31 | 3.45 | 4.03 | 3.15 | ||
Diane | RVCv2 | 0,9403 | 30h00 | 0,7010 | 14.54 | 3.53 | 4.15 | 3.27 | |
Seed-VC (le nôtre) | 0,9428 | 30.06 | 0,7299 | 9.66 | 3.53 | 4.11 | 3.25 | ||
Ding Zhen | RVCv2 | 0,9061 | 19h53 | 0,6922 | 25,99 | 3.36 | 4.09 | 3.08 | |
Seed-VC (le nôtre) | 0,9169 | 18h15 | 0,7260 | 14.13 | 3.38 | 3,98 | 3.07 | ||
Kobé Bryant | RVCv2 | 0,9302 | 16h37 | 0,7717 | 41.04 | 3.51 | 4.13 | 3.25 | |
Seed-VC (le nôtre) | 0,9176 | 17.93 | 0,7798 | 24.23 | 3.42 | 4.08 | 3.17 | ||
Soprano (Femme) | ~ | Vérité terrain | 1.0000 | 0,00 | ~ | 27.92 | ~ | ~ | ~ |
Azuma | RVCv2 | 0,9742 | 47,80 | 0,7104 | 38.70 | 3.14 | 3,85 | 2,83 | |
Seed-VC (le nôtre) | 0,9521 | 64h00 | 0,7177 | 33.10 | 3.15 | 3,86 | 2,81 | ||
Diane | RVCv2 | 0,9754 | 46.59 | 0,7319 | 32.36 | 3.14 | 3,85 | 2,83 | |
Seed-VC (le nôtre) | 0,9573 | 59.70 | 0,7317 | 30.57 | 3.11 | 3,78 | 2,74 | ||
Ding Zhen | RVCv2 | 0,9543 | 31h45 | 0,6792 | 40,80 | 3.41 | 4.08 | 3.14 | |
Seed-VC (le nôtre) | 0,9486 | 33.37 | 0,6979 | 34h45 | 3.41 | 3,97 | 3.10 | ||
Kobé Bryant | RVCv2 | 0,9691 | 25h50 | 0,6276 | 61,59 | 3.43 | 4.04 | 3.15 | |
Seed-VC (le nôtre) | 0,9496 | 32,76 | 0,6683 | 39,82 | 3.32 | 3,98 | 3.04 | ||
Ténor (masculin) | ~ | Vérité terrain | 1.0000 | 0,00 | ~ | 5,94 | ~ | ~ | ~ |
Azuma | RVCv2 | 0,9333 | 42.09 | 0,7832 | 16.66 | 3.46 | 4.07 | 3.18 | |
Seed-VC (le nôtre) | 0,9162 | 48.06 | 0,7697 | 8h48 | 3.38 | 3,89 | 3.01 | ||
Diane | RVCv2 | 0,9467 | 36,65 | 0,7729 | 15.28 | 3.53 | 4.08 | 3.24 | |
Seed-VC (le nôtre) | 0,9360 | 41.49 | 0,7920 | 8h55 | 3.49 | 3,93 | 3.13 | ||
Ding Zhen | RVCv2 | 0,9197 | 22.82 | 0,7591 | 12.92 | 3h40 | 4.02 | 3.09 | |
Seed-VC (le nôtre) | 0,9247 | 22.77 | 0,7721 | 13.95 | 3.45 | 3,82 | 3.05 | ||
Kobé Bryant | RVCv2 | 0,9415 | 19h33 | 0,7507 | 30.52 | 3,48 | 4.02 | 3.19 | |
Seed-VC (le nôtre) | 0,9082 | 24.86 | 0,7764 | 13h35 | 3.39 | 3,93 | 3.07 |
Bien que Seed-VC ne soit pas formé sur les locuteurs cibles et qu'un seul énoncé aléatoire soit utilisé comme invite, il surpasse toujours les modèles RVCv2 spécifiques au locuteur en termes de similarité du locuteur (SECS) et d'intelligibilité (CER), ce qui démontre la qualité supérieure de la voix. capacité de clonage et robustesse de Seed-VC.
Cependant, on observe que la qualité audio (DNSMOS) de Seed-VC est légèrement inférieure à celle de RVCv2. Nous prenons cet inconvénient au sérieux et accorderons une grande priorité à l'amélioration de la qualité audio à l'avenir.
Les relations publiques ou les problèmes sont les bienvenus si vous trouvez cette comparaison injuste ou inexacte.
Résultat ASR chinois calculé par SenseVoiceSmall
Intégration des haut-parleurs calculée par le modèle resemblyzer
Nous définissons un changement de hauteur de +12 demi-tons pour la conversion mâle-femelle et -12 demi-tons pour la conversion femelle-mâle, sinon 0 changement de hauteur
Python 3.10 suggéré sous Windows ou Linux.
pip install -r exigences.txt
Les points de contrôle de la dernière version du modèle seront téléchargés automatiquement lors de la première exécution de l'inférence.
Inférence de ligne de commande :
python inference.py --source--target --output --diffusion-steps 25 # recommandé 50~100 pour la conversion de la voix chantée--length-adjust 1.0 --inference-cfg-rate 0,7 --f0-condition False # défini sur True pour la conversion de la voix chantée --auto-f0-adjust False # défini sur True pour ajuster automatiquement la hauteur de la source au niveau de hauteur cible, normalement non utilisé dans la conversion de la voix chantée -- semi-ton-shift 0 # changement de hauteur en demi-tons pour la conversion de la voix chantée
où:
source
est le chemin d'accès au fichier vocal à convertir en voix de référence
target
est le chemin d'accès au fichier vocal comme référence vocale
output
est le chemin d'accès au répertoire de sortie
diffusion-steps
est le nombre d'étapes de diffusion à utiliser, la valeur par défaut est 25, utilisez 50-100 pour une meilleure qualité, utilisez 4-10 pour une inférence la plus rapide
length-adjust
est le facteur d'ajustement de la longueur, la valeur par défaut est 1,0, définie sur <1,0 pour accélérer la parole, >1,0 pour ralentir la parole
inference-cfg-rate
a une différence subtile dans la sortie, la valeur par défaut est 0,7
f0-condition
est l'indicateur pour conditionner la hauteur de la sortie à la hauteur de l'audio source, la valeur par défaut est False, définie sur True pour la conversion de la voix chantée
auto-f0-adjust
est l'indicateur permettant d'ajuster automatiquement la hauteur de la source au niveau de hauteur cible, la valeur par défaut est False, normalement non utilisée dans la conversion de la voix chantée
semi-tone-shift
est le changement de hauteur en demi-tons pour la conversion de la voix chantée, la valeur par défaut est 0
Interface Web de Gradio :
application python.py
Ouvrez ensuite le navigateur et accédez à http://localhost:7860/
pour utiliser l'interface Web.
Interface graphique de conversion vocale en temps réel :
python temps réel-gui.py
IMPORTANT : Il est fortement recommandé d'utiliser un GPU pour la conversion vocale en temps réel.
Certains tests de performances ont été effectués sur un GPU pour ordinateur portable NVIDIA RTX 3060. Les résultats et les paramètres recommandés sont répertoriés ci-dessous :
Remarques | Étapes de diffusion | Taux CFG d'inférence | Longueur maximale de l'invite | Temps de blocage (s) | Longueur (s) du fondu enchaîné | Contexte supplémentaire (à gauche) (s) | Contexte supplémentaire (à droite)(s) | Latence (ms) | Qualité | Temps d'inférence par morceau (ms) |
---|---|---|---|---|---|---|---|---|---|---|
convient à la plupart des voix | 10 | 0,7 | 3.0 | 1,0s | 0,04 s | 0,5 s | 0,02 s | 2070 ms | Moyen | 849 ms |
meilleure performance pour les voix féminines aiguës | 20 | 0,7 | 3.0 | 2.0s | 0,04 s | 0,5 s | 0,02 s | 4070 ms | Haut | 1585 ms |
convient à certaines voix masculines, car les exigences de qualité audio sont inférieures | 5 | 0,7 | 3.0 | 0,6 s | 0,04 s | 0,5 s | 0,02 s | 1270 ms | Faible | 488 ms |
Inférence plus rapide en définissant inference_cfg_rate sur 0,0, mais je ne sais pas si les performances chutent... | 10 | 0,0 | 3.0 | 0,7 s | 0,04 s | 0,5 s | 0,02 s | 1470 ms | Moyen | 555 ms |
Vous pouvez ajuster les paramètres dans l'interface graphique en fonction des performances de votre propre appareil, le flux de conversion vocale devrait bien fonctionner tant que le temps d'inférence est inférieur au temps de blocage.
Notez que la vitesse d'inférence peut chuter si vous exécutez d'autres tâches gourmandes en GPU (par exemple, jouer à des jeux, regarder des vidéos).
Généralement, la latence est d'environ 1 à 2 secondes pour éviter une baisse de qualité (le triste caractère des modèles de diffusion... ?), mais nous continuons à chercher des moyens de la réduire.
(L'interface graphique et la logique de segmentation audio sont modifiées à partir de RVC, merci pour leur brillante implémentation !)
Code de version
Version v0.1 du modèle pré-entraîné :
Démo de l'espace Huggingface :
Page de démonstration HTML (peut-être avec des comparaisons avec d'autres modèles VC) : Démo
Inférence en continu
Réduire la latence d’inférence de streaming
Vidéo de démonstration pour la conversion vocale en temps réel
Conversion de voix chantée
Résilience au bruit pour l'audio source et de référence
L'audio source est une résilience au bruit
Améliorations potentielles de l'architecture
Connexions sautées de style U-ViT
Entrée modifiée pour OpenAI Whisper
Code pour la formation sur les données personnalisées
Changé en BigVGAN de NVIDIA pour le décodage vocal chanté
Modèle de version Whisper pour la conversion de la voix chantée
Évaluation objective et comparaison avec RVC/SoVITS pour la conversion de la voix chantée
Améliorer la qualité audio
Plus à ajouter
2024-10-28 :
Modèle de conversion de voix chantée 44k mis à jour avec une meilleure qualité audio
2024-10-27 :
Ajout d'une interface graphique de conversion vocale en temps réel
2024-10-25 :
Ajout de résultats d'évaluation exhaustifs et de comparaisons avec RVCv2 pour la conversion de la voix chantée
2024-10-24 :
Modèle de conversion de voix chantée 44 kHz mis à jour, avec OpenAI Whisper comme entrée de contenu vocal
2024-10-07 :
Modèle pré-entraîné v0.3 mis à jour, changement de l'encodeur de contenu vocal en OpenAI Whisper
Ajout de résultats d'évaluation objectifs pour le modèle pré-entraîné v0.3
2024-09-22 :
Modèle de conversion de voix chantée mis à jour pour utiliser BigVGAN de NVIDIA, offrant une amélioration considérable des voix chantées aiguës.
Prise en charge de la sortie en bloc et en streaming pour les fichiers audio longs dans l'interface utilisateur Web
2024-09-18 :
Modèle conditionné f0 mis à jour pour la conversion de la voix chantée
2024-09-14 :
Modèle pré-entraîné v0.2 mis à jour, avec une taille plus petite et moins d'étapes de diffusion pour obtenir la même qualité, et une capacité supplémentaire à contrôler la préservation de la prosodie
Ajout d'un script d'inférence de ligne de commande
Ajout d'instructions d'installation et d'utilisation