ブラウザでOpenVoice V2を実行する

Timeline Studio向けに、ローカルで動作する多言語ボイスクローニングのワークフローを構築しました。すべてがブラウザ内で実行されるため、音声データやリファレンス録音がデバイスから外部に送信されることはありません。これにより、プライバシーが守られ、高速な処理が可能になります。

このシステムは、FP16 ONNX、WebGPU、およびIndexedDBを使用してOpenVoice V2を実行します。

ワークフローの仕組み

  • 言語とベースとなる音声を選択します。
  • ソース音声を生成します。
  • リファレンス音声をアップロードまたは録音します。
  • スピーカー・エンベディングを抽出します。
  • トーンカラー変換を実行します。
  • 結果をプレビューして保存します。

技術的な詳細

エンジンは、WASMベースのリファレンス・エンコーダーと、WebGPUを活用したコンバーターの2つの部分に分かれています。WebGPUが利用できない場合は、コンバーターがWASMにフォールバックするため、誰でも利用可能です。

本番用モデルにはFP16を採用しました。FP8も存在しますが、ブラウザのサポートがまだ安定していません。現在、FP16は速度と音質のバランスが最も優れています。

UIの滑らかさを維持するため、推論パス全体をWeb Workerに移動しました。これにより、重い処理の最中にブラウザがフリーズするのを防ぎます。また、システムの速度を低下させずに音声データを転送するために、transferable ArrayBufferを使用しています。

音質向上のためのステップ

  • 22,050 Hzにリサンプリングします。
  • 変換のためにSTFTを適用します。
  • RMSアクティビティを使用して、末尾を自動的にクリーンアップします。
  • 高音量時のクリッピングを防ぐため、信号にソフトリミッターを適用します。

ストレージ

スピーカー・プロファイルはIndexedDBに保存されるため、エンコーダーを再実行することなく、異なる言語間で同じ声を再利用できます。

スマートキャッシング機能も追加しました。モデルはHugging FaceまたはModelScopeから並列でダウンロードされます。ブラウザのキャッシュがいっぱいになった場合でも、エラーを出す代わりにメモリからモデルを実行します。

このプロジェクトは単なる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