wav2lipで、人物動画の口を音声に合わせて動かす

1.はじめに

 前回、1枚の顔画像を音声から動かすwav2lipという技術をご紹介しました。そうした中で今回ご紹介するのは、その動画版です。

*この論文は、2020.8に提出されました。

2.wav2lipとは?

 人物動画の口を音声に合わせて動かす技術は以前から色々なものが提案されて来ましたが、学習に使用した話者の音声と動画を使えば完成度の高い動画が生成できるものの、不特定多数の話者の音声と動画を使用すると不具合が発生するため、話者毎に追加の学習が必要でした。

 そこで提案されたのが wav2lip で、その概要を下記に示します。左側の四角で囲まれた部分は、音声に連動させて人物動画の口を動かす LipGAN の学習済み Generatorです。この部分だけでは学習した話者にしか使えないため、ブラッシュアップを行います。

 ブラッシュアップでは、音声入力と生成動画の同期差(Sync loss)の低減と、オリジナル動画と生成動画の視覚品質差の低減(Visual Quality Discriminator)によってGeneratorのパラメータを最適化します。これによって、不特定多数の話者の音声と動画に対しても完成度の高い動画が生成できるようになります。

3.コード

 コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンク」をクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。

 まず、セットアップを行います。

 

 inference.py で人物の口を音声で動かす動画を作成します。videoで動画の指定、audioで音声の指定、chinで顎の位置の指定(顎が長いほど数値を大きくします)します。

 自分で用意したファイルを使う場合は、動画はvideoフォルダに、音声はaudioフォルダに、事前にアップロードしておいて下さい。

 

 下記ブロックを実行すると、作成した動画をダウンロードします。

 

 もう1つやってみましょうか。今度は、videoをkoike.mp4、audioをtenki.wav、chinを10の設定で実行します。

 割と自然な感じで口元を音声に連動させてくれます。

 では、また。

(オリジナルgithub)https://github.com/Rudrabha/Wav2Lip

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

アバター

ディープラーニング・エンジニアを趣味でやってます。E資格ホルダー。 好きなものは、膨大な凡ショットから生まれる奇跡の1枚、右肩上がりのワクワク感、暑い国の新たな価値観、何もしない南の島、コード通りに動くチップ、完璧なハーモニー、仲間とのバンド演奏、数えきれない流れ星。