Kuendesha OpenVoice V2 kwenye Kivinjari
Nimeunda mfumo wa kazi wa ndani na wa lugha nyingi wa kunakili sauti (voice-cloning) kwa ajili ya Timeline Studio. Kila kitu kinaendeshwa ndani ya kivinjari, hivyo hakuna data ya sauti au rekodi za marejeleo zinazotoka kwenye kifaa chako. Hii inafanya data yako kuwa ya siri na ya haraka.
Mfumo huu unaendesha OpenVoice V2 kwa kutumia FP16 ONNX, WebGPU, na IndexedDB.
Jinsi mfumo wa kazi unavyofanya kazi
- Chagua lugha na sauti ya msingi.
- Tengeneza hotuba ya chanzo.
- Pakia au rekodi sauti ya marejeleo.
- Toa embeddings za mzungumzaji.
- Endesha ubadilishaji wa rangi ya sauti (tone-color conversion).
- Angalia kiolezo (preview) na uhifadhi matokeo.
Maelezo ya kiufundi
Injini imegawanyika katika sehemu mbili: kiongezi cha marejeleo (reference encoder) kinachotegemea WASM na mbadilishaji (converter) unaochochewa na WebGPU. Ikiwa WebGPU itafeli, mbadilishaji utatumia WASM ili kila mtu aweze kuitumia.
Nilichagua FP16 kwa ajili ya modeli ya uzalishaji. FP8 ipo, lakini msaada wa kivinjari bado haujatulia. FP16 inatoa mchanganyiko bora zaidi wa kasi na ubora wa sauti kwa sasa.
Ili kuweka UI iwe laini, nilihamisha njia nzima ya utambuzi (inference path) ndani ya Web Worker. Hii inazuia kivinjari kuganda wakati wa usindikaji mzito. Ninatumia ArrayBuffer zinazoweza kuhamishwa (transferable) ili kusafirisha data ya sauti bila kupunguza kasi ya mfumo.
Hatua za ubora wa sauti
- Badilisha kiwango cha sampuli (resample) hadi 22,050 Hz.
- Tumia STFT kwa ajili ya ubadilishaji.
- Safisha sehemu za mwisho (tails) kiotomatiki kwa kutumia shughuli ya RMS.
- Weka kikomo laini (soft-limit) kwenye ishara ili kuepuka kukatika kwa sauti (clipping) katika sauti kubwa.
Uhifadhi
Ninahifadhi wasifu wa mzungumzaji kwenye IndexedDB, hali inayokuruhusu kutumia tena sauti katika lugha mbalimbali bila kuendesha tena kiongezi (encoder).
Pia nimeongeza mfumo wa akiba (caching) wa akili. Modeli inapakuliwa kwa wakati mmoja kutoka Hugging Face au ModelScope; ikiwa akiba ya kivinjari itajaa, mfumo utaendesha modeli kutoka kwenye kumbukumbu (memory) badala ya kutoa kosa (error).
Mradi huu ni zaidi ya modeli ya ONNX—ni mfumo kamili wa uwasilishaji wa modeli, mbadala wa vifaa (hardware fallback), na uhifadhi wa kudumu wa data ya ndani.
Repository: https://github.com/MartinDelophy/ai-video-editor
Uchambuzi kamili wa kiufundi: https://dev.to/martindelophy/running-openvoice-v2-in-the-browser-with-fp16-onnx-webgpu-and-indexeddb-50kl
Jumuiya ya hiari ya kujifunza: https://t.me/GyaanSetuAi
