DiffSpeaker 部署踩坑笔记

目录

依赖项:

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_0

Mode                 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 engine

Generating Boost.Build configuration in project-config.jam for msvc...

Bootstrapping is done. To build, run:

    .\b2

To 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/578654.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

硬件21、接线端子XH2.54、2.54排针排母、2510接插件、PH2.0、町洋接线端子5.08、ISP接口JTAG插座

XH2.54端子的间距为2.54毫米,2.54排针排母的间距也是2.54mm,2510接插件也是2.54、而PH2.0端子的间距为2.0毫米,町洋接线端子插针间的距离是5.08mm,ISP接口JTAG插座针脚的间距一般也是2.54mm XH2.54 针脚间距为2.54mm 插头 接线…

IIS中搭建.Net Core项目,步骤详解

一、准备服务器 1)安装IIS 这个比较简单,百度一下就行 2)安装 .NET Core 运行时 下载地址:下载 .NET(Linux、macOS 和 Windows) 因为我是本地开发,所以我下载的是SDK 安装成功之后显示如下: 检查是否安装…

判断字符串由几个单词组成(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int world 0;int i 0;char c 0;char string[81] { 0 };int num 0;//提示用户&#xff…

使用Github Action实现Hexo博客自动化部署

本文参考自 Akilar&#xff0c;原文地址&#xff1a;https://akilar.top/posts/f752c86d/ 每次部署Hexo都需要运行指令三件套&#xff0c;随着文章越来越多&#xff0c;编译的时间也随之越来越长&#xff0c;通过Github Action&#xff0c;我们只需要在每次完成博客的编写或修…

OSPF路由计算

1.区域内路由计算 &#xff08;1&#xff09;LSA的基本概念 LS Age&#xff1a;当LSA被始发时&#xff0c;该字段为0&#xff0c;随着LSA在网络中被泛洪&#xff0c;该时间逐渐累加&#xff0c;当到达MaxAge&#xff08;缺省值为3600s&#xff09;时&#xff0c;LSA不再用于路…

传统过程自动化工厂的智能扩展

一 通过NOA概念&#xff0c;公开、安全地迈向未来 随着数字化转型在过程自动化工业中的不断深入&#xff0c;许多公司都面临着同一挑战——如何平衡创新和传统。放眼望去&#xff0c;过程自动化工业和信息技术似乎在以不同的速度发展。虽然过程自动化工厂通过使用传统的自动化…

基于springboot实现企业oa管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现企业oa管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了企业OA管理系统的开发全过程。通过分析企业OA管理系统管理的不足&#xff0c;创建了一个计算机管理企业OA管理系统的方案…

C语言数据结构之栈

目录 1.栈的概念及结构2.栈的实现3.栈的代码实现4.相关例题 •͈ᴗ•͈ 个人主页&#xff1a;御翮 •͈ᴗ•͈ 个人专栏&#xff1a;C语言数据结构 •͈ᴗ•͈ 欢迎大家关注和订阅!!! 1.栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插…

AI大模型系列:自然语言处理,从规则到统计的演变

自然语言处理&#xff0c;从规则到统计的演变 自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;是人工智能的一个重要分支&#xff0c;主要研究如何让计算机理解、解释和生成人类语言。从自然语言处理的字面上来看&#xff0c;最重要的是“语言…

Unity | 集成 Protobuf(proto 转 cs 插件及序列化与反序列化)

1. 添加 dll 1. 下载 protobuf 源码 根据需要下载 protobuf 指定版本的源码&#xff0c;这里以 v3.21.12&#xff08;protobuf-csharp-3.21.12.zip&#xff09;为例&#xff1a; 下载地址&#xff1a;「https://github.com/protocolbuffers/protobuf/releases」 2. 下载 Vis…

防火墙技术基础篇:认识安全策略、安全区域、域间转发及报文转发流程

防火墙技术基础篇&#xff1a;认识安全策略、安全区域、域间转发及报文转发流程 一、安全策略匹配机制 简单通俗的讲&#xff0c;防火墙设备最基本的用途就是定义数据如何转发&#xff0c;靠什么定义呢&#xff1f;最基本的就是安全策略&#xff0c;当流量来到防火墙之后首先…

组播技术原理概述

组播与广播和单播的对比 l 组播、广播和单播工作模式的对比 单播&#xff1a;数据报文从一台主机&#xff0c;点对点的发给另外一台主机 广播&#xff1a;数据报文从一台主机&#xff0c;发给广播域内的全部主机 组播&#xff1a;数据报文从一台主机&#xff0c;发给…

JS----前端将列表数据转树型数据

前端将列表数据转树型数据 场景&#xff1a;后端返回列表数据&#xff0c;由前端根据业务需求完成树型数据转换&#xff0c; 常用于侧边导航菜单&#xff0c;下拉树型数据项等 export function listToTree(data: []) {var map: any {},tree: any []data.forEach((item: any…

ansible-playbook获取当前执行任务的ip及hostname

目录 概述注意实践代码 概述 注意 此问题&#xff0c;配置上一个文件即可解决 实践 代码 --- - name: Get IP Addresshosts: allgather_facts: notasks:- name: Get IP Addressansible.builtin.setup:register: host_ip- name: Print IP Addressansible.builtin.debug:msg:…

网络程序 -- TCP版服务器

一 多进程版TCP服务器 1.1 核心功能 对于之前编写的 字符串回响程序 来说&#xff0c;如果只有一个客户端进行连接并通信&#xff0c;是没有问题的&#xff0c;但如果有多个客户端发起连接请求&#xff0c;并尝试进行通信&#xff0c;服务器是无法应对的 原因在于 服务器是一个…

数据结构 - 队列 [动画+代码注释超详解],萌新轻松上手!!!

一. 队列的概念 队列是一种特殊的线性表&#xff0c;用于存储元素&#xff0c;并且按照先进先出(First In First Out)的顺序进行管理&#xff0c;这意味着最先加入队列的元素将会是最先从队列中被移除的元素 队列的原型&#xff1a;只允许在一端进行插入数据的操作&#xff0c…

【嵌入式AI开发】轻量级卷积神经网络MobileNetV2详解

前言:MobileNetV2网络先升维后降维,在降维时使用线性激活函数,带残差的Inverted bottleck模块,防止ReLU信息丢失。在图像分类、目标检测、语义分割等任务上实现了网络轻量化、速度和准确度的权衡。 回顾MobileNetV1的理论和MobileNetV2项目实战可查阅如下链接: 【嵌入式AI…

使用SDRPI运行openwifi和设置网口

目录 一 制作启动盘 二 使用串口的方式启动openwifi 三 无线连接 四 网口设置&#xff0c;有线连接 五 使用SSH登录 一 制作启动盘 在github上下载img文件&#xff0c;由于github上下载速度比较慢&#xff0c;我会上传网盘链接 githun下载img文件地址: https://git…

OS对软件的管理,进程,PCB、子进程

进程 可执行程序加载到内存中&#xff0c;操作系统为内个程序都形成一个PCB对象&#xff08;结构体对象&#xff09;&#xff0c;PCB里存放着这个程序的所有的属性。进程可执行程序PCB &#xff0c;CPU执行程序也是先通过该程序的PCB找到相应的程序代码&#xff0c;然后一条一…

SpringCloud之Hystrix

Hystrix理解 熔断器本身是一种开关装置&#xff0c;用于在电路上保护线路过载。当线路中有电器发生短路时&#xff0c;熔断器能够及时切断故障电路&#xff0c;防止发生过载、发热甚至起火等严重后果。这种保护机制被借鉴到分布式系统的设计中&#xff0c;形成了类似Hystrix中…
最新文章