Skip to content

ayutaz/UniTalker

 
 

Repository files navigation

UniTalker: 統一モデルによる音声駆動3Dフェイシャルアニメーションのスケールアップ [ECCV2024]

関連リンク

[Homepage]      [arXiv]      [Video]     
UniTalker Architecture

UniTalkerは、クリーンな音声やノイズを含む多言語音声、テキスト読み上げ生成音声、さらにはBGM付きのノイズを含む歌声など、さまざまな音声ドメインからリアルな顔のモーションを生成します。

UniTalkerは複数のアノテーション形式で出力が可能です。

新しいアノテーション形式を持つデータセットに対しては、UniTalkerに新しいヘッドをプラグインし、既存のデータセットまたは新しいデータセットのみで学習させることができ、リトポロジーが不要です。

インストール

uv sync

推論

チェックポイント、PCAモデル、テンプレートリソースのダウンロード

UniTalker-B-[D0-D7]: 論文のベースモデルです。ダウンロードして ./pretrained_models に配置してください。

UniTalker-L-[D0-D7]: 論文のデフォルトモデルです。まずベースモデルでパイプラインの動作確認を行ってください。

Unitalker-data-release-V1: 公開データセット、PCAモデル、データ分割用JSONファイル、IDテンプレートのnumpy配列です。ダウンロードしてこのリポジトリ内で解凍してください。

FLAME2020: FLAME 2020をダウンロードし、generic_model.pklを resources/binary_resources/flame.pkl に移動してください。

git lfs pull を実行して ./resources.zip./test_audios.zip を取得し、このリポジトリ内で解凍してください。

最終的に、以下のようなファイル構成になります:

├── pretrained_models
│   ├── UniTalker-B-D0-D7.pt
│   ├── UniTalker-L-D0-D7.pt
├── resources
│   ├── binary_resources
│   │   ├── 02_flame_mouth_idx.npy
│   │   ├── ...
│   │   └── vocaset_FDD_wo_eyes.npy
│   └── obj_template
│       ├── 3DETF_blendshape_weight.obj
│       ├── ...
│       └── meshtalk_6172_vertices.obj
└── unitalker_data_release_V1
│   ├── D0_BIWI
│   │   ├── id_template.npy
│   │   └── pca.npz
│   ├── D1_vocaset
│   │   ├── id_template.npy
│   │   └── pca.npz
│   ├── D2_meshtalk
│   │   ├── id_template.npy
│   │   └── pca.npz
│   ├── D3D4_3DETF
│   │   ├── D3_HDTF
│   │   └── D4_RAVDESS
│   ├── D5_unitalker_faceforensics++
│   │   ├── id_template.npy
│   │   ├── test
│   │   ├── test.json
│   │   ├── train
│   │   ├── train.json
│   │   ├── val
│   │   └── val.json
│   ├── D6_unitalker_Chinese_speech
│   │   ├── id_template.npy
│   │   ├── test
│   │   ├── test.json
│   │   ├── train
│   │   ├── train.json
│   │   ├── val
│   │   └── val.json
│   └── D7_unitalker_song
│       ├── id_template.npy
│       ├── test
│       ├── test.json
│       ├── train
│       ├── train.json
│       ├── val
│       └── val.json

デモ

uv run python -m main.demo --config config/unitalker.yaml test_out_path ./test_results/demo.npz
uv run python -m main.render ./test_results/demo.npz ./test_audios ./test_results/

学習

データのダウンロード

Unitalker-data-release-V1 にはD5、D6、D7が含まれています。データセットは処理済みで、train、validation、testに分割されています。まずこの3つのデータセットで学習ステップをお試しください。 D0〜D7の全データセットでモデルを学習させる場合は、以下のリンクからデータセットをダウンロードしてください: D0: BIWI. D1: VOCASET. D2: meshtalk. D4,D5: 3DETF.

設定の変更と学習

準備したデータセットに合わせて、config/unitalker.yaml 内の datasetduplicate_list を変更してください。両方のリストの長さが一致するようにしてください。

uv run python -m main.train --config config/unitalker.yaml

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%