面向 astrbot_plugin_matsuko_cover 的高质量 RVC / SVC-Fusion 中间层,使用 BS-Roformer / MSST 分离人声和伴奏,并提供 Gradio API、分离模型切换、结果缓存、音频后处理和进度回传。
Caution
此版本仅支持 Windows AMD 显卡(A 卡)。推荐使用原生 Windows ROCm 7.2.1;NVIDIA、Intel GPU 和纯 CPU 环境不在支持范围内。
本仓库仅发布源码和安装脚本,不包含 Python/ROCm 环境、ZLUDA 环境、MSST 权重、RVC/SVC 模型、歌曲、缓存或生成音频。
| 项目 | RVCSVC-API-MSST | RVCSVC-API-amd |
|---|---|---|
| 分离器 | BS-Roformer / MSST | UVR5 / HP5 |
| GPU 后端 | Windows AMD ROCm 7.2.1 | DirectML |
| 特点 | 分离质量更高,可切换模型 | 环境较轻、兼容范围较广 |
| 支持显卡 | 仅 AMD | 仅 AMD |
两套中间层使用相同的 3333/9999 端口,不能同时启动。
AstrBot + matsuko_cover
├─ RVC 请求 → RVCSVC-API-MSST :3333 → MSST → RVC :2333
└─ SVC 请求 → RVCSVC-API-MSST :9999 → MSST → SVC-Fusion :7777
要求:
- Windows 10/11 x64
- 支持 Windows ROCm 的 AMD Radeon GPU 与驱动
- uv 已加入
PATH - FFmpeg 已加入
PATH - 已准备上游 RVC 或 SVC-Fusion 服务
运行:
install_rocm_env.bat
脚本会创建 runtime-rocm/ Python 3.12 环境,并根据 requirements-rocm.txt 安装 AMD 官方 Windows ROCm 7.2.1、PyTorch 2.9.1+rocm7.2.1 及中间层依赖。
install_env.bat 会转发到同一个原生 ROCm 安装脚本。旧 env/ + ZLUDA 仅作为已有本地环境的兼容回退,本仓库不分发该环境,也不建议新安装使用。
将分离模型放到:
msst/pretrain/vocal_models/
当前配置支持以下文件名:
model_bs_roformer_ep_317_sdr_12.9755.ckpt
bs_roformer_karaoke_frazer_becruily.ckpt
对应 YAML 配置已经包含在 msst/configs/vocal_models/。权重需从模型作者或 Music-Source-Separation-Training 认可的来源自行获取,本仓库不分发模型文件。
先启动上游推理服务,再启动需要的中间层:
启动 rvcapi.bat # 中间层 3333,需要 RVC 2333
启动 svcapi.bat # 中间层 9999,需要 SVC-Fusion 7777
手动启动:
runtime-rocm\Scripts\python.exe launch.py app_rvc.py --is_nohalf
runtime-rocm\Scripts\python.exe launch.py app_svc.py --is_nohalf插件默认地址:
rvc_base_url = http://127.0.0.1:3333/
svc_base_url = http://127.0.0.1:9999/
/convert:下载/读取歌曲、MSST 分离、调用上游、混音并返回结果。/show_model:读取上游 RVC/SVC 模型。/show_msst_models:返回可用分离模型列表。/select_msst_model:验证并切换默认 MSST 分离模型。/cache_info:返回结果缓存与分离缓存的文件数、占用空间。/clear_cache:在无推理任务运行时清理all、results或separation缓存。- 结果按歌曲、音色模型、分离模型及全部关键参数哈希保存在
temp/。 app.queue(..., api_open=True)必须保持启用,否则 AstrBot 的gradio_client无法调用。
model_bs_roformer_ep_317_sdr_12.9755.ckpt适合作为默认高质量人声模型。- 默认让当前 MSST 模型常驻显存,连续点歌不再每首重复加载权重;显存紧张时设置
MSST_KEEP_MODEL_LOADED=0恢复每次释放。 - 本地音频按内容 SHA256 缓存,RVC/SVC 与 MSST 模型资产变化都会使旧结果缓存自动失效。
- 默认关闭二次 EQ/压缩/混响以保留上游音质;插件开启
vocal_postprocess后才应用这些效果。最终导出带削峰保护,默认 320 kbps。 RVCSVC_CACHE_MAX_FILES(默认 200)限制缓存增长;服务默认只监听127.0.0.1,可通过RVCSVC_HOST显式修改。- 16 GB 显存建议从
batch_size=2、num_overlap=2~4开始。 - 增大 overlap 或启用 TTA 可能提高平滑度,但会增加耗时和显存占用。
- 长歌曲在 AMD 上可能需要较长时间,插件
inference_timeout建议设置到9000秒。
- 服务会调用本机上游端口,不要将 3333/9999 直接暴露到公网。
output/、temp/和下载音频可能包含受版权保护内容,已默认被 Git 忽略。- Windows ROCm 仍有硬件和算子兼容范围;安装脚本通过
torch.cuda.is_available()验证 AMD GPU。 - 本项目不会自动提供上游 RVC/SVC 或 MSST 权重,使用者需自行遵守模型和音频许可。
中间层基于 CCYellowStar2/RVCSVC-API 修改;该上游仓库在本项目发布时未声明开源许可证,因此本仓库不擅自为继承代码授予额外许可。MSST/BS-Roformer 第三方组件及其许可见 THIRD_PARTY_NOTICES.md。