synctalk模型部署教程

一、模型介绍

在合成逼真的语音驱动的说话头视频时,实现高度同步是一项重大挑战。传统的生成对抗网络 (GAN) 难以保持一致的面部身份,而神经辐射场 (NeRF) 方法虽然可以解决这个问题,但通常会产生不匹配的唇部运动、不充分的面部表情和不稳定的头部姿势。栩栩如生的说话头需要同步协调主体身份、唇部运动、面部表情和头部姿势。缺乏这些同步是一个根本缺陷,导致不切实际和人为的结果。

为了解决同步这一关键问题,即创建逼真的说话头的"魔鬼",我们引入了 SyncTalk。这种基于 NeRF 的方法有效地保持了主体身份,增强了说话头合成的同步性和真实感。SyncTalk 采用面部同步控制器将唇部运动与语音对齐,并创新地使用 3D 面部混合形状模型来捕捉准确的面部表情。我们的头部同步稳定器优化了头部姿势,实现了更自然的头部运动。 Portrait-Sync Generator 可恢复头发细节,并将生成的头部与躯干融合,带来无缝视觉体验。大量实验和用户研究表明,SyncTalk 在同步和真实性方面优于最先进的方法。

二、部署流程

环境测试

在 Ubuntu 20.04、CUDA 11.3 上测试

1.克隆并安装
(1)克隆
复制代码
git clone https://github.com/ZiqiaoPeng/SyncTalk.git
cd SyncTalk
(2)安装依赖项
复制代码
conda create -n synctalk python==3.8.8
conda activate synctalk
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
sudo apt-get install portaudio19-dev
pip install -r requirements.txt
pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py38_cu113_pyt1121/download.html
pip install tensorflow-gpu==2.8.1
pip install ./freqencoder
pip install ./shencoder
pip install ./gridencoder
pip install ./raymarching

如果在安装 PyTorch3D 时遇到问题,可以使用以下命令进行安装:

复制代码
python ./scripts/install_pytorch3d.py
2.数据准备
(1)预训练模型

请将May.zip放在数据 文件夹中,将trial_may.zip 放在模型文件夹中,然后解压它们。

(2)[新] 处理您的视频
  • 准备人脸解析模型。

    复制代码
    wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_parsing/79999_iter.pth?raw=true -O data_utils/face_parsing/79999_iter.pth
  • 准备 3DMM 模型以进行头部姿势估计。

    复制代码
    wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_tracking/3DMM/exp_info.npy?raw=true -O data_utils/face_tracking/3DMM/exp_info.npy
    wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_tracking/3DMM/keys_info.npy?raw=true -O data_utils/face_tracking/3DMM/keys_info.npy
    wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_tracking/3DMM/sub_mesh.obj?raw=true -O data_utils/face_tracking/3DMM/sub_mesh.obj
    wget https://github.com/YudongGuo/AD-NeRF/blob/master/data_util/face_tracking/3DMM/topology_info.npy?raw=true -O data_utils/face_tracking/3DMM/topology_info.npy
  • 从巴塞尔人脸模型 2009下载 3DMM 模型:

    复制代码
    # 1. copy 01_MorphableModel.mat to data_util/face_tracking/3DMM/
    # 2.
      cd data_utils/face_tracking
      python convert_BFM.py
  • 将您的视频放在 data/<ID>/<ID>.mp4下,然后运行以下命令来处理视频。
    [注意] 视频必须为 25FPS,所有帧都包含说话的人。分辨率应约为 512x512,持续时间约为 4-5 分钟。

    复制代码
    python data_utils/process.py data/<ID>/<ID>.mp4 --asr ave

    您可以选择使用 AVE、DeepSpeech 或 Hubert。处理后的视频将保存在数据文件夹中。

  • 可选\] 获取眨眼的 AU45 在 OpenFace `FeatureExtraction` 中运行,重命名并将输出的CSV 文件移动到 `data//au.csv` **【注】** 由于 EmoTalk 的 blendshape 捕获不开源,这里的预处理代码用 mediapipe 的 blendshape 捕获替换。但根据一些反馈,它效果不佳,您可以选择用 AU45 替换它。如果您想与 SyncTalk 进行比较,可以[在这里](https://gitee.com/link?target=https://drive.google.com/drive/folders/1LLFtQa2Yy2G0FaNOxwtZr0L974TXCYKh?usp=sharing "在这里")获得一些使用 EmoTalk 捕获的结果以及来自[GeneFace 的](https://gitee.com/link?target=https://drive.google.com/drive/folders/1vimGVNvP6d6nmmc8yAxtWuooxhJbkl68 "GeneFace 的")视频。

(1)运行评估代码
复制代码
python main.py data/May --workspace model/trial_may -O --test --asr_model ave

python main.py data/May --workspace model/trial_may -O --test --asr_model ave --portrait

"ave"指的是我们的视听编码器,"portrait"表示把生成的人脸粘贴回原图上,代表更高的质量。

如果运行正确,你会得到以下结果。

环境 峰值信噪比 低密度聚乙烯 激光微分方程
SyncTalk(无肖像) 32.201 0.0394 2.822
SyncTalk(纵向) 37.644 0.0117 2.825

这是针对单个主题的;本文报告的是多个主题的平均结果。

(2)使用目标音频进行推理
复制代码
python main.py data/May --workspace model/trial_may -O --test --test_train --asr_model ave --portrait --aud ./demo/test.wav

请使用以".wav"为扩展名的文件进行推理,推理结果将保存在"model/trial_may/results/"中。

(3)测试
复制代码
python main.py data/May --workspace model/trial_may -O --test --asr_model ave --portrait
(4)训练和测试躯干 [修复双下巴]

如果你的角色只训练了头部,出现了双下巴问题,你可以引入躯干训练。通过训练躯干,这个问题可以得到解决,但 你将无法使用"--portrait"模式。 如果你添加"--portrait",躯干模型将失效!

复制代码
# Train
# <head>.pth should be the latest checkpoint in trial_may
python main.py data/May/ --workspace model/trial_may_torso/ -O --torso --head_ckpt <head>.pth --iters 150000 --asr_model ave

# For example
python main.py data/May/ --workspace model/trial_may_torso/ -O --torso --head_ckpt model/trial_may/ngp_ep0019.pth --iters 150000 --asr_model ave

# Test
python main.py data/May --workspace model/trial_may_torso -O  --torso --test --asr_model ave  # not support --portrait

# Inference with target audio
python main.py data/May --workspace model/trial_may_torso -O  --torso --test --test_train --asr_model ave --aud ./demo/test.wav # not support --portrait

三、界面演示

相关推荐
lijianhua_971233 分钟前
国内某顶级大学内部用的ai自动生成论文的提示词
人工智能
EDPJ39 分钟前
当图像与文本 “各说各话” —— CLIP 中的模态鸿沟与对象偏向
深度学习·计算机视觉
蔡俊锋40 分钟前
用AI实现乐高式大型可插拔系统的技术方案
人工智能·ai工程·ai原子能力·ai乐高工程
自然语42 分钟前
人工智能之数字生命 认知架构白皮书 第7章
人工智能·架构
大熊背1 小时前
利用ISP离线模式进行分块LSC校正的方法
人工智能·算法·机器学习
eastyuxiao1 小时前
如何在不同的机器上运行多个OpenClaw实例?
人工智能·git·架构·github·php
诸葛务农1 小时前
AGI 主要技术路径及核心技术:归一融合及未来之路5
大数据·人工智能
光影少年1 小时前
AI Agent智能体开发
人工智能·aigc·ai编程
ai生成式引擎优化技术2 小时前
TSPR-WEB-LLM-HIC (TWLH四元结构)AI生成式引擎(GEO)技术白皮书
人工智能
帐篷Li2 小时前
9Router:开源AI路由网关的架构设计与技术实现深度解析
人工智能