ब्राउझरमध्ये OpenVoice V2 चालवणे

मी Timeline Studio साठी एक स्थानिक (local), बहुभाषिक व्हॉइस-क्लोनिंग वर्कफ्लो तयार केला आहे. सर्व काही ब्राउझरमध्ये चालते, त्यामुळे कोणताही ऑडिओ डेटा किंवा संदर्भ रेकॉर्डिंग तुमच्या डिव्हाइसच्या बाहेर जात नाही. यामुळे तुमचा डेटा खाजगी आणि वेगवान राहतो.

ही प्रणाली FP16 ONNX, WebGPU आणि IndexedDB सह OpenVoice V2 चालवते.

वर्कफ्लो कसा काम करतो

  • एक भाषा आणि मूळ आवाज (base voice) निवडा.
  • मूळ भाषण (source speech) तयार करा.
  • संदर्भ आवाज (reference voice) अपलोड करा किंवा रेकॉर्ड करा.
  • स्पीकर एम्बेडिंग्स (speaker embeddings) एक्सट्रॅक्ट करा.
  • टोन-कलर कन्व्हर्जन (tone-color conversion) चालवा.
  • निकाल पहा (preview) आणि सेव्ह करा.

तांत्रिक तपशील

हे इंजिन दोन भागांमध्ये विभागलेले आहे: एक WASM-आधारित संदर्भ एन्कोडर (reference encoder) आणि एक WebGPU-चालित कन्व्हर्टर. जर WebGPU अयशस्वी झाले, तर कन्व्हर्टर WASM वर स्विच होतो जेणेकरून प्रत्येकजण त्याचा वापर करू शकेल.

मी प्रोडक्शन मॉडेलसाठी FP16 निवडले आहे. FP8 उपलब्ध आहे, परंतु ब्राउझर सपोर्ट अजून स्थिर नाही. आजच्या काळात FP16 वेग आणि ऑडिओ गुणवत्ता यांचा सर्वोत्तम मेळ देते.

UI स्मूथ ठेवण्यासाठी, मी संपूर्ण इन्फरन्स पाथ (inference path) Web Worker मध्ये हलवला आहे. यामुळे जड प्रोसेसिंग दरम्यान ब्राउझर फ्रीझ होण्यापासून वाचतो. सिस्टमचा वेग कमी न करता ऑडिओ डेटा ट्रान्सफर करण्यासाठी मी transferable ArrayBuffers वापरतो.

ऑडिओ गुणवत्तेचे टप्पे

  • 22,050 Hz पर्यंत रिसॅम्पल करा.
  • कन्व्हर्जनसाठी STFT लागू करा.
  • RMS ॲक्टिव्हिटी वापरून 'tails' आपोआप स्वच्छ करा.
  • उच्च आवाजात क्लिपिंग टाळण्यासाठी सिग्नल सॉफ्ट-लिमिट करा.

स्टोरेज

मी स्पीकर प्रोफाइल्स IndexedDB मध्ये साठवतो, ज्यामुळे तुम्ही एन्कोडर पुन्हा न चालवता विविध भाषांमध्ये एकच आवाज पुन्हा वापरू शकता.

मी स्मार्ट कॅशिंग देखील जोडले आहे. मॉडेल Hugging Face किंवा ModelScope वरून समांतर (parallel) डाउनलोड होते; जर ब्राउझर कॅशे भरला, तर सिस्टम एरर देण्याऐवजी मेमरीमधून मॉडेल चालवते.

हा प्रकल्प केवळ एक ONNX मॉडेल नाही—हे मॉडेल डिलिव्हरी, हार्डवेअर फॉलबॅक आणि स्थानिक डेटा पर्सिस्टन्ससाठी (local data persistence) एक पूर्ण प्रणाली आहे.

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