உலாவியில் (Browser) OpenVoice V2-ஐ இயக்குதல்

Timeline Studio-விற்காக நான் ஒரு உள்ளூர் (local), பன்மொழி குரல்-நகலெடுக்கும் (voice-cloning) பணிப்பாய்வை (workflow) உருவாக்கியுள்ளேன். அனைத்தும் உலாவியிலேயே இயங்குவதால், எந்தவொரு ஆடியோ தரவுகளோ அல்லது குறிப்புப் பதிவுகளோ (reference recordings) உங்கள் சாதனத்தை விட்டு வெளியேறாது. இது உங்கள் தரவைத் தனிப்பயனாக்கவும் (private) மற்றும் வேகமாகவும் வைத்திருக்க உதவுகிறது.

இந்த அமைப்பு FP16 ONNX, WebGPU மற்றும் IndexedDB ஆகியவற்றைப் பயன்படுத்தி OpenVoice V2-ஐ இயக்குகிறது.

பணிப்பாய்வு எவ்வாறு செயல்படுகிறது

  • ஒரு மொழியையும் அடிப்படை குரலையும் தேர்ந்தெடுக்கவும்.
  • மூல உரையை (source speech) உருவாக்கவும்.
  • ஒரு குறிப்பு குரலை (reference voice) பதிவேற்றவும் அல்லது பதிவு செய்யவும்.
  • பேச்சாளரின் உட்பொதிவுகளை (speaker embeddings) பிரித்தெடுக்கவும்.
  • தொனி-நிற மாற்றத்தை (tone-color conversion) இயக்கவும்.
  • முடிவை முன்னோட்டம் பார்த்துச் சேமிக்கவும்.

தொழில்நுட்ப விவரங்கள்

இந்த எஞ்சின் இரண்டு பகுதிகளாகப் பிரிக்கப்பட்டுள்ளது: ஒரு WASM-அடிப்படையிலான குறிப்பு என்கோடர் (reference encoder) மற்றும் WebGPU மூலம் இயங்கும் ஒரு கன்வெர்ட்டர் (converter). WebGPU தோல்வியடைந்தால், கன்வெர்ட்டர் WASM-க்கு மாறும், இதனால் அனைவரும் இதைப் பயன்படுத்த முடியும்.

தயாரிப்பு மாதிரிக்காக (production model) நான் FP16-ஐத் தேர்ந்தெடுத்தேன். FP8 உள்ளது, ஆனால் உலாவியின் ஆதரவு இன்னும் நிலையற்றதாக உள்ளது. இன்று வேகம் மற்றும் ஆடியோ தரம் ஆகியவற்றின் சிறந்த கலவையை FP16 வழங்குகிறது.

UI மென்மையாக இருப்பதை உறுதி செய்ய, முழுமையான இன்ஃபரன்ஸ் பாதையையும் (inference path) ஒரு Web Worker-க்குள் மாற்றினேன். இது அதிகப்படியான செயலாக்கத்தின் போது உலாவியின் செயல்பாட்டை முடங்குவதைத் (freezing) தடுக்கிறது. அமைப்பைக் குறைக்காமல் ஆடியோ தரவை இடமாற்றம் செய்ய நான் மாற்றத்தக்க (transferable) ArrayBufferகளைப் பயன்படுத்துகிறேன்.

ஆடியோ தர நிலைகள்

  • 22,050 Hz-க்கு ரீசாம்பிள் (Resample) செய்யவும்.
  • மாற்றத்திற்காக STFT-ஐப் பயன்படுத்தவும்.
  • RMS செயல்பாட்டைப் பயன்படுத்தி tails பகுதிகளைத் தானாகவே சுத்தம் செய்யவும்.
  • அதிக ஒலியளவில் clipping ஏற்படுவதைத் தவிர்க்க சிக்னலை soft-limit செய்யவும்.

சேமிப்பு (Storage)

நான் பேச்சாளர் சுயவிவரங்களை (speaker profiles) IndexedDB-இல் சேமிக்கிறேன், இது என்கோடரை மீண்டும் இயக்காமலேயே பல்வேறு மொழிகளில் ஒரு குரலை மீண்டும் பயன்படுத்த அனுமதிக்கிறது.

நான் ஸ்மார்ட் கேச்சிங் (smart caching) வசதியையும் சேர்த்துள்ளேன். மாதிரி Hugging Face அல்லது ModelScope இலிருந்து இணையாகப் பதிவிறக்கம் செய்யப்படுகிறது; உலாவியின் கேச் (cache) நிரம்பிவிட்டால், பிழையைத் தருவதற்குப் பதிலாக அமைப்பு நினைவகத்திலிருந்து (memory) மாதிரியை இயக்கும்.

இந்தத் திட்டம் ஒரு ONNX மாதிரியை விட மேலானது—இது மாதிரி விநியோகம் (model delivery), வன்பொருள் ஃபால்பேக் (hardware fallback) மற்றும் உள்ளூர் தரவு நிலைத்தன்மை (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