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 显存完全胜任。

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

相关推荐
秦亚伟1 小时前
AI浪潮重塑融资租赁行业新格局
人工智能
元启数宇1 小时前
喷淋AI布点实战:8小时人工布点→20分钟自动出图
人工智能
哈哈,柳暗花明1 小时前
人工智能专业术语详解(H)
人工智能·专业术语
圣殿骑士-Khtangc1 小时前
AI 编程工具 2026 实战横评:Cursor 3 vs Claude Code vs Copilot,开发者选型完全指南
人工智能·copilot
云器科技1 小时前
云器Lakehouse 2026年5月版本发布:拥抱 AI Agent,重塑数据智能开发新范式
人工智能
小鹰-上海鹰谷-电子实验记录本1 小时前
第六届党建引领科创生态座谈会 | 邓光辉博士出席分享AI赋能创新药科研新范式
人工智能·ai·电子实验记录本·药企合规
遇事不決洛必達1 小时前
【Python基础】GIL 锁是什么及其对爬虫的影响
爬虫·python·线程·进程·gil锁
Leaton Lee2 小时前
Spring Boot分层架构详解:从Controller到Service再到Mapper的完整流程
java·spring boot·后端·架构
极客老王说Agent2 小时前
2026电信IDC机房巡检深度报告:人工巡检频次和深度够吗?实在Agent重塑智慧运维新范式
人工智能·ai·chatgpt