బ్రౌజర్లో OpenVoice V2ని రన్ చేయడం
నేను Timeline Studio కోసం లోకల్, మల్టీలింగ్వల్ వాయిస్-క్లోనింగ్ వర్క్ఫ్లోను రూపొందించాను. అంతా బ్రౌజర్లోనే రన్ అవుతుంది, కాబట్టి మీ ఆడియో డేటా లేదా రిఫరెన్స్ రికార్డింగ్లు మీ పరికరం నుండి బయటకు వెళ్లవు. ఇది మీ డేటాను ప్రైవేట్గా మరియు వేగంగా ఉంచుతుంది.
ఈ సిస్టమ్ FP16 ONNX, WebGPU మరియు IndexedDBతో OpenVoice V2ని రన్ చేస్తుంది.
వర్క్ఫ్లో ఎలా పనిచేస్తుంది
- ఒక భాషను మరియు బేస్ వాయిస్ను ఎంచుకోండి.
- సోర్స్ స్పీచ్ను జనరేట్ చేయండి.
- రిఫరెన్స్ వాయిస్ను అప్లోడ్ చేయండి లేదా రికార్డ్ చేయండి.
- స్పీకర్ ఎంబెడ్డింగ్స్ను ఎక్స్ట్రాక్ట్ చేయండి.
- టోన్-కలర్ కన్వర్షన్ను రన్ చేయండి.
- ఫలితాన్ని ప్రివ్యూ చేసి సేవ్ చేయండి.
సాంకేతిక వివరాలు
ఈ ఇంజిన్ రెండు భాగాలుగా విభజించబడింది: WASM-ఆధారిత రిఫరెన్స్ ఎన్కోడర్ మరియు WebGPU-పవర్డ్ కన్వర్టర్. ఒకవేళ WebGPU విఫలమైతే, కన్వర్టర్ WASMకి మారుతుంది (fallback), తద్వారా ప్రతి ఒక్కరూ దీనిని ఉపయోగించవచ్చు.
నేను ప్రొడక్షన్ మోడల్ కోసం FP16ని ఎంచుకున్నాను. FP8 అందుబాటులో ఉంది, కానీ బ్రౌజర్ సపోర్ట్ ఇంకా స్థిరంగా లేదు. ప్రస్తుతం వేగం మరియు ఆడియో నాణ్యతకు మధ్య ఉత్తమమైన సమతుల్యతను FP16 అందిస్తుంది.
UI స్మూత్గా ఉండటానికి, నేను మొత్తం ఇన్ఫరెన్స్ పాత్ను Web Workerలోకి మార్చాను. ఇది భారీ ప్రాసెసింగ్ సమయంలో బ్రౌజర్ ఫ్రీజ్ అవ్వకుండా నిరోధిస్తుంది. సిస్టమ్ వేగం తగ్గకుండా ఆడియో డేటాను బదిలీ చేయడానికి నేను ట్రాన్స్ఫరబుల్ ArrayBufferలను ఉపయోగిస్తాను.
ఆడియో నాణ్యత దశలు
- 22,050 Hzకి రీశాంపిల్ చేయండి.
- కన్వర్షన్ కోసం STFTని ఉపయోగించండి.
- RMS యాక్టివిటీని ఉపయోగించి టెయిల్స్ను ఆటోమేటిక్గా క్లీన్ చేయండి.
- అధిక వాల్యూమ్ వద్ద క్లిప్పింగ్ జరగకుండా సిగ్నల్ను సాఫ్ట్-లిమిట్ చేయండి.
స్టోరేజ్
నేను స్పీకర్ ప్రొఫైల్లను IndexedDBలో స్టోర్ చేస్తాను, దీనివల్ల మీరు ఎన్కోడర్ను మళ్లీ రన్ చేయకుండానే వివిధ భాషలలో ఒకే వాయిస్ను తిరిగి ఉపయోగించుకోవచ్చు.
నేను స్మార్ట్ క్యాషింగ్ను కూడా జోడించాను. మోడల్ Hugging Face లేదా ModelScope నుండి సమాంతరంగా (parallel) డౌన్లోడ్ అవుతుంది; ఒకవేళ బ్రౌజర్ క్యాచీ నిండిపోతే, సిస్టమ్ ఎర్రర్ను చూపించకుండా మెమరీ నుండి మోడల్ను రన్ చేస్తుంది.
ఈ ప్రాజెక్ట్ కేవలం ఒక ONNX మోడల్ మాత్రమే కాదు—ఇది మోడల్ డెలివరీ, హార్డ్వేర్ ఫాల్బ్యాక్ మరియు లోకల్ డేటా పర్సిస్టెన్స్ కోసం రూపొందించబడిన ఒక పూర్తి వ్యవస్థ.
రిపోజిటరీ: https://github.com/MartinDelophy/ai-video-editor
పూర్తి సాంకేతిక విశ్లేషణ: https://dev.to/martindelophy/running-openvoice-v2-in-the-browser-with-fp16-onnx-webgpu-and-indexeddb-50kl
ఐచ్ఛిక అభ్యాస సమూహం: https://t.me/GyaanSetuAi_
