「音声と画像の合成アニメーションを生成したい」
「SadTalkerのGUIツールが欲しい」
このような場合には、この記事の内容が参考になります。
この記事では、SadTalkerのGUIツールをインストールする方法を解説しています。
本記事の内容
- SadTalkerとは?
- SadTalker GUIツールのシステム要件
- SadTalker GUIツールのインストール
- SadTalker GUIツールの動作確認
それでは、上記に沿って解説していきます。
SadTalkerとは?
SadTalkerとは、顔画像と音声からアニメーションを作成するAI技術です。
そのアニメーションは、次のような動画になります。
これは、たった1枚の画像と音声ファイルから作成されています。
このような技術は、以前からもありました。
Wav2LipやMakeItTalkなどは、聞いたことがあるかもしれません。
それらと比較して、SadTalkerはワンランク上の次元です。
出来上がりのアニメーションが、他よりも自然になっています。
以下の比較動画を見れば、そのことがよくわかるでしょう。
「Ours」のSadTalkerは、自然で違和感を感じません。
他は大なり小なり不自然さを感じてしまいます。
SadTalkerについて、もっと知りたい場合は公式ページをご覧ください。
また、Hugging Face上でDemoが公開されています。
上記Demoで画像と音声をUPすれば、実際にアニメーションを作成できます。
ただし、サーバーが混んでいる可能性があります。
ここでは、このDemoをSadTalke GUIツールと呼びます。
これをローカル環境にインストールできれば、待たされることなく自由に利用できます。
以上、SadTalkerについて説明しました。
次は、SadTalker GUIツールのシステム要件を説明します。
SadTalker GUIツールのシステム要件
SadTalker GUIツールのシステム要件を説明します。
システム要件は、以下の2点です。
- PyTorch
- Gradio
PyTorchは、GPU版をインストールしましょう。
PyTorch 1系か2系かで迷うかもしれません。
公式は、1系で検証を行っています。
でも、2系でも問題ありません。
検証済みです。
また、GradioはGUIとして機能させるために必要なライブラリになります。
システム要件の段階では、PyTorchのインストールだけは済ませておきます。
以上、SadTalker GUIツールのシステム要件を説明しました。
次は、SadTalker GUIツールのインストールを説明します。
SadTalker GUIツールのインストール
SadTalker GUIツールのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
そして、システム要件であるGPU版PyTorchをインストール済という状況です。
このような状況において、次の手順でSadTalker GUIツールのインストールを進めます。
- SadTalker GUIツールの取得(Hugging Faceから)
- requirements.txtを使った一括インストール
それぞれを下記で説明します。
SadTalker GUIツールの取得(Hugging Faceから)
上記ページでファイルを確認できます。
これらをダウンロードするのに、huggingface_hubを利用します。
huggingface_hubを利用すると、自動的にファイルをダウンロードしてくれます。
huggingface_hubをインストールできたら、次のコードを実行します。
from huggingface_hub import snapshot_download snapshot_download( repo_id="vinthony/SadTalker", repo_type="space", revision="main", cache_dir="./")
上記コードを実行すると、ダウンロード処理が開始されます。
ダウンロードは、すぐに終わります。
処理が完了すると、ディレクトリ上に「spaces–vinthony–SadTalker」を確認できます。
そして、「snapshots」以下にあるファイル・ディレクトリをコピーします。
「ed7bb0bf46ff0c3f197901a11ef1e1d9f408994a」は、リポジトリのバージョンです。
バージョンが更新されれば、この値も変わってきます。
この長たらしいディレクトリより下のモノをコピーしましょう。
コピーしたファイルは、コンテンツルートに保存します。
requirements.txtを使った一括インストール
コンテンツルートには、コピーしたrequirements.txtが存在しています。
requirements.txt
torch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 numpy==1.21.6 face_alignment==1.3.5 imageio==2.19.3 imageio-ffmpeg==0.4.7 librosa==0.8.0 numba resampy==0.3.1 pydub==0.25.1 scipy==1.5.3 kornia==0.6.8 tqdm yacs==0.1.8 pyyaml joblib==1.1.0 scikit-image==0.19.3 basicsr==1.4.2 facexlib==0.2.5 dlib-bin gfpgan TTS==0.13.0
requirements.txtに次の修正を加えます。
- PyTorch関連(torch、torchvision、torchaudio)を対象外にする
- Gradio(gradio)を追加する
- バージョン指定を外す
バージョン指定のままだと、おそらくインストール途中でエラーになるはずです。
このようなバージョン指定は、個人的にはよろしくないと考えています。
よほどのことがない限り、バージョン指定は止めた方が無難です。
これらの修正を実施した結果、requirements.txtは次のようになります。
#torch==1.13.1 #torchvision==0.14.1 #torchaudio==0.13.1 numpy face_alignment imageio imageio-ffmpeg librosa numba resampy pydub scipy kornia tqdm yacs pyyaml joblib scikit-image basicsr facexlib dlib-bin gfpgan TTS gradio
変更後のrequirements.txtを利用して、必要なモノを一気にインストールします。
実行するのは、次のコマンドです。
pip install -r requirements.txt
処理完了までは、そこそこ時間がかかります。
処理が完了したら、SadTalker GUIツールのインストールは終了です。
以上、SadTalker GUIツールのインストールを説明しました。
次は、SadTalker GUIツールの動作確認を説明します。
SadTalker GUIツールの動作確認
SadTalker GUIツールの動作確認を行います。
コンテンツルートに配置したapp.pyを実行すれば、SadTalker GUIツールを起動できます。
初回起動時は、ファイルのダウンロードが実施されます。
しばらく待つことになります。
処理が完了したら、コンソールに以下のように表示されます。
Running on local URL: http://127.0.0.1:7860 To create a public link, set `share=True` in `launch()`.
Chromeなどのブラウザで「http://127.0.0.1:7860」にアクセスします。
Hugging Face上のデモと同じような画面を確認できます。
画像と音声が用意できるなら、それをアップロードしましょう。
とりあえず、動作を確認するならサンプルを利用します。
「japanese.wav」の行を選択します。
そうすると、画像や音声などが自動的に設定されます。
あとは、「Generate」ボタンを押すだけです。
処理が完了すると、顔部分で「crop」された動画が表示されます。
以上、SadTalker GUIツールの動作確認を説明しました。