目录
依赖项:
Windows环境下安装psbody
下载安装boost
编译安装psbody
保存mp4报错解决
语音驱动的3D面部动画,可以用扩散模型或Transformer架构实现。然而它们的简单组合并没有性能的提升。作者怀疑这是由于缺乏配对的音频-4D数据,这对于Transformer在扩散框架中充当去噪器非常重要。
论文阅读
【论文阅读】DiffSpeaker: Speech-Driven 3D Facial Animation with Diffusion Transformer-CSDN博客
DiffSpeaker-main
依赖项:
pip install diffusers==0.11
Windows环境下安装psbody
下载mesh
GitHub - MPI-IS/mesh: MPI-IS Mesh Processing Library
下载安装boost
Boost Downloads
解压到 D:\software\boost_1_82_0,这个路径后面要设置为环境变量 BOOST_ROOT 的值。
最好检查目录结构,以防解压时弄错目录层级:
PS D:\software\boost_1_82_0> ls目录: D:\software\boost_1_82_0Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023/7/30 15:20 bin.v2
d----- 2023/4/10 14:22 boost
d----- 2023/4/10 13:58 doc
d----- 2023/4/10 14:22 libs
d----- 2023/4/10 13:48 more
d----- 2023/7/30 15:15 stage
d----- 2023/4/10 13:45 status
d----- 2023/4/10 13:45 tools
-a---- 2023/7/30 15:12 535552 b2.exe
-a---- 2023/4/10 13:45 850 boost-build.jam
-a---- 2023/4/10 13:45 989 boost.css
-a---- 2023/4/10 13:45 6308 boost.png
-a---- 2023/4/10 13:45 20013 boostcpp.jam
-a---- 2023/4/10 13:45 2486 bootstrap.bat
-a---- 2023/4/10 13:45 10811 bootstrap.sh
-a---- 2023/4/10 13:45 769 index.htm
-a---- 2023/4/10 14:21 5418 index.html
-a---- 2023/4/10 13:45 291 INSTALL
-a---- 2023/4/10 13:45 11947 Jamroot
-a---- 2023/4/10 13:45 1338 LICENSE_1_0.txt
-a---- 2023/7/30 15:12 154 project-config.jam
-a---- 2023/4/10 13:45 542 README.md
-a---- 2023/4/10 13:45 2608 rst.css
3)添加 BOOST_ROOT 环境变量
- 您可以通过图形界面配置,右击【此电脑】-【属性】-【高级系统设置】-【环境变量】。新建一个,变量名为 BOOST_ROOT,变量值为 D:\software\boost_1_82_0。
- 也可以使用命令行:
setx BOOST_ROOT D:\software\boost_1_82_0。
下面 Powershell 命令用于检查设置是否正确:
PS D:\software\boost_1_82_0> echo $env:BOOST_ROOT
D:\software\boost_1_82_0
4)编译 b2
在“Visual Studio 2019 Developer Command Prompt”窗口运行安装,用VS2019编译。在命令提示符(Command Prompt)中设置环境变量:
set DISTUTILS_USE_SDK=1
之后,直接运行 bootstrap.bat 即可,如果是非 Windows 系统,则是 bootstrap.sh。
PS D:\software\boost_1_82_0> .\bootstrap.bat
Building Boost.Build engineGenerating Boost.Build configuration in project-config.jam for msvc...Bootstrapping is done. To build, run:.\b2To adjust configuration, edit 'project-config.jam'.
Further information:- Command line help:.\b2 --help- Getting started guide:http://boost.org/more/getting_started/windows.html- Boost.Build documentation:http://www.boost.org/build/
5) 用 b2 编译 Boost
由于我们需要编译 Win32 和 x64 两种平台,所以给 b2 命令行加上个参数:
PS D:\software\boost_1_82_0> .\b2.exe --address-model=64
非 Windows 系统,可以直接运行 ./b2
。
编译安装psbody
set INCLUDE=%INCLUDE%;D:\Program Files\boost_1_85_0
set LIB=%LIB%;D:\Program Files\boost_1_85_0\stage\lib
python setup.py install
fatal error C1083: 无法打开包括文件: “CGAL/AABB_tree.h”: No such file or directory
把目录CGAL-4.7 从build\temp.win-amd64-cpython-310 拷贝到Release 目录下,
如果剪切,会报错:
error: [WinError 183] 当文件已存在时,无法创建该文件。: 'D:\\soft\\mesh-master\\build\\temp.win-amd64-cpython-310'
测试脚本
export CUDA_VISIBLE_DEVICES=1# # use hubert backbone
# python demo_vocaset.py \
# --cfg configs/diffusion/vocaset/diffspeaker_hubert_vocaset.yaml \
# --cfg_assets configs/assets/vocaset.yaml \
# --template datasets/vocaset/templates.pkl \
# --example demo/wavs/speech_long.wav \
# --ply datasets/vocaset/templates/FLAME_sample.ply \
# --checkpoint checkpoints/vocaset/diffspeaker_hubert_vocaset.ckpt \
# --id FaceTalk_170809_00138_TA# use wav2vec2 backbone
python demo_vocaset.py \--cfg configs/diffusion/vocaset/diffspeaker_wav2vec2_vocaset.yaml \--cfg_assets configs/assets/vocaset.yaml \--template datasets/vocaset/templates.pkl \--example demo/wavs/speech_long.wav \--ply datasets/vocaset/templates/FLAME_sample.ply \--checkpoint checkpoints/vocaset/diffspeaker_wav2vec2_vocaset.ckpt \--id FaceTalk_170809_00138_TA
保存mp4报错解决
cmd = " ".join(['ffmpeg', '-i', tmp_video_file.name, # 输入视频文件'-i', wav_path, # 输入音频文件'-c:v', 'copy', # 视频编解码器为复制,不进行转码'-c:a', 'aac', # 音频编解码器为AAC'-strict', '-2', # 允许使用实验性AAC编解码器'-pix_fmt', 'yuv420p', # 设置像素格式'-q:v', '0', # 对视频使用最佳质量(无损压缩)file_name # 输出文件名])os.system(cmd)