הרצת OpenVoice V2 בדפדפן

בניתי תהליך עבודה (workflow) מקומי ורב-לשוני לשכפול קול עבור Timeline Studio. הכל רץ בתוך הדפדפן, כך ששום נתון אודיו או הקלטות ייחוס לעולם לא עוזבים את המכשיר שלך. זה שומר על הפרטיות של הנתונים שלך ומבטיח מהירות.

המערכת מריצה את OpenVoice V2 באמצעות FP16 ONNX, WebGPU ו-IndexedDB.

איך תהליך העבודה עובד

  • בחר שפה וקול בסיס.
  • צור את דיבור המקור.
  • העלה או הקלט קול ייחוס.
  • חלץ embeddings של הדובר.
  • הרץ המרת גוון קול (tone-color conversion).
  • תצוגה מקדימה ושמירת התוצאה.

פרטים טכניים

המנוע מחולק לשני חלקים: reference encoder מבוסס WASM ו-converter מבוסס WebGPU. אם WebGPU נכשל, ה-converter עובר לשימוש ב-WASM כדי שכולם יוכלו להשתמש בו.

בחרתי ב-FP16 עבור מודל הייצור. FP8 קיים, אך התמיכה בדפדפנים עדיין לא יציבה. FP16 מספק כיום את השילוב הטוב ביותר בין מהירות לאיכות שמע.

כדי לשמור על ממשק משתמש (UI) חלק, העברתי את כל נתיב ה-inference לתוך Web Worker. זה מונע מהדפדפן לקפוא בזמן עיבוד כבד. אני משתמש ב-ArrayBuffers ניתנים להעברה (transferable) כדי להעביר נתוני אודיו מבלי להאט את המערכת.

שלבי איכות השמע

  • דגימה מחדש (Resample) ל-22,050 Hz.
  • החלת STFT לצורך המרה.
  • ניקוי זנבות (tails) באופן אוטומטי באמצעות RMS activity.
  • החלת soft-limit על האות כדי למנוע clipping בעוצמות גבוהות.

אחסון

אני שומר פרופילי דוברים ב-IndexedDB, מה שמאפשר לך להשתמש שוב בקול בשפות שונות מבלי להריץ את ה-encoder מחדש.

הוספתי גם caching חכם. המודל מורד במקביל מ-Hugging Face או ModelScope; אם המטמון (cache) של הדפדפן מתמלא, המערכת מריצה את המודל מהזיכרון במקום להציג שגיאה.

הפרויקט הזה הוא יותר מסתם מודל ONNX — זוהי מערכת מלאה להפצת מודלים, fallback לחומרה ושמירת נתונים מקומית.

מאגר (Repository): 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