Englisch | 简体中文 | 日本語
Das derzeit veröffentlichte Modell unterstützt die Zero-Shot-Sprachkonvertierung ? , Zero-Shot-Echtzeit-Sprachkonvertierung und Zero-Shot-Singstimmenkonvertierung . Ohne jegliche Schulung ist es in der Lage, eine Stimme zu klonen, wenn eine Referenzrede von 1 bis 30 Sekunden erfolgt.
Eine Liste mit Demos und Vergleichen mit früheren Sprachkonvertierungsmodellen finden Sie auf unserer Demoseite
Wir verbessern weiterhin die Modellqualität und fügen weitere Funktionen hinzu.
Wir haben eine Reihe objektiver Bewertungen der Sprachkonvertierungsfunktionen unseres Seed-VC durchgeführt. Um die Reproduktion zu erleichtern, bestehen die Quellaudios aus 100 zufälligen Äußerungen von LibriTTS-test-clean und die Referenzaudios aus 12 zufällig ausgewählten Stimmen in freier Wildbahn mit einzigartigen Eigenschaften.
Quellaudios finden Sie unter ./examples/libritts-test-clean
Referenzaudios finden Sie unter ./examples/reference
Wir bewerten die Konvertierungsergebnisse im Hinblick auf die Kosinusähnlichkeit der Sprechereinbettung (SECS), die Wortfehlerrate (WER) und die Zeichenfehlerrate (CER) und vergleichen unsere Ergebnisse mit zwei starken Open-Source-Baselines, nämlich OpenVoice und CosyVoice.
Die Ergebnisse in der folgenden Tabelle zeigen, dass unser Seed-VC-Modell die Basismodelle sowohl hinsichtlich der Verständlichkeit als auch der Sprecherähnlichkeit deutlich übertrifft.
ModelleMetriken | SECS ↑ | WER↓ | CER↓ | SIG ↑ | BAK ↑ | OVRL ↑ |
---|---|---|---|---|---|---|
Grundwahrheit | 1,0000 | 8.02 | 1,57 | ~ | ~ | ~ |
OpenVoice | 0,7547 | 15.46 | 4,73 | 3,56 | 4.02 | 3.27 |
CosyVoice | 0,8440 | 18.98 | 7.29 | 3.51 | 4.02 | 3.21 |
Seed-VC (unser) | 0,8676 | 11,99 | 2,92 | 3.42 | 3,97 | 3.11 |
Wir haben auch Modelle zur Sprachkonvertierung ohne Zero-Shot für mehrere Sprecher verglichen (basierend auf der Modellverfügbarkeit):
Charaktere | ModelleMetriken | SECS ↑ | WER↓ | CER↓ | SIG ↑ | BAK ↑ | OVRL ↑ |
---|---|---|---|---|---|---|---|
~ | Grundwahrheit | 1,0000 | 6.43 | 1,00 | ~ | ~ | ~ |
Tokai Teio | So-VITS-4.0 | 0,8637 | 21.46 | 9.63 | 3.06 | 3,66 | 2,68 |
Seed-VC (unser) | 0,8899 | 15.32 | 4,66 | 3.12 | 3,71 | 2,72 | |
Milchiges Grün | So-VITS-4.0 | 0,6850 | 48,43 | 32,50 | 3.34 | 3.51 | 2,82 |
Seed-VC (unser) | 0,8072 | 7.26 | 1,32 | 3.48 | 4.07 | 3.20 | |
Matikane Tannhuaser | So-VITS-4.0 | 0,8594 | 16.25 | 8,64 | 3.25 | 3,71 | 2,84 |
Seed-VC (unser) | 0,8768 | 12.62 | 5,86 | 3.18 | 3,83 | 2,85 |
Die Ergebnisse zeigen, dass Seed-VC deutlich bessere Ergebnisse erzielen kann als die Nicht-Zero-Shot-Modelle, obwohl es nicht auf die Zielsprecher trainiert wird. Dies kann jedoch je nach Qualität des SoVITS-Modells stark variieren. PR oder Issue ist willkommen, wenn Sie diesen Vergleich unfair oder ungenau finden.
(Tokai Teio-Modell von zomehwh/sovits-tannhauser)
(Matikane Tannhuaser-Modell von zomehwh/sovits-tannhauser)
(Milky Green-Modell von Sparanoid/Milky-Green-Sovits-4)
Englisches ASR-Ergebnis, berechnet mit dem Modell facebook/hubert-large-ls960-ft
Lautsprechereinbettung, berechnet durch das Resemblyzer-Modell
Sie können die Auswertung reproduzieren, indem Sie das Skript eval.py
ausführen.
Python eval.py --source ./examples/libritts-test-clean --target ./examples/reference --output ./examples/eval/converted --diffusion-steps 25 --length-adjust 1.0 --inference-cfg-rate 0,7 --xvector-extractor "resemblyzer"--baseline "" # Openvoice oder Cosyvoice eingeben, um das Basisergebnis zu berechnen --max-samples 100 # maximale Quelläußerungen, die durchlaufen werden müssen
Stellen Sie vorher sicher, dass OpenVoice und CosyVoice Repo korrekt auf ../OpenVoice/
und ../CosyVoice/
installiert sind, wenn Sie eine Basisbewertung durchführen möchten.
Eine zusätzliche Auswertung der Gesangsstimmenkonvertierung erfolgt anhand des M4Singer-Datensatzes mit 4 Ziellautsprechern, deren Audiodaten hier verfügbar sind.
Die Sprecherähnlichkeit wird berechnet, indem die Kosinusähnlichkeiten zwischen dem Konvertierungsergebnis und allen verfügbaren Beispielen im jeweiligen Zeichendatensatz gemittelt werden.
Für jedes Zeichen wird eine zufällige Äußerung als Eingabeaufforderung für die Zero-Shot-Inferenz ausgewählt. Zum Vergleich haben wir für jeden Charakter als Basis das jeweilige RVCv2-f0-48k-Modell trainiert.
Als Quellaudio werden 100 zufällige Äußerungen für jeden Sängertyp verwendet.
ModelleMetriken | F0CORR ↑ | F0RMSE↓ | SECS ↑ | CER↓ | SIG ↑ | BAK ↑ | OVRL ↑ |
---|---|---|---|---|---|---|---|
RVCv2 | 0,9404 | 30.43 | 0,7264 | 28.46 | 3.41 | 4.05 | 3.12 |
Seed-VC (unser) | 0,9375 | 33.35 | 0,7405 | 19.70 | 3.39 | 3,96 | 3.06 |
Quelle Sängertyp | Charaktere | ModelleMetriken | F0CORR ↑ | F0RMSE↓ | SECS ↑ | CER↓ | SIG ↑ | BAK ↑ | OVRL ↑ |
---|---|---|---|---|---|---|---|---|---|
Alt (weiblich) | ~ | Grundwahrheit | 1,0000 | 0,00 | ~ | 8.16 | ~ | ~ | ~ |
Azuma (weiblich) | RVCv2 | 0,9617 | 33.03 | 0,7352 | 24.70 | 3.36 | 4.07 | 3.07 | |
Seed-VC (unser) | 0,9658 | 31.64 | 0,7341 | 15.23 | 3.37 | 4.02 | 3.07 | ||
Diana (weiblich) | RVCv2 | 0,9626 | 32,56 | 0,7212 | 19.67 | 3.45 | 4.08 | 3.17 | |
Seed-VC (unser) | 0,9648 | 31,94 | 0,7457 | 16.81 | 3.49 | 3,99 | 3.15 | ||
Ding Zhen (männlich) | RVCv2 | 0,9013 | 26.72 | 0,7221 | 18.53 | 3.37 | 4.03 | 3.06 | |
Seed-VC (unser) | 0,9356 | 21.87 | 0,7513 | 15.63 | 3.44 | 3,94 | 3.09 | ||
Kobe Bryant (männlich) | RVCv2 | 0,9215 | 23,90 | 0,7495 | 37.23 | 3.49 | 4.06 | 3.21 | |
Seed-VC (unser) | 0,9248 | 23.40 | 0,7602 | 26,98 | 3.43 | 4.02 | 3.13 | ||
Bass (männlich) | ~ | Grundwahrheit | 1,0000 | 0,00 | ~ | 8.62 | ~ | ~ | ~ |
Azuma | RVCv2 | 0,9288 | 32,62 | 0,7148 | 24.88 | 3.45 | 4.10 | 3.18 | |
Seed-VC (unser) | 0,9383 | 31.57 | 0,6960 | 10.31 | 3.45 | 4.03 | 3.15 | ||
Diana | RVCv2 | 0,9403 | 30.00 | 0,7010 | 14.54 | 3,53 | 4.15 | 3.27 | |
Seed-VC (unser) | 0,9428 | 30.06 | 0,7299 | 9.66 | 3,53 | 4.11 | 3.25 | ||
Ding Zhen | RVCv2 | 0,9061 | 19.53 | 0,6922 | 25,99 | 3.36 | 4.09 | 3.08 | |
Seed-VC (unser) | 0,9169 | 18.15 | 0,7260 | 14.13 | 3.38 | 3,98 | 3.07 | ||
Kobe Bryant | RVCv2 | 0,9302 | 16.37 | 0,7717 | 41.04 | 3.51 | 4.13 | 3.25 | |
Seed-VC (unser) | 0,9176 | 17.93 | 0,7798 | 24.23 | 3.42 | 4.08 | 3.17 | ||
Sopran (weiblich) | ~ | Grundwahrheit | 1,0000 | 0,00 | ~ | 27.92 | ~ | ~ | ~ |
Azuma | RVCv2 | 0,9742 | 47,80 | 0,7104 | 38,70 | 3.14 | 3,85 | 2,83 | |
Seed-VC (unser) | 0,9521 | 64,00 | 0,7177 | 33.10 | 3.15 | 3,86 | 2,81 | ||
Diana | RVCv2 | 0,9754 | 46,59 | 0,7319 | 32.36 | 3.14 | 3,85 | 2,83 | |
Seed-VC (unser) | 0,9573 | 59,70 | 0,7317 | 30.57 | 3.11 | 3,78 | 2,74 | ||
Ding Zhen | RVCv2 | 0,9543 | 31.45 | 0,6792 | 40,80 | 3.41 | 4.08 | 3.14 | |
Seed-VC (unser) | 0,9486 | 33,37 | 0,6979 | 34.45 | 3.41 | 3,97 | 3.10 | ||
Kobe Bryant | RVCv2 | 0,9691 | 25,50 | 0,6276 | 61,59 | 3.43 | 4.04 | 3.15 | |
Seed-VC (unser) | 0,9496 | 32,76 | 0,6683 | 39,82 | 3.32 | 3,98 | 3.04 | ||
Tenor (männlich) | ~ | Grundwahrheit | 1,0000 | 0,00 | ~ | 5,94 | ~ | ~ | ~ |
Azuma | RVCv2 | 0,9333 | 42.09 | 0,7832 | 16.66 | 3.46 | 4.07 | 3.18 | |
Seed-VC (unser) | 0,9162 | 48.06 | 0,7697 | 8.48 | 3.38 | 3,89 | 3.01 | ||
Diana | RVCv2 | 0,9467 | 36,65 | 0,7729 | 15.28 | 3,53 | 4.08 | 3.24 | |
Seed-VC (unser) | 0,9360 | 41,49 | 0,7920 | 8.55 | 3.49 | 3,93 | 3.13 | ||
Ding Zhen | RVCv2 | 0,9197 | 22.82 | 0,7591 | 12.92 | 3.40 | 4.02 | 3.09 | |
Seed-VC (unser) | 0,9247 | 22.77 | 0,7721 | 13,95 | 3.45 | 3,82 | 3.05 | ||
Kobe Bryant | RVCv2 | 0,9415 | 19.33 | 0,7507 | 30.52 | 3.48 | 4.02 | 3.19 | |
Seed-VC (unser) | 0,9082 | 24.86 | 0,7764 | 13.35 | 3.39 | 3,93 | 3.07 |
Obwohl Seed-VC nicht auf die Zielsprecher trainiert wird und nur eine zufällige Äußerung als Eingabeaufforderung verwendet wird, übertrifft es immer noch sprecherspezifische RVCv2-Modelle in Bezug auf Sprecherähnlichkeit (SECS) und Verständlichkeit (CER), was die überlegene Stimme demonstriert Klonfähigkeit und Robustheit von Seed-VC.
Es ist jedoch zu beobachten, dass die Audioqualität (DNSMOS) von Seed-VC etwas schlechter ist als die von RVCv2. Wir nehmen diesen Nachteil ernst und werden der Verbesserung der Audioqualität in Zukunft höchste Priorität einräumen.
Wenn Sie diesen Vergleich unfair oder ungenau finden, ist PR oder Problem willkommen.
Chinesisches ASR-Ergebnis, berechnet von SenseVoiceSmall
Lautsprechereinbettung, berechnet durch das Resemblyzer-Modell
Wir stellen eine Tonhöhenverschiebung von +12 Halbtönen für die Konvertierung von Mann zu Frau und -12 Halbtöne für die Konvertierung von Frau zu Mann ein, andernfalls 0 Tonhöhenverschiebung
Empfohlenes Python 3.10 unter Windows oder Linux.
pip install -r Anforderungen.txt
Prüfpunkte der neuesten Modellversion werden automatisch heruntergeladen, wenn die Inferenz zum ersten Mal ausgeführt wird.
Befehlszeilenschlussfolgerung:
python inference.py --source--target --output --diffusion-steps 25 # empfohlen 50~100 für Singingvoice-Konvertierung --length-adjust 1.0 --inference-cfg-rate 0,7 --f0-condition False # wird für die Konvertierung von Gesangsstimmen auf True gesetzt. --auto-f0-adjust False # wird auf True gesetzt, um die Tonhöhe der Quelle automatisch an die Zieltonhöhe anzupassen. Wird normalerweise nicht für die Konvertierung von Gesangsstimmen verwendet - semi-tone-shift 0 # Tonhöhenverschiebung in Halbtönen für die Umwandlung von Gesangsstimmen
Wo:
source
ist der Pfad zur Sprachdatei, die in eine Referenzstimme konvertiert werden soll
target
ist der Pfad zur Sprachdatei als Sprachreferenz
output
ist der Pfad zum Ausgabeverzeichnis
diffusion-steps
ist die Anzahl der zu verwendenden Diffusionsschritte. Der Standardwert ist 25. Verwenden Sie 50–100 für die beste Qualität und 4–10 für die schnellste Inferenz
length-adjust
ist der Längenanpassungsfaktor, der Standardwert ist 1,0, eingestellt auf <1,0 für schnelleres Sprechen, >1,0 für langsameres Sprechen
inference-cfg-rate
weist geringfügige Unterschiede in der Ausgabe auf, der Standardwert ist 0,7
f0-condition
ist das Flag, um die Tonhöhe der Ausgabe an die Tonhöhe des Quellaudios anzupassen. Der Standardwert ist „False“ und wird für die Konvertierung von Gesangsstimmen auf „True“ gesetzt
auto-f0-adjust
ist das Flag zum automatischen Anpassen der Quelltonhöhe an die Zieltonhöhe. Der Standardwert ist False und wird normalerweise nicht bei der Konvertierung von Gesangsstimmen verwendet
semi-tone-shift
ist die Tonhöhenverschiebung in Halbtönen für die Gesangsstimmenkonvertierung, der Standardwert ist 0
Gradio-Weboberfläche:
Python app.py
Öffnen Sie dann den Browser und gehen Sie zu http://localhost:7860/
um die Weboberfläche zu nutzen.
GUI zur Sprachkonvertierung in Echtzeit:
python real-time-gui.py
WICHTIG: Es wird dringend empfohlen, für die Echtzeit-Sprachkonvertierung eine GPU zu verwenden.
Es wurden einige Leistungstests mit einer NVIDIA RTX 3060 Laptop-GPU durchgeführt. Die Ergebnisse und empfohlenen Parametereinstellungen sind unten aufgeführt:
Bemerkungen | Diffusionsschritte | Inferenz-CFG-Rate | Maximale Eingabeaufforderungslänge | Blockzeit (s) | Crossfade-Länge (s) | Zusätzlicher Kontext (links) (s) | Zusätzlicher Kontext (rechts) (s) | Latenz (ms) | Qualität | Inferenzzeit pro Chunk (ms) |
---|---|---|---|---|---|---|---|---|---|---|
Geeignet für die meisten Stimmen | 10 | 0,7 | 3,0 | 1,0s | 0,04 s | 0,5s | 0,02 s | 2070 ms | Medium | 849 ms |
bessere Leistung für hohe Frauenstimmen | 20 | 0,7 | 3,0 | 2,0s | 0,04 s | 0,5s | 0,02 s | 4070 ms | Hoch | 1585 ms |
Geeignet für einige männliche Stimmen, da die Anforderungen an die Audioqualität geringer sind | 5 | 0,7 | 3,0 | 0,6s | 0,04 s | 0,5s | 0,02 s | 1270 ms | Niedrig | 488 ms |
Schnellere Inferenz durch Setzen von inference_cfg_rate auf 0,0, aber es ist nicht sicher, ob die Leistung sinkt ... | 10 | 0,0 | 3,0 | 0,7s | 0,04 s | 0,5s | 0,02 s | 1470 ms | Medium | 555 ms |
Sie können die Parameter in der GUI entsprechend der Leistung Ihres eigenen Geräts anpassen. Der Sprachkonvertierungsstream sollte gut funktionieren, solange die Inferenzzeit kürzer als die Blockzeit ist.
Beachten Sie, dass die Inferenzgeschwindigkeit sinken kann, wenn Sie andere GPU-intensive Aufgaben ausführen (z. B. Spiele, Videos ansehen).
Im Allgemeinen beträgt die Latenz etwa 1 bis 2 Sekunden, um Qualitätsverluste zu verhindern (die traurige Natur von Diffusionsmodellen...?), aber wir suchen weiterhin nach Möglichkeiten, sie zu reduzieren.
(GUI und Audio-Chunking-Logik wurden von RVC modifiziert, vielen Dank für die brillante Implementierung!)
Freigabecode
Veröffentlichung des vorab trainierten Modells v0.1:
Huggingface-Weltraumdemo:
HTML-Demoseite (vielleicht mit Vergleichen zu anderen VC-Modellen): Demo
Streaming-Inferenz
Reduzieren Sie die Latenz der Streaming-Inferenz
Demovideo zur Echtzeit-Sprachkonvertierung
Konvertierung der Gesangsstimme
Störfestigkeit für Quell- und Referenzaudio
Quellaudio ist geräuschresistent
Mögliche Verbesserungen der Architektur
Überspringen Sie Verbindungen im U-ViT-Stil
Eingabe in OpenAI Whisper geändert
Code für das Training mit benutzerdefinierten Daten
Für die Singing-Voice-Dekodierung wurde von NVIDIA auf BigVGAN umgestellt
Flüsterversionsmodell zur Umwandlung von Gesangsstimmen
Objektive Bewertung und Vergleich mit RVC/SoVITS zur Gesangsstimmenkonvertierung
Verbessern Sie die Audioqualität
Weiteres soll hinzugefügt werden
28.10.2024:
Aktualisiertes, fein abgestimmtes 44K-Gesangsstimmenkonvertierungsmodell mit besserer Audioqualität
27.10.2024:
Echtzeit-Sprachkonvertierungs-GUI hinzugefügt
25.10.2024:
Ausführliche Bewertungsergebnisse und Vergleiche mit RVCv2 für die Konvertierung von Gesangsstimmen hinzugefügt
24.10.2024:
Aktualisiertes 44-kHz-Konvertierungsmodell für Gesangsstimmen mit OpenAI Whisper als Eingabe für Sprachinhalte
07.10.2024:
Aktualisiertes vorab trainiertes Modell v0.3, Sprachinhaltsencoder auf OpenAI Whisper geändert
Objektive Bewertungsergebnisse für das vorab trainierte Modell v0.3 hinzugefügt
22.09.2024:
Aktualisiertes Singstimmen-Konvertierungsmodell zur Verwendung von BigVGAN von NVIDIA, was eine deutliche Verbesserung bei hohen Singstimmen bietet
Unterstützt Chunking und Streaming-Ausgabe für lange Audiodateien in der Web-Benutzeroberfläche
18.09.2024:
Aktualisiertes f0-konditioniertes Modell für die Konvertierung von Gesangsstimmen
14.09.2024:
Aktualisiertes vorab trainiertes Modell der Version 0.2 mit kleinerer Größe und weniger Diffusionsschritten, um die gleiche Qualität zu erreichen, und zusätzlicher Möglichkeit zur Steuerung der Prosodie-Erhaltung
Befehlszeilen-Inferenzskript hinzugefügt
Installations- und Nutzungsanweisungen hinzugefügt