ब्राउज़र में OpenVoice V2 चलाना

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

यह सिस्टम OpenVoice V2 को FP16 ONNX, WebGPU और IndexedDB के साथ चलाता है।

वर्कफ़्लो कैसे काम करता है

  • एक भाषा और एक बेस वॉयस चुनें।
  • सोर्स स्पीच जेनरेट करें।
  • एक रेफरेंस वॉयस अपलोड करें या रिकॉर्ड करें।
  • स्पीकर एम्बेडिंग्स (speaker embeddings) निकालें।
  • टोन-कलर कन्वर्जन चलाएं।
  • परिणाम का प्रीव्यू देखें और उसे सेव करें।

तकनीकी विवरण

इंजन दो भागों में विभाजित है: एक WASM-आधारित रेफरेंस एनकोडर और एक WebGPU-संचालित कन्वर्टर। यदि WebGPU विफल हो जाता है, तो कन्वर्टर WASM पर फॉलबैक (fallback) हो जाता है ताकि हर कोई इसका उपयोग कर सके।

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

UI को स्मूथ रखने के लिए, मैंने पूरे इन्फरेंस पाथ (inference path) को Web Worker में स्थानांतरित कर दिया है। इससे भारी प्रोसेसिंग के दौरान ब्राउज़र के फ्रीज़ होने की समस्या नहीं होती है। मैं सिस्टम को धीमा किए बिना ऑडियो डेटा भेजने के लिए ट्रांसफर करने योग्य ArrayBuffers का उपयोग करता हूँ।

ऑडियो गुणवत्ता के चरण

  • 22,050 Hz पर रीसैंपल करें।
  • कन्वर्जन के लिए STFT लागू करें।
  • RMS एक्टिविटी का उपयोग करके टेल (tails) को स्वचालित रूप से साफ करें।
  • हाई वॉल्यूम पर क्लिपिंग से बचने के लिए सिग्नल को सॉफ्ट-लिमिट करें।

स्टोरेज

मैं स्पीकर प्रोफाइल को IndexedDB में स्टोर करता हूँ, जिससे आप एनकोडर को दोबारा चलाए बिना विभिन्न भाषाओं में एक ही आवाज़ का पुन: उपयोग कर सकते हैं।

मैंने स्मार्ट कैशिंग भी जोड़ी है। मॉडल Hugging Face या ModelScope से समानांतर (parallel) रूप से डाउनलोड होता है; यदि ब्राउज़र कैश भर जाता है, तो सिस्टम एरर देने के बजाय मेमोरी से मॉडल चलाता है।

यह प्रोजेक्ट केवल एक ONNX मॉडल नहीं है—यह मॉडल डिलीवरी, हार्डवेयर फॉलबैक और लोकल डेटा पर्सिस्टेंस के लिए एक पूर्ण सिस्टम है।

Repository: https://github.com/MartinDelophy/ai-video-editor

Full technical breakdown: https://dev.to/martindelophy/running-openvoice-v2-in-the-browser-with-fp16-onnx-webgpu-and-indexeddb-50kl

Optional learning community: https://t.me/GyaanSetuAi