İçindekiler SoftVC VITS ve Bert-VITS2 ile Ses Klonlamaya Derin Bir Bakış Veri Kümesini Hazırla Bir Şarkıdan Alıntı UVR İş Akışları Vokal kaydına hazırlık Cheapskate'in Ses Ekipmanı Audacity iş akışları ses dilimleyici Veri kümesini temizleme Ses yüksekliğini eşleştir so-vits-svc Ortamı ayarlama Başlatma Önceden eğitilmiş modelleri indirin Veri Seti Hazırlama Yapılandırmaları Düzenle Eğitim Çıkarım Ses Düzenleme so-vits-svc-çatal Kurulum Hazırlık Eğitim Çıkarım DDSP-SVC Hazırlık Eğitim Çıkarım Bert-vits2-V2.3 Başlatma Hazırlık Transkripsiyon Eğitim ve Çıkarım vits-simple-api İnce ayarlar Modelleri paylaş biraz denedim ve ilginç buldum. Ben de kendi sesimle kullanışlı bir model eğitmeye karar verdim. Önceki yazıda TTS Generation WebUI'yi Bu ses klonlama projesi hem Ses Değiştirme için SVC'yi hem de Metin-Konuşma için araştırıyor. Tüm işleri yapan tek bir araç yoktur. VITS'yi Bu proje için çeşitli araçları test ettim. , ve gibi iyi rehberlerin çoğu Çincedir. Bu yüzden notlarımı İngilizce olarak yayınlamanın faydalı olacağını düşündüm. Bunun bunun bunun Her ne kadar muhtemelen baskı nedeniyle birkaç aydır arşivlenmiş olsa da hala en iyi sonucu veren araçtır. so-vits-svc , , ve gibi diğer ilgili araçlar daha hızlı/litre optimizasyonu, daha fazla özellik veya daha iyi arayüzler sağlar. so-vits-svc-fork so-vits-svc-5.0 DDSP-SVC RVC Ancak yeterli zaman ve kaynakla bu alternatiflerin hiçbiri orijinal so-vits-svc'nin ürettiği üstün sonuçla rekabet edemez. TTS için adı verilen yeni bir araç harika çalışıyor ve geçen ayki son sürümüyle zaten olgunlaştı. Ses içeriği oluşturma gibi çok farklı kullanım durumları vardır. Bert-VITS2 Veri Kümesini Hazırla Veri setinin ses dosyaları WAV formatında, 44100 Hz, 16bit, mono, ideal olarak 1-2 saat olmalıdır. Bir Şarkıdan Çıkart bu iş için en kolay araçtır. Her şeyi ayrıntılı olarak açıklayan bir var. Ultimate Vocal Remover konu UVR İş Akışları Enstrümantal'ı kaldırın ve çıkarın Modeli: VR - UVR(4_HP-Vokal-UVR) Ayarlar: 512 - 10 - GPU Çıkış ve kirli vokal Enstrümantal Arka plan vokallerini kaldırın ve çıkarın. Modeli: VR - UVR(5_HP-Karaoke-UVR) Ayarlar: 512 - 10 - GPU Çıkış ve kirli ana vokal arka vokali Yankı ve gürültüyü kaldırın. Model: VR - UVR-DeEcho-DeReverb ve UVR-DeNoise Ayarlar: 512 - 10 - GPU - Yalnızca Başkası Yok Çıkış temiz ana vokal (İsteğe bağlı) Manüel ince temizlik gerçekleştirmek için RipX'i (ücretsiz değil) kullanma. Vokal Kaydına Hazırlık Yoğunlaştırılmış bir mikrofonla işlenmiş bir odada kayıt yapmak daha iyidir, aksi takdirde gürültüyü azaltmak için yönlü veya dinamik bir mikrofon kullanın. Cheapskate'in Ses Ekipmanı Müziğe ilk kez lise yıllarımda mavi Sennheiser MX500 ve Koss Porta Pro ile başladım. Cool Edit Pro ile Sony VAIO'da ilk kez bir şarkıyı kaydettiğim zamanı hâlâ hatırlıyorum. Bugünlerde amatör olarak ses donanımına çok fazla para harcamaya hala direniyorum çünkü bu tam anlamıyla para emen bir kara delik. Yine de bu ucuz üretim ekipmanlarının güvenilirliğini gerçekten takdir ediyorum. Kurulumumun temel parçası Behringer UCA202'dir ve kullanım durumlarım için mükemmeldir. İndirim döneminde 10$'a aldım. Bu, “Ses Arayüzü” olarak adlandırılan, ancak temelde yalnızca birden fazla bağlantı noktasına sahip bir ses kartıdır. Kulaklıklarım için RCA'dan 3,5 mm'ye TRS kabloları, normal çıkış için yarı açık K240'ları ve monitör çıkışı için arkası kapalı HD669/MDR7506'yı kullandım. Bahsedilen üç kulaklığın tümü normal fiyat için 100 doların altındadır. Ayrıca Samson, Tascam, Knox Gear ve daha fazlasının 50 dolardan daha düşük fiyata klonları var. Giriş cihazı olarak çevresel gürültüleri önlemek adına dinamik bir mikrofon kullanıyorum. Bu bir SM58 kopyası (Pyle) + Tascam DR-05 kaydedicidir (amplifikatör olarak). SL84c veya wm58 gibi diğer klonlar da bunu yapabilir. Mikrofonu kayıt cihazının MIC/Harici girişine bağlamak için bir XLR - 3,5 mm TRS kablosu kullanıyorum ve ardından kayıt cihazının hat çıkışı ile UCA202'nin girişi arasına bağlantı kurmak için bir AUX kablosu kullanıyorum. Kurulumumu kopyalamak için bir "ses arayüzü" ve özel bir amplifikatör satın almanız önerilmez. 10 dolarlık bir c-media USB ses kartı yeterince iyi olmalıdır. Sahip olduğum Syba modeli, dinamik mikrofonları doğrudan ve hatta bazı alt seviye fantom güçlü mikrofonları "ön ampingleme" kapasitesine sahip. Kurulum son derece ucuz olabilir (40~60 $), ancak UCA202 ve DR-05 ile ses çok daha temiz. Ve eski iyi dijital kayıt cihazımın fiziksel kontrollerini, çok yönlülüğünü ve taşınabilirliğini gerçekten seviyorum. Audacity İş Akışları Tasarımcı olarak para aldığım dönemde Audition'dan oldukça memnundum. Ancak eğlenceli bir projede kişisel kullanım için Audacity, Adobe'nin kaotik kötülüğünden kaçınmanın yoludur. Gürültü Azaltma Dereverb Sessizliği Kes Normalleştir ses dilimleyici Ses dosyasını daha sonra kullanmak üzere küçük parçalara bölmek için veya kullanın. ses dilimleyiciyi ses dilimleyiciyi (gui) Varsayılan ayar harika çalışıyor. Veri Kümesini Temizleme Çok kısa olanları çıkarın ve 10 saniyenin üzerinde olanları yeniden dilimleyin. Büyük bir veri kümesi olması durumunda, 4 saniyeden kısa olanların tümünü kaldırın. Küçük bir veri kümesi olması durumunda, yalnızca 2 saniyenin altındakileri kaldırın. Gerekirse her bir dosya için manuel inceleme gerçekleştirin. Maç Ses Yüksekliği Audacity'yi ile tekrar kullanın; 0db bunu yapmalı. Loudness Normalization so-vits-svc Ortamı Ayarlayın Tek bir sistemde birden fazla Python aracını çalıştırmak için sanal ortam gereklidir. Eskiden VM'leri ve Docker'ı kullanıyordum ama şimdi diğerlerinden çok daha hızlı ve kullanışlı olduğunu buldum. anaconda'nın so-vits-svc için yeni bir ortam oluşturun ve onu etkinleştirin. conda create -n so-vits-svc python=3.8 conda activate so-vits-svc Daha sonra gereksinimleri yükleyin. 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 Başlatma Önceden eğitilmiş modelleri indirin ön antrenman 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 günlükler/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 günlükler/44k/yayılma wget https://huggingface.co/datasets/ms903/Diff-SVC-refactor-pre-trained-model/resolve/main/fix_pitch_add_vctk_600k/model_0.pt (Alternatif) wget https://huggingface.co/datasets/ms903/DDSP-SVC-4.0/resolve/main/pre-trained-model/model_0.pt (Alternatif) wget https://huggingface.co/datasets/ms903/Diff-SVC-refactor-pre-trained-model/blob/main/hubertsoft_fix_pitch_add_vctk_500k/model_0.pt ön eğitim/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 Veri Seti Hazırlama Hazırlanan tüm audio.wav dosyalarını içine koyun 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 Yapılandırmaları Düzenle Dosya konumunda bulunur configs/config.json : yazdırma sıklığı günlük : kontrol noktalarının kaydedilme sıklığı : toplam adım : kaydedilen kontrol noktalarının sayısı, sınırsız için 0. : fp32 Benim durumumda, : Ne kadar küçük olursa o kadar hızlı (daha kaba), ne kadar büyükse o kadar yavaş (daha iyi). log interval eval interval epochs keep ckpts half_type batch_size VRAM başına önerilen parti_boyutu: 4=6G;6=8G;10=12G;14=16G;20=24G için varsayılanı koruyun configs/diffusion.yaml Eğitim 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 Eğitim adımlarında: Ana modeli eğitmek için kullanın; genellikle 20k-30k kullanılabilir ve 50k ve üzeri yeterince iyi olur. Bu, GPU hızına bağlı olarak birkaç gün sürebilir. train.py Bunu ile durdurmaktan çekinmeyin; istediğiniz zaman yeniden çalıştırılarak eğitime devam edilecektir. ctrl+c python train.py -c configs/config.json -m 44k Difüzyon modelini eğitmek için kullanın; Ana modelin 1/3'ünde eğitim adımları önerilir. train_diff.py Aşırı antrenmanın farkında olun. Düz olup olmadığını görmek amacıyla grafikleri izlemek için kullanın. tensorboard --logdir=./logs/44k Gerekirse 0,0001'den 0,00005'e değiştirin. learning rate İşiniz bittiğinde, çıkarım için bu dosyaları paylaşın/aktarın. yapılandırma/ yapılandırma.json difüzyon.yaml günlükler/44k feature_and_index.pkl kmeans_10000.pt model_0.pt G_xxxxx.pt Çıkarım Eğitilen modeli denemenin zamanı geldi. Parametreleri ayarlamanın rahatlığı için Webui'yi tercih ederim. Ancak başlatmadan önce, LAN erişimi için aşağıdaki satırları düzenleyin: webUI.py os.system("start http://localhost:7860") app.launch(server_name="0.0.0.0", server_port=7860) çalıştırın; daha sonra bir web tarayıcısından erişin. python webUI.py ipaddress:7860 Webui'nin İngilizce yerelleştirmesi yoktur, ancak faydalı olacaktır. Sürükleyici Çeviri Çoğu parametre varsayılan değerle iyi çalışır. Değişiklik yapmak için ve bakın. buna buna Bu 5 dosyayı yükleyin: ve main model.pt config.json ve diffusion model.pt diffusion.yaml Konuşma için küme modeli veya şarkı söylemek için özellik alma . kmeans_10000.pt feature_and_index.pkl şarkı söylemek için değil, yalnızca konuşmak içindir. Kullanırken önerin. F0 predictor RMVPE kadınsı bir şarkıyı erkeksi bir sese sahip bir model kullanarak söylerken veya tam tersi durumda faydalıdır. Pitch change tonu kontrol etmenin yoludur. En net konuşmayı elde etmek için , modele en yakın tonu elde etmek için kullanın. Clustering model/feature retrieval mixing ratio 0.1 0.9 civarında ayarlanmalıdır, adımda sonucu iyileştirir. shallow diffusion steps 50 30-100 Ses Düzenleme Bu prosedür isteğe bağlıdır. Sadece daha iyi bir şarkının prodüksiyonu için. Kullandığım ses düzenleme yazılımı veya DAW (dijital ses iş istasyonu) ücretsiz olmadığı için bu konunun ayrıntılarına girmeyeceğim. Sektörün tamamı ödeme duvarlı ve kapalı kaynaklı olmasına rağmen özel mülk yazılımı savunmak gibi bir niyetim yok. Audacity çoklu parçayı, efektleri ve çok daha fazlasını destekler. Bazı gelişmiş VST eklentilerini de yükler. Audacity ile şarkılarda ustalaşmaya yönelik eğitimler bulmak zor değil. Tipik olarak mastering süreci miksaj/dengeleme, EQ/sıkıştırma, reverb ve görüntüleme olmalıdır. Araç ne kadar gelişmiş olursa süreç o kadar kolay olacaktır. Gelecekte mastering sürecim için Audacity'yi benimsemeye kesinlikle daha fazla zaman ayıracağım ve herkesin bunu yapmasını tavsiye ediyorum. so-vits-svc-çatal Bu, gerçek zamanlı desteğe sahip bir so-vits-svc ve modeller uyumludur. Kullanımı daha kolaydır ancak Difüzyon modelini desteklemez. Özel gerçek zamanlı ses değişimi için bir önerilir. çatalıdır ses değiştirici Kurulum 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 Hazırlık Veri kümesi .wav dosyalarını yerleştirin so-vits-svc-fork/dataset_raw svc pre-resample svc pre-config dosyasında değerini düzenleyin. Bu çatal orijinalinden daha büyük boyuttadır. configs/44k/config.json batch_size Eğitim svc pre-hubert svc train -t svc train-cluster Çıkarım GUI'yi ile kullanın. Bu, yerel bir masaüstü ortamı gerektirir. svcg Veya gerçek zamanlı olarak ile CLI'yi ve oluşturmak için kullanın. svc vc svc infer -m "logs/44k/xxxxx.pth" -c "configs/config.json" raw/xxx.wav DDSP-SVC daha az donanım kaynağı gerektirir ve so-vits-svc'den daha hızlı çalışır. Hem gerçek zamanlı hem de difüzyon modellerini (Diff-SVC) destekler. 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 İki dosya için bakın: Başlatma bölümüne pretrain/rmvpe/model.pt pretrain/contentvec/checkpoint_best_legacy_500.pt Hazırlık 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 Eğitim conda activate DDSP-SVC python train.py -c configs/combsub.yaml python train_diff.py -c configs/diffusion-new.yaml tensorboard --logdir=exp Çıkarım Hem DDSP hem de difüzyon modelini içerdiğinden kullanılması tavsiye edilir. main_diff.py python main_diff.py -i "input.wav" -diff "model_xxxxxx.pt" -o "output.wav" Ses klonlama için gerçek zamanlı GUI: python gui_diff.py Bert-vits2-V2.3 Bu, yukarıdakilerden tamamen farklı bir TTS aracıdır. Bunu kullanarak ailem için kendi sesimle birkaç sesli kitap oluşturdum ve onlar bundan gerçekten keyif alıyorlar. kullanmak yerine, daha kolay kurulum için çatalını kullandım. Orijinali v3u Başlatma 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 Önceden eğitilmiş modelleri indirin (Çince, Japonca ve İngilizce içerir): 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 Bir karakter modeli klasörü oluşturun mkdir -p Data/xxx/models/ Temel modelleri indirin: !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 Tüm ile değiştirerek düzenleyin bfloat16 float16 train_ms.py LAN erişimi için düzenleyin: webui.py webbrowser.open(f"start http://localhost:7860") app.launch(server_name="0.0.0.0", server_port=7860) ve için düzenleyin batch_size spk2id Data/xxx/config.json Hazırlık benzer iş akışı. Önceki bölümdekine Gürültüyü ve sessizliği kaldırın, normalleştirin, ardından dilimlenmemiş WAV dosyasını içine yerleştirin. Data/xxx/raw , ve için düzenleyin. dataset_path num_workers keep_ckpts config.yml WAV dosyasını dilimlemek için çalıştırın. python3 audio_slicer.py 2 saniyenin altındaki küçük dosyaları kaldırarak veri kümesini ( ) temizleyin. Data/xxx/raw Transkripsiyon Fısıltı pip install git+https://github.com/openai/whisper.git Dilin otomatik algılanmasını kapatmak için, onu yalnızca İngilizce olarak ayarlayın ve modeli kullanın; aşağıdaki gibi düzenleyin: 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) Transkripsiyonu başlatmak için çalıştırın. python3 short_audio_transcribe.py Dilimlenmiş veri kümesini yeniden örnekleyin: python3 resample.py --sr 44100 --in_dir ./Data/zizek/raw/ --out_dir ./Data/zizek/wavs/ İşlem öncesi transkripsiyon: python3 preprocess_text.py --transcription-path ./Data/zizek/esd.list BERT özelliği yapılandırması oluşturun: python3 bert_gen.py --config-path ./Data/zizek/configs/config.json Eğitim ve Çıkarım Eğitime başlamak için çalıştırın python3 train_ms.py Model yolu için dosyasını düzenleyin: config.yml model: "models/G_20900.pth" Çıkarım için webui'yi başlatmak üzere çalıştırın python3 webui.py vits-simple-api eğitimli modelleri kullanmaya yönelik bir web ön ucudur. Bunu esas olarak orijinal projede bulunmayan uzun metin desteği için kullanıyorum. 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 (İsteğe bağlı) Önceden eğitilmiş model dosyalarını den ye kopyalayın Bert-vits2-V2.3/ vits-simple-api/bert_vits2/ ve dosyasını kopyalayın Bert-vits2-V2.3/Data/xxx/models/G_xxxxx.pth Bert-vits2-V2.3/Data/xxx/config.json vits-simple-api/Model/xxx/ için ve tercih edildiği gibi düzenleyin MODEL_LIST config.py Default parameter aşağıdaki gibi düzenleyin: Model/xxx/config.json "data": { "training_files": "Data/train.list", "validation_files": "Data/val.list", "version": "2.3" olarak kontrol edin/düzenleyin config.yml model_list [xxx/G_xxxxx.pth, xxx/config.json] çalıştırın python app.py İnce ayarlar Ton için , rastgelelik için , telaffuz için ve hız için . ve kendini açıklayıcıdır SDP Ratio Noise Noise_W Length emotion style Modelleri Paylaş başkaları tarafından paylaşılan çok sayıda VITS modeli var. Önce deneyebilir, ardından istediğiniz modelleri indirebilirsiniz. Hugging Face deposunda Dosyalar'dan yüksek kalitesi nedeniyle bazı içerik oluşturma topluluklarında yaygın olarak kullanılmaktadır. Yüzlerce karakter içermesine rağmen yalnızca Çince ve Japonca desteklenmektedir. Genshin modeli, , popüler Çin yayıncılarından ve VTuber'lardan yapılmış çok sayıda Bert-vits2 modeli var. Başka bir repoda gibi AI Vtuber'lar yapan projeler var. Bu teknolojinin yakın gelecekte sektörü nasıl değiştirebileceğini sabırsızlıkla bekliyorum. Zaten bunun https://techshinobi.org/posts/voice-vits/https://techshinobi.org/posts/voice-vits/