0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SadTalkerでLipSync(リップシンク)動画を作成する(ドヤッ)

Posted at

LipSync動画作成の背景

まず、モーションAIから説明させてください。この記事を読まれている方はご存知かもしれないが、モーションAIとは、音声データから「発話のリズム・イントネーション」を自動解析し、AIモデルが「口の開閉」「表情の変化」「頭や体の動き」を推定して動画を生成する技術である。

現在、Youtubeなどの動画投稿サイトでモーションAI技術は急速に普及しているようで、DreamFaceやD-ID、HeyGenなどのサービスを使えば、ブラウザ上で顔写真と音声(またはテキスト)をアップロードすることで自動で口の動きやまばたき、表情変化も含めた動画を簡単に生成することができる。

しかし、仕事でLipSync技術を使うことになりそうなので、この技術についてオープンソースを使って深掘りしたいと思う。

オープンソースのSadTalkerとWav2Lip

少し調べたところ、LipSyncで有名なオープンソースにSadTalkerとWav2Lipというものがあるらしい。

SadTalker

  • Wav2Lipより進化した「表情付き」のリップシンクAI
  • 顔画像+音声で自然に目や表情も動く
  • 長時間でもOK(ただし処理時間はかかる)
    👉 https://github.com/OpenTalker/SadTalker

Wav2Lip

  • GitHub公開の有名なリップシンクAI
  • 顔の動画+音声ファイルを入力すると、長時間でも自然な口パクを生成
  • 研究用途だけどYouTuberも結構使ってます
  • Python + PyTorch 環境が必要(ローカルPCで動かす)
    👉 https://github.com/Rudrabha/Wav2Lip

Wav2Lipはインストールプロセスが比較的複雑で、特定のライブラリのバージョンを指定したり、追加のセットアップが必要になる場合がある。一方、SadTalkerは、依存関係の管理が比較的シンプル。ということで、今回はSadTalkerを試したいと思う。

SadTalkerをローカルにインストールして実行

ローカル開発環境

ubuntu 22.04, Python 3.10.12

依存関係のインストール

$ sudo apt-get update
$ sudo apt-get install ffmpeg libsm6 libxext6 -y

仮想環境の作成と有効化

$ sudo python3 -m venv sadtalker_env
$ ls
sadtalker_env
$ source sadtalker_env/bin/activate

SadTalkerリポジトリのクローン

$ git clone https://github.com/Winfredy/SadTalker.git
$ cd SadTalker
$ pip3 install -r requirements.txt

事前学習済みモデルのダウンロード

$ bash scripts/download_models.sh
※1.5Gぐらいあるらしく、結構ダウンロードに時間かかります

動画生成コマンドの実行

$ python3 inference.py --driven_audio ./input_audio.wav --source_image ./input_image.jpg --result_dir ./results --preprocess full --still --expression_scale 1.0 --pose_scale 1.0
Traceback (most recent call last):
// 省略
from torchvision.transforms.functional_tensor import rgb_to_grayscale
ModuleNotFoundError: No module named 'torchvision.transforms.functional_tensor'

何いいいいいいい、エラーになる。。。

何度やってもエラーになるので、Hugging Face Spaces公開されているSadTalkerで画像、音声ファイルを実行することにしました。
※Hugging FaceでSadTalkerを試したい場合は、「Spaces」から検索して、提供されているデモを使用します。
👉 https://huggingface.co/

SadTalkerで作成したLipSync動画

元画像

代々木公園でモデルさんを撮影させていただきました。(記事に掲載することについてご本人の承諾をいただいております)
input_image.jpg

音声

VOICEVOXでテキストからwavファイルを作成します。
音声ファイルはこちら

SadTalkerで作成したLipSync動画

Your browser does not support the video tag.

👉 https://hpscript.s3.ap-northeast-1.amazonaws.com/output_audio-0-100.mp4

まとめ

SadTalkerとD-IDで作成したLipSync動画を見比べてみましたが、SadTalkerの方が、表情への反映などが品質が良い印象ですね。
もっと本格的にやる場合は、音声もVOICEVOXで作成するのではなく、声優さんなどから5分以上録音し、その特徴量を抽出して音声データから実際のVoiceを合成するなどもできるようです。

備考: モデルさんの撮影など新鮮で、色々勉強になりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?