paint-brush
SoftVC VITS और Bert-VITS2 के साथ वॉयस क्लोन कैसे करें: एक गहन जानकारीद्वारा@techshinobi
970 रीडिंग
970 रीडिंग

SoftVC VITS और Bert-VITS2 के साथ वॉयस क्लोन कैसे करें: एक गहन जानकारी

द्वारा Tech Shinobi12m2024/03/06
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

पिछली पोस्ट में, मैंने टीटीएस जेनरेशन वेबयूआई को थोड़ा आज़माया और यह दिलचस्प लगा। इसलिए, मैंने अपनी आवाज़ से एक उपयोगी मॉडल को प्रशिक्षित करने का निर्णय लिया। यह वॉयस क्लोनिंग प्रोजेक्ट वॉयस चेंजिंग के लिए एसवीसी और टेक्स्ट-टू-स्पीच के लिए वीआईटीएस दोनों की खोज करता है। ऐसा कोई एक उपकरण नहीं है जो सभी कार्य करता हो। मैंने इस प्रोजेक्ट के लिए कई टूल का परीक्षण किया है। कई अच्छे मार्गदर्शक, जैसे यह, यह, और यह, चीनी भाषा में हैं। इसलिए, मैंने सोचा कि अपने नोट्स अंग्रेजी में पोस्ट करना उपयोगी होगा।
featured image - SoftVC VITS और Bert-VITS2 के साथ वॉयस क्लोन कैसे करें: एक गहन जानकारी
Tech Shinobi HackerNoon profile picture
0-item

विषयसूची

  • SoftVC VITS और Bert-VITS2 के साथ वॉयस क्लोनिंग में गहराई से उतरें
    • डेटासेट तैयार करें
      • एक गीत से उद्धरण
        • यूवीआर वर्कफ़्लोज़
      • स्वर रिकार्डिंग की तैयारी
        • चीप्सकेट के ऑडियो उपकरण
        • दुस्साहस कार्यप्रवाह
      • ऑडियो-स्लाइसर
        • डेटासेट साफ़ करना
        • तीव्रता का मिलान करें
    • so-vits-svc
      • वातावरण स्थापित करें
      • प्रारंभ
        • पूर्व-प्रशिक्षित मॉडल डाउनलोड करें
        • डेटासेट तैयारी
        • कॉन्फ़िगरेशन संपादित करें
      • प्रशिक्षण
      • अनुमान
      • ऑडियो संपादन
    • so-vits-svc-fork
      • इंस्टालेशन
      • तैयारी
      • प्रशिक्षण
      • अनुमान
    • डीडीएसपी-एसवीसी
      • तैयारी
      • प्रशिक्षण
      • अनुमान
    • बर्ट-विट्स2-वी2.3
      • प्रारंभ
      • तैयारी
        • प्रतिलिपि
      • प्रशिक्षण और अनुमान
    • विट्स-सरल-एपीआई
      • बदलाव
      • मॉडल साझा करें


पिछली पोस्ट में, मैंने टीटीएस जेनरेशन वेबयूआई को थोड़ा आज़माया और यह दिलचस्प लगा। इसलिए, मैंने अपनी आवाज़ से एक उपयोगी मॉडल को प्रशिक्षित करने का निर्णय लिया।


यह वॉयस क्लोनिंग प्रोजेक्ट वॉयस चेंजिंग के लिए एसवीसी और टेक्स्ट-टू-स्पीच के लिए वीआईटीएस दोनों की खोज करता है। ऐसा कोई एक उपकरण नहीं है जो सभी कार्य करता हो।


मैंने इस प्रोजेक्ट के लिए कई टूल का परीक्षण किया है। कई अच्छे मार्गदर्शक, जैसे कि यह , यह , और यह , चीनी भाषा में हैं। इसलिए, मैंने सोचा कि अपने नोट्स अंग्रेजी में पोस्ट करना उपयोगी होगा।


हालाँकि so-vits-svc को कुछ महीनों के लिए संग्रहीत किया गया है, संभवतः उत्पीड़न के कारण, यह अभी भी सर्वोत्तम परिणाम के लिए उपकरण है।


अन्य संबंधित उपकरण जैसे so-vits-svc-fork , so-vits-svc-5.0 , DDSP-SVC , और RVC या तो तेज़/लीटर अनुकूलन, अधिक सुविधाएँ या बेहतर इंटरफ़ेस प्रदान करते हैं।


लेकिन पर्याप्त समय और संसाधनों के साथ, इनमें से कोई भी विकल्प मूल so-vits-svc द्वारा उत्पन्न बेहतर परिणाम के साथ प्रतिस्पर्धा नहीं कर सकता है।


टीटीएस के लिए, बर्ट-वीआईटीएस2 नामक एक नया टूल शानदार ढंग से काम करता है और पिछले महीने अपनी अंतिम रिलीज के साथ पहले ही परिपक्व हो चुका है। इसके कुछ बहुत अलग उपयोग के मामले हैं, उदाहरण के लिए, ऑडियो सामग्री निर्माण।

डेटासेट तैयार करें

डेटासेट की ऑडियो फ़ाइलें WAV प्रारूप में होनी चाहिए, 44100 हर्ट्ज, 16 बिट, मोनो, आदर्श रूप से 1-2 घंटे।

एक गीत से उद्धरण

अल्टीमेट वोकल रिमूवर इस काम के लिए सबसे आसान टूल है। एक सूत्र है जो सब कुछ विस्तार से बताता है।

यूवीआर वर्कफ़्लोज़

  • इंस्ट्रुमेंटल निकालें और निकालें
    • मॉडल: वीआर - यूवीआर(4_एचपी-वोकल-यूवीआर)

    • सेटिंग्स: 512 - 10 - जीपीयू

    • आउटपुट वाद्य और अशुद्ध स्वर


  • बैकग्राउंड वोकल्स निकालें और निकालें।
    • मॉडल: वीआर - यूवीआर(5_एचपी-कराओके-यूवीआर)

    • सेटिंग्स: 512 - 10 - जीपीयू

    • आउटपुट बैकग्राउंड वोकल और अशुद्ध मुख्य वोकल


  • गूंज और शोर को दूर करें.
    • मॉडल: VR - UVR-DeEcho-DeReverb और UVR-DeNoise

    • सेटिंग्स: 512 - 10 - जीपीयू - केवल अन्य नहीं

    • आउटपुट क्लीन मेन वोकल


  • (वैकल्पिक) मैन्युअल रूप से बारीक सफाई करने के लिए रिपएक्स (गैर-मुक्त) का उपयोग करना।

वोकल रिकॉर्डिंग की तैयारी

उपचारित कमरे में कंडेनसर माइक्रोफोन के साथ रिकॉर्ड करना बेहतर है, अन्यथा, शोर को कम करने के लिए दिशात्मक या गतिशील माइक्रोफोन का उपयोग करें।

चीप्सकेट के ऑडियो उपकरण

मैं पहली बार संगीत में हाई स्कूल के दौरान नीले सेन्हाइज़र एमएक्स500 और कोस पोर्टा प्रो के साथ आया था। मुझे अभी भी याद है कि पहली बार मैं एक गाना रिकॉर्ड कर रहा था जो कि कूल एडिट प्रो के साथ Sony VAIO पर था।


आजकल, मैं अभी भी शौकिया तौर पर ऑडियो हार्डवेयर पर बहुत सारा पैसा खर्च करने का विरोध करता हूं क्योंकि यह वस्तुतः पैसा चूसने वाला ब्लैक होल है।


फिर भी, मैं वास्तव में उन सस्ते उत्पादन उपकरणों की विश्वसनीयता की सराहना करता हूँ।


मेरे सेटअप का मुख्य भाग बेहरिंगर UCA202 है, और यह मेरे उपयोग के मामलों के लिए बिल्कुल उपयुक्त है। कीमत में गिरावट के दौरान मैंने इसे $10 में खरीदा।


यह एक तथाकथित "ऑडियो इंटरफ़ेस" है लेकिन मूल रूप से कई पोर्ट वाला एक साउंड कार्ड है। मैंने अपने हेडफ़ोन के लिए आरसीए से 3.5 मिमी टीआरएस केबल का उपयोग किया, नियमित आउटपुट के लिए एक अर्ध-खुला K240s, और मॉनिटर आउटपुट के लिए एक बंद-बैक HD669/MDR7506 का उपयोग किया।


उल्लिखित तीनों हेडफ़ोन की सामान्य कीमत $100 से कम है। और $50 से भी कम में सैमसन, टैस्कम, नॉक्स गियर और अन्य के क्लोन उपलब्ध हैं।


इनपुट डिवाइस के लिए, मैं अपने पर्यावरणीय शोर के लिए एक गतिशील माइक्रोफोन का उपयोग कर रहा हूं। यह एक SM58 कॉपी (पाइल) + एक टैस्कम DR-05 रिकॉर्डर (एक एम्पलीफायर के रूप में) है। अन्य क्लोन जैसे SL84c या wm58 भी ऐसा करेंगे।


मैं माइक्रोफ़ोन को रिकॉर्डर के एमआईसी/एक्सटर्नल-इनपुट से कनेक्ट करने के लिए XLR से 3.5 मिमी TRS केबल का उपयोग करता हूं, और फिर रिकॉर्डर के लाइन-आउट और UCA202 के इनपुट के बीच कनेक्ट करने के लिए AUX केबल का उपयोग करता हूं।


मेरे सेटअप को दोहराने के लिए "ऑडियो इंटरफ़ेस" और एक समर्पित एम्पलीफायर खरीदने की अनुशंसा नहीं की जाती है। $10 का सी-मीडिया यूएसबी साउंड कार्ड काफी अच्छा होना चाहिए। मेरे पास जो साइबा मॉडल है, वह सीधे डायनेमिक माइक्रोफोन और यहां तक कि कुछ निचले स्तर के फैंटम-संचालित माइक्रोफोन को भी "प्री-एम्पिंग" करने में सक्षम है।


सेटअप बेहद सस्ता ($40~60) हो सकता है, लेकिन यूसीए202 और डीआर-05 के साथ, ध्वनि बहुत साफ है। और मुझे वास्तव में मेरे पुराने अच्छे डिजिटल रिकॉर्डर का भौतिक नियंत्रण, बहुमुखी प्रतिभा और पोर्टेबिलिटी पसंद है।

दुस्साहस कार्यप्रवाह

हालाँकि जब मुझे एक डिजाइनर के रूप में भुगतान मिल रहा था, तो मैं ऑडिशन से बहुत खुश थी। लेकिन एक मज़ेदार प्रोजेक्ट पर व्यक्तिगत उपयोग के लिए, ऑडेसिटी एडोब की अराजक बुराई से बचने का तरीका है।

ऑडियो-स्लाइसर

बाद में उपयोग के लिए ऑडियो फ़ाइल को छोटे टुकड़ों में काटने के लिए ऑडियो-स्लाइसर या ऑडियो-स्लाइसर (gui) का उपयोग करें।

डिफ़ॉल्ट सेटिंग बढ़िया काम करती है.

डेटासेट की सफ़ाई

जो बहुत छोटे हैं उन्हें हटा दें और जो 10 सेकंड से अधिक समय से बचे हैं उन्हें फिर से काटें।


बड़े डेटासेट के मामले में, 4 सेकंड से कम के सभी डेटा हटा दें। छोटे डेटासेट के मामले में, उन्हें केवल 2 सेकंड से कम समय के लिए हटा दें।


यदि आवश्यक हो, तो प्रत्येक फ़ाइल का मैन्युअल निरीक्षण करें।

तीव्रता का मिलान करें

लाउडनेस नॉर्मलाइज़ेशन के साथ फिर से ऑडेसिटी का उपयोग करें; 0db को यह करना चाहिए.

so-vits-svc

पर्यावरण स्थापित करें

एक सिस्टम के अंदर कई पायथन टूल चलाने के लिए वर्चुअल वातावरण आवश्यक है। मैं वीएम और डॉकर का उपयोग करता था, लेकिन अब, मैंने पाया कि एनाकोंडा दूसरों की तुलना में कहीं अधिक तेज़ और सुविधाजनक है।


so-vits-svc के लिए एक नया वातावरण बनाएं और इसे सक्रिय करें।

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


फिर, आवश्यकताएँ स्थापित करें।

 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

प्रारंभ

पूर्व-प्रशिक्षित मॉडल डाउनलोड करें

  • पूर्व प्रशिक्षण
    • 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


  • लॉग्स/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


  • लॉग/44के/प्रसार
    • wget https://huggingface.co/datasets/ms903/Diff-SVC-refactor-pre-trained-model/resolve/main/fix_pitch_add_vctk_600k/model_0.pt

    • (वैकल्पिक) wget https://huggingface.co/datasets/ms903/DDSP-SVC-4.0/resolve/main/pre-trained-model/model_0.pt

    • (वैकल्पिक) wget https://huggingface.co/datasets/ms903/Diff-SVC-refactor-pre-trained-model/blob/main/hubertsoft_fix_pitch_add_vctk_500k/model_0.pt


  • प्री-ट्रेन/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

डेटासेट तैयारी

सभी तैयार ऑडियो.wav फ़ाइलों को 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

कॉन्फ़िगरेशन संपादित करें

फ़ाइल configs/config.json पर स्थित है

log interval : मुद्रण की आवृत्ति लॉग eval interval : चेकपॉइंट epochs सहेजने की आवृत्ति: कुल चरण keep ckpts : सहेजे गए चेकपॉइंट की संख्या, असीमित के लिए 0। half_type : fp32 मेरे मामले में, batch_size : जितना छोटा उतना तेज़ (कठोर), जितना बड़ा उतना धीमा (बेहतर)।


प्रति वीआरएएम अनुशंसित बैच आकार: 4=6जी;6=8जी;10=12जी;14=16जी;20=24जी


configs/diffusion.yaml के लिए डिफ़ॉल्ट रखें

प्रशिक्षण

 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


प्रशिक्षण चरणों पर:

मुख्य मॉडल को प्रशिक्षित करने के लिए train.py उपयोग करें; आमतौर पर, 20k-30k उपयोग योग्य होगा, और 50k और उससे अधिक पर्याप्त होगा। GPU की गति के आधार पर इसमें कुछ दिन लग सकते हैं।


बेझिझक इसे ctrl+c द्वारा रोकें, और इसे किसी भी समय python train.py -c configs/config.json -m 44k फिर से चलाकर प्रशिक्षण जारी रखा जाएगा।


प्रसार मॉडल को प्रशिक्षित करने के लिए train_diff.py उपयोग करें; मुख्य मॉडल के 1/3 पर प्रशिक्षण चरणों की अनुशंसा की जाती है।


अति-प्रशिक्षण से सावधान रहें। यह देखने के लिए कि क्या यह सपाट हो जाता है, प्लॉट की निगरानी के लिए tensorboard --logdir=./logs/44k का उपयोग करें।


यदि आवश्यक हो तो learning rate 0.0001 से 0.00005 तक बदलें।


जब पूरा हो जाए, तो अनुमान के लिए इन फ़ाइलों को साझा/परिवहन करें।


  • config/
    • config.json

    • प्रसार.yaml


  • लॉग्स/44k
    • फीचर_एंड_इंडेक्स.पीकेएल
    • kmeans_10000.pt
    • मॉडल_0.पीटी
    • G_xxxxx.pt

अनुमान

अब प्रशिक्षित मॉडल को आज़माने का समय आ गया है। मापदंडों में बदलाव की सुविधा के लिए मैं वेबुई को प्राथमिकता दूंगा।


लेकिन इसे सक्रिय करने से पहले, LAN एक्सेस के लिए webUI.py में निम्नलिखित पंक्तियों को संपादित करें:

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


python webUI.py चलाएँ; फिर वेब ब्राउज़र से इसके ipaddress:7860 पहुंचें।


वेबुई में कोई अंग्रेजी स्थानीयकरण नहीं है, लेकिन इमर्सिव ट्रांसलेशन मददगार होगा।


अधिकांश पैरामीटर डिफ़ॉल्ट मान के साथ अच्छी तरह से काम करेंगे। परिवर्तन करने के लिए इसे और इसे देखें।


ये 5 फ़ाइलें अपलोड करें:

main model.pt और इसका config.json


diffusion model.pt और इसका diffusion.yaml


बोलने के लिए या तो क्लस्टर मॉडल kmeans_10000.pt या गायन के लिए फीचर पुनर्प्राप्ति feature_and_index.pkl


F0 predictor केवल बोलने के लिए है, गाने के लिए नहीं। उपयोग करते समय RMVPE अनुशंसा करें।


किसी मर्दाना आवाज़ वाले मॉडल का उपयोग करके, या इसके विपरीत, एक स्त्री गीत गाते समय Pitch change उपयोगी होता है।


Clustering model/feature retrieval mixing ratio टोन को नियंत्रित करने का तरीका है। स्पष्ट भाषण प्राप्त करने के लिए 0.1 उपयोग करें, और मॉडल के निकटतम स्वर प्राप्त करने के लिए 0.9 का उपयोग करें।


shallow diffusion steps 50 के आसपास सेट किया जाना चाहिए, यह 30-100 चरणों पर परिणाम को बढ़ाता है।

ऑडियो संपादन

यह प्रक्रिया वैकल्पिक है. सिर्फ एक बेहतर गाने के निर्माण के लिए.


मैं इसके बारे में विवरण में नहीं जाऊंगा क्योंकि ऑडियो संपादन सॉफ्टवेयर, या तथाकथित DAW (डिजिटल ऑडियो वर्कस्टेशन), जिसका मैं उपयोग कर रहा हूं वह गैर-मुक्त है। मेरा मालिकाना सॉफ्टवेयर की वकालत करने का कोई इरादा नहीं है, भले ही पूरा उद्योग पेवॉल्ड और क्लोज्ड-सोर्स है।


ऑडेसिटी मल्टीट्रैक, इफेक्ट्स और बहुत कुछ का समर्थन करती है। यह कुछ उन्नत VST प्लगइन्स भी लोड करता है।


ऑडेसिटी के साथ गानों में महारत हासिल करने के लिए ट्यूटोरियल ढूंढना कठिन नहीं है।


आमतौर पर, महारत हासिल करने की प्रक्रिया मिश्रण/संतुलन, ईक्यू/संपीड़न, रीवरब और इमेजिंग होनी चाहिए। उपकरण जितना उन्नत होगा, प्रक्रिया उतनी ही आसान होगी।


मैं निश्चित रूप से भविष्य में अपनी महारत हासिल करने की प्रक्रिया के लिए ऑडेसिटी को अपनाने में अधिक समय लगाऊंगा, और मैं हर किसी को ऐसा करने की सलाह देता हूं।

so-vits-svc-fork

यह वास्तविक समय समर्थन वाला एक so-vits-svc कांटा है, और मॉडल संगत हैं। उपयोग में आसान लेकिन डिफ्यूजन मॉडल का समर्थन नहीं करता। समर्पित वास्तविक समय में आवाज बदलने के लिए, एक आवाज-परिवर्तक की सिफारिश की जाती है।

इंस्टालेशन

 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

तैयारी

डेटासेट .wav फ़ाइलें so-vits-svc-fork/dataset_raw में डालें

 svc pre-resample svc pre-config


configs/44k/config.json में एक batch_size संपादित करें। यह कांटा मूल से बड़ा आकार का है।

प्रशिक्षण

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

अनुमान

svcg के साथ GUI का उपयोग करें। इसके लिए स्थानीय डेस्कटॉप वातावरण की आवश्यकता होती है।


या वास्तविक समय के लिए svc vc के साथ CLI और जेनरेट करने के लिए svc infer -m "logs/44k/xxxxx.pth" -c "configs/config.json" raw/xxx.wav उपयोग करें।

डीडीएसपी-एसवीसी

DDSP-SVC को कम हार्डवेयर संसाधनों की आवश्यकता होती है और यह so-vits-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


दो फ़ाइलों के लिए आरंभीकरण अनुभाग देखें:

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

तैयारी

 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

प्रशिक्षण

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

अनुमान

main_diff.py का उपयोग करने की अनुशंसा की जाती है क्योंकि इसमें DDSP और प्रसार मॉडल दोनों शामिल हैं।

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


वॉयस क्लोनिंग के लिए वास्तविक समय जीयूआई:

 python gui_diff.py

बर्ट-विट्स2-वी2.3

यह एक टीटीएस टूल है जो उपरोक्त सभी चीज़ों से बिल्कुल अलग है। इसका उपयोग करके, मैंने पहले से ही अपने माता-पिता के लिए अपनी आवाज़ के साथ कई ऑडियोबुक बनाई हैं, और वे वास्तव में इसका आनंद लेते हैं।


मूल का उपयोग करने के बजाय, मैंने आसान सेटअप के लिए v3u द्वारा फोर्क का उपयोग किया।

प्रारंभ

 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


पूर्व-प्रशिक्षित मॉडल डाउनलोड करें (चीनी, जापानी और अंग्रेजी शामिल हैं):

 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

एक कैरेक्टर मॉडल फ़ोल्डर बनाएं mkdir -p Data/xxx/models/


आधार मॉडल डाउनलोड करें:

 !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

सभी bfloat16 को float16 से प्रतिस्थापित करके train_ms.py संपादित करें


LAN एक्सेस के लिए webui.py संपादित करें:

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


batch_size और spk2id के लिए Data/xxx/config.json संपादित करें

तैयारी

पिछले अनुभाग के समान कार्यप्रवाह।


शोर और मौन को हटाएं, सामान्यीकरण करें, फिर बिना कटे WAV फ़ाइल को Data/xxx/raw में डालें।


dataset_path , num_workers , और keep_ckpts के लिए config.yml संपादित करें।


WAV फ़ाइल को स्लाइस करने के लिए python3 audio_slicer.py चलाएँ।


2 सेकंड से कम की छोटी फ़ाइलों को हटाकर डेटासेट ( Data/xxx/raw ) को साफ़ करें।

प्रतिलिपि

व्हिस्पर pip install git+https://github.com/openai/whisper.git इंस्टॉल करें


भाषा का स्वतः-पहचान बंद करने के लिए, इसे केवल अंग्रेज़ी पर सेट करें, और 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)

ट्रांसक्रिप्शन शुरू करने के लिए python3 short_audio_transcribe.py चलाएँ।


कटे हुए डेटासेट का पुनः नमूना लें: python3 resample.py --sr 44100 --in_dir ./Data/zizek/raw/ --out_dir ./Data/zizek/wavs/


प्रीप्रोसेस ट्रांसक्रिप्शन: python3 preprocess_text.py --transcription-path ./Data/zizek/esd.list


BERT सुविधा कॉन्फ़िगरेशन जनरेट करें: python3 bert_gen.py --config-path ./Data/zizek/configs/config.json

प्रशिक्षण और अनुमान

प्रशिक्षण शुरू करने के लिए python3 train_ms.py चलाएँ


मॉडल पथ के लिए config.yml संपादित करें:

 model: "models/G_20900.pth"

अनुमान के लिए webui प्रारंभ करने के लिए python3 webui.py चलाएँ

विट्स-सिंपल-एपीआई

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

(वैकल्पिक) पूर्व-प्रशिक्षित मॉडल फ़ाइलों को Bert-vits2-V2.3/ से vits-simple-api/bert_vits2/ पर कॉपी करें


Bert-vits2-V2.3/Data/xxx/models/G_xxxxx.pth और Bert-vits2-V2.3/Data/xxx/config.json को vits-simple-api/Model/xxx/ पर कॉपी करें


MODEL_LIST और Default parameter के लिए config.py प्राथमिकता के अनुसार संपादित करें


Model/xxx/config.json नीचे दिए अनुसार संपादित करें:

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

config.yml में model_list [xxx/G_xxxxx.pth, xxx/config.json] के रूप में जांचें/संपादित करें


python app.py चलाएँ

बदलाव

टोन के लिए SDP Ratio , यादृच्छिकता के लिए Noise , उच्चारण के लिए Noise_W और गति के लिए Lengthemotion और style स्व-व्याख्यात्मक हैं

मॉडल साझा करें

इसके हगिंग फेस रेपो में, दूसरों द्वारा साझा किए गए बहुत सारे VITS मॉडल हैं। आप पहले इसे आज़मा सकते हैं, और फिर फ़ाइलों से वांछित मॉडल डाउनलोड कर सकते हैं।


जेनशिन मॉडल अपनी उच्च गुणवत्ता के कारण कुछ सामग्री निर्माण समुदायों में व्यापक रूप से उपयोग किया जाता है। इसमें सैकड़ों अक्षर शामिल हैं, हालाँकि केवल चीनी और जापानी ही समर्थित हैं।

एक अन्य रेपो में, बहुत सारे Bert-vits2 मॉडल हैं जो लोकप्रिय चीनी स्ट्रीमर और VTubers से बने हैं।


पहले से ही इस और इस जैसे एआई वीट्यूबर्स बनाने वाली परियोजनाएं मौजूद हैं। मैं इस बात की आशा कर रहा हूं कि यह तकनीक निकट भविष्य में उद्योग को कैसे बदल सकती है।


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