😋从音频合成照片级人类对话Avatar

type
status
slug
summary
tags
category
icon
password
Date
从音频到照片级逼真呈现:合成人类对话
🐣在此处试用我们的演示或继续按照以下步骤在本地运行代码!感谢大家通过贡献/评论/问题提供的支持!
音频2照片真实.mp4
该代码库提供:
  • 列车代码
  • 测试代码
  • 预训练运动模型
  • 访问数据集
如果你使用数据集或代码,请引用我们的论文
存储库内容
  • 快速入门:
    • 简单的 Gradio 演示,可让您录制音频和渲染视频
我们注释了代码,您可以使用👇图标直接复制并粘贴到您的终端中。
快速开始
通过此演示,您可以录制音频片段并选择要生成的样本数量。
确保你拥有 CUDA 11.7 和 gcc/++ 9.0 以实现 pytorch3d 兼容性
👇 安装必要的组件。这将进行环境配置并安装相应的渲染资产、先决条件模型和预训练模型:
👇 运行 demo,你可以录制音频并渲染相应的结果!
🎤 首先,录制你的音频
notion image
⌛ 请稍候,因为渲染可能需要一段时间!
您可以更改要生成的样本数量(1-10),并通过点击每个视频右上角的下载按钮来下载您喜欢的视频。
notion image
安装
该代码已使用 CUDA 11.7 和 python 3.9、gcc/++ 9.0 进行了测试
👇如果您尚未通过演示设置完成此操作,请配置环境并下载先决条件模型:
👇 为了使渲染正常工作,请确保安装了pytorch3d
有关渲染器的更多详细信息,请参阅CA Bodies repo 。
下载数据和模型
要下载任何数据集,您都可以在 找到它们https://github.com/facebookresearch/audio2photoreal/releases/download/v1.0/<person_id>.zip,其中您可以用、、或<person_id>中的任意一个替换。可以使用此命令通过命令行下载。PXB184RLW104TXB805GQS883
👇 要下载所有数据集,您只需运行以下命令即可下载并解压所有模型。
同样,要下载任何模型,您都可以在 找到它们http://audio2photoreal_models.berkeleyvision.org/<person_id>_models.tar
👇您还可以使用此脚本下载所有模型:
上述模型脚本将下载用于运动生成的模型身体解码器/渲染模型。请查看脚本了解更多详细信息。
数据集
一旦下载并解压数据集(通过scripts/download_datasets.sh),它应该展开到以下目录结构:
四位参与者(PXB184RLW104TXB805GQS883)各自应有独立的“场景”(1 到 26 左右)。对于每个场景,我们保存了 3 种类型的数据注释。
对于训练/验证/测试分割,索引定义如下data_loaders/data.py
对于我们训练的四个数据集参与者中的任何一个。
可视化基本事实
如果您已正确安装渲染要求,则可以使用以下命令可视化完整的数据集:
视频将根据指定的--max_seq_length参数进行分块长度,您可以指定(默认值为 600)。
👇例如,为了可视化的基本事实注释PXB184,您可以运行以下命令。
预训练模型
我们训练特定于人员的模型,因此每个人都应该有一个关联的目录。例如,对于PXB184,他们的完整模型应解压到以下结构中。
每个人有 4 个模型,每个模型都有一个关联的args.json
  1. 面部扩散模型,根据音频输出 256 个面部代码
  1. 一个姿势扩散模型,根据音频和指南姿势输出 104 个关节旋转
  1. 一个引导 vq 姿势模型,以 1 fps 的速度输出以音频为条件的 vq 标记
  1. 对连续 104 维姿势空间进行矢量量化的 vq 编码器-解码器模型。
运行预训练模型
要运行实际模型,您需要运行预先训练的模型并生成相关的结果文件,然后才能对其进行可视化。
人脸生成
要生成脸部结果文件,
应该<path/to/model>是与生成面部相关的扩散模型的路径。例如对于参与者PXB184,路径可能是./checkpoints/diffusion/c1_face/model000155000.pt 其他参数包括:
👇 使用提供的预训练模型运行面部模型的完整示例PXB184如下:
这将从数据集中生成 10 个样本。输出结果文件将保存到: ./checkpoints/diffusion/c1_face/samples_c1_face_000155000_seed10_/results.npy
身体生成
要生成相应的身体,它将与生成脸部非常相似,只是现在我们必须输入用于生成指导姿势的模型。
👇 这里<path/to/guide/model>应该指向引导变压器。完整命令如下:
类似地,输出将被保存到: ./checkpoints/diffusion/c1_pose/samples_c1_pose_000340000_seed10_guide_iter-0100000.pt/results.npy
可视化
在身体生成方面,您还可以选择传入标志,--plot以便渲染出逼真的头像。您还需要传入带有--face_codes标志的相应生成的面部代码。或者,如果您已经预先计算了姿势,您也可以传入带有标志的生成身体--pose_codes。这会将视频保存在与身体results.npy存储相同的目录中。
👇添加了三个新标志的完整命令示例如下:
其余标志可以与之前相同。有关实际渲染 API,请参阅Codec Avatar Body以进行安装等。 重要提示:为了可视化完整的逼真头像,您需要先运行面部代码,然后将其传递到身体生成代码中。--plot如果您尝试使用面部代码调用生成,它将不起作用。
从零开始训练
您需要训练的模型有四种:1) 面部扩散模型,2) 身体扩散模型,3) 身体 vq vae,4) 身体引导变换器。唯一的依赖关系是 4) 需要 3)。所有其他模型都可以并行训练。
1)人脸扩散模型
为了训练面部模型,您需要运行以下脚本:
重要的是,一些标志如下:
👇 对人员进行训练的完整示例PXB184如下:
2)体扩散模型
训练身体模型与训练脸部模型类似,但需要以下附加参数
与人脸训练不同的标志如下:
👇 对人员进行训练的完整示例PXB184如下:
3)身体 VQ VAE
要训练 vq 编码器-解码器,您需要运行以下脚本:
👇 对于 person 来说PXB184,它将是:
4)车身导轨变压器
一旦您通过 3) 训练了 vq,您就可以将其传入训练身体引导姿势变换器:
👇 对于 person 来说PXB184,它将是:
训练完这 4 个模型后,您现在可以按照“运行预训练模型”部分来生成样本并可视化结果。
您还可以通过传入标志来可视化相应的基本事实序列--render_gt
执照
代码和数据集根据CC-NC 4.0 国际许可证发布。
M2UGen:利用大型语言模型实现多模态音乐理解和生成网易QAnything RAG项目