DreamTalk是一个基于扩散模型的音频驱动富有表现力的说话头生成框架,可以在各种说话风格中生成高质量的说话头视频。DreamTalk在各种输入下表现出强大的性能,包括歌曲、多语言演讲、噪声音频和域外肖像。
conda create -n dreamtalk python=3.7.0
conda activate dreamtalk
pip install -r requirements.txt
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge
conda update ffmpeg
pip install urllib3==1.26.6
pip install transformers==4.28.1
pip install dlib
考虑到社会影响,我们已停止公开下载检查点。如果您想获取检查点,请发送邮件至mayf18@mails.tsinghua.edu.cn申请。请注意,发送此邮件即表示您同意仅将提供的方法用于学术研究目的。
将下载的检查点放入checkpoints
文件夹。
运行脚本:
python inference_for_demo_video.py \
--wav_path data/audio/acknowledgement_english.m4a \
--style_clip_path data/style_clip/3DMM/M030_front_neutral_level1_001.mat \
--pose_path data/pose/RichardShelby_front_neutral_level1_001.mat \
--image_path data/src_img/uncropped/male_face.png \
--cfg_scale 1.0 \
--max_gen_len 30 \
--output_name acknowledgement_english@M030_front_neutral_level1_001@male_face
wav_path
指定输入音频。输入音频文件扩展名如wav、mp3、m4a和mp4(带声音的视频)都应该兼容。
style_clip_path
指定参考说话风格,pose_path
指定头部姿势。它们是从参考视频中提取的3DMM参数序列。您可以按照PIRenderer从自己的视频中提取3DMM参数。注意,视频帧率应为25 FPS。此外,用于头部姿势参考的视频应首先使用FOMM视频预处理中的脚本裁剪为256×256。
image_path
指定输入肖像。其分辨率应大于256×256。正面肖像,面部直接朝前且不倾斜到一侧,通常能达到令人满意的效果。输入肖像将被裁剪为256×256。如果您的肖像已经裁剪为256×256,且您想禁用裁剪,请使用选项--disable_img_crop
,如下所示:
python inference_for_demo_video.py \
--wav_path data/audio/acknowledgement_chinese.m4a \
--style_clip_path data/style_clip/3DMM/M030_front_surprised_level3_001.mat \
--pose_path data/pose/RichardShelby_front_neutral_level1_001.mat \
--image_path data/src_img/cropped/zp1.png \
--disable_img_crop \
--cfg_scale 1.0 \
--max_gen_len 30 \
--output_name acknowledgement_chinese@M030_front_surprised_level3_001@zp1
cfg_scale
控制无分类器引导的尺度。它可以调整说话风格的强度。
max_gen_len
是最大视频生成时长,以秒为单位。如果输入音频超过此长度,将被截断。
生成的视频将命名为$(output_name).mp4