面向 astrbot_plugin_matsuko_cover 的 RVC / SVC-Fusion 中间层,使用 UVR5 分离人声和伴奏,并提供 Gradio API、结果缓存、音频后处理和进度回传。
Caution
此版本仅面向 Windows AMD 显卡(A 卡),使用原生 AMD ROCm 7.2.1。NVIDIA、Intel GPU 和纯 CPU 环境不在支持范围内。
本仓库仅发布源码和环境安装脚本,不包含便携 Python、UVR5 权重、RVC/SVC 模型、歌曲、缓存或生成音频。
| 项目 | RVCSVC-API-amd | RVCSVC-API-MSST |
|---|---|---|
| 分离器 | UVR5 / HP5 | BS-Roformer / MSST |
| GPU 后端 | Windows AMD ROCm 7.2.1 | Windows AMD ROCm 7.2.1 |
| 特点 | 环境较轻、显存占用较小 | 分离质量更高、显存占用更大 |
| 支持显卡 | 仅 AMD | 仅 AMD |
两套中间层使用相同的 3333/9999 端口,不能同时启动。
旧版 DirectML(torch-directml + Python310)已被原生 ROCm 取代;
--dml参数保留但会被忽略。若runtime-rocm/不存在,启动脚本会回退到旧的Python310/DirectML 环境(如有)。
AstrBot + matsuko_cover
├─ RVC 请求 → RVCSVC-API-amd :3333 → UVR5 → RVC :2333
└─ SVC 请求 → RVCSVC-API-amd :9999 → UVR5 → SVC-Fusion :7777
要求:
- Windows 10/11 x64
- AMD ROCm 7.2.1 支持的 Radeon 显卡(如 RX 9070 XT)及对应驱动
- FFmpeg 已加入
PATH(或将ffmpeg/bin放到项目ffmpeg/目录下,启动脚本会自动加载) - 已准备上游 RVC 或 SVC-Fusion 服务
运行:
install_rocm_env.bat
脚本会下载官方 CPython 3.12 Embedded 到 runtime-rocm/,并安装 requirements-rocm.txt(AMD 官方 ROCm 7.2.1 版 PyTorch 2.9.1,约 4GB)。AMD 的 Windows ROCm wheel 目前只提供 cp312 版本,因此必须使用 Python 3.12。
也可以使用现有 Python 3.12 环境手动安装:
python -m pip install -r requirements-rocm.txt从 Ultimate Vocal Remover GUI 项目认可的模型来源获取 5_HP-Karaoke-UVR.pth,放到:
uvr5/uvr_model/5_HP-Karaoke-UVR.pth
模型文件不在本仓库中分发。
先启动上游推理服务,再启动需要的中间层:
启动 rvcapi.bat # 中间层 3333,需要 RVC 2333
启动 svcapi.bat # 中间层 9999,需要 SVC-Fusion 7777
手动启动:
runtime-rocm\python.exe app_rvc.py --is_nohalf
runtime-rocm\python.exe app_svc.py --is_nohalf插件默认地址:
rvc_base_url = http://127.0.0.1:3333/
svc_base_url = http://127.0.0.1:9999/
/convert:下载/读取歌曲、UVR5 分离、调用上游、混音并返回结果。/show_model:读取上游可用模型。/cache_info:返回结果缓存与分离缓存的文件数、占用空间。/clear_cache:在无推理任务运行时清理all、results或separation缓存。- 结果按歌曲和所有关键参数哈希保存在
temp/;参数完全一致时直接返回缓存。 app.queue(..., api_open=True)必须保持启用,否则 AstrBot 的gradio_client无法调用。- 本地音频缓存使用文件内容 SHA256,不会因路径变化误复用;模型文件变化也会自动使旧结果缓存失效。
- 默认保留上游 RVC/SVC 原始人声,只在插件开启
vocal_postprocess时应用 EQ、压缩、延迟与混响;导出前执行削峰保护并使用 320 kbps MP3。 RVCSVC_CACHE_MAX_FILES(默认 200)限制每个缓存区域文件数;RVCSVC_OUTPUT_BITRATE可修改输出码率。- 服务默认仅监听
127.0.0.1且不创建公网分享链接;需要局域网监听时显式设置RVCSVC_HOST,公开分享需设置RVCSVC_SHARE=1。
- 服务会调用本机上游端口,不要将 3333/9999 直接暴露到公网。
output/、temp/和下载音频可能包含受版权保护内容,已默认被 Git 忽略。- ROCm 版 PyTorch 通过
torch.cudaAPI 暴露 AMD GPU,应用代码无需 CUDA 专用改造;若需要更高分离质量,使用 MSST 版本。 - 本项目不会自动提供上游 RVC/SVC 模型,使用者需自行遵守模型和音频许可。
中间层基于 CCYellowStar2/RVCSVC-API 修改;该上游仓库在本项目发布时未声明开源许可证,因此本仓库不擅自为继承代码授予额外许可。第三方 UVR5 组件及其许可见 THIRD_PARTY_NOTICES.md。