news 2026/9/12 23:43:49

Windows 的 A 卡/I 卡用户如何为 RVC 安装并启用 DirectML 依赖?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows 的 A 卡/I 卡用户如何为 RVC 安装并启用 DirectML 依赖?

Windows 的 A 卡/I 卡用户如何为 RVC 安装并启用 DirectML 依赖?

【免费下载链接】Retrieval-based-Voice-Conversion-WebUIEasily train a good VC model with voice data <= 10 mins!项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI

在 Windows 上使用 AMD 显卡(A 卡)或 Intel 核显/独显(I 卡)跑 Retrieval-based-Voice-Conversion-WebUI(RVC)时,无法使用 NVIDIA CUDA 版 Torch。项目文档给出的方案是:安装 CPU 版依赖文件,由其中的torch-directmlonnxruntime-directml在 Windows 上自动启用 DirectML 路径(Linux 则回退 CPU)。完成本文后,你可以启动 WebUI 并确认推理运行在 DirectML 设备上。适用前提:Python 3.12 x64,仓库根目录为工作目录。

一、准备 Python 3.12 x64 虚拟环境

本分支面向Python 3.12 x64。在 Windows 上安装 Python 3.12 x64 后,进入仓库根目录创建虚拟环境:

py -3.12 -m venv .venv .venv\Scripts\activate python -m pip install --upgrade pip setuptools wheel

文档同时提到,Windows 便携版运行时用户可以用runtime\python.exe -I替换python执行后续安装命令。

二、安装 CPU 依赖文件(DirectML 包已包含其中)

A 卡/I 卡/CPU 硬件对应的依赖文件是 requirments_cpu_py312.txt,从仓库根目录执行:

python -m pip install -r requirments_cpu_py312.txt

这个文件就是 Windows DirectML 用户要装的"完整依赖",不需要再额外安装别的 requirements 文件。其中的 DirectML 相关行带有platform_system == "Windows"标记,只在 Windows 生效:

torch==2.4.1+cpu torch-directml==0.2.5.dev240914; platform_system == "Windows" onnxruntime-directml>=1.24.4,<2; platform_system == "Windows"

两点说明(来自该依赖文件与 configs/config.py 的注释):

  • torch-directml 0.2.5是针对 PyTorch 2.4.1 构建的,所以 Torch 固定为torch==2.4.1+cpu,不要自行换成 CUDA 版或更新的版本;
  • hyper-connections被限制在0.4.2及以下(<0.4.3),因为更新的版本要求 Torch 2.5+,与 DirectML 锁定的 Torch 2.4.1 不兼容。

该文件顶部默认使用镜像源(https://mirrors.pku.edu.cn/pypi/simplehttps://mirrors.nju.edu.cn/pytorch/whl/cpu)。需要改用官方源时,只替换--index-url--extra-index-url两行,保留包版本和两阶段安装顺序不变(官方 CPU 源为https://download.pytorch.org/whl/cpu,见 README.md 的"修改下载源"小节)。

三、下载模型:DirectML 环境必须额外下载 rmvpe.onnx

先安装下载工具并拉取推理必需的模型:

python -m pip install --upgrade huggingface_hub # Required for inference and feature extraction hf download lj1995/VoiceConversionWebUI --revision main \ --include "hubert_base/*" --local-dir assets hf download lj1995/VoiceConversionWebUI rmvpe.pt --revision main \ --local-dir assets/rmvpe

这一步完成后,普通 CPU 环境已经可以推理。但 README.md 明确写有"仅 Windows AMD/Intel DirectML 环境还需要"的额外一条命令,用于下载 RMVPE 的 ONNX 权重到assets/rmvpe/

hf download lj1995/VoiceConversionWebUI rmvpe.onnx --revision main \ --local-dir assets/rmvpe

这一步是判断 DirectML 环境是否配齐的关键。推理代码 infer/rmvpe.py 中,当运行设备是 DirectML(privateuseone)时,会加载rmvpe.pt同名替换后的rmvpe.onnx,并使用DmlExecutionProvider构建 onnxruntime 会话;如果该文件缺失,高提推理在 DirectML 设备上无法按文档路径完成。

如果还要用 UVR5 分离人声伴奏,属于可选分支:

hf download lj1995/VoiceConversionWebUI --revision main \ --include "uvr5_weights/*" --local-dir assets

四、放置 FFmpeg 并启动

Windows 上需要把ffmpeg.exeffprobe.exe两个文件放到项目根目录(文档给出的下载地址为 Hugging Face 模型仓库中的ffmpeg.exe/ffprobe.exe,见 README.md 的 FFmpeg 小节)。

启动 WebUI:

python webui.py

启动逻辑(configs/config.py)会自动探测 DirectML:_detect_directml()会导入torch_directml并在默认 DirectML 设备上做一次torch.ones(1)的加法和回传测试,探测通过即判定可用;没有满足条件的 NVIDIA CUDA 设备时,infer_device会自动选为 DirectML 设备,Config会把dml置为真(self.dml = self.dml or (infer_device.type == "privateuseone")),推理强制使用torch.float32。也就是说,在纯 A 卡/I 卡机器上 DirectML 是自动启用的,不需要手动加参数;--dml参数(configs/config.py,help 为torch_dml)用于显式声明走 DirectML。

如果机器上同时有满足规则的 NVIDIA CUDA 卡,CUDA 会被优先选中;此时要强制 DirectML 可以加--dml参数启动。

Windows 根目录也提供了 go-webui.bat 一键启动脚本,它实际执行的是runtime\python.exe -I webui.py --pycmd runtime\python.exe --port 7897(注意该脚本用的是仓库内runtime目录的便携运行时和7897端口,与上面的python webui.py默认端口7865不同)。如果你没有按runtime目录部署便携 Python,直接用python webui.py即可。

五、如何确认 DirectML 已生效

启动日志是文档路径中最直接的判据。Config.device_config()在 DML 生效时会输出:

Use DirectML instead Half-precision floating-point: False, device: privateuseone

device显示为privateuseone(DirectML 设备在 PyTorch 中的类型名)、半精度为False。看到这两行,说明当前进程推理设备就是 DirectML,而非 CPU。

如果日志显示No supported Nvidia GPU founddevice: cpu,说明 DirectML 探测失败,环境回退到了 CPU 执行路径——此时回到第二节核对torch-directml是否随requirments_cpu_py312.txt安装成功,以及显卡驱动是否为项目所针对的 AMD/Intel DirectML 兼容驱动。

六、DirectML 的支持范围与限制

根据 docs/cn/Changelog_CN.md 的说明,pytorch-dml 的支持范围是:

  1. 实时变声;
  2. 推理(离线推理);
  3. 人声伴奏分离;
  4. 训练暂未支持——会切换至 CPU 训练;

其中第 4 点意味着 DirectML 只加速推理链路;训练在 A 卡/I 卡上走 CPU 路径(rmvpe.pt用于训练侧的 CPU 高提,rmvpe.onnx用于 DirectML 侧的高提推理,两者都要下载)。

另外注意:WebUI 的模型目录(assets/logs/)会自动创建,但模型文件本身必须按 README.md 的目录结构放在assets/下(assets/hubert_base/assets/rmvpe/rmvpe.ptassets/rmvpe/rmvpe.onnx等),代码读取的是这些确切路径。

【免费下载链接】Retrieval-based-Voice-Conversion-WebUIEasily train a good VC model with voice data <= 10 mins!项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 23:42:39

打造高质量技术博文:从规范输入素材开始

我需要先拿到你的输入内容&#xff0c;才能按规范输出博文。请按以下格式提供原始素材&#xff1a;项目标题: [标题] 项目正文: [比较零散、不完整的原始描述] 关键词: [关键词1, 关键词2, ...] 摘要描述: [一句话简介]你这次只贴了要求&#xff0c;没有给我具体的标题、正文和…

作者头像 李华
网站建设 2026/9/12 23:40:21

告别Postman!15款接口测试工具分类盘点与选型指南

最近好几个做测试和开发的朋友问我&#xff1a;接口测试到底该用什么工具&#xff1f;我第一反应是&#xff0c;你八成在用 Postman 吧&#xff1f;对方点头。然后下一句就是&#xff0c;那除了 Postman 还有别的吗&#xff1f;这问题问得特别好。不是 Postman 不好&#xff0c…

作者头像 李华
网站建设 2026/9/12 23:39:47

Seata XA模式全解析:分布式事务强一致性的原理与实战

搞分布式事务&#xff0c;尤其是刚接触 Seata 的时候&#xff0c;不少人第一眼看到的就是 AT 模式&#xff0c;因为资料多、案例也多。但真到了金融、订单、库存这类对数据一致性要求极高的场景&#xff0c;我反而会建议你先看看 XA 模式。这个模式在 Seata 里常被说成是“天生…

作者头像 李华
网站建设 2026/9/12 23:39:19

告别Postman:15款接口测试工具全面测评与选型指南

当你在同事的电脑上看到那个黄色纸飞机图标时&#xff0c;大概率就是 Postman。它不是不好用&#xff0c;只是我们往往习惯了它&#xff0c;就默认它是唯一的选择。做了这么多年 API 开发与测试&#xff0c;我的真实感受是&#xff1a;Postman 的生态确实完整&#xff0c;但它的…

作者头像 李华