- यह तरीका सिर्फ छोटे reference audio से वक्ता की tone color को clone करता है और उसे कई भाषाओं में बोलने देता है, और अतिरिक्त speaker-specific training के बिना काम करने वाली Zero-shot TTS समस्या को लक्ष्य बनाता है
- इसका मुख्य बिंदु tone color cloning और language·style control को अलग करना है; base speaker TTS emotion, accent, rhythm, pauses और intonation बनाता है, जबकि tone color converter reference speaker की tone color लागू करता है
- नई भाषा के लिए बड़े multi-speaker training data के बिना भी zero-shot cross-lingual cloning संभव है, और training में base TTS के लिए 30K वाक्य तथा converter के लिए 20K लोगों के 300K audio samples इस्तेमाल किए गए
- पूरा implementation autoregressive या diffusion components के बिना feed-forward संरचना पर आधारित है; optimized version एक single A10G GPU पर 12× real-time performance देता है और 1 सेकंड speech generation में 85ms लेता है
- source code और model weights जारी किए गए हैं, और OpenVoice को MyShell.ai voice engine के रूप में दुनिया भर में 20 लाख से अधिक लोगों तक पहुँचाया गया है; इसका internal version मई 2023 से अक्टूबर 2023 के बीच कई करोड़ बार इस्तेमाल हुआ
OpenVoice किस त्वरित voice cloning समस्या को लक्ष्य बनाता है
- त्वरित voice cloning (IVC) ऐसा TTS है जो सिर्फ छोटे reference audio से किसी खास speaker की आवाज़ को clone करता है, और अतिरिक्त speaker-specific training के बिना काम करने वाली Zero-shot TTS भी कहलाती है
- इसके उपयोग media content production, personalized chatbots, और इंसान व कंप्यूटर या बड़े language models के बीच multimodal interaction तक फैले हुए हैं
- मौजूदा तरीकों में speed, controllability और language scalability के लिहाज से अलग-अलग सीमाएँ हैं
- VALLE, XTTS जैसे autoregressive तरीके reference speech के acoustic token या speaker embedding को condition के रूप में लेकर tone color clone करते हैं, लेकिन emotion, accent, rhythm, pauses और intonation जैसे styles को लचीले ढंग से नियंत्रित करना कठिन होता है
- YourTTS, Voicebox जैसे non-autoregressive तरीके inference में तेज़ हैं, लेकिन tone color के अलावा style parameters को लचीले ढंग से नियंत्रित नहीं कर पाते
- मौजूदा cross-lingual voice cloning में आमतौर पर हर भाषा के लिए बहुत से speakers वाला MSML dataset चाहिए होता है, इसलिए नई भाषाएँ जोड़ना कठिन होता है
- OpenVoice तीन लक्ष्यों को साथ में संभालता है
- reference speaker की tone color को clone करते हुए emotion, accent, rhythm, pauses और intonation को अलग से नियंत्रित करना
- MSML training data में न होने वाली reference speaker language या generation language में भी cross-lingual cloning करना
- बड़े commercial environment में quality गिराए बिना तेज़ real-time inference देना
tone color और style को अलग करने वाली संरचना
- OpenVoice का मुख्य विचार यह है कि एक बड़ा मॉडल tone color, language और style सब कुछ एक साथ न सीखे, बल्कि उसे आसान उप-कार्यों में बाँट दिया जाए
- base speaker TTS model language और style संभालता है
- single-speaker या multi-speaker TTS model इस्तेमाल किया जा सकता है
- VITS में text encoder और duration predictor में style·language embedding जोड़ने के लिए संशोधन किया जा सकता है
- InstructTTS style prompt ले सकता है
- Microsoft TTS जैसे commercial models, जो SSML से emotion, pauses और articulation style निर्दिष्ट करते हैं, भी इस्तेमाल किए जा सकते हैं
- इंसान सीधे मनचाहे style और language में text पढ़कर base voice भी बना सकता है
- सार्वजनिक implementation में डिफ़ॉल्ट रूप से VITS इस्तेमाल किया गया है
- tone color converter base speaker speech को reference speaker की tone color में बदलता है
- encoder एक 1D convolutional neural network है, जो base speaker speech के short-time Fourier transformed spectrum को input के रूप में लेता है
- tone color extractor एक 2D convolutional neural network है, जो mel-spectrogram से tone color information वाला एक single vector निकालता है
- normalizing flow base voice से tone color information हटाकर language और style को सुरक्षित रखने वाला representation बनाता है
- यह representation time axis पर IPA-based features के साथ align किया जाता है
- inverse flow reference speaker के tone color vector को condition के रूप में लेकर feature map पर नई tone color लागू करता है
- HiFi-GAN अंतिम raw waveform बनाता है
- सार्वजनिक implementation का पूरा model autoregressive components के बिना feed-forward तरीके से काम करता है
- HuBERT-based unit extraction तरीका सिर्फ tone color ही नहीं, emotion और accent तक हटा देने की समस्या रखता है
- information bottleneck बनाकर सिर्फ speech content सुरक्षित रखने वाले दूसरे तरीके tone color को पूरी तरह हटा नहीं पाते
- OpenVoice की नवीनता अलग-अलग submodule के आविष्कार से ज़्यादा style·language control और tone color cloning को अलग करने वाले framework में है
training data और training objectives
- base speaker TTS training में 4 speakers का data इस्तेमाल किया गया
- 1 American English speaker, 1 British English speaker, 1 Chinese speaker, 1 Japanese speaker
- कुल 30K वाक्य, औसत वाक्य लंबाई 7 सेकंड
- English और Chinese data में emotion classification labels हैं
- संशोधित VITS emotion categorical embedding, language categorical embedding और speaker id को text encoder, duration predictor और flow layer में input करता है
- trained base model base speaker बदलकर accent और language बदल सकता है, और input text को अलग-अलग emotions में पढ़ सकता है
- अतिरिक्त training data वाले प्रयोगों में rhythm, pauses और intonation को भी emotion की तरह सीखा जा सकता है
- tone color converter training में 20K लोगों के 300K audio samples इस्तेमाल किए गए
- लगभग 180K English samples
- लगभग 60K Chinese samples
- लगभग 60K Japanese samples
- इस dataset को MSML dataset कहा गया है
- converter के training objectives दो हैं
- encoder-decoder प्राकृतिक ध्वनि बनाए, इसके लिए mel-spectrogram loss और HiFi-GAN loss का उपयोग किया जाता है
- flow layer इस तरह सीखे कि audio features से tone color information अधिकतम हद तक हट जाए
- tone color removal training में text को IPA phoneme sequence में बदलने के बाद learnable embedding और transformer encoder से text content feature बनाया जाता है, फिर उसे audio feature के साथ dynamic time warping से align कर KL-divergence को न्यूनतम किया जाता है
- flow layer को style या language information condition के रूप में नहीं दी जाती, ताकि वह tone color के अलावा दूसरी जानकारी न हटाए
- flow layer invertible संरचना का है, इसलिए नई tone color information को condition बनाकर inverse process चलाने पर वही content और style रखते हुए reference speaker की tone color फिर से डाली जा सकती है
प्रयोगों के परिणाम और देखी गई सीमाएँ
- voice cloning evaluation में अलग-अलग शोधों के training set, test set और Mean Opinion Score conditions अलग होने से वस्तुनिष्ठ संख्यात्मक तुलना कठिन है
- OpenVoice evaluation का फोकस मौजूदा तरीकों से संख्यात्मक तुलना की बजाय अपनी qualitative performance analysis और सार्वजनिक audio samples देने पर है
- tone color cloning test set में celebrities, game characters और anonymous individuals के reference speakers शामिल हैं
- इसमें बहुत अभिव्यंजक और विशिष्ट आवाज़ें तथा मानव voice distribution के अधिक neutral samples दोनों शामिल हैं
- 4 base speakers और कई reference speakers के संयोजन में reference tone color clone करके कई languages और accents में speech generate की गई
- style control evaluation में base speaker model और Microsoft TTS SSML से विभिन्न styles का 1K sample corpus बनाया गया, फिर उसे reference tone color में convert किया गया
- emotion, accent, rhythm, pauses और intonation अच्छी तरह सुरक्षित रहे
- दुर्लभ मामलों में emotion थोड़ा neutral हो गया
- किसी खास वाक्य के tone color embedding vector को उसी base speaker के अलग-अलग emotion वाले कई वाक्यों से निकाले गए औसत vector से बदलने पर यह समस्या कम हुई
- cross-lingual cloning, MSML dataset में न होने वाली भाषाओं पर near zero-shot तरीके से काम करती है
- reference speaker की भाषा MSML dataset में न हो तब भी reference speaker की tone color clone की जा सकती है
- generation की भाषा MSML dataset में न हो तब भी, अगर base speaker TTS उस भाषा को support करता है, तो reference tone color में वह भाषा बोली जा सकती है
- लेकिन उस भाषा के लिए base speaker आवश्यक है
- speed experiments में optimized OpenVoice ने base speaker model और tone converter सहित single A10G GPU पर 12× real-time performance हासिल की
- 1 सेकंड speech generation में 85ms लगता है
- GPU usage analysis के अनुसार ऊपरी सीमा लगभग 40× real-time मानी गई, लेकिन यह सुधार भविष्य के काम के लिए छोड़ा गया है
- IPA का उपयोग cross-lingual tone conversion में महत्वपूर्ण है
- IPA भाषाओं के बीच एक unified phoneme dictionary है, जिससे flow layer language-neutral representation बना सकता है
- दूसरे phoneme dictionary वाले प्रयोगों में training में शामिल न रही भाषाओं के कुछ phonemes का गलत उच्चारण करने की प्रवृत्ति दिखी
- input audio सही होने पर भी output audio में समस्या आ सकती है या वह non-native speaker जैसा सुनाई दे सकता है
सार्वजनिक सामग्री और उपयोग की स्थिति
- OpenVoice ने research reproducibility और आगे के शोध के लिए source code और trained models जारी किए हैं
- qualitative results OpenVoice demo पर देखे जा सकते हैं
- विस्तृत demos इन श्रेणियों में बँटे हैं
- सार्वजनिक रिलीज़ से पहले internal version मई 2023 से अक्टूबर 2023 तक दुनिया भर के users द्वारा कई करोड़ बार इस्तेमाल किया गया
- MyShell.ai ने OpenVoice को त्वरित voice cloning backend के रूप में इस्तेमाल किया, और उस platform पर users में सैकड़ों गुना वृद्धि देखी
- वर्तमान में OpenVoice, MyShell.ai के voice engine के रूप में दुनिया भर में 20 लाख से अधिक लोगों तक उपलब्ध है
1 टिप्पणियां
Hacker News की राय
लेखकों ने इसे तुरंत आज़माना आसान बनाया, यह अच्छी बात है, लेकिन सामान्य voice cloning उपयोग के लिए यह ठीक से फिट नहीं बैठा
मैंने एक किताब पर Wikipedia का पहला पैराग्राफ पढ़वाया और अगला वाक्य जनरेट कराया, लेकिन कानों को यह साफ़ तौर पर कंप्यूटर-जनरेटेड आवाज़ जैसी लगा
ऑडियो सैंपल: https://storage.googleapis.com/dalle-party/sample.mp3
क्लोन की गई आवाज़(mp3 conversion): https://storage.googleapis.com/dalle-party/output_en_default...
मैंने बस
pipसे package install किया, ऑडियो सैंपल डाला औरdemo_part1.ipynbचलाया; laptop 3070 Ti / 8GB पर यह लगभग तुरंत पूरा हो गयासोच रहा हूं कि original voice data और ज़्यादा डालने पर यह कितना बेहतर होगा
सोच रहा हूं कि क्या इसे, या Eleven Labs को इस्तेमाल करके Android phone के TTS में plug करने के लिए voice model बनाया जा सकता है
मेरे एक दोस्त का larynx paralyzed है, और वह अक्सर phone या छोटे laptop में type करके communicate करता है
अगर पुरानी recordings से उसकी आवाज़ लेकर थोड़ी-बहुत “अपनी” आवाज़ वापस दी जा सके, तो उसे बहुत अच्छा लगेगा
हालांकि Android के लिए कोई solution है या नहीं, यह पक्का नहीं है
मैंने हाल ही में ALS patients के लिए Google द्वारा बनाया गया custom voice video देखा था, लेकिन online ढूंढ नहीं पाया
Android में अभी custom voice generation उपलब्ध नहीं है, लेकिन latest iOS 17 personalized voice generation support करता है
ModelTalker [3] speech impairments वाले लोगों के लिए custom voice generation का long-term research project लगता है, और इसका TTS Android support करता दिखता है, इसलिए यह एक और विकल्प हो सकता है
[0] https://www.acapela-group.com/
[1] https://www.speakunique.co.uk/
[2] https://vocalid.ai/
[3] https://www.modeltalker.org/
मैंने Google में TTS में योगदान दिया है और Android side पर भी काम किया है, जबकि iOS में यह feature built-in है
“Apple ने अभी जो launch किया है” जितना strong कोई Google product manager नहीं होता, इसलिए यह उल्टा एक hopeful sign भी हो सकता है
मैं अभी cross-platform on-device inference पर काम कर रहा हूं और GitHub पर FONNX देख सकते हैं; यह उन 100 चीज़ों में से एक है जो कुछ समय तक दिमाग में बनी रहेंगी, तो time मिला तो contact करूंगा
Edit: क्या keyboard और “speak” button वाला, Eleven Labs API call करने वाला एक Android app try करने लायक होने के लिए पर्याप्त होगा?
GitHub: https://github.com/myshell-ai/OpenVoice
checkpoints: hxxps://myshell-public-repo-hosting.s3.amazonaws.com/checkpoints_1226.zip
Amazon पर hosted zip file के सीधे link से मुझे असहजता होती है, इसलिए checkpoint link को निष्क्रिय कर दिया
file के अंदर क्या है, यह भी review नहीं किया
checkpoints को लेकर मुझे कोई असहजता नहीं है और मैं security theater भी नहीं करूंगा
https://github.com/myshell-ai/OpenVoice?tab=readme-ov-file#i... से
https://myshell-public-repo-hosting.s3.amazonaws.com/checkpo... पर जाता है
यह paper मुझे पसंद आया
यह कुछ इस तरह पढ़ा जाता है: “हमने ऐसा किया, और हम चाहते हैं कि दूसरे भी कर सकें”
खासकर “Remark on Novelty” section बढ़िया है, जिसमें कहा गया है कि OpenVoice model architecture के sub-modules invent करने की कोशिश नहीं कर रहा, बल्कि voice style और language control को timbre cloning से अलग करने वाला framework ही उसका contribution है
वे अपने contribution को बढ़ा-चढ़ाकर पेश करने की कोशिश नहीं करते
examples: https://research.myshell.ai/open-voice
काफ़ी impressive दिखता है
license Creative Commons Attribution-NonCommercial 4.0 International License है, जो commercial use को रोकता है, और लिखा है कि MyShell यह detect कर सकता है कि audio OpenVoice से generated है या नहीं, watermark हो या न हो
तो फिर यह “open” नहीं है, और इससे पैसे भी नहीं कमा सकते, है ना?
code देख सकते हैं, इस्तेमाल कर सकते हैं, और जितना चाहें modify कर सकते हैं, इसलिए मुझे यह काफ़ी open लगता है
non-commercial license की परवाह न करने वाले scammers तो ज़ाहिर है कर सकते हैं
इसका ज़्यादा प्रचार नहीं हुआ है और पता नहीं Apple अभी भी इसे develop कर रहा है या नहीं, लेकिन iOS में Personal Voice नाम का voice cloning feature है
अपनी आवाज़ से train करने में करीब 15 मिनट लगते हैं, और locked state में on-device process होने में कुछ घंटे लगते हैं
इसे phone calls और FaceTime में इस्तेमाल किया जा सकता है, और शायद दूसरी जगहों पर भी संभव हो
अच्छा होगा अगर इसे सामान्य TTS में भी इस्तेमाल किया जा सके
phone या FaceTime में इस्तेमाल हो सकता है—इस वजह से यह speech-to-speech conversion जैसा लग सकता है, लेकिन असल में यह सिर्फ TTS के लिए है
क्योंकि यह speech-to-speech conversion नहीं है, इसलिए हकलाने जैसी विशेषताएँ, intonation जैसी असली आवाज़ जैसा महसूस कराने वाली cues बरकरार नहीं रख पाता
कुछ दिन पहले UK के बड़े high-street banks में से एक को phone किया था, और वे अब भी अपने बेवकूफाना “मेरी आवाज़ ही मेरा password है” program में enroll करने की सलाह दे रहे थे
AI जिस स्तर तक पहुँच चुका है, उसे देखते हुए यह बस लापरवाही जैसा लगता है
उन्होंने मुझसे कुछ सवालों के जवाब देने को कहा, फिर बताया कि अभी-अभी मुझे voice identification program में register कर दिया गया है
अब उसे cancel करवाना मेरी to-do list में एक और काम बन गया है
लगता है जैसे हर company सबसे मूर्ख लोगों को management roles में promote करती है
voice cloning के अनैतिक और आपराधिक उपयोग legitimate उपयोगों से कहीं ज़्यादा होंगे—मेरा पहला विचार यही था, और अब भी यही है
आप अपनी असली आवाज़ इस्तेमाल किए बिना YouTube videos बना सकते हैं, फिर भी वह personal accent और emphasis बनाए रख सकते हैं जो TTS AI आवाज़ें नहीं कर पातीं
या इसे indie game development में भी इस्तेमाल किया जा सकता है
basic voice acting सीखकर awkwardness कम की जा सकती है, और कई आवाज़ों में सभी characters को खुद perform किया जा सकता है
YouTube लोगों को original creator की आवाज़ में localized भाषाएँ सुनने देगा
हमें बस आवाज़ को authentication method के रूप में स्वीकार नहीं करना चाहिए
सबसे आम उपयोग शायद voice actors के बिना programmatically art और content बनाना होगा
जब video या 3D model pipelines और frame-by-frame conversion को इतना बेहतर बना लिया जाएगा कि वे realistic दिखें, तो actors की ज़रूरत भी काफी हद तक खत्म हो सकती है
कुछ banks phone करते समय voice authentication इस्तेमाल करते हैं, और इससे बाहर निकलने के लिए आपको खुद request करनी पड़ती है