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-directml和onnxruntime-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/simple、https://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.exe和ffprobe.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 found且device: cpu,说明 DirectML 探测失败,环境回退到了 CPU 执行路径——此时回到第二节核对torch-directml是否随requirments_cpu_py312.txt安装成功,以及显卡驱动是否为项目所针对的 AMD/Intel DirectML 兼容驱动。
六、DirectML 的支持范围与限制
根据 docs/cn/Changelog_CN.md 的说明,pytorch-dml 的支持范围是:
- 实时变声;
- 推理(离线推理);
- 人声伴奏分离;
- 训练暂未支持——会切换至 CPU 训练;
其中第 4 点意味着 DirectML 只加速推理链路;训练在 A 卡/I 卡上走 CPU 路径(rmvpe.pt用于训练侧的 CPU 高提,rmvpe.onnx用于 DirectML 侧的高提推理,两者都要下载)。
另外注意:WebUI 的模型目录(assets/、logs/)会自动创建,但模型文件本身必须按 README.md 的目录结构放在assets/下(assets/hubert_base/、assets/rmvpe/rmvpe.pt、assets/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),仅供参考