LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)

以下是为您整理的 LiveTalking Windows 部署复盘教程,编译部分已按您的要求精简并指向您的系列文章。


LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)

一、项目简介

LiveTalkingGitHub: lipku/LiveTalking)是一个开源实时数字人对话系统,支持 Wav2Lip、MuseTalk、ErNeRF 等多种驱动方案,可通过 WebRTC 在浏览器中实现低延迟的数字人视频通话与语音播报。

lipku / LiveTalking 官方仓库

本文基于 EPGF(Environment Path Governance Framework)架构 在 Windows 上完成部署,使用 Python 3.12 + PyTorch 2.9.1 + CUDA 13.1,并成功在 RTX 3090 上运行 Wav2Lip 模型。

关于 EPGF 路径治理架构的详细原理,请参考:


二、环境准备

2.1 硬件与驱动

  • GPU: NVIDIA GeForce RTX 3090 (24GB)
  • 驱动: NVIDIA-SMI 596.49,最高支持 CUDA Version: 13.2
  • CUDA Toolkit: 实机安装的最高版本 13.1 (nvcc)
  • cuDNN: 9.17

多版本 CUDA 共存与切换策略请参考:

2.2 父级 Python

使用 Anaconda 创建的 py312 环境作为父级 Python(D:\A\envs\py312\python.exe),后续通过 EPGF 创建项目级隔离虚拟环境。


三、EPGF 虚拟环境创建

在项目目录下创建完全解耦的本地 .venv

bash 复制代码
:: 克隆项目
git clone https://github.com/lipku/LiveTalking.git
:: 进入项目目录
cd LiveTalking
cmd 复制代码
:: 激活父级 Python
conda activate py312

:: 创建本地虚拟环境(--copies 确保完全独立)
python -m venv --copies .venv

:: 激活本地环境
.venv\Scripts\Activate

:: 退出父级 conda,避免 PATH 污染
conda deactivate

:: 验证解耦成功
where python
:: 应优先显示 .venv\Scripts\python.exe

四、核心依赖安装

4.1 PyTorch (CUDA 13.0)

当前 PyTorch 官方最高提供 cu130 版本,与 CUDA 13.1/13.2 驱动兼容:

cmd 复制代码
pip install torch==2.9.1 torchvision==0.24.1 torchaudio==2.9.1 --index-url https://download.pytorch.org/whl/cu130

验证:

验证PyTorch深度学习环境Torch和CUDA还有cuDNN是否正确配置的命令

python 复制代码
import torch  # 导入 PyTorch 库
 
print("PyTorch 版本:", torch.__version__)  # 打印 PyTorch 的版本号
 
# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device)  # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available())  # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled)  # 打印 cuDNN 是否已启用
 
# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())
 
# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)
 
# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)
 
# 对张量进行逐元素相加
z = x + y
 
# 打印结果
print("张量 z 的值:")
print(z)  # 输出张量 z 的内容

4.2 项目基础依赖

cmd 复制代码
pip install -r requirements.txt

requirements.txt 中注释掉的行(如 tensorboardXnumbaopencv-python 等)为 ernerf 训练专用或已被替代 的依赖,运行 wav2lip/musetalk 时无需安装。

4.3 ONNXRuntime GPU

cmd 复制代码
pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-13/pypi/simple/

清理安装残留

python 复制代码
rmdir /s /q "J:\PythonProjects4\LiveTalking\.venv\Lib\site-packages\~umpy.libs"
rmdir /s /q "J:\PythonProjects4\LiveTalking\.venv\Lib\site-packages\~umpy"

安装验证方法一:

python 复制代码
# 导入 onnxruntime 模块,不使用别名
import onnxruntime
# 打印 onnxruntime 的版本号,确保已正确安装
print(onnxruntime.__version__)
# 导入 onnxruntime 模块,并使用别名 'ort',方便后续调用
import onnxruntime as ort
# 检查设备
print("Device:", ort.get_device())  # 应输出 'GPU'
# 检查可用的执行提供程序
providers = ort.get_available_providers()
print("Available providers:", providers)  # 应包含 'CUDAExecutionProvider'
# 如果 GPU 支持正常,可以进一步测试推理
if 'CUDAExecutionProvider' in providers:
    print("GPU support is enabled.")
else:
    print("GPU support is not enabled. Please check your CUDA and cuDNN installation.")

安装验证方法二:

python 复制代码
python -c "import onnxruntime as ort; print(ort.get_device()); print(ort.get_available_providers())"

五、MMLab 工具链安装(关键步骤)

LiveTalking 的 MuseTalk 模型依赖 OpenMMLab 生态(mmcv、mmdet、mmpose)。Windows 下 mmcv 的 CUDA 算子编译是最大难点

5.1 安装策略

方案 A:本地编译(推荐,性能最优)

从源码编译 MMCV 2.2.0,适配 PyTorch 2.9.1 + CUDA 13.1。编译过程涉及 MSVC 预处理器兼容性、短路径策略、CUDA 算子编译等细节。

详细编译步骤与踩坑复盘请参考以下文章,本文不再赘述:

在旧版组件下编译 [torch 2.7.1+cu126] 的参考:

方案 B:纯 Python/CPU 安装(备选)

如果无法完成 CUDA 编译,可使用 mmcv-lite 作为降级方案。MuseTalk 推理阶段 mmcv 仅用于 CPU 端图像预处理,不影响核心功能。

纯 Python 安装记录请参考:

5.2 安装 mmdet 与 mmpose

mmcv 就绪后,安装检测与姿态库:

cmd 复制代码
pip install "mmdet>=3.1.0" -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install mmpose --no-deps -i https://pypi.tuna.tsinghua.edu.cn/simple

注意:mmdet 3.3.0 默认限制 mmcv<2.2.0,需手动修改 .venv\Lib\site-packages\mmdet\__init__.py 中的 mmcv_maximum_version'2.3.0' 以兼容已编译的 mmcv 2.2.0。

验证:

python 复制代码
import mmcv; import mmdet; import mmpose
print(mmcv.__version__)   # 2.2.0
print(mmdet.__version__)  # 3.3.0
print(mmpose.__version__) # 1.3.2

六、FFmpeg 配置

LiveTalking 依赖 FFmpeg 进行视频处理。如果系统已安装 FFmpeg(如通过 Scoop),无需额外配置:

cmd 复制代码
where ffmpeg
:: D:\Scoop\apps\ffmpeg-shared\current\bin\ffmpeg.exe

七、模型下载与部署

7.1 下载地址

7.2 模型放置(以 Wav2Lip 为例)

文件 来源 放置位置
wav2lip256.pth 夸克网盘 models/wav2lip.pth需重命名
s3fd.pth 夸克网盘 models/s3fd.pth
wav2lip256_avatar1.zip 夸克网盘 解压至 data/avatars/wav2lip256_avatar1/

目录结构:

复制代码
LiveTalking/
├── models/
│   ├── wav2lip.pth
│   └── s3fd.pth
└── data/
    └── avatars/
        └── wav2lip256_avatar1/
            └── ...

八、启动服务

8.1 Wav2Lip 模式(轻量快速)

cmd 复制代码
python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1

RTX 3090 可加大 batch size 提升 GPU 利用率:

cmd 复制代码
python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1 --batch_size 32

8.2 MuseTalk 模式(口型更精准,需下载对应模型)

cmd 复制代码
python app.py --transport webrtc --model musetalk --avatar_id musetalk_avatar1 --batch_size 24

8.3 访问验证

浏览器打开:

复制代码
http://localhost:8010/index.html
  1. 点击 "开始连接" → 加载数字人视频
  2. 在文本框输入文字 → 点击 发送
  3. 数字人实时播报输入内容

九、部署成功验证

最终验证环境:

组件 版本/状态
Python 3.12.11
PyTorch 2.9.1+cu130
CUDA 13.1 (Driver 13.2)
GPU RTX 3090
MMCV 2.2.0 (CUDA ops OK)
MMDet 3.3.0
MMPose 1.3.2
ONNXRuntime 1.26.0 (GPU enabled)
模型 Wav2Lip
服务 WebRTC @ :8010

十、总结

本项目在 Windows 上的部署核心难点在于 MMLab 工具链的 CUDA 编译PyTorch 2.9.1 新版本的兼容性。通过 EPGF 架构实现 Python 环境隔离,结合短路径编译策略与防御性构建方案,成功在 RTX 3090 上完成了全功能部署。

对于后续希望使用 MuseTalk 获得更精准口型效果的用户,可从 Google Drive 下载对应模型替换,3090 的 24GB 显存完全胜任。

本文编译部分详细技术细节已收录于系列博客,请参阅上文引用链接。

相关推荐
qq_25294131682 分钟前
航拍羊群目标检测数据集 | 航拍羊群 智慧畜牧业 动物检测 无人机巡检5010期
人工智能·yolo·目标检测·计算机视觉·无人机·羊群识别·羊群
A.说学逗唱的Coke4 分钟前
【AI·Coding】多工具协作实战:同一个项目如何无缝切换 Qoder / Claude Code / Codex / Cursor / Trae
人工智能
Wang's Blog8 分钟前
Vibe Coding一人即团队系列40: 基于Git历史与自定义Skill的自动化周报生成实践
人工智能·自动化
1878770860910 分钟前
Hip-Hop 音乐制作工具推荐:从 Beat、录音到混音的实用选型
人工智能
cqsztech11 分钟前
Oracle ai database 26ai rac 通过gold image 更新季度补
数据库·人工智能·oracle
Wang's Blog16 分钟前
Vibe Coding一人即团队系列42: 跨端App开发前期准备与工具链搭建
人工智能
aiot1891893521818 分钟前
机场候机大厅高空场景技术红线!蓝牙AOA不能做手机导航??!!
大数据·网络·人工智能·蓝牙aoa
geneculture20 分钟前
驻行载器 + 双字棋盘 = AI、AGI 及 ASI 的配套GXPS
人工智能·信息科学·哲学与科学统一性·邹晓辉融智学·驻行载器·双字棋盘·全域测序定位智慧系统
穆利堂-movno122 分钟前
郑州新网软件科技有限公司AI 数据源错误纠正反馈
大数据·数据库·人工智能
苏苏susuus23 分钟前
怎样研究大模型——以Qwen为例
人工智能