cedro-blog

wav2lipで、1枚の顔画像を音声から動かす

1.はじめに

 今回ご紹介するのは、ml4aというPythonライブラリに含まれている、定番の「1枚の顔画像を音声から動かす」 wav2lip という技術です。

2.ml4aとは?

 ml4aは、機械学習でアートを作成するためのPythonライブラリで、人気の高い深層学習のモデルを簡単なAPIで動かすことができます。

 例えば、実写をアニメ化する Cartoonization、実写を悪夢に変換する deepdream、実写をスケッチに変換する photosketch、絵のスタイル転送する style_transfer、画像を生成する styleGAN、そして wav2lip など様々なモデルを簡単なAPIで動かすことが出来ます。

 それでは、早速コードを動かしてみましょう。

3.コード

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

 まず、セットアップを行います。ml4aをインストールして、ライブラリを3つインポートするだけで準備は完了です。残りは、サンプルデータのダウンロードとサンプリング・レートを自動チェックしたかったので関数を1つ定義しているだけです。

 さあ、後は image に顔画像ファイルのpath(jpg or png)を、audio に音声ファイルのpath(wav)を設定すれば、一発で動きます。簡単!

 作成した動画を再生します。

https://cedro3.com/wp-content/uploads/2021/12/03_output-7.mp4

 もう1つやってみましょう。今度は、image=’./image/01.jpg’, audio=’./tenki.wav’ と設定します。

https://cedro3.com/wp-content/uploads/2021/12/01_output-7.mp4

 口は音声と連動して自然な感じで動いています。

 では、また。

(オリジナルgithub : https://github.com/ml4a/ml4a