- StyleTTS2 style diffusion और बड़े speech language model(SLM) आधारित adversarial learning का उपयोग करके human-level TTS synthesis को लक्ष्य बनाने वाला text-to-speech रूपांतरण मॉडल है
- style को diffusion model के latent random variable के रूप में मॉडल किया जाता है, जिससे reference speech के बिना text के अनुरूप style जनरेट किया जा सके, और diffusion model की विविध speech synthesis क्षमताओं का उपयोग करने वाला efficient latent diffusion इस्तेमाल किया जाता है
- WavLM जैसे बड़े pretrained SLM को discriminator के रूप में उपयोग किया जाता है, और differentiable duration modeling लागू करके end-to-end training तथा speech naturalness में सुधार किया जाता है
- LJSpeech single-speaker dataset में native English speaker evaluation के आधार पर इसने human recordings को surpass किया, VCTK multi-speaker dataset में human recordings के बराबर प्रदर्शन किया, और LibriTTS पर trained model ने zero-shot speaker adaptation में मौजूदा publicly available models से बेहतर प्रदर्शन दिखाया
- training और inference workflow में single-speaker LJSpeech, multi-speaker VCTK·LibriTTS, और pretrained multi-speaker model आधारित नए speaker fine-tuning को शामिल किया गया है
- पहले चरण की training के लिए
accelerate launch train_first.py --config_path ./Configs/config.yml, और दूसरे चरण की training के लिएpython train_second.py --config_path ./Configs/config.ymlका उपयोग होता है train_second.pyका DDP version काम नहीं करता, इसलिए फिलहाल DP उपयोग किया जाता है, और fine-tuning script भी ऐसी शर्त रखती है जिसमें DDP काम नहीं करता
- पहले चरण की training के लिए
- मुख्य execution conditions हैं Python >= 3.7,
requirements.txtकी installation, demo चलाने परphonemizerऔरespeak-ngकी installation, तथा LJSpeech data का 24 kHz upsampling - pretrained modules में text aligner के लिए ASR, pitch extractor के लिए JDC, और PL-BERT शामिल हैं
- ASR aligner को English(LibriTTS), Japanese(JVS), Chinese(AiShell) corpus पर pretrained किया गया है
- JDC pitch extractor को केवल English(LibriTTS) corpus पर pretrained किया गया है
- PL-BERT को केवल English(Wikipedia) corpus पर pretrained किया गया है, इसलिए अन्य भाषाओं के लिए उस भाषा का PL-BERT चाहिए, और multilingual PL-BERT 14 भाषाओं को support करता है
- inference single-speaker के लिए
Inference_LJSpeech.ipynbऔर multi-speaker के लिएInference_LibriTTS.ipynbके माध्यम से उपलब्ध है, और LJSpeech व LibriTTS pretrained models Hugging Face से डाउनलोड किए जा सकते हैं - code license MIT License है, और pretrained model का उपयोग करते समय श्रोता को यह बताना होगा कि यह synthesized speech है, या केवल उन्हीं speakers की voice को सार्वजनिक रूप से synthesize किया जा सकता है जिनकी voice उपयोग की अनुमति हो
1 टिप्पणियां
Hacker News टिप्पणियाँ
StyleTTS2, Whisper, OpenHermes2-Mistral-7B जैसे open source हिस्सों से 100% local voice chatbot बनाया, और यह ChatGPT से कहीं तेज़ जवाब देता है
दूसरे voice assistants की तरह कड़ी Siri-शैली की interaction नहीं, बल्कि असली बातचीत जैसी बारी-बारी से बात करना संभव है, इसलिए मज़ेदार है
12GB Nvidia GPU वाले Windows gaming PC पर, test के आधार पर 3060 12GB में Python या CUDA छुए बिना एक बार में install करके बातचीत की जा सकती है: https://apps.microsoft.com/detail/9NC624PBFGB7
demo के लिए headphones चाहिए और यह console app के रूप में चलता है, इसलिए कुछ rough edges हैं, लेकिन ऐसा लगता है कि सिर्फ open source combinations से जल्द ही आम gaming PC पर जो संभव होने वाला है, उसकी झलक पहले से दिखा रहा है; कई improvement models भी हैं जिन्हें अभी reflect नहीं किया जा सका है
खासकर अगर सामने वाला बहुत देर तक बोल रहा हो तो मैं बीच में बोलकर रोक सकूँ, या जब मैं बोल रहा हूँ तब AI छोटा-सा acknowledgment दे—यानी बात काटना और बीच में दखल देना आम बातचीत की तरह संभव हो
अगर speed real-time से तेज़ स्तर तक पहुँच जाए, तो theoretically ऐसी functionality शुरू की जा सकती है; और पूरी तरह natural conversation के लिए AI को चेहरा और gestures देखकर यह judge करने वाली context awareness भी चाहिए लगेगी कि व्यक्ति लंबा बोल रहा है या नहीं
EVGA 3080Ti 12GB पर भी latency काफी ज़्यादा थी, और मैंने सिर्फ एक बार बोला था, लेकिन ऐसा लगा कि same input को कई बार process करते हुए थोड़े-थोड़े अलग recognition results repeat कर रहा था
आखिर में अपनी ही आवाज़ सुनकर खुद को जवाब देने की समस्या भी दिखी
पिछले महीने StyleTTS2 test किया था, और local install करने वालों के लिए मददगार step-by-step notes तैयार रखे हैं: https://llm-tracker.info/books/howto-guides/page/styletts-2
LJSpeech model के साथ VITS, XTTS से speed और quality की छोटी तुलना भी की थी; StyleTTS2 काफी अच्छा और बहुत तेज़ था: https://fediverse.randomfoo.net/notice/AaOgprU715gcT5GrZ2
सोच रहा हूँ कि in-fill या outpainting जैसी functionality भी संभव है या नहीं; इस quality की ultra-fast speech synthesis से खासकर indie और experimental game development में तरह-तरह के उपयोगों की उम्मीद है
link का
#mambaforgeanchor भी काम नहीं कर रहा थादस्तावेज़ थोड़े-बहुत अधूरे से थे, इसलिए सेटअप मिलाने की प्रक्रिया थोड़ी झंझट वाली रही, लेकिन लगभग 20 मिनट बाद WSL Ubuntu 22.04 पर यह ठीक से चल गया
ऑडियो क्वालिटी बहुत अच्छी है, और मैंने जो दूसरे open source speech synthesis प्रोजेक्ट देखे हैं उनसे कहीं बेहतर है; 4090 GPU के हिसाब से बेहद तेज़ भी है
ElevenLabs वाली क्वालिटी तक है या नहीं, यह अभी नहीं कह सकता, लेकिन ElevenLabs की खासियत यह है कि उसकी high-quality voice library बड़ी है और उसमें से चुनना आसान है। इस लाइब्रेरी में default female voice के अलावा दूसरी voice चुनने का तरीका मुझे अभी नहीं मिला
ElevenLabs का असली core फीचर सिर्फ 5 मिनट के एक sample से लगभग तुरंत हो जाने वाली voice cloning है, और यह हैरान कर देने वाली, थोड़ी डरावनी हद तक अच्छी है। उम्मीद है यह फीचर पूरी तरह open source में संभव हो जाएगा। API services कई उपयोगों के लिए बहुत महंगी हैं, और अपेक्षाकृत सस्ता OpenAI भी कुछ हज़ार words generate करने पर करीब 10 cents लेता है
/Demoमें जाकरInference_LJSpeech.ipynbयाInference_LibriTTS.ipynbखोलेंगे तो यह चलना चाहिएstructure यह है कि speech synthesis intonation और pronunciation संभालता है, और RVC voice texture संभालता है, इसलिए StyleTTS को इस pipeline के साथ मिलाने पर यह ElevenLabs के करीब पहुँच सकता है
short audio synthesis तो speech synthesis की दुनिया में लगभग solved problem है, लेकिन text-to-speech से audiobook बनाने की कोशिश करें तो समस्याएँ शुरू हो जाती हैं
दिलचस्प बात यह है कि TTS2 के examples असली ground-truth voice से भी बेहतर सुनाई देते हैं https://styletts2.github.io/
उदाहरण के लिए “Then leaving the corpse within the house [...]” example में ground-truth voice
houseको अजीब तरह से, tone ऊपर जाती हुई जैसी, pronounce करती है, जबकि TTS2 version ज़्यादा natural लगता हैमैं इसे कई ePub files पर इस्तेमाल करना चाहता हूँ, जैसे जापानी light novels जिनके audiobooks नहीं हैं। अभी मैं Android का Moon+ Reader TTS इस्तेमाल कर रहा हूँ, जो काफी robotic लगता है
2023 में जीतने का कोई तरीका नहीं है
फिर भी results impressive हैं, और बाकी सभी speech synthesis से बेहतर हैं
मौजूदा HN title “StyleTTS2 – open-source Eleven Labs quality Text To Speech” है, लेकिन original title में किसी specific product name को शामिल नहीं किया गया है और वहाँ link किए arXiv paper में भी ElevenLabs का ज़िक्र नहीं है
मुझे लगा था कि इस तरह की title editing से बचा जाता है
अगर कोई open source system उस quality के करीब पहुँचता है तो यह बहुत उल्लेखनीय है, और इसलिए ज़्यादातर लोग शायद comparison के लिए आभारी होंगे। सच कहूँ तो उसी comparison की वजह से मेरी रुचि बढ़ी
जिन लोगों ने इसे successfully इस्तेमाल किया है, उनसे पूछना चाहूँगा: यह voice cloning XTTSv2 से भी बिल्कुल अलग है और ElevenLabs के तो और भी पास नहीं पहुँचती
लगता है intonation की इसे खास परवाह नहीं है, और pitch व rhythm को काफी अच्छी तरह match करने भर की बात है
alpha,beta,embedding scale,diffusion stepsvalues को कई तरीकों से बदलकर देखा, लेकिन तेज़ होने और audio quality ठीक होने की बात मानते हुए भी voice cloning बिल्कुल ठीक से नहीं हुईXTTS भी शायद 20 से ज़्यादा languages और लाखों speakers पर trained रहा होगा
अगर उसने लाखों voices देखी हैं, तो उनमें आपके जैसी voice होना तय है; आखिरकार यह training data की समस्या है। हालांकि इतना बड़ा data इकट्ठा करके train कराना बेहद मुश्किल है
alpha,betaके साथ बहुत experiments किए और कई audio clips upload किए, लेकिन यही result मिलाक्वालिटी सच में हैरान कर देने वाली अच्छी है, और 2000 के शुरुआती वर्षों में यह लगभग कल्पना से बाहर का स्तर था
LLM किसी कैरेक्टर की भूमिका निभाए और इस तरह की voice synthesis NPCs को आवाज़ दे—गेम्स में इसकी दिलचस्प संभावनाएँ हैं
अभी golf simulators में पक्षी चहचहाते हैं, घास हिलती है और gameplay realistic होता है, लेकिन एक भी इंसान नहीं होता, इसलिए थोड़ा post-apocalyptic माहौल रह जाता है
असली round में मज़ाक-मज़ाक में होने वाली टांग-खिंचाई या बड़े match में दर्शकों की आवाज़ों से यह बहुत अलग है, इसलिए LLM-based chit-chat जोड़ने के लिए यह बिल्कुल सही लगता है
मैंने अभी Colab notebook आज़माई और quality बहुत अच्छी लगती है, और यह voice cloning भी support करता है
इसे आज़माना चाहता हूँ, लेकिन torch dependencies install करने के लिए हर बार
venvबनाना अब थोड़ा उबाऊ हो गया हैजानना चाहता हूँ कि बाकी लोग इसे कैसे handle करते हैं। क्या कई
venvको एक common torch environment share करवाने का कोई आसान तरीका है? manually तो किया जा सकता है, लेकिन क्या इसके लिए कोई tool है?workflow यह है:
nix flake init -t github:dialohq/flake-templates#python, फिरnix develop -c $SHELLमें enter करता हूँ, और nix development environment के shell hook मेंpoetry installऔरpoetry activaterun करता हूँसोच रहा हूँ कि text-to-speech models के लिए Civitai जैसा LoRA marketplace बनेगा या नहीं
https://github.com/microsoft/LoRA