AI News HubLIVE
站内改写2 分で読了

Show HN: リアルタイムリップシンクアバター – GPUが代わりにスタンドアップミーティングに出席

カメラ強制ポリシーに不満を持つ友人のために開発されたScrumSurvivorは、Wav2Lip技術を用いてリアルタイムでフォトリアルなAIアバターを生成するWindows向けオープンソースアプリ。すべてローカルで動作し、呼吸やまばたきなどの自然な動きを再現。

ソースHacker News AI著者: floozie

数ヶ月前、開発者の友人が不満を訴えました。彼の会社が全内部会議でのカメラオンを義務化したのです。その理由は「エンゲージメントの向上」でしたが、実際には毎日45分間、悪い照明の下で疲れた顔のグリッドを眺め、既にメールで送られたPowerPointを聞かされるだけでした。彼は会議をサボりたいわけではなく、出席し、話しかけられれば応じ、仕事もこなしていました。彼が反対したのは「プレゼンスを強制される」こと――カメラを顔に向けることがエンゲージメントの証拠とされる考え方でした。

彼は何か賢い解決策がないか尋ねました。開発者は週末を費やしてScrumSurvivorを作り上げました。これはオープンソースのWindowsアプリケーションで、Webカメラ映像をリアルタイムでフォトリアルなAIアバターに置き換えます。話すときはWav2Lipが実際の音声に合わせてリップシンクし、沈黙時には呼吸、まばたき、微かな動きを手続き的に生成して、ループしているように見せません。すべてローカルのNVIDIA GPUで動作し、クラウドやサブスクリプションは不要、データはマシンから出ません。

仕組みはシンプルです。カメラとマイクの信号をインターセプトし、処理後にTeamsに送信します。ビデオはOBS仮想カメラ経由で1280×720、25fpsのフレームを提供し、静的な背景写真とアニメーションアバターを合成。オーディオはVB-Audio仮想ケーブルを使い、265ミリ秒の遅延でWav2Lip推論を可能にします。Wav2Lipは80ビンのメルスペクトログラムと96×96の顔領域からリップシンクを生成し、RTX 3050ラップトップGPUで約20ミリ秒で処理。MediaPipeで起動時にベース写真から顔を検出し、以降は固定クロップを使用します。

アイドル状態では、事前録画した短いクリップを再生し、その上に4つの手続き的レイヤー(呼吸、頭部揺れ、まばたき、センサーノイズ)を重ねます。クリップ間の遷移はスムーズステップクロスフェードで、視覚的なカットはありません。友人は数ヶ月使用していますが、誰も気づいていません。

音声同期が最大の課題でした。Wav2Lipの推論遅延20ミリ秒により、唇が音声に遅れます。対策として、オーディオ出力をビデオ処理レイテンシと同じだけ遅延させるAudioPresentationSchedulerを実装。また、コールドGPU起動時のCUDAカーネルコンパイルによる初回推論の遅延を防ぐため、ウォームアップループで最大20回の推論を実行し、レイテンシが50ミリ秒未満になるまで待機します。残ったバックログはスケジューラが2秒で自動破棄します。

開発者は意図的にクラウド推論やリアルタイム顔置換、他人へのなりすまし機能を実装しませんでした。アバターは常にユーザー本人の写真から生成され、自分自身を模倣するだけです。ScrumSurvivorはMITライセンスで公開されており、Windows 10/11、CUDA対応NVIDIA GPU(最低4GB VRAM)が必要で、セットアップには約1時間かかります。