どうも、総合職で働いている理系出身文系職です。
社内で様々な施策が動いており、先輩が担当していた動画作成のプロジェクトがアリました。
プロモーション動画をマネジメントに確認していただいたところ、こんな指摘が出ました
「なんか口パクが不自然じゃない?直せないのこれ?」
前提条件
まず、リップシンクの元は静止画でした。リアルの人間の画像を用いています。
音声素材は分離して貰えなかったのでプロモーション動画の音声部分を使うことになりました。これにはBGMなどが入っているものになります。同時に複数人喋る場面はなかったのが救いでした。
急な角度からのお仕事スタート
というわけで口パクの不自然さを直すために技術調査を始めていきます。最近流行りの生成AIなんかもありますが、わざわざ難しいことをしないで済んだほうがいいということもあります。調べていく中で口パクの技術的用語(というか英語)がリップシンクという事がわかり、この用語を軸に進めていくことになりました。
最初の技術選定 Web2lip
最初に調べてできたのはWeb2lipでした。ひとまずこの技術を使ってみます.これも生成AIっちゃ生成AIですがちょっと古めの技術(といっても2年前くらい?)を使って見ました。
実際に生成を行ったのですが、私の環境では口周りの描画に相当な違和感が発生することになりました。
口パクは行っているのですが口の周りだけ肌の色がおかしくなり、人間らしくない不自然な挙動になりました。
Wav2lipは口の場所を検出してその部分だけを生成するため違和感が発生しているものという認識になっています。
もしかしたら使用した音声がクリアではないのが原因かと考えボーカル抽出などで話し声をクリアにしても多少良くなっただけで全体的な精度はあまり代わりませんでした。
二番目の技術選定 CrazyTalk
別に実装する必要はなくないか?ということで既存サービスも試してみましたがこれは失敗でした。というのもこのCrazyTalk、アニメーション用リップシンクで今回使いたいリアル画像には全く合いませんでした。
口の部分だけアニメになるのでもはやギャグみたいな動画が出来上がってしまいました。
# 三番目の技術選定 SadTalker
最終的に落ち着いたのはこのSadTalkerでした。これはStable diffusionの拡張機能でリップシンク動画を作成できます。仕組みとしては、仕組みとしては一番目に使ったWav2lipでリップシンク動画を作成し、その画像のフレーム一枚一枚を入力としてStable diffusionで画像を再生成するというもの(と認識している。間違っていたら教えてください)です。
Wav2lipのみでは違和感があった動画もStable diffusionで再生成し画像の違和感部分を修正することができました。
実はWav2lipの時点で不自然ながらも口の動きはリップシンクされていて、肌の色や口の形が歪になってしまっていました。この部分は全体を再生成して均すことで綺麗にできたのかなと感じています。
まとめ
リップシンクというニッチな技術でも様々な技術がありました。条件が合わずそもそも試さなかったものもありましたがなんとなく全体感が掴めたのかなと感じました。そして、生成AIのポテンシャルの高さにも驚きました。汎用AIモデルの名前は伊達ではないと感じました。
シンギュラリティって話で言えば、私ではフォトショップ使ってここまでのことできないし、全然人間より有能じゃないか?なんて考えたりしました。切ない。