paint-brush
So klonen Sie Stimmen mit SoftVC VITS und Bert-VITS2: Ein tiefer Einblickvon@techshinobi
970 Lesungen
970 Lesungen

So klonen Sie Stimmen mit SoftVC VITS und Bert-VITS2: Ein tiefer Einblick

von Tech Shinobi12m2024/03/06
Read on Terminal Reader

Zu lang; Lesen

Im vorherigen Beitrag habe ich ein wenig WebUI der TTS-Generation ausprobiert und fand es interessant. Also beschloss ich, ein brauchbares Modell mit meiner eigenen Stimme zu trainieren. Dieses Projekt zum Klonen von Stimmen untersucht sowohl SVC für Sprachänderung als auch VITS für Text-to-Speech. Es gibt kein einziges Tool, das alle Aufgaben erledigt. Ich habe mehrere Tools für dieses Projekt getestet. Viele der guten Leitfäden, wie dieser, dieser und dieser, sind auf Chinesisch. Deshalb dachte ich, es wäre nützlich, meine Notizen auf Englisch zu veröffentlichen.
featured image - So klonen Sie Stimmen mit SoftVC VITS und Bert-VITS2: Ein tiefer Einblick
Tech Shinobi HackerNoon profile picture
0-item

Inhaltsverzeichnis

  • Ein tiefer Einblick in das Klonen von Stimmen mit SoftVC VITS und Bert-VITS2
    • Datensatz vorbereiten
      • Auszug aus einem Lied
        • UVR-Workflows
      • Vorbereitung für Gesangsaufnahmen
        • Die Audioausrüstung von Cheapskate
        • Audacity-Workflows
      • Audio-Slicer
        • Reinigungsdatensatz
        • Passen Sie die Lautstärke an
    • so-vits-svc
      • Umgebung einrichten
      • Initialisierung
        • Laden Sie vorab trainierte Modelle herunter
        • Datensatzvorbereitung
        • Konfigurationen bearbeiten
      • Ausbildung
      • Inferenz
      • Audiobearbeitung
    • so-vits-svc-fork
      • Installation
      • Vorbereitung
      • Ausbildung
      • Inferenz
    • DDSP-SVC
      • Vorbereitung
      • Ausbildung
      • Inferenz
    • Bert-vits2-V2.3
      • Initialisierung
      • Vorbereitung
        • Transkription
      • Training und Schlussfolgerung
    • vits-simple-api
      • Optimierungen
      • Modelle teilen


Im vorherigen Beitrag habe ich ein wenig WebUI der TTS-Generation ausprobiert und fand es interessant. Also beschloss ich, ein brauchbares Modell mit meiner eigenen Stimme zu trainieren.


Dieses Projekt zum Klonen von Stimmen untersucht sowohl SVC für Sprachänderung als auch VITS für Text-to-Speech. Es gibt kein einziges Tool, das alle Aufgaben erledigt.


Ich habe mehrere Tools für dieses Projekt getestet. Viele der guten Leitfäden wie dieser , dieser und dieser sind auf Chinesisch. Deshalb dachte ich, es wäre nützlich, meine Notizen auf Englisch zu veröffentlichen.


Obwohl so-vits-svc wahrscheinlich aufgrund von Unterdrückung einige Monate lang archiviert wurde, ist es immer noch das Werkzeug für das beste Ergebnis.


Andere verwandte Tools wie so-vits-svc-fork , so-vits-svc-5.0 , DDSP-SVC und RVC bieten entweder eine schnellere/Liter-Optimierung, mehr Funktionen oder bessere Schnittstellen.


Aber mit genügend Zeit und Ressourcen kann keine dieser Alternativen mit dem überlegenen Ergebnis des ursprünglichen so-vits-svc mithalten.


Für TTS funktioniert ein neues Tool namens Bert-VITS2 hervorragend und ist mit seiner endgültigen Veröffentlichung im letzten Monat bereits ausgereift. Es gibt einige sehr unterschiedliche Anwendungsfälle, beispielsweise die Erstellung von Audioinhalten.

Datensatz vorbereiten

Die Audiodateien des Datensatzes sollten im WAV-Format, 44100 Hz, 16 Bit, Mono, idealerweise 1–2 Stunden lang sein.

Auszug aus einem Lied

Ultimate Vocal Remover ist das einfachste Werkzeug für diesen Job. Es gibt einen Thread , der alles ausführlich erklärt.

UVR-Workflows

  • Instrumental entfernen und extrahieren
    • Modell: VR - UVR(4_HP-Vocal-UVR)

    • Einstellungen: 512 – 10 – GPU

    • Output Instrumental und unsauberer Gesang


  • Hintergrundgesang entfernen und extrahieren.
    • Modell: VR - UVR(5_HP-Karaoke-UVR)

    • Einstellungen: 512 – 10 – GPU

    • Hintergrundgesang und unsauberer Hauptgesang werden ausgegeben


  • Entfernen Sie Hall und Rauschen.
    • Modell: VR – UVR-DeEcho-DeReverb und UVR-DeNoise

    • Einstellungen: 512 – 10 – GPU – Nein, nur andere

    • Gibt den Hauptgesang sauber aus


  • (Optional) Verwendung von RipX (nicht kostenlos) zur Durchführung einer manuellen Feinreinigung.

Vorbereitung für die Gesangsaufnahme

Es ist besser, in einem behandelten Raum mit einem Kondensatormikrofon aufzunehmen, andernfalls verwenden Sie ein Richtmikrofon oder ein dynamisches Mikrofon, um Geräusche zu reduzieren.

Die Audioausrüstung von Cheapskate

Das erste Mal, dass ich mich mit Musik beschäftigte, war während der High School, mit dem blauen Sennheiser MX500 und dem Koss Porta Pro. Ich erinnere mich noch an das erste Mal, als ich mit Cool Edit Pro einen Song auf einem Sony VAIO aufgenommen habe.


Heutzutage weigere ich mich immer noch, als Amateur viel Geld für Audio-Hardware auszugeben, weil es sich im wahrsten Sinne des Wortes um ein schwarzes Loch handelt, das Geld saugt.


Dennoch schätze ich die Zuverlässigkeit dieser billigen Produktionsgeräte sehr.


Das Herzstück meines Setups ist ein Behringer UCA202, und er ist perfekt für meine Anwendungsfälle. Ich habe es während eines Preisverfalls für 10 $ gekauft.


Es handelt sich um ein sogenanntes „Audio Interface“, aber im Grunde nur um eine Soundkarte mit mehreren Anschlüssen. Ich habe für meine Kopfhörer Cinch-zu-3,5-mm-TRS-Kabel verwendet, für die normale Ausgabe ein halboffenes K240s und für die Monitorausgabe ein geschlossenes HD669/MDR7506.


Alle drei genannten Kopfhörer liegen zum Normalpreis unter 100 US-Dollar. Und es gibt Klone von Samson, Tascam, Knox Gear und mehr für weniger als 50 US-Dollar.


Als Eingabegerät nutze ich aus Gründen der Umgebungsgeräusche ein dynamisches Mikrofon. Es handelt sich um eine SM58-Kopie (Pyle) + einen Tascam DR-05-Recorder (als Verstärker). Andere Klone wie SL84c oder wm58 würden es auch tun.


Ich verwende ein XLR-auf-3,5-mm-TRS-Kabel, um das Mikrofon an den MIC/External-Eingang des Rekorders anzuschließen, und verwende dann ein AUX-Kabel, um den Line-Ausgang des Rekorders mit dem Eingang des UCA202 zu verbinden.


Es wird nicht empfohlen, ein „Audio-Interface“ und einen speziellen Verstärker zu kaufen, um mein Setup zu reproduzieren. Eine c-media USB-Soundkarte für 10 US-Dollar sollte ausreichen. Das Syba-Modell, das ich besaß, ist in der Lage, dynamische Mikrofone direkt „vorzuverstärken“ und sogar einige Mikrofone mit Phantomspeisung der unteren Preisklasse.


Das Setup kann extrem günstig sein (40–60 $), aber mit UCA202 und DR-05 ist der Klang viel sauberer. Und ich mag die physischen Bedienelemente, die Vielseitigkeit und die Tragbarkeit meines alten guten Digitalrekorders wirklich.

Audacity-Workflows

Obwohl ich als Designer bezahlt wurde, war ich mit Audition ziemlich zufrieden. Aber für den persönlichen Gebrauch an einem unterhaltsamen Projekt ist Audacity die Möglichkeit, das chaotische Übel von Adobe zu vermeiden.

Audio-Slicer

Verwenden Sie Audio-Slicer oder Audio-Slicer (GUI) , um die Audiodatei für die spätere Verwendung in kleine Stücke zu schneiden.

Die Standardeinstellung funktioniert super.

Reinigungsdatensatz

Entfernen Sie die sehr kurzen Stücke und schneiden Sie die Stücke, die noch länger als 10 Sekunden sind, erneut in Scheiben.


Entfernen Sie bei einem großen Datensatz alle Daten, die kürzer als 4 Sekunden sind. Entfernen Sie bei kleinen Datensätzen diese erst nach weniger als 2 Sekunden.


Führen Sie bei Bedarf eine manuelle Prüfung für jede einzelne Datei durch.

Passen Sie die Lautstärke an

Verwenden Sie Audacity erneut mit Loudness Normalization . 0db sollte es tun.

so-vits-svc

Richten Sie die Umgebung ein

Eine virtuelle Umgebung ist unerlässlich, um mehrere Python-Tools in einem System auszuführen. Früher habe ich VMs und Docker verwendet, aber jetzt habe ich festgestellt, dass Anaconda viel schneller und praktischer ist als die anderen.


Erstellen Sie eine neue Umgebung für so-vits-svc und aktivieren Sie sie.

 conda create -n so-vits-svc python=3.8 conda activate so-vits-svc


Installieren Sie dann die Anforderungen.

 git clone https://github.com/svc-develop-team/so-vits-svc cd so-vits-svc pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 #for linux pip install -r requirements.txt #for windows pip install -r requirements_win.txt pip install --upgrade fastapi==0.84.0 pip install --upgrade gradio==3.41.2 pip install --upgrade pydantic==1.10.12 pip install fastapi uvicorn

Initialisierung

Laden Sie vorab trainierte Modelle herunter

  • vor dem Training
    • wget https://huggingface.co/WitchHuntTV/checkpoint_best_legacy_500.pt/resolve/main/checkpoint_best_legacy_500.pt

    • wget https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/rmvpe.pt


  • Protokolle/44k
    • wget https://huggingface.co/datasets/ms903/sovits4.0-768vec-layer12/resolve/main/sovits_768l12_pre_large_320k/clean_D_320000.pth

    • wget https://huggingface.co/datasets/ms903/sovits4.0-768vec-layer12/resolve/main/sovits_768l12_pre_large_320k/clean_G_320000.pth


  • Protokolle/44k/Diffusion
    • wget https://huggingface.co/datasets/ms903/Diff-SVC-refactor-pre-trained-model/resolve/main/fix_pitch_add_vctk_600k/model_0.pt

    • (Alternative) wget https://huggingface.co/datasets/ms903/DDSP-SVC-4.0/resolve/main/pre-trained-model/model_0.pt

    • (Alternative) wget https://huggingface.co/datasets/ms903/Diff-SVC-refactor-pre-trained-model/blob/main/hubertsoft_fix_pitch_add_vctk_500k/model_0.pt


  • pre-train/nsf_hifigan
    • wget -P pretrain/ https://github.com/openvpi/vocoders/releases/download/nsf-hifigan-v1/nsf_hifigan_20221211.zip
    • unzip -od pretrain/nsf_hifigan pretrain/nsf_hifigan_20221211.zip

Datensatzvorbereitung

Legen Sie alle vorbereiteten audio.wav-Dateien in dataset_raw/character

 cd so-vits-svc python resample.py --skip_loudnorm python preprocess_flist_config.py --speech_encoder vec768l12 --vol_aug python preprocess_hubert_f0.py --use_diff

Konfigurationen bearbeiten

Die Datei befindet sich unter configs/config.json

log interval : Die Häufigkeit des Druckens des eval interval : Die Häufigkeit des Speicherns von Prüfpunkten. epochs : Gesamtschritte. keep ckpts : Anzahl der gespeicherten Prüfpunkte, 0 für unbegrenzt. half_type : fp32 In meinem Fall, batch_size : je kleiner, desto schneller (rauer), je größer, desto langsamer (besser).


Empfohlene Batchgröße pro VRAM: 4=6G;6=8G;10=12G;14=16G;20=24G


Behalten Sie die Standardeinstellung für configs/diffusion.yaml bei

Ausbildung

 python cluster/train_cluster.py --gpu python train_index.py -c configs/config.json python train.py -c configs/config.json -m 44k python train_diff.py -c configs/diffusion.yaml


Zu den Trainingsschritten:

Verwenden Sie train.py um das Hauptmodell zu trainieren. Normalerweise wären 20.000 bis 30.000 nutzbar, und 50.000 und mehr wären gut genug. Dies kann je nach GPU-Geschwindigkeit einige Tage dauern.


Sie können es jederzeit mit ctrl+c stoppen und das Training fortsetzen, indem python train.py -c configs/config.json -m 44k jederzeit erneut ausführen.


Verwenden Sie train_diff.py , um das Diffusionsmodell zu trainieren. Trainingsschritte werden bei 1/3 des Hauptmodells empfohlen.


Achten Sie auf Übertraining. Verwenden Sie tensorboard --logdir=./logs/44k , um die Diagramme zu überwachen und festzustellen, ob sie flach werden.


Ändern Sie die learning rate bei Bedarf von 0,0001 auf 0,00005.


Wenn Sie fertig sind, teilen/transportieren Sie diese Dateien für Rückschlüsse.


  • config/
    • config.json

    • diffusion.yaml


  • Protokolle/44k
    • feature_and_index.pkl
    • kmeans_10000.pt
    • model_0.pt
    • G_xxxxx.pt

Inferenz

Es ist Zeit, das trainierte Modell auszuprobieren. Ich würde Webui bevorzugen, weil ich die Parameter bequem anpassen kann.


Bearbeiten Sie jedoch vor dem Starten die folgenden Zeilen in webUI.py für den LAN-Zugriff:

 os.system("start http://localhost:7860") app.launch(server_name="0.0.0.0", server_port=7860)


Führen Sie python webUI.py aus. Greifen Sie dann über einen Webbrowser auf die ipaddress:7860 zu.


Das Webui verfügt über keine englische Lokalisierung, aber Immersive Translate wäre hilfreich.


Die meisten Parameter würden mit dem Standardwert gut funktionieren. Lesen Sie hier und hier, um Änderungen vorzunehmen.


Laden Sie diese 5 Dateien hoch:

main model.pt und seine config.json


diffusion model.pt und seine diffusion.yaml


Entweder Clustermodell kmeans_10000.pt zum Sprechen oder Feature-Retrieval feature_and_index.pkl zum Singen.


F0 predictor dient nur zum Sprechen, nicht zum Singen. Empfehlen Sie RMVPE bei der Verwendung.


Pitch change ist nützlich, wenn Sie ein weibliches Lied mit einem Model mit männlicher Stimme singen oder umgekehrt.


Clustering model/feature retrieval mixing ratio ist die Möglichkeit, den Ton zu steuern. Verwenden Sie 0.1 um die klarste Sprache zu erhalten, und 0.9 um den dem Modell am nächsten kommenden Ton zu erhalten.


shallow diffusion steps sollten auf etwa 50 eingestellt werden, das Ergebnis wird bei 30-100 Schritten verbessert.

Audiobearbeitung

Dieses Verfahren ist optional. Nur um einen besseren Song zu produzieren.


Ich werde nicht näher darauf eingehen, da die von mir verwendete Audiobearbeitungssoftware bzw. die sogenannte DAW (Digital Audio Workstation) nicht kostenlos ist. Ich habe nicht die Absicht, proprietäre Software zu befürworten, auch wenn die gesamte Branche kostenpflichtig ist und Closed-Source-Software verwendet.


Audacity unterstützt Multitrack, Effekte und vieles mehr. Es lädt auch einige erweiterte VST-Plugins.


Es ist nicht schwer, Tutorials zum Mastern von Songs mit Audacity zu finden.


Typischerweise sollte der Mastering-Prozess Mischung/Balancing, EQ/Komprimierung, Hall und Bildbearbeitung umfassen. Je fortschrittlicher das Tool ist, desto einfacher wird der Prozess sein.


Ich werde in Zukunft definitiv mehr Zeit damit verbringen, Audacity für meinen Mastering-Prozess einzusetzen, und ich empfehle jedem, dies zu tun.

so-vits-svc-fork

Dies ist ein So-Vits-SVC- Fork mit Echtzeitunterstützung und die Modelle sind kompatibel. Einfacher zu verwenden, unterstützt jedoch nicht das Diffusionsmodell. Für dedizierte Sprachänderungen in Echtzeit wird ein Sprachwechsler empfohlen.

Installation

 conda create -n so-vits-svc-fork python=3.10 pip conda activate so-vits-svc-fork git clone https://github.com/voicepaw/so-vits-svc-fork cd so-vits-svc-fork python -m pip install -U pip setuptools wheel pip install -U torch torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install -U so-vits-svc-fork pip install click sudo apt-get install libportaudio2

Vorbereitung

Legen Sie die WAV-Datensatzdateien in so-vits-svc-fork/dataset_raw

 svc pre-resample svc pre-config


Bearbeiten Sie eine batch_size in configs/44k/config.json . Diese Gabel ist größer als das Original.

Ausbildung

 svc pre-hubert svc train -t svc train-cluster

Inferenz

Verwenden Sie die GUI mit svcg . Dies erfordert eine lokale Desktop-Umgebung.


Oder verwenden Sie CLI mit svc vc für Echtzeit und svc infer -m "logs/44k/xxxxx.pth" -c "configs/config.json" raw/xxx.wav zum Generieren.

DDSP-SVC

DDSP-SVC benötigt weniger Hardwareressourcen und läuft schneller als so-vits-svc. Es unterstützt sowohl Echtzeit- als auch Diffusionsmodelle (Diff-SVC).

 conda create -n DDSP-SVC python=3.8 conda activate DDSP-SVC git clone https://github.com/yxlllc/DDSP-SVC cd DDSP-SVC pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install -r requirements.txt


Weitere Informationen zu den beiden Dateien finden Sie im Abschnitt „Initialisierung“ :

 pretrain/rmvpe/model.pt pretrain/contentvec/checkpoint_best_legacy_500.pt

Vorbereitung

 python draw.py python preprocess.py -c configs/combsub.yaml python preprocess.py -c configs/diffusion-new.yaml


configs/

 batch_size: 32 (16 for diffusion) cache_all_data: false cache_device: 'cuda' cache_fp16: false

Ausbildung

 conda activate DDSP-SVC python train.py -c configs/combsub.yaml python train_diff.py -c configs/diffusion-new.yaml tensorboard --logdir=exp

Inferenz

Es wird empfohlen, main_diff.py zu verwenden, da es sowohl DDSP als auch das Diffusionsmodell enthält.

python main_diff.py -i "input.wav" -diff "model_xxxxxx.pt" -o "output.wav"


Echtzeit-GUI für das Klonen von Stimmen:

 python gui_diff.py

Bert-vits2-V2.3

Dies ist ein TTS-Tool, das sich von allem oben genannten völlig unterscheidet. Ich habe damit bereits mehrere Hörbücher mit meiner Stimme für meine Eltern erstellt und sie haben großen Spaß daran.


Anstatt das Original zu verwenden, habe ich zur einfacheren Einrichtung den Fork von v3u verwendet.

Initialisierung

 conda create -n bert-vits2 python=3.9 conda activate bert-vits2 git clone https://github.com/v3ucn/Bert-vits2-V2.3.git cd Bert-vits2-V2.3 pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2+cu118 --index-url https://download.pytorch.org/whl/cu118 pip install -r requirements.txt


Laden Sie vorab trainierte Modelle herunter (einschließlich Chinesisch, Japanisch und Englisch):

 wget -P slm/wavlm-base-plus/ https://huggingface.co/microsoft/wavlm-base-plus/resolve/main/pytorch_model.bin wget -P emotional/clap-htsat-fused/ https://huggingface.co/laion/clap-htsat-fused/resolve/main/pytorch_model.bin wget -P emotional/wav2vec2-large-robust-12-ft-emotion-msp-dim/ https://huggingface.co/audeering/wav2vec2-large-robust-12-ft-emotion-msp-dim/resolve/main/pytorch_model.bin wget -P bert/chinese-roberta-wwm-ext-large/ https://huggingface.co/hfl/chinese-roberta-wwm-ext-large/resolve/main/pytorch_model.bin wget -P bert/bert-base-japanese-v3/ https://huggingface.co/cl-tohoku/bert-base-japanese-v3/resolve/main/pytorch_model.bin wget -P bert/deberta-v3-large/ https://huggingface.co/microsoft/deberta-v3-large/resolve/main/pytorch_model.bin wget -P bert/deberta-v3-large/ https://huggingface.co/microsoft/deberta-v3-large/resolve/main/pytorch_model.generator.bin wget -P bert/deberta-v2-large-japanese/ https://huggingface.co/ku-nlp/deberta-v2-large-japanese/resolve/main/pytorch_model.bin

Erstellen Sie einen Charaktermodellordner mkdir -p Data/xxx/models/


Basismodelle herunterladen:

 !wget -P Data/xxx/models/ https://huggingface.co/OedoSoldier/Bert-VITS2-2.3/resolve/main/DUR_0.pth !wget -P Data/xxx/models/ https://huggingface.co/OedoSoldier/Bert-VITS2-2.3/resolve/main/D_0.pth !wget -P Data/xxx/models/ https://huggingface.co/OedoSoldier/Bert-VITS2-2.3/resolve/main/G_0.pth !wget -P Data/xxx/models/ https://huggingface.co/OedoSoldier/Bert-VITS2-2.3/resolve/main/WD_0.pth #More options https://openi.pcl.ac.cn/Stardust_minus/Bert-VITS2/modelmanage/model_filelist_tmpl?name=Bert-VITS2_2.3%E5%BA%95%E6%A8%A1 https://huggingface.co/Erythrocyte/bert-vits2_base_model/tree/main https://huggingface.co/OedoSoldier/Bert-VITS2-2.3/tree/main

Bearbeiten Sie train_ms.py , indem Sie alle bfloat16 durch float16 ersetzen


Bearbeiten Sie webui.py für den LAN-Zugriff:

 webbrowser.open(f"start http://localhost:7860") app.launch(server_name="0.0.0.0", server_port=7860)


Bearbeiten Sie Data/xxx/config.json für batch_size und spk2id

Vorbereitung

Ähnlicher Arbeitsablauf wie im vorherigen Abschnitt .


Entfernen Sie Rauschen und Stille, normalisieren Sie sie und legen Sie dann die ungeschnittene WAV-Datei in Data/xxx/raw ab.


Bearbeiten Sie config.yml für dataset_path , num_workers und keep_ckpts .


Führen Sie python3 audio_slicer.py aus, um die WAV-Datei zu segmentieren.


Bereinigen Sie den Datensatz ( Data/xxx/raw ), indem Sie kleine Dateien entfernen, die weniger als 2 Sekunden dauern.

Transkription

Installieren Sie Whisper pip install git+https://github.com/openai/whisper.git


Um die automatische Spracherkennung zu deaktivieren, stellen Sie sie auf „Nur Englisch“ ein und verwenden Sie large Modell. Bearbeiten Sie short_audio_transcribe.py wie folgt:

 # set the spoken language to english print('language: en') lang = 'en' options = whisper.DecodingOptions(language='en') result = whisper.decode(model, mel, options) # set to use large model parser.add_argument("--whisper_size", default="large") #Solve error "Given groups=1, weight of size [1280, 128, 3], expected input[1, 80, 3000] to have 128 channels, but got 80 channels instead" while using large model mel = whisper.log_mel_spectrogram(audio,n_mels = 128).to(model.device)

Führen Sie python3 short_audio_transcribe.py aus, um die Transkription zu starten.


Erneutes Abtasten des segmentierten Datensatzes: python3 resample.py --sr 44100 --in_dir ./Data/zizek/raw/ --out_dir ./Data/zizek/wavs/


Transkription vorverarbeiten: python3 preprocess_text.py --transcription-path ./Data/zizek/esd.list


Generieren Sie die BERT-Funktionskonfiguration: python3 bert_gen.py --config-path ./Data/zizek/configs/config.json

Training und Schlussfolgerung

Führen Sie python3 train_ms.py aus, um mit dem Training zu beginnen


Bearbeiten Sie config.yml für den Modellpfad:

 model: "models/G_20900.pth"

Führen Sie python3 webui.py aus, um Webui für Rückschlüsse zu starten

vits-simple-api

vits-simple-api ist ein Web-Frontend zur Verwendung trainierter Modelle. Ich verwende dies hauptsächlich wegen der Langtextunterstützung, die das ursprüngliche Projekt nicht hat.

 git clone https://github.com/Artrajz/vits-simple-api git pull https://github.com/Artrajz/vits-simple-api cd vits-simple-api conda create -n vits-simple-api python=3.10 pip conda activate vits-simple-api && pip install -r requirements.txt

(Optional) Kopieren Sie vorab trainierte Modelldateien von Bert-vits2-V2.3/ nach vits-simple-api/bert_vits2/


Kopieren Sie Bert-vits2-V2.3/Data/xxx/models/G_xxxxx.pth und Bert-vits2-V2.3/Data/xxx/config.json nach vits-simple-api/Model/xxx/


Bearbeiten Sie config.py für MODEL_LIST und Default parameter nach Ihren Wünschen


Bearbeiten Sie Model/xxx/config.json wie folgt:

 "data": { "training_files": "Data/train.list", "validation_files": "Data/val.list", "version": "2.3"

Überprüfen/bearbeiten Sie model_list in config.yml als [xxx/G_xxxxx.pth, xxx/config.json]


Führen Sie python app.py aus

Optimierungen

SDP Ratio für Ton, Noise für Zufälligkeit, Noise_W für Aussprache und Length für Geschwindigkeit. emotion und style sind selbsterklärend

Modelle teilen

Im Hugging Face-Repo gibt es viele VITS-Modelle, die von anderen geteilt werden. Sie können es zunächst ausprobieren und dann die gewünschten Modelle unter Dateien herunterladen.


Das Genshin-Modell wird aufgrund seiner hohen Qualität in einigen Communities zur Erstellung von Inhalten häufig verwendet. Es enthält Hunderte von Zeichen, obwohl nur Chinesisch und Japanisch unterstützt werden.

In einem anderen Repo gibt es viele Bert-vits2-Modelle, die aus beliebten chinesischen Streamern und VTubern stammen.


Es gibt bereits Projekte, die KI-Vtuber wie dieses und dieses herstellen. Ich freue mich darauf, wie diese Technologie die Branche in naher Zukunft verändern kann.


https://techshinobi.org/posts/voice-vits/https://techshinobi.org/posts/voice-vits/