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 habe ich ein wenig ausprobiert und fand es interessant. Also beschloss ich, ein brauchbares Modell mit meiner eigenen Stimme zu trainieren. vorherigen Beitrag WebUI der TTS-Generation Dieses Projekt zum Klonen von Stimmen untersucht sowohl SVC für Sprachänderung als auch für Text-to-Speech. Es gibt kein einziges Tool, das alle Aufgaben erledigt. VITS Ich habe mehrere Tools für dieses Projekt getestet. Viele der guten Leitfäden wie , und sind auf Chinesisch. Deshalb dachte ich, es wäre nützlich, meine Notizen auf Englisch zu veröffentlichen. dieser dieser dieser Obwohl wahrscheinlich aufgrund von Unterdrückung einige Monate lang archiviert wurde, ist es immer noch das Werkzeug für das beste Ergebnis. so-vits-svc Andere verwandte Tools wie , , und bieten entweder eine schnellere/Liter-Optimierung, mehr Funktionen oder bessere Schnittstellen. so-vits-svc-fork so-vits-svc-5.0 DDSP-SVC RVC 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 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. Bert-VITS2 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 ist das einfachste Werkzeug für diesen Job. Es gibt einen , der alles ausführlich erklärt. Ultimate Vocal Remover Thread UVR-Workflows Instrumental entfernen und extrahieren Modell: VR - UVR(4_HP-Vocal-UVR) Einstellungen: 512 – 10 – GPU Output und unsauberer Gesang Instrumental Hintergrundgesang entfernen und extrahieren. Modell: VR - UVR(5_HP-Karaoke-UVR) Einstellungen: 512 – 10 – GPU und unsauberer Hauptgesang werden ausgegeben Hintergrundgesang Entfernen Sie Hall und Rauschen. Modell: VR – UVR-DeEcho-DeReverb und UVR-DeNoise Einstellungen: 512 – 10 – GPU – Nein, nur andere Gibt aus den Hauptgesang sauber (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. Lärmminderung Dereverb Stille abschneiden Normalisieren Audio-Slicer Verwenden Sie oder , um die Audiodatei für die spätere Verwendung in kleine Stücke zu schneiden. Audio-Slicer Audio-Slicer (GUI) 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 . 0db sollte es tun. Loudness Normalization 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 viel schneller und praktischer ist als die anderen. Anaconda 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 : Die Häufigkeit des Druckens des : Die Häufigkeit des Speicherns von Prüfpunkten. : Gesamtschritte. : Anzahl der gespeicherten Prüfpunkte, 0 für unbegrenzt. : fp32 In meinem Fall, : je kleiner, desto schneller (rauer), je größer, desto langsamer (besser). log interval eval interval epochs keep ckpts half_type batch_size Empfohlene Batchgröße pro VRAM: 4=6G;6=8G;10=12G;14=16G;20=24G Behalten Sie die Standardeinstellung für bei configs/diffusion.yaml 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 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. train.py Sie können es jederzeit mit stoppen und das Training fortsetzen, indem jederzeit erneut ausführen. ctrl+c python train.py -c configs/config.json -m 44k Verwenden Sie , um das Diffusionsmodell zu trainieren. Trainingsschritte werden bei 1/3 des Hauptmodells empfohlen. train_diff.py Achten Sie auf Übertraining. Verwenden Sie , um die Diagramme zu überwachen und festzustellen, ob sie flach werden. tensorboard --logdir=./logs/44k Ändern Sie die bei Bedarf von 0,0001 auf 0,00005. learning rate 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 für den LAN-Zugriff: webUI.py os.system("start http://localhost:7860") app.launch(server_name="0.0.0.0", server_port=7860) Führen Sie aus. Greifen Sie dann über einen Webbrowser auf die zu. python webUI.py ipaddress:7860 Das Webui verfügt über keine englische Lokalisierung, aber wäre hilfreich. Immersive Translate Die meisten Parameter würden mit dem Standardwert gut funktionieren. Lesen Sie und um Änderungen vorzunehmen. hier hier, Laden Sie diese 5 Dateien hoch: und seine main model.pt config.json und seine diffusion model.pt diffusion.yaml Entweder Clustermodell zum Sprechen oder Feature-Retrieval zum Singen. kmeans_10000.pt feature_and_index.pkl dient nur zum Sprechen, nicht zum Singen. Empfehlen Sie bei der Verwendung. F0 predictor RMVPE ist nützlich, wenn Sie ein weibliches Lied mit einem Model mit männlicher Stimme singen oder umgekehrt. Pitch change ist die Möglichkeit, den Ton zu steuern. Verwenden Sie um die klarste Sprache zu erhalten, und um den dem Modell am nächsten kommenden Ton zu erhalten. Clustering model/feature retrieval mixing ratio 0.1 0.9 sollten auf etwa eingestellt werden, das Ergebnis wird bei Schritten verbessert. shallow diffusion steps 50 30-100 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- 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 empfohlen. Fork Sprachwechsler 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 in . Diese Gabel ist größer als das Original. batch_size configs/44k/config.json Ausbildung svc pre-hubert svc train -t svc train-cluster Inferenz Verwenden Sie die GUI mit . Dies erfordert eine lokale Desktop-Umgebung. svcg Oder verwenden Sie CLI mit für Echtzeit und zum Generieren. svc vc svc infer -m "logs/44k/xxxxx.pth" -c "configs/config.json" raw/xxx.wav DDSP-SVC benötigt weniger Hardwareressourcen und läuft schneller als so-vits-svc. Es unterstützt sowohl Echtzeit- als auch Diffusionsmodelle (Diff-SVC). DDSP-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, zu verwenden, da es sowohl DDSP als auch das Diffusionsmodell enthält. main_diff.py 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 zu verwenden, habe ich zur einfacheren Einrichtung den Fork von verwendet. Original v3u 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 , indem Sie alle durch ersetzen train_ms.py bfloat16 float16 Bearbeiten Sie für den LAN-Zugriff: webui.py webbrowser.open(f"start http://localhost:7860") app.launch(server_name="0.0.0.0", server_port=7860) Bearbeiten Sie für und Data/xxx/config.json batch_size 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 ab. Data/xxx/raw Bearbeiten Sie für , und . config.yml dataset_path num_workers keep_ckpts Führen Sie aus, um die WAV-Datei zu segmentieren. python3 audio_slicer.py Bereinigen Sie den Datensatz ( ), indem Sie kleine Dateien entfernen, die weniger als 2 Sekunden dauern. Data/xxx/raw 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 Modell. Bearbeiten Sie wie folgt: large short_audio_transcribe.py # 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 aus, um die Transkription zu starten. python3 short_audio_transcribe.py 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 aus, um mit dem Training zu beginnen python3 train_ms.py Bearbeiten Sie für den Modellpfad: config.yml model: "models/G_20900.pth" Führen Sie aus, um Webui für Rückschlüsse zu starten python3 webui.py 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. vits-simple-api 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 nach Bert-vits2-V2.3/ vits-simple-api/bert_vits2/ Kopieren Sie und nach Bert-vits2-V2.3/Data/xxx/models/G_xxxxx.pth Bert-vits2-V2.3/Data/xxx/config.json vits-simple-api/Model/xxx/ Bearbeiten Sie für und nach Ihren Wünschen config.py MODEL_LIST Default parameter Bearbeiten Sie wie folgt: Model/xxx/config.json "data": { "training_files": "Data/train.list", "validation_files": "Data/val.list", "version": "2.3" Überprüfen/bearbeiten Sie in als model_list config.yml [xxx/G_xxxxx.pth, xxx/config.json] Führen Sie aus python app.py Optimierungen für Ton, für Zufälligkeit, für Aussprache und für Geschwindigkeit. und sind selbsterklärend SDP Ratio Noise Noise_W Length emotion style Modelle teilen Im gibt es viele VITS-Modelle, die von anderen geteilt werden. Sie können es zunächst ausprobieren und dann die gewünschten Modelle unter herunterladen. Hugging Face-Repo Dateien Das 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. Genshin-Modell In gibt es viele Bert-vits2-Modelle, die aus beliebten chinesischen Streamern und VTubern stammen. einem anderen Repo Es gibt bereits Projekte, die KI-Vtuber wie und herstellen. Ich freue mich darauf, wie diese Technologie die Branche in naher Zukunft verändern kann. dieses dieses https://techshinobi.org/posts/voice-vits/https://techshinobi.org/posts/voice-vits/