Sync latest code and fix Space startup
Browse files- README.md +659 -91
- README_HF.md +13 -11
- docs/repository-introduction.md +46 -0
- infer/separator.py +2 -0
- tests/test_model_defaults.py +37 -0
README.md
CHANGED
|
@@ -1,151 +1,719 @@
|
|
| 1 |
-
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
|
| 13 |
-
|
| 14 |
|
| 15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
## 功能特点
|
| 18 |
|
| 19 |
-
- **AI 歌曲翻唱**:上传
|
| 20 |
-
- **人声分离**:默认
|
| 21 |
-
- **音色转换**:RVC v2 架构 + FAISS 检索增强流程
|
| 22 |
-
- **RMVPE 音高提取**:
|
| 23 |
-
- **角色模型**:内置
|
| 24 |
-
- **混音效果**:支持人声混响、音量调节、
|
| 25 |
-
- **
|
| 26 |
-
- **
|
| 27 |
-
- **
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
## 使用方法
|
| 30 |
|
| 31 |
-
###
|
| 32 |
|
| 33 |
-
首次使用需要下载角色模型:
|
| 34 |
1. 进入「歌曲翻唱」标签页
|
| 35 |
-
2.
|
| 36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
-
###
|
| 39 |
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
|
| 49 |
## 参数说明
|
| 50 |
|
| 51 |
-
###
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
-
|
| 54 |
-
-
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
### 混音预设
|
| 58 |
|
| 59 |
-
|
| 60 |
-
-
|
| 61 |
-
|
| 62 |
-
|
|
|
|
|
|
|
| 63 |
|
| 64 |
### VC 预处理模式
|
| 65 |
|
| 66 |
-
|
| 67 |
-
-
|
| 68 |
-
|
| 69 |
-
|
|
|
|
|
|
|
| 70 |
|
| 71 |
-
##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
|
| 73 |
| 系列 | 角色示例 |
|
| 74 |
|------|----------|
|
| 75 |
| Love Live! | 星空凛、园田海未、东条希、小泉花阳、南小鸟 |
|
| 76 |
-
| Love Live! Sunshine!! | 高海千歌、樱内梨子、黑泽黛雅、黑泽露比、国木田花丸 |
|
| 77 |
-
| Love Live! 虹咲学园 | 上原步梦、中须霞、天王寺璃奈、近江彼方、优木雪菜 |
|
|
|
|
|
|
|
| 78 |
| 原神 | 芙宁娜、枫原万叶、纳西妲、八重神子、雷电将军 |
|
|
|
|
| 79 |
| Hololive | Fuwawa、Mococo |
|
| 80 |
-
|
|
| 81 |
|
| 82 |
> 完整列表请在 UI 中查看「下载角色模型」面板
|
| 83 |
|
| 84 |
-
##
|
| 85 |
|
| 86 |
```
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
```
|
| 97 |
|
| 98 |
## 常见问题
|
| 99 |
|
| 100 |
-
**Q:
|
| 101 |
|
| 102 |
-
|
|
|
|
|
|
|
|
|
|
| 103 |
|
| 104 |
-
**Q:
|
| 105 |
|
| 106 |
-
|
| 107 |
|
| 108 |
-
**Q:
|
| 109 |
|
| 110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
|
| 112 |
-
**Q:
|
| 113 |
|
| 114 |
-
|
| 115 |
|
| 116 |
-
|
| 117 |
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
-
|
|
|
|
| 121 |
|
| 122 |
-
|
| 123 |
|
| 124 |
-
|
| 125 |
-
- **文件大小**:建议上传文件不超过 50MB
|
| 126 |
-
- **并发处理**:同时只能处理一个任务
|
| 127 |
|
| 128 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 129 |
|
| 130 |
-
|
| 131 |
-
- **完整文档**:查看仓库中的 README.md
|
| 132 |
-
- **Colab 版本**:AI_RVC_Colab.ipynb
|
| 133 |
-
- **问题反馈**:GitHub Issues
|
| 134 |
|
| 135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 136 |
|
| 137 |
-
|
| 138 |
|
| 139 |
## 致谢
|
| 140 |
|
| 141 |
- [RVC-Project](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI) - 原始 RVC 项目
|
| 142 |
-
- [Mel-Band RoFormer](https://arxiv.org/abs/2310.01809) - 人声分离模型
|
| 143 |
-
- [audio-separator](https://github.com/nomadkaraoke/python-audio-separator) - 音源分离框架
|
| 144 |
-
- [
|
|
|
|
|
|
|
|
|
|
|
|
|
| 145 |
- [Gradio](https://gradio.app/) - Web 界面框架
|
| 146 |
|
| 147 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 148 |
|
| 149 |
-
**
|
| 150 |
-
**Version**: 2.0
|
| 151 |
-
**Last Updated**: 2026-03-15
|
|
|
|
| 1 |
+
# AI-RVC 一键 AI 翻唱 / RVC Voice Conversion WebUI
|
| 2 |
+
|
| 3 |
+
AI-RVC 是一个面向普通用户和创作者的 **RVC v2 AI 翻唱与声音转换工具**。上传一首歌,它会自动分离人声和伴奏,用角色 RVC 模型转换主唱音色,再把转换后的人声、伴奏和混响重新混成完整作品。
|
| 4 |
+
|
| 5 |
+
不用先手动拆音轨,也不用在一堆脚本里来回切。打开 Gradio WebUI,选歌、选角色、点开始,一首 AI cover 就能从原曲一路跑到成品。
|
| 6 |
+
|
| 7 |
+
> 在线体验:[https://telknet.cc/](https://telknet.cc/)
|
| 8 |
+
|
| 9 |
+
**平台支持:Windows / Linux / WSL2 / Google Colab / Hugging Face Spaces**
|
| 10 |
+
|
| 11 |
+

|
| 12 |
+
|
| 13 |
+
## 项目定位与搜索关键词
|
| 14 |
+
|
| 15 |
+
如果你在找 **AI 翻唱、RVC 翻唱、AI cover generator、RVC voice conversion、角色声线转换、人声分离、伴奏分离、HuBERT、RMVPE、FAISS、Gradio WebUI、Colab AI 翻唱** 这类工具,AI-RVC 的目标就是把这些零散步骤串成一条更省心的工作流。
|
| 16 |
|
| 17 |
+
适合放在 GitHub About 的仓库简介:
|
| 18 |
|
| 19 |
+
> 一键 AI 翻唱与 RVC v2 声音转换 WebUI:自动人声分离、HuBERT + RMVPE + FAISS 音色转换、角色模型下载、混音预设,并支持 Windows、Linux、WSL2、Google Colab 和 Hugging Face Spaces。
|
| 20 |
+
|
| 21 |
+
推荐 GitHub Topics:
|
| 22 |
+
|
| 23 |
+
`rvc`, `rvc-v2`, `voice-conversion`, `ai-cover`, `song-cover`, `singing-voice-conversion`, `voice-changer`, `voice-cloning`, `vocal-separation`, `audio-separation`, `rmvpe`, `hubert`, `faiss`, `gradio`, `pytorch`, `colab`, `uvr`, `demucs`, `roformer`, `ai-music`
|
| 24 |
|
| 25 |
## 功能特点
|
| 26 |
|
| 27 |
+
- **AI 歌曲翻唱**:上传 MP3/WAV/FLAC,自动完成人声分离、RVC 音色转换、伴奏混合和结果导出,一首歌从原曲跑到 AI cover 成品。
|
| 28 |
+
- **人声分离**:默认使用 `audio-separator` 0.44.1 ensemble 预设(`ensemble:vocal_rvc`);可选卡拉OK预设、UVR5、Demucs,适配不同歌曲素材。
|
| 29 |
+
- **音色转换**:RVC v2 架构 + 官方 VC 管道,结合 HuBERT 特征、角色模型和 FAISS 检索增强流程,让声线更贴近目标音色。
|
| 30 |
+
- **RMVPE 音高提取**:按 RMVPE 论文报告,在公开基准上优于 CREPE / pYIN / SWIPE 等基线,并具备更好的噪声鲁棒性。
|
| 31 |
+
- **角色模型**:内置可下载角色清单 117 项(以 `tools/character_models.py` 为准),支持系列筛选和关键词搜索。
|
| 32 |
+
- **混音效果**:支持人声混响、音量调节、原声混合,生成结果不用再额外开一套音频工程。
|
| 33 |
+
- **混音预设**:4 种预设(通用、人声突出、伴奏突出、现场感),想快一点就一键应用,想细一点也能继续手调。
|
| 34 |
+
- **卡拉OK模式**:分离主唱和伴唱轨道,支持独立处理和混合,适合和声多、伴唱明显的歌曲。
|
| 35 |
+
- **VC预处理**:4 种模式(自动、直通、学习型 DeEcho、旧版手工链),灵活控制人声预处理。
|
| 36 |
+
- **双VC管道**:支持当前实现和官方实现,可按歌曲素材、模型效果做 A/B 对比。
|
| 37 |
+
- **GPU 加速**:自动检测并使用 CUDA / ROCm / XPU / DirectML / MPS / CPU。
|
| 38 |
+
- **简洁界面**:基于 Gradio 的中文图形界面,支持本地 Web、Google Colab 和 Hugging Face Spaces。
|
| 39 |
+
|
| 40 |
+
## 平台支持
|
| 41 |
+
|
| 42 |
+
| 平台 | 状态 | 安装方式 | 说明 |
|
| 43 |
+
|------|------|---------|------|
|
| 44 |
+
| Windows 10/11 (x64) | ✅ 已支持 | 可执行文件 / 本地安装 | 推荐使用可执行文件,无需安装 Python |
|
| 45 |
+
| Linux (Ubuntu/Debian) | ✅ 按设计支持 | 可执行文件 / 本地安装 | 推荐 Ubuntu 22.04+,需在目标机器验证依赖与 GPU wheel |
|
| 46 |
+
| WSL2 (Windows 11) | ✅ 已支持 | 本地安装 | 可直接通过浏览器访问 `http://127.0.0.1:7860` |
|
| 47 |
+
| Google Colab | ⚠️ Notebook 已更新,需登录后实跑验证 | 在线使用 | 使用独立 Python 3.10 环境规避 Colab 默认 Python 版本变化;需在真实 Colab GPU 运行完整流程 |
|
| 48 |
+
| Hugging Face Spaces | ✅ 已支持 | 在线使用 | 免费 CPU / 付费 GPU |
|
| 49 |
+
| macOS | ⚠️ 未充分验证 | 本地安装 | 可尝试 CPU 模式;MPS 路径尚未适配 |
|
| 50 |
+
|
| 51 |
+
## 快速开始
|
| 52 |
+
|
| 53 |
+
> **💡 推荐方式**:
|
| 54 |
+
> - **新手用户**:使用方式 1(可执行文件),无需安装 Python,开箱即用
|
| 55 |
+
> - **开发者/频繁使用**:使用方式 4(本地安装),运行 `python install.py` 一键完成环境配置
|
| 56 |
+
> - **临时体验**:使用方式 2(Google Colab)或方式 3(Hugging Face Spaces)
|
| 57 |
+
|
| 58 |
+
### 方式 1:可执行文件(推荐新手,无需安装 Python)
|
| 59 |
+
|
| 60 |
+
#### Windows
|
| 61 |
+
|
| 62 |
+
1. 从 [Releases](https://github.com/mason369/AI-RVC/releases/latest) 下载 `AI-RVC-Windows-Portable.zip`
|
| 63 |
+
2. 解压到任意目录
|
| 64 |
+
3. 双击 `AI-RVC-Windows.exe` 启动
|
| 65 |
+
4. 浏览器自动打开 http://127.0.0.1:7860
|
| 66 |
+
|
| 67 |
+
#### Linux
|
| 68 |
+
|
| 69 |
+
1. 从 [Releases](https://github.com/mason369/AI-RVC/releases/latest) 下载 `AI-RVC-Linux-Portable.tar.gz`
|
| 70 |
+
2. 解压:`tar -xzf AI-RVC-Linux-Portable.tar.gz`
|
| 71 |
+
3. 添加执行权限:`chmod +x AI-RVC-Linux-Portable/AI-RVC-Linux`
|
| 72 |
+
4. 运行:`./AI-RVC-Linux-Portable/AI-RVC-Linux`
|
| 73 |
+
5. 浏览器访问 http://127.0.0.1:7860
|
| 74 |
+
|
| 75 |
+
**优势**:
|
| 76 |
+
- ✅ 无需安装 Python 和依赖
|
| 77 |
+
- ✅ 开箱即用,双击启动
|
| 78 |
+
- ✅ 包含所有必需模型
|
| 79 |
+
- ⚠️ 仅支持 CPU 推理(构建时使用 CPU 版 PyTorch 以控制包体积)
|
| 80 |
+
- 💡 如需 GPU 加速,请使用方式 4 本地安装(`python install.py`)
|
| 81 |
+
- ⚠️ 首次启动需要 5-10 分钟下载模型
|
| 82 |
+
|
| 83 |
+
### 方式 2:Google Colab(推荐临时使用)
|
| 84 |
+
|
| 85 |
+

|
| 86 |
+
|
| 87 |
+
1. 打开 Colab notebook:[AI_RVC_Colab.ipynb](https://colab.research.google.com/github/mason369/AI-RVC/blob/master/AI_RVC_Colab.ipynb)
|
| 88 |
+
2. 确保运行时类型设置为 **GPU**(菜单栏 → 代码执行程序 → 更改运行时类型 → T4 GPU)
|
| 89 |
+
3. 按顺序执行每个单元格
|
| 90 |
+
4. 启动 Gradio 界面后,点击生成的公共链接访问
|
| 91 |
+
|
| 92 |
+
**当前状态**:
|
| 93 |
+
- `AI_RVC_Colab.ipynb` 已改为在 Colab 内创建独立 Python 3.10 环境
|
| 94 |
+
- 安装流程会调用 `install.py --no-run`,并严格检查 `fairseq==0.12.2`、`audio-separator>=0.44.1`、CUDA、HuBERT、RMVPE 等关键依赖和模型
|
| 95 |
+
- Gradio 启动不再使用 `--skip-check`,启动前会再次检查环境和必需模型
|
| 96 |
+
- 仍需在真实 Colab 登录态 + GPU 运行时中完整跑一遍,才能标记为“已实测完全可用”
|
| 97 |
+
|
| 98 |
+
### 方式 3:Hugging Face Spaces(在线体验)
|
| 99 |
+
|
| 100 |
+
访问:https://huggingface.co/spaces/mason369/AI-RVC
|
| 101 |
+
|
| 102 |
+
**优势**:
|
| 103 |
+
- 无需安装,直接使用
|
| 104 |
+
- 随时随地访问
|
| 105 |
+
- 易于分享
|
| 106 |
+
|
| 107 |
+
**限制**:
|
| 108 |
+
- 免费版使用 CPU(处理较慢)
|
| 109 |
+
- 可升级到 GPU(付费)
|
| 110 |
+
|
| 111 |
+
### 方式 4:本地安装(推荐开发者和频繁使用)
|
| 112 |
+
|
| 113 |
+
#### 一键安装(推荐)
|
| 114 |
+
|
| 115 |
+
**Windows**
|
| 116 |
+
|
| 117 |
+
```powershell
|
| 118 |
+
# 1. 克隆仓库
|
| 119 |
+
git clone https://github.com/mason369/AI-RVC.git
|
| 120 |
+
cd AI-RVC
|
| 121 |
+
|
| 122 |
+
# 2. 运行一键安装脚本(自动创建虚拟环境、安装依赖)
|
| 123 |
+
python install.py
|
| 124 |
+
|
| 125 |
+
# 脚本会自动:
|
| 126 |
+
# - 检测并创建 Python 3.10 虚拟环境
|
| 127 |
+
# - 安装 PyTorch(自动检测 CUDA/CPU)
|
| 128 |
+
# - 安装所有项目依赖
|
| 129 |
+
# - 启动 Web 界面(首次运行时会自动下载基础模型)
|
| 130 |
+
```
|
| 131 |
+
|
| 132 |
+
**Linux / WSL2**
|
| 133 |
+
|
| 134 |
+
```bash
|
| 135 |
+
# 1. 克隆仓库
|
| 136 |
+
git clone https://github.com/mason369/AI-RVC.git
|
| 137 |
+
cd AI-RVC
|
| 138 |
+
|
| 139 |
+
# 2. 运行一键安装脚本
|
| 140 |
+
python3.10 install.py
|
| 141 |
+
|
| 142 |
+
# 或仅检查环境(不安装)
|
| 143 |
+
python3.10 install.py --check
|
| 144 |
+
|
| 145 |
+
# 或安装 CPU 版本
|
| 146 |
+
python3.10 install.py --cpu
|
| 147 |
+
```
|
| 148 |
+
|
| 149 |
+
**脚本选项**:
|
| 150 |
+
- 无参数:完整安装 + 自动启动
|
| 151 |
+
- `--check`:仅检查环境和依赖,不安装
|
| 152 |
+
- `--cpu`:安装 CPU 版本 PyTorch(无 GPU 加速)
|
| 153 |
+
- `--no-run`:安装完成后不自动启动
|
| 154 |
+
|
| 155 |
+
> 脚本会自动创建 `venv310` 虚拟环境并在其中安装所有依赖。安装后手动启动请使用虚拟环境中的 Python:
|
| 156 |
+
> - Windows:`venv310\Scripts\python run.py`
|
| 157 |
+
> - Linux:`venv310/bin/python run.py`
|
| 158 |
+
|
| 159 |
+
访问 http://127.0.0.1:7860 打开界面。
|
| 160 |
+
|
| 161 |
+
首次运行翻唱时,audio-separator 会自动下载分离模型并缓存在 `assets/separator_models/`(体积随上游模型版本变化,通常为数百 MB)。
|
| 162 |
+
|
| 163 |
+
---
|
| 164 |
+
|
| 165 |
+
#### 手动安装(高级用户)
|
| 166 |
+
|
| 167 |
+
如果需要自定义安装流程,可以手动执行以下步骤:
|
| 168 |
+
|
| 169 |
+
**Windows**
|
| 170 |
+
|
| 171 |
+
```powershell
|
| 172 |
+
# 1. 克隆仓库
|
| 173 |
+
git clone https://github.com/mason369/AI-RVC.git
|
| 174 |
+
cd AI-RVC
|
| 175 |
+
|
| 176 |
+
# 2. 创建虚拟环境
|
| 177 |
+
python -m venv venv310
|
| 178 |
+
.\venv310\Scripts\Activate.ps1
|
| 179 |
+
|
| 180 |
+
# 3. 安装 PyTorch(先在官方页面生成与你环境匹配的命令)
|
| 181 |
+
# https://pytorch.org/get-started/locally/
|
| 182 |
+
# 示例(CUDA 12.6,2026-03-06)
|
| 183 |
+
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu126
|
| 184 |
+
# CPU 示例
|
| 185 |
+
# pip install torch torchaudio --index-url https://download.pytorch.org/whl/cpu
|
| 186 |
+
|
| 187 |
+
# 4. 安装项目依赖
|
| 188 |
+
pip install -r requirements.txt
|
| 189 |
+
|
| 190 |
+
# 5. 下载基础模型(HuBERT、RMVPE)
|
| 191 |
+
python tools/download_models.py
|
| 192 |
+
|
| 193 |
+
# 6. ���动
|
| 194 |
+
python run.py
|
| 195 |
+
```
|
| 196 |
+
|
| 197 |
+
**Linux / WSL2**
|
| 198 |
+
|
| 199 |
+
```bash
|
| 200 |
+
# 1. 克隆仓库
|
| 201 |
+
git clone https://github.com/mason369/AI-RVC.git
|
| 202 |
+
cd AI-RVC
|
| 203 |
+
|
| 204 |
+
# 2. 创建虚拟环境
|
| 205 |
+
python3.10 -m venv venv310
|
| 206 |
+
source venv310/bin/activate
|
| 207 |
+
|
| 208 |
+
# 3. 安装 PyTorch + 依赖
|
| 209 |
+
# 先在 https://pytorch.org/get-started/locally/ 生成命令
|
| 210 |
+
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu126
|
| 211 |
+
pip install -r requirements.txt
|
| 212 |
+
|
| 213 |
+
# 4. 下载基础模型 + 启动
|
| 214 |
+
python tools/download_models.py
|
| 215 |
+
python run.py
|
| 216 |
+
```
|
| 217 |
+
|
| 218 |
+
---
|
| 219 |
+
|
| 220 |
+
**Linux 兼容性说明**:
|
| 221 |
+
- ✅ 核心代码路径使用 `pathlib.Path` 和跨平台设备检测,按设计支持 Linux / WSL2
|
| 222 |
+
- ✅ 虚拟环境路径自动适配(`bin/python` vs `Scripts/python.exe`)
|
| 223 |
+
- ✅ 音频处理库(librosa, soundfile, ffmpeg)在 Linux 上通常表现稳定
|
| 224 |
+
- ✅ CUDA GPU 路径按 PyTorch Linux wheel 支持;ROCm 取决于本机 AMD 驱动、PyTorch ROCm wheel 与系统版本
|
| 225 |
+
- ⚠️ `fairseq==0.12.2`、`pyworld`、`audio-separator[gpu]` 等依赖在不同 Linux 发行版上可能需要编译工具链和系统音频/FFmpeg 依赖
|
| 226 |
+
- ⚠️ 本仓库的 Windows 环境已做自动化检查;Linux / WSL2 建议在目标机器运行 `python3.10 install.py --check` 和一次实际翻唱流程确认
|
| 227 |
+
|
| 228 |
+
**安装脚本说明**:
|
| 229 |
+
- `install.py` 会自动检测系统环境(Windows/Linux)并完成以下步骤:
|
| 230 |
+
1. **检测 Python 3.10**:Windows 检查常见安装路径 + `py -3.10` 启动器;Linux 使用 `python3.10` 命令
|
| 231 |
+
2. **创建虚拟环境**:在 `venv310/` 目录创建隔离的 Python 环境
|
| 232 |
+
3. **安装 PyTorch**:自动检测 CUDA 可用性,安装对应版本(GPU/CPU)
|
| 233 |
+
4. **安装项目依赖**:从 `requirements.txt` 安装所有必需包(包括 fairseq、audio-separator 等)
|
| 234 |
+
5. **启动应用**:自动运行 `run.py` 启动 Web 界面(除非使用 `--no-run`)
|
| 235 |
+
- 基础模型(HuBERT、RMVPE)会在首次运行时由 `run.py` 自动下载
|
| 236 |
+
- 支持参数:`--check`(仅检查)、`--cpu`(CPU 版本)、`--no-run`(不自动启动)
|
| 237 |
+
- 如果虚拟环境已存在,会跳过创建步骤,直接检查依赖
|
| 238 |
+
|
| 239 |
+
## 依赖版本说明
|
| 240 |
+
|
| 241 |
+
| 依赖 | 版本要求 | 说明 |
|
| 242 |
+
|------|----------|------|
|
| 243 |
+
| Python | 3.10+ | 推荐 3.10 |
|
| 244 |
+
| PyTorch | >= 2.0.0 | 语音转换 + 人声分离 |
|
| 245 |
+
| torchaudio | >= 2.0.0 | 与 PyTorch 版本对应 |
|
| 246 |
+
| CUDA | 与 torch wheel 匹配 | 常见 11.8 / 12.1 / 12.4 / 12.6(可选) |
|
| 247 |
+
| fairseq | 0.12.2 | HuBERT 特征提取 |
|
| 248 |
+
| audio-separator | >= 0.44.1 | Mel-Band Roformer / RoFormer 公开 scored SOTA 分离 |
|
| 249 |
+
| demucs | >= 4.0.0 | Demucs 人声分离(可选) |
|
| 250 |
+
|
| 251 |
+
> 建议使用 `python install.py` 安装依赖。`audio-separator` 0.44.1 的上游包元数据会请求 NumPy 2.x,但当前 Gradio 3.x/RVC 栈仍以 NumPy 1.x 最稳;安装脚本会在安装分离器后恢复 `numpy<2`。
|
| 252 |
|
| 253 |
## 使用方法
|
| 254 |
|
| 255 |
+
### 歌曲翻唱(推荐)
|
| 256 |
|
|
|
|
| 257 |
1. 进入「歌曲翻唱」标签页
|
| 258 |
+
2. **下载角色模型**(首次使用):
|
| 259 |
+
- 展开「下载角色模型」折叠面板
|
| 260 |
+
- 可按系列筛选或关键词搜索
|
| 261 |
+
- 点击「下载选中角色」下载单个角色
|
| 262 |
+
- 或点击「下载该分类全部」批量下载
|
| 263 |
+
3. **上传歌曲**:支持 MP3/WAV/FLAC 格式
|
| 264 |
+
4. **选择角色**:从已下载的角色列表中选择
|
| 265 |
+
5. **调整参数**:
|
| 266 |
+
- 基础参数:音调偏移、索引率、说话人ID
|
| 267 |
+
- 卡拉OK设置:启用主唱/伴唱分离
|
| 268 |
+
- VC预处理模式:自动/直通/学习型DeEcho/旧版手工链
|
| 269 |
+
- 源约束策略:自动/关闭/启用
|
| 270 |
+
- VC管道模式:当前实现/官方实现
|
| 271 |
+
- 混音预设:通用/人声突出/伴奏突出/现场感
|
| 272 |
+
- 混音参数:人声音量、伴奏音量、混响、RMS混合率
|
| 273 |
+
6. **开始翻唱**:点击「🚀 开始翻唱」按钮
|
| 274 |
+
7. **下载结果**:
|
| 275 |
+
- 最终翻唱(混合后的完整作品)
|
| 276 |
+
- 转换后的人声
|
| 277 |
+
- 原始人声
|
| 278 |
+
- 主唱轨道(如启用卡拉OK)
|
| 279 |
+
- 伴唱轨道(如启用卡拉OK)
|
| 280 |
+
- 伴奏
|
| 281 |
|
| 282 |
+
### 角色模型管理
|
| 283 |
|
| 284 |
+
**查看可用角色**:
|
| 285 |
+
- 117 个角色,涵盖 Love Live!、原神、Hololive、偶像大师等系列
|
| 286 |
+
- 支持按系列筛选和关键词搜索
|
| 287 |
+
- 显示格式:【语言】角色名(出处)[内部名]
|
| 288 |
+
|
| 289 |
+
**下载方式**:
|
| 290 |
+
- 单个下载:选择角色后点击「下载选中角色」
|
| 291 |
+
- 批量下载:选择系列后点击「下载该分类全部」
|
| 292 |
+
- 全��下载:点击「下载全部角色模型」(需要较长时间)
|
| 293 |
+
|
| 294 |
+
**已下载角色**:
|
| 295 |
+
- 自动刷新列表
|
| 296 |
+
- 支持按系列筛选和关键词搜索
|
| 297 |
+
- 点击「刷新」按钮手动更新
|
| 298 |
+
|
| 299 |
+
## 支持的格式
|
| 300 |
+
|
| 301 |
+
**输入**:MP3, WAV, FLAC(UI 明确支持;其他格式取决于后端解码器)
|
| 302 |
+
|
| 303 |
+
**输出**:WAV(翻唱成品 + 分离人声 + 伴奏)
|
| 304 |
+
|
| 305 |
+
## 技术架构
|
| 306 |
+
|
| 307 |
+
```
|
| 308 |
+
音频输入 → CoverPipeline
|
| 309 |
+
↓
|
| 310 |
+
┌─ 步骤 1:人声分离 ─────────────────────────────┐
|
| 311 |
+
│ Mel-Band Roformer (默认) / UVR5 / Demucs │
|
| 312 |
+
│ ↓ │
|
| 313 |
+
│ 人声 (vocals.wav) + 伴奏 (accompaniment.wav) │
|
| 314 |
+
└────────────────────────────────────────────────┘
|
| 315 |
+
↓
|
| 316 |
+
┌─ 步骤 2:RVC 语音转换 ─────────────────────────┐
|
| 317 |
+
│ HuBERT 特征提取 → RMVPE F0 提取 │
|
| 318 |
+
│ ↓ │
|
| 319 |
+
│ RVC v2 推理(角色模型 + FAISS 索引检索) │
|
| 320 |
+
│ ↓ │
|
| 321 |
+
│ 转换后人声 (converted_vocals.wav) │
|
| 322 |
+
└────────────────────────────────────────────────┘
|
| 323 |
+
↓
|
| 324 |
+
┌─ 步骤 3:混音 ─────────────────────────────────┐
|
| 325 |
+
│ 转换人声 + 伴奏 → 音量调节 + 混响 │
|
| 326 |
+
│ ↓ │
|
| 327 |
+
│ AI 翻唱成品 (cover.wav) │
|
| 328 |
+
└────────────────────────────────────────────────┘
|
| 329 |
+
```
|
| 330 |
+
|
| 331 |
+
### 使用的 AI 模型
|
| 332 |
+
|
| 333 |
+
本项目翻唱流水线由处理链路模型组成,下面先给出当前默认值,再给出可选与对比项。
|
| 334 |
+
|
| 335 |
+
| 环节 | 当前默认 | 作用 |
|
| 336 |
+
|------|----------|------|
|
| 337 |
+
| 人声分离 | `ensemble:vocal_rvc` | 分离主唱与伴奏 |
|
| 338 |
+
| 卡拉OK分离 | `ensemble:karaoke` | 分离主唱与伴唱 |
|
| 339 |
+
| 去混响/去回声 | `dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt` | VC 预处理与严格 DeEcho 路径 |
|
| 340 |
+
| 特征提取 | `hubert_base.pt` | 提取语音内容特征 |
|
| 341 |
+
| 音高提取 | `rmvpe.pt` | 提取 F0 基频曲线 |
|
| 342 |
+
| 语音转换 | RVC v2 | 执行 VC 推理 |
|
| 343 |
+
|
| 344 |
+
---
|
| 345 |
+
|
| 346 |
+
### 当前项目在用的模型
|
| 347 |
+
|
| 348 |
+
| 模型 | 位置 | 用途 | 状态 |
|
| 349 |
+
|------|------|------|------|
|
| 350 |
+
| `ensemble:vocal_rvc` | `infer/separator.py` / `audio-separator` | 默认人声分离预设,包含 `melband_roformer_big_beta6x.ckpt` + `mel_band_roformer_vocals_fv4_gabox.ckpt`,算法 `avg_wave` | 使用中 |
|
| 351 |
+
| `ensemble:karaoke` | `infer/separator.py` / `audio-separator` | 默认卡拉OK分离预设,包含 `mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt` + `mel_band_roformer_karaoke_gabox_v2.ckpt` + `mel_band_roformer_karaoke_becruily.ckpt`,算法 `avg_wave` | 使用中 |
|
| 352 |
+
| `dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt` | `infer/separator.py` | 严格 DeEcho / 去混响 | 使用中 |
|
| 353 |
+
| `htdemucs` / `htdemucs_ft` | `infer/separator.py` | Demucs 分离后端 | 可选 |
|
| 354 |
+
| `HP2_all_vocals.pth` | `configs/config.json` | 当前 UVR5 预设 | 可选 |
|
| 355 |
+
| `htdemucs_ft` | `configs/config.json` | 当前 Demucs 默认值 | 可选 |
|
| 356 |
+
| `HP2_all_vocals.pth` | `tools/download_models.py` | UVR5 主人声模型;同时在 `REQUIRED_MODELS` 下载清单中 | 需要下载 |
|
| 357 |
+
| `HP3_all_vocals.pth` | `tools/download_models.py` | UVR5 主人声模型 | 可选下载 |
|
| 358 |
+
| `HP5_only_main_vocal.pth` | `tools/download_models.py` | UVR5 主人声模型 | 可选下载 |
|
| 359 |
+
| `VR-DeEchoNormal.pth` | `tools/download_models.py` | 旧版 DeEcho | 可选下载 |
|
| 360 |
+
| `VR-DeEchoAggressive.pth` | `tools/download_models.py` | 旧版强去回声 | 可选下载 |
|
| 361 |
+
| `VR-DeEchoDeReverb.pth` | `tools/download_models.py` | 旧版去混响 | 可选下载 |
|
| 362 |
+
| `onnx_dereverb_By_FoxJoy/vocals.onnx` | `tools/download_models.py` | 旧版 ONNX 去混响 | 可选下载 |
|
| 363 |
+
| `hubert_base.pt` | `tools/download_models.py` | HuBERT 内容特征 | 需要下载 |
|
| 364 |
+
| `rmvpe.pt` | `tools/download_models.py` | RMVPE 音高提取 | 需要下载 |
|
| 365 |
+
| `f0G48k.pth` / `f0D48k.pth` | `tools/download_models.py` | 48k 预训练权重 | 可选下载 |
|
| 366 |
+
| `f0G40k.pth` / `f0D40k.pth` | `tools/download_models.py` | 40k 预训练权重 | 可选下载 |
|
| 367 |
+
|
| 368 |
+
---
|
| 369 |
+
|
| 370 |
+
### 人声分离模型对比
|
| 371 |
+
|
| 372 |
+
本项目当前默认使用 `audio-separator` 的 ensemble 预设,而不是旧版单一 ckpt。以下模型名以当前代码和本地 `audio-separator==0.44.1` 包内 `ensemble_presets.json` / `models.json` 为准。
|
| 373 |
+
|
| 374 |
+
| 模型/预设 | 类型 | 用途 | 状态 | 说明 |
|
| 375 |
+
|-----------|------|------|------|------|
|
| 376 |
+
| `ensemble:vocal_rvc` | RoFormer ensemble | 默认人声分离 | 使用中 | `melband_roformer_big_beta6x.ckpt` + `mel_band_roformer_vocals_fv4_gabox.ckpt`,`avg_wave` |
|
| 377 |
+
| `vocals_mel_band_roformer.ckpt` | 单模型 ckpt | 旧版单模人声分离 | 历史参考 | 旧 README 常写的单模型,不再作为当前默认 |
|
| 378 |
+
| `melband_roformer_big_beta6x.ckpt` | 单模型 ckpt | 人声分离候选 | 可选 | 公开可下载的高质量候选模型 |
|
| 379 |
+
| `mel_band_roformer_vocals_fv4_gabox.ckpt` | 单模型 ckpt | 人声分离候选 | 可选 | 公开可下载的高质量候选模型 |
|
| 380 |
+
| `htdemucs` | Demucs | 人声/伴奏分离 | 可选 | 轻量稳定,适合对比 |
|
| 381 |
+
| `htdemucs_ft` | Demucs | 人声/伴奏分离 | 可选 | 微调版,通常比基线更稳 |
|
| 382 |
+
| `bs_roformer_viperx_1053` | BS-RoFormer | 人声/伴奏分离 | 公开参考 | 不在当前本地 `models.json` 可下载名中,不能直接当作本项目可选模型 |
|
| 383 |
+
| `ensemble:karaoke` | RoFormer ensemble | 卡拉OK 主唱/伴唱分离 | 使用中 | 三模型 ensemble,`avg_wave` |
|
| 384 |
+
| `mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt` | 单模型 ckpt | 卡拉OK 分离 | 可选 | 公开带分数的卡拉OK候选 |
|
| 385 |
+
| `dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt` | 单模型 ckpt | 去混响/去回声 | 使用中 | 当前严格 DeEcho 路线使用的模型 |
|
| 386 |
+
|
| 387 |
+
> 说明:不同数据集、榜单和评测协议不能直接横比。这里按“当前默认 / 可选 / 历史参考”来写,不把不同口径的分数硬拼成一张总榜。
|
| 388 |
+
|
| 389 |
+
---
|
| 390 |
+
|
| 391 |
+
### 语音转换模型:RVC v2
|
| 392 |
+
|
| 393 |
+
使用 **RVC v2**(Retrieval-based Voice Conversion v2)进行人声音色转换。
|
| 394 |
+
|
| 395 |
+
| 项目 | 详情 |
|
| 396 |
+
|------|------|
|
| 397 |
+
| 模型全称 | Retrieval-based Voice Conversion v2 |
|
| 398 |
+
| 来源 | [RVC-Project](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI) |
|
| 399 |
+
| 架构 | HuBERT 特征提取 → F0 条件 → 生成器 + FAISS 索引检索 |
|
| 400 |
+
| 特征提取器 | HuBERT Base(`hubert_base.pt`) |
|
| 401 |
+
| 推理权重 | 用户选择的 RVC `.pth` 声线模型 |
|
| 402 |
+
| 索引文件 | 可选 `.index`,通过 FAISS 做检索增强 |
|
| 403 |
+
| 许可证 | MIT |
|
| 404 |
+
|
| 405 |
+
#### 同领域语音转换框架对比
|
| 406 |
+
|
| 407 |
+
| 框架 | 来源 | 架构 | 说明 |
|
| 408 |
+
|------|------|------|------|
|
| 409 |
+
| [RVC v2](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI)(当前) | RVC-Project | HuBERT + 检索增强生成 | 本项目当前采用 |
|
| 410 |
+
| [so-vits-svc](https://github.com/PlayVoice/whisper-vits-svc) | PlayVoice | VITS 系列 | 常见开源 SVC 路线 |
|
| 411 |
+
| [GPT-SoVITS](https://github.com/RVC-Boss/GPT-SoVITS) | RVC-Boss | GPT + VITS few-shot | 更偏 TTS/语音克隆 |
|
| 412 |
+
| [DDSP-SVC](https://github.com/yxlllc/DDSP-SVC) | yxlllc | DDSP | 轻量实时方向 |
|
| 413 |
+
| [Seed-VC](https://arxiv.org/html/2407.07728v3) | 研究论文 | 零样本 VC | 研究方向 |
|
| 414 |
+
|
| 415 |
+
> **结论**:在“角色模型翻唱”工作流里,RVC v2 目前仍是工程上最易落地的选项之一。
|
| 416 |
+
|
| 417 |
+
---
|
| 418 |
+
|
| 419 |
+
### F0 提取模型:RMVPE
|
| 420 |
+
|
| 421 |
+
使用 **RMVPE** 从人声中提取基频(F0)曲线,用于保持转换后的音高/旋律。
|
| 422 |
+
|
| 423 |
+
| 项目 | 详情 |
|
| 424 |
+
|------|------|
|
| 425 |
+
| 模型全称 | Robust Model for Vocal Pitch Estimation in Polyphonic Music |
|
| 426 |
+
| 论文 | [arXiv:2306.15412](https://arxiv.org/abs/2306.15412) |
|
| 427 |
+
| 检查点 | `rmvpe.pt` |
|
| 428 |
+
| 核心优势 | 直接从多声道混音中提取人声音高,噪声鲁棒性强 |
|
| 429 |
+
| 指标 | 论文报告在 RPA/RCA 等指标上优于 CREPE、pYIN、SWIPE、Harvest 等基线 |
|
| 430 |
+
|
| 431 |
+
#### 同领域 F0 提取模型对比
|
| 432 |
+
|
| 433 |
+
| 模型 | 来源 | 说明 |
|
| 434 |
+
|------|------|------|
|
| 435 |
+
| [RMVPE](https://arxiv.org/abs/2306.15412)(当前) | Dream-High | 当前项目默认方案,兼顾精度与鲁棒性 |
|
| 436 |
+
| [CREPE](https://github.com/marl/crepe) | NYU MARL | 经典 CNN 方案,生态成熟 |
|
| 437 |
+
| [Harvest](https://github.com/mmorise/World) | WORLD | 传统信号处理方案,部署简单 |
|
| 438 |
+
|
| 439 |
+
> **结论**:默认推荐 RMVPE。
|
| 440 |
+
|
| 441 |
+
---
|
| 442 |
+
|
| 443 |
+
### 特征提取模型:HuBERT Base
|
| 444 |
+
|
| 445 |
+
| 项目 | 详情 |
|
| 446 |
+
|------|------|
|
| 447 |
+
| 模型全称 | Hidden-Unit BERT |
|
| 448 |
+
| 来源 | [Meta AI / fairseq](https://github.com/facebookresearch/fairseq/tree/main/examples/hubert) |
|
| 449 |
+
| 检查点 | `hubert_base.pt` |
|
| 450 |
+
| 用途 | 提取语音内容特征(去除说话人信息),供 RVC 生成器使用 |
|
| 451 |
+
| 说明 | RVC v2 架构绑定 HuBERT Base;WavLM/ContentVec 在其他框架中可能更优,但本项目现有模型以 HuBERT 为准 |
|
| 452 |
|
| 453 |
## 参数说明
|
| 454 |
|
| 455 |
+
### 转换参数
|
| 456 |
+
|
| 457 |
+
| 参数 | 说明 | 建议值 |
|
| 458 |
+
|------|------|--------|
|
| 459 |
+
| 音调偏移 | 半音数,正数升调,负数降调 | 男转女: +12, 女转男: -12 |
|
| 460 |
+
| F0 提取方法 | 音高提取算法 | rmvpe(默认) |
|
| 461 |
+
| 索引比率 | 越高越像训练音色 | 0.1-0.5 (10-50%) |
|
| 462 |
+
| 滤波半径 | 中值滤波,减少气音抖动 | 3 |
|
| 463 |
+
| 保护系数 | 防止撕裂伪影,越小保护越强 | 0.33 |
|
| 464 |
+
| RMS 混合率 | 音量包络匹配程度 | 0.15 (15%) |
|
| 465 |
+
|
| 466 |
+
### 混音参数(翻唱)
|
| 467 |
|
| 468 |
+
| 参数 | 说明 | 建议值 |
|
| 469 |
+
|------|------|--------|
|
| 470 |
+
| 人声音量 | 转换后人声的音量 | 100% |
|
| 471 |
+
| 伴奏音量 | 背景伴奏的音量 | 100% |
|
| 472 |
+
| 人声混响 | 为人声添加空间感 | 10-20% |
|
| 473 |
+
| 伴唱混合率 | 伴唱在最终输出中的比例 | 0-100% |
|
| 474 |
|
| 475 |
### 混音预设
|
| 476 |
|
| 477 |
+
| 预设 | 人声音量 | 伴奏音量 | 混响 | 说明 |
|
| 478 |
+
|------|---------|---------|------|------|
|
| 479 |
+
| 通用 | 100% | 100% | 10% | 默认均衡设置 |
|
| 480 |
+
| 人声突出 | 115% | 90% | 5% | 突出人声,适合清唱风格 |
|
| 481 |
+
| 伴奏突出 | 90% | 115% | 5% | 突出伴奏,适合背景音乐丰富的歌曲 |
|
| 482 |
+
| 现场感 | 100% | 100% | 20% | 增加混响,模拟现场演出效果 |
|
| 483 |
|
| 484 |
### VC 预处理模式
|
| 485 |
|
| 486 |
+
| 模式 | 说明 | 适用场景 |
|
| 487 |
+
|------|------|---------|
|
| 488 |
+
| 自动 | 根据模型可用性自动选择 | 推荐,智能选择最佳路径 |
|
| 489 |
+
| 直通 | 主唱直接进入 RVC | 干净人声,无需去混响 |
|
| 490 |
+
| 学习型 DeEcho | 使用 UVR DeEcho/DeReverb | 需要去除混响和回声 |
|
| 491 |
+
| 旧版手工链 | 旧版手工去回声链 | 仅用于对比测试 |
|
| 492 |
|
| 493 |
+
### 源约束策略
|
| 494 |
+
|
| 495 |
+
| 模式 | 说明 |
|
| 496 |
+
|------|------|
|
| 497 |
+
| 自动 | 根据场景自动决定 |
|
| 498 |
+
| 关闭 | 不使用源约束 |
|
| 499 |
+
| 启用 | 强制启用源约束 |
|
| 500 |
+
|
| 501 |
+
### VC 管道模式
|
| 502 |
+
|
| 503 |
+
| 模式 | 说明 | 特点 |
|
| 504 |
+
|------|------|------|
|
| 505 |
+
| 当前实现 | 使用项目自定义 VC 流程 | 支持完整的预处理和后处理 |
|
| 506 |
+
| 官方实现 | 使用内置官方 RVC | 跳过自定义预处理,支持唱歌修复 |
|
| 507 |
+
|
| 508 |
+
### 人声分离参数 (config.json)
|
| 509 |
+
|
| 510 |
+
| 参数 | 说明 | 建议值 |
|
| 511 |
+
|------|------|--------|
|
| 512 |
+
| separator | 分离器类型 | roformer(推荐)、uvr5 或 demucs |
|
| 513 |
+
| uvr5_model | UVR5 模型 | HP2_all_vocals |
|
| 514 |
+
| uvr5_agg | UVR5 激进度 (1-10) | 6-8(高音问题可降低) |
|
| 515 |
+
| demucs_model | Demucs 模型 | htdemucs |
|
| 516 |
+
| karaoke_model | 卡拉OK分离模型 | mel_band_roformer_karaoke_gabox.ckpt |
|
| 517 |
+
|
| 518 |
+
### 分离质量评估
|
| 519 |
+
|
| 520 |
+
真实量化指标需要参考 stem。项目提供 `tools/evaluate_karaoke_models.py` 用于对比本地 Karaoke 模型:
|
| 521 |
+
|
| 522 |
+
```powershell
|
| 523 |
+
python tools/evaluate_karaoke_models.py --vocals-path vocals.wav --output-dir outputs/karaoke_eval
|
| 524 |
+
```
|
| 525 |
+
|
| 526 |
+
无参考 stem 时,报告里的 `score` 只是诊断代理分数,用于检查重建误差、主唱/伴唱相关性、能量比例和长度覆盖率,不能代表最终听感。若有人工标注或数据集参考 stem,可加入参考主唱/伴唱,此时报告会输出论文中常用的 SI-SDR / SDR:
|
| 527 |
+
|
| 528 |
+
```powershell
|
| 529 |
+
python tools/evaluate_karaoke_models.py `
|
| 530 |
+
--vocals-path vocals.wav `
|
| 531 |
+
--reference-lead refs/lead.wav `
|
| 532 |
+
--reference-backing refs/backing.wav `
|
| 533 |
+
--output-dir outputs/karaoke_eval
|
| 534 |
+
```
|
| 535 |
+
|
| 536 |
+
实践建议:当前默认使用最新 audio-separator 公开 scored SOTA 分离模型;若某首歌出现主唱变薄或和声泄漏,可以在评估工具中加入参考 stem 使用 SI-SDR/SDR 排名,或手动把 `karaoke_model` 临时改为 `mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt` 做 A/B。
|
| 537 |
+
|
| 538 |
+
## 配置文件
|
| 539 |
+
|
| 540 |
+
主要配置在 `configs/config.json`:
|
| 541 |
+
|
| 542 |
+
```json
|
| 543 |
+
{
|
| 544 |
+
"device": "cuda",
|
| 545 |
+
"f0_method": "rmvpe",
|
| 546 |
+
"index_rate": 0.1,
|
| 547 |
+
"filter_radius": 3,
|
| 548 |
+
"protect": 0.33,
|
| 549 |
+
"cover": {
|
| 550 |
+
"separator": "roformer",
|
| 551 |
+
"karaoke_model": "mel_band_roformer_karaoke_gabox.ckpt",
|
| 552 |
+
"uvr5_model": "HP2_all_vocals",
|
| 553 |
+
"uvr5_agg": 8,
|
| 554 |
+
"rms_mix_rate": 0.0,
|
| 555 |
+
"backing_mix": 0.0
|
| 556 |
+
}
|
| 557 |
+
}
|
| 558 |
+
```
|
| 559 |
+
|
| 560 |
+
## 可用角色模型(100+,当前清单 117)
|
| 561 |
|
| 562 |
| 系列 | 角色示例 |
|
| 563 |
|------|----------|
|
| 564 |
| Love Live! | 星空凛、园田海未、东条希、小泉花阳、南小鸟 |
|
| 565 |
+
| Love Live! Sunshine!! | 高海千歌、樱内梨子、黑泽黛雅、黑泽露比、国木田花丸、津岛善子、小原鞠莉、渡边曜、松浦果南 |
|
| 566 |
+
| Love Live! 虹咲学园 | 上原步梦、中须霞、天王寺璃奈、近江彼方、优木雪菜、三船栞子���米雅·泰勒 |
|
| 567 |
+
| Love Live! Superstar!! | 唐可可、平安名堇 |
|
| 568 |
+
| 偶像大师 | 神崎兰子、梦见莉亚梦、双叶杏、本田未央、岛村卯月 |
|
| 569 |
| 原神 | 芙宁娜、枫原万叶、纳西妲、八重神子、雷电将军 |
|
| 570 |
+
| 碧蓝航线 | 埃塞克斯 |
|
| 571 |
| Hololive | Fuwawa、Mococo |
|
| 572 |
+
| 原创 | 爱美 (Aimi) |
|
| 573 |
|
| 574 |
> 完整列表请在 UI 中查看「下载角色模型」面板
|
| 575 |
|
| 576 |
+
## 项目结构
|
| 577 |
|
| 578 |
```
|
| 579 |
+
AI-RVC/
|
| 580 |
+
├── venv310/ # 虚拟环境 (Python 3.10)
|
| 581 |
+
├── assets/ # 模型文件
|
| 582 |
+
│ ├── hubert/ # HuBERT 模型 (~190 MB)
|
| 583 |
+
│ ├── rmvpe/ # RMVPE 模型
|
| 584 |
+
│ ├── uvr5_weights/ # UVR5 人声分离模型
|
| 585 |
+
│ ├── separator_models/ # Roformer 人声分离模型 (自动下载)
|
| 586 |
+
│ └── weights/ # 用户语音模型
|
| 587 |
+
│ └── characters/ # 角色模型 (100+,自动下载)
|
| 588 |
+
├── configs/ # 配置文件
|
| 589 |
+
│ └── config.json # 主配置
|
| 590 |
+
├── infer/ # 推理模块
|
| 591 |
+
│ ├── pipeline.py # 自定义 RVC 推理管道
|
| 592 |
+
│ ├── cover_pipeline.py # 翻唱流水线
|
| 593 |
+
│ ├── separator.py # 人声分离 (Roformer/Demucs)
|
| 594 |
+
│ └── modules/ # 官方 VC 模块
|
| 595 |
+
│ ├── vc/ # 官方 VC 管道
|
| 596 |
+
│ └── uvr5/ # UVR5 人声分离
|
| 597 |
+
├── lib/ # 核心库
|
| 598 |
+
│ ├── audio.py # 音频处理
|
| 599 |
+
│ ├── mixer.py # 混音模块
|
| 600 |
+
│ └── logger.py # 日志系统
|
| 601 |
+
├── models/ # 模型定义
|
| 602 |
+
├── tools/ # 工具脚本
|
| 603 |
+
│ ├── download_models.py # 基础模型下载
|
| 604 |
+
│ └── character_models.py # 角色模型管理
|
| 605 |
+
├── ui/ # Gradio 界面
|
| 606 |
+
├── outputs/ # 输出文件
|
| 607 |
+
├── temp/ # 临时文件
|
| 608 |
+
└── run.py # 主入口
|
| 609 |
```
|
| 610 |
|
| 611 |
## 常见问题
|
| 612 |
|
| 613 |
+
**Q: CUDA out of memory**
|
| 614 |
|
| 615 |
+
人声分离通常需要约 4GB 以上显存(取决于音频时长和模型),尝试:
|
| 616 |
+
- 关闭其他占用显存的程序
|
| 617 |
+
- 使用较短的音频(建议 < 5 分钟)
|
| 618 |
+
- 在 config.json 中切换 separator 为 demucs 或 uvr5
|
| 619 |
|
| 620 |
+
**Q: 首次运行很慢**
|
| 621 |
|
| 622 |
+
首次运行会自动下载模型文件(大小随模型版本变化),请耐心等待。
|
| 623 |
|
| 624 |
+
**Q: 高音断音/撕裂**
|
| 625 |
|
| 626 |
+
这通常是 F0 提取不稳定导致的,尝试:
|
| 627 |
+
- 降低 UVR5 激进度(`uvr5_agg`: 8 → 6-7)
|
| 628 |
+
- 降低保护系数(`protect`: 0.33 → 0.2)
|
| 629 |
+
- 增大滤波半径(`filter_radius`: 3 → 5)
|
| 630 |
+
- 使用更干净的输入音频
|
| 631 |
|
| 632 |
+
**Q: 转换后声音失真**
|
| 633 |
|
| 634 |
+
尝试:降低索引比率、调整音调偏移、使用更高质量的输入音频。
|
| 635 |
|
| 636 |
+
**Q: 角色模型下载失败**
|
| 637 |
|
| 638 |
+
检查网络连接,或手动下载:
|
| 639 |
+
```bash
|
| 640 |
+
python -c "from tools.character_models import download_character_model; download_character_model('rin')"
|
| 641 |
+
```
|
| 642 |
|
| 643 |
+
**Q: faiss AVX512 警告**
|
| 644 |
|
| 645 |
+
正常的回退机制,faiss 会自动使用 AVX2,不影响功能。
|
|
|
|
|
|
|
| 646 |
|
| 647 |
+
**Q: CUDA 不可用**
|
| 648 |
+
```bash
|
| 649 |
+
nvidia-smi
|
| 650 |
+
python -c "import torch; print(torch.cuda.is_available())"
|
| 651 |
+
```
|
| 652 |
|
| 653 |
+
**Q: torchaudio DLL 加载失败 / 路径相关报错**
|
|
|
|
|
|
|
|
|
|
| 654 |
|
| 655 |
+
项目路径中不能包含中文或特殊字符(如 `C:\新建文件夹\AI-RVC`),否则 PyTorch/torchaudio 的 C++ 库无法正确加��。请将项目放在纯英文路径下,例如 `C:\AI-RVC` 或 `D:\AI-RVC`。
|
| 656 |
+
|
| 657 |
+
## 数据核验说明(2026-05-02)
|
| 658 |
+
|
| 659 |
+
以下外部数据已在 2026-05-02 复核,README 中涉及的关键数字以这些来源为准:
|
| 660 |
+
|
| 661 |
+
- MVSEP 算法页(Multisong 指标与模型分数):https://mvsep.com/algorithms
|
| 662 |
+
- audio-separator 公开模型表:https://pypi.org/project/audio-separator/
|
| 663 |
+
- MVSEP 算法详情(KimberleyJensen 模型):https://mvsep.com/algorithms/49
|
| 664 |
+
- SI-SDR 指标讨论(Le Roux et al., 2019):https://arxiv.org/abs/1811.02508
|
| 665 |
+
- BSS Eval / museval 源分离评估工具链:https://github.com/sigsep/sigsep-mus-eval
|
| 666 |
+
- RVC 官方仓库与许可证:https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI
|
| 667 |
+
- 第三方模型聚合计数(voice-models 列表页):https://voice-models.com/models
|
| 668 |
+
- RMVPE 论文:https://arxiv.org/abs/2306.15412
|
| 669 |
+
- FCPE 论文:https://arxiv.org/html/2509.15140
|
| 670 |
+
- PyTorch 安装页面(当前 CUDA wheel 选择):https://pytorch.org/get-started/locally/
|
| 671 |
+
|
| 672 |
+
## 贡献
|
| 673 |
+
|
| 674 |
+
欢迎提交 Pull Request。
|
| 675 |
+
|
| 676 |
+
1. Fork 本仓库
|
| 677 |
+
2. 创建功能分支:`git checkout -b feature/amazing-feature`
|
| 678 |
+
3. 提交更改:`git commit -m 'feat: add amazing feature'`
|
| 679 |
+
4. 推送分支:`git push origin feature/amazing-feature`
|
| 680 |
+
5. 创建 Pull Request
|
| 681 |
+
|
| 682 |
+
## 许可证
|
| 683 |
|
| 684 |
+
MIT License
|
| 685 |
|
| 686 |
## 致谢
|
| 687 |
|
| 688 |
- [RVC-Project](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI) - 原始 RVC 项目
|
| 689 |
+
- [Mel-Band RoFormer](https://arxiv.org/abs/2310.01809) - 人声分离模型架构论文
|
| 690 |
+
- [audio-separator](https://github.com/nomadkaraoke/python-audio-separator) - 音源分离推理框架
|
| 691 |
+
- [Music-Source-Separation-Training](https://github.com/ZFTurbo/Music-Source-Separation-Training) - Roformer 预训练权重
|
| 692 |
+
- [UVR5](https://github.com/Anjok07/ultimatevocalremovergui) - Ultimate Vocal Remover
|
| 693 |
+
- [Demucs](https://github.com/facebookresearch/demucs) - Meta 人声分离
|
| 694 |
+
- [RMVPE](https://arxiv.org/abs/2306.15412) - 高质量 F0 提取
|
| 695 |
+
- [HuBERT](https://github.com/facebookresearch/fairseq/tree/main/examples/hubert) - 语音特征提取
|
| 696 |
- [Gradio](https://gradio.app/) - Web 界面框架
|
| 697 |
|
| 698 |
+
## 免责声明
|
| 699 |
+
|
| 700 |
+
**重要提示:使用本软件前请仔细阅读以下声明**
|
| 701 |
+
|
| 702 |
+
1. **仅供学习研究**:本项目仅供学习、研究和个人娱乐用途,不得用于任何商业目的。
|
| 703 |
+
|
| 704 |
+
2. **禁止非法使用**:严禁使用本软件进行以下行为:
|
| 705 |
+
- 未经授权模仿他人声音进行欺诈、诈骗
|
| 706 |
+
- 制作虚假音频用于传播谣言或误导公众
|
| 707 |
+
- 侵犯他人肖像权、名誉权或其他合法权益
|
| 708 |
+
- 任何违反当地法律法规的行为
|
| 709 |
+
|
| 710 |
+
3. **版权声明**:
|
| 711 |
+
- 使用本软件转换的音频版权归原作者所有
|
| 712 |
+
- 用户需自行获取原始音频和模型的使用授权
|
| 713 |
+
- 本项目内置的角色模型仅供技术演示,请勿用于商业用途
|
| 714 |
+
|
| 715 |
+
4. **用户责任**:用户对使用本软件产生的所有内容和后果承担全部责任。开发者不对任何滥用行为负责。
|
| 716 |
+
|
| 717 |
+
5. **无担保声明**:本软件按"原样"提供,不提供任何明示或暗示的担保。
|
| 718 |
|
| 719 |
+
**使用本软件即表示您已阅读、理解并同意以上声明。**
|
|
|
|
|
|
README_HF.md
CHANGED
|
@@ -12,19 +12,21 @@ license: mit
|
|
| 12 |
|
| 13 |
# 🎤 AI-RVC 一键 AI 翻唱
|
| 14 |
|
| 15 |
-
基于 RVC v2 的一键 AI 翻唱
|
|
|
|
|
|
|
| 16 |
|
| 17 |
## 功能特点
|
| 18 |
|
| 19 |
-
- **AI 歌曲翻唱**:上传
|
| 20 |
-
- **人声分离**:默认
|
| 21 |
-
- **音色转换**:RVC v2 架构 + FAISS 检索增强流程
|
| 22 |
-
- **RMVPE 音高提取**:
|
| 23 |
-
- **角色模型**:内置 117 个可下载角色模型
|
| 24 |
-
- **混音效果**:支持人声混响、音量调节
|
| 25 |
-
- **卡拉OK模式**:分离主唱和伴唱轨道
|
| 26 |
-
- **VC预处理**:4 种模式(自动、直通、学习型DeEcho、旧版手工链)
|
| 27 |
-
- **双VC管道**:支持当前实现和官方实现
|
| 28 |
|
| 29 |
## 使用方法
|
| 30 |
|
|
@@ -148,4 +150,4 @@ A: 建议选择与原唱性别、音色相近的角色,效果更自然。
|
|
| 148 |
|
| 149 |
**License**: MIT
|
| 150 |
**Version**: 2.0
|
| 151 |
-
**Last Updated**: 2026-
|
|
|
|
| 12 |
|
| 13 |
# 🎤 AI-RVC 一键 AI 翻唱
|
| 14 |
|
| 15 |
+
AI-RVC 是一个基于 **RVC v2** 的一键 AI 翻唱与声音转换 WebUI。上传歌曲后,它会自动分离人声与伴奏,使用角色 RVC 模型转换主唱音色,再把转换后的人声和伴奏混成完整作品。
|
| 16 |
+
|
| 17 |
+
如果你想搜索或分享本项目,可以用这些关键词:AI 翻唱、RVC 翻唱、AI cover generator、RVC voice conversion、角色声线转换、人声分离、伴奏分离、HuBERT、RMVPE、FAISS、Gradio WebUI、Colab AI 翻唱。
|
| 18 |
|
| 19 |
## 功能特点
|
| 20 |
|
| 21 |
+
- **AI 歌曲翻唱**:上传 MP3/WAV/FLAC,自动分离人声、转换音色、混合伴奏,一键生成 AI cover。
|
| 22 |
+
- **人声分离**:默认 `audio-separator` 0.44.1 ensemble 预设(`ensemble:vocal_rvc`),可处理常见歌曲里的主唱与伴奏分离。
|
| 23 |
+
- **音色转换**:RVC v2 架构 + FAISS 检索增强流程,搭配角色模型完成声线转换。
|
| 24 |
+
- **RMVPE 音高提取**:用于提取 F0 基频曲线,让旋律和音高更稳。
|
| 25 |
+
- **角色模型**:内置 117 个可下载角色模型,支持系列筛选和关键词搜索。
|
| 26 |
+
- **混音效果**:支持人声混响、音量调节和 4 种混音预设。
|
| 27 |
+
- **卡拉OK模式**:分离主唱和伴唱轨道,方便对和声较多的歌曲做进一步处理。
|
| 28 |
+
- **VC预处理**:4 种模式(自动、直通、学习型 DeEcho、旧版手工链),根据素材干净程度灵活选择。
|
| 29 |
+
- **双VC管道**:支持当前实现和官方实现,可对比不同歌曲、不同模型下的效果。
|
| 30 |
|
| 31 |
## 使用方法
|
| 32 |
|
|
|
|
| 150 |
|
| 151 |
**License**: MIT
|
| 152 |
**Version**: 2.0
|
| 153 |
+
**Last Updated**: 2026-06-18
|
docs/repository-introduction.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# AI-RVC 仓库介绍与搜索可见性文案
|
| 2 |
+
|
| 3 |
+
这份文档用于配置 GitHub About、仓库 topics、Hugging Face Space 简介或第三方项目介绍页。目标是让搜索引擎和 GitHub 主题页更容易理解:AI-RVC 是一个围绕 **AI 翻唱、RVC v2 声音转换、人声分离、角色声线模型和混音合成** 的项目。
|
| 4 |
+
|
| 5 |
+
## GitHub About 简介
|
| 6 |
+
|
| 7 |
+
中文推荐版:
|
| 8 |
+
|
| 9 |
+
> 一键 AI 翻唱与 RVC v2 声音转换 WebUI:自动人声分离、HuBERT + RMVPE + FAISS 音色转换、角色模型下载、混音预设,并支持 Windows、Linux、WSL2、Google Colab 和 Hugging Face Spaces。
|
| 10 |
+
|
| 11 |
+
English version:
|
| 12 |
+
|
| 13 |
+
> One-click AI cover and RVC v2 voice conversion WebUI with vocal separation, HuBERT + RMVPE + FAISS inference, character model downloads, mixing presets, and support for Windows, Linux, WSL2, Google Colab, and Hugging Face Spaces.
|
| 14 |
+
|
| 15 |
+
## GitHub Topics
|
| 16 |
+
|
| 17 |
+
GitHub topics 建议使用小写字母、数字和连字符。下面这组控制在 20 个以内,便于直接粘贴到仓库 About 面板:
|
| 18 |
+
|
| 19 |
+
`rvc`, `rvc-v2`, `voice-conversion`, `ai-cover`, `song-cover`, `singing-voice-conversion`, `voice-changer`, `voice-cloning`, `vocal-separation`, `audio-separation`, `rmvpe`, `hubert`, `faiss`, `gradio`, `pytorch`, `colab`, `uvr`, `demucs`, `roformer`, `ai-music`
|
| 20 |
+
|
| 21 |
+
## 搜索摘要
|
| 22 |
+
|
| 23 |
+
短版:
|
| 24 |
+
|
| 25 |
+
> AI-RVC 是一个基于 RVC v2 的一键 AI 翻唱工具,自动完成人声分离、角色声线转换、音高提取和混音合成,支持本地 WebUI、Google Colab 与 Hugging Face Spaces。
|
| 26 |
+
|
| 27 |
+
长版:
|
| 28 |
+
|
| 29 |
+
> AI-RVC 面向想做 AI cover、RVC 翻唱和角色声线转换的用户。项目把歌曲处理流程串成一条完整流水线:先用 `audio-separator` / RoFormer 分离人声与伴奏,再通过 HuBERT、RMVPE、FAISS 和 RVC v2 模型转换主唱音色,最后用混音预设生成完整翻唱作品。它提供中文 Gradio WebUI、117 个可下载角色模型、卡拉OK分离、VC 预处理、双 VC 管道,并支持 Windows、Linux、WSL2、Google Colab 和 Hugging Face Spaces。
|
| 30 |
+
|
| 31 |
+
## 关键词组合
|
| 32 |
+
|
| 33 |
+
中文关键词:
|
| 34 |
+
|
| 35 |
+
AI 翻唱、RVC 翻唱、RVC v2 声音转换、AI 声音转换、AI cover、角色声线转换、人声分离、伴奏分离、卡拉OK分离、AI 歌曲翻唱、Gradio WebUI、Colab AI 翻唱、HuBERT、RMVPE、FAISS
|
| 36 |
+
|
| 37 |
+
English keywords:
|
| 38 |
+
|
| 39 |
+
AI cover generator, RVC voice conversion, Retrieval-based Voice Conversion, RVC v2, singing voice conversion, voice changer, voice cloning, vocal separation, audio separation, karaoke separation, Gradio WebUI, Google Colab AI cover, HuBERT, RMVPE, FAISS
|
| 40 |
+
|
| 41 |
+
## 写法原则
|
| 42 |
+
|
| 43 |
+
- 用真实功能词做关键词,不堆无关热词。
|
| 44 |
+
- 仓库简介先说清楚“做什么”,再说“用什么技术”,最后说“在哪些平台可用”。
|
| 45 |
+
- README 首页保留原有技术结构,搜索关键词只放在简介、功能点和仓库介绍中自然出现。
|
| 46 |
+
- 不建议加入与项目无关的关键词,例如“风扇自动控制”。这类页面可以参考它们的一句话简介和 topics 写法,但不能把无关词塞进 AI-RVC 仓库,否则搜索命中会变脏,读者也容易误会项目用途。
|
infer/separator.py
CHANGED
|
@@ -2,6 +2,8 @@
|
|
| 2 |
"""
|
| 3 |
人声分离模块 - 支持 Demucs 和 Mel-Band Roformer (audio-separator)
|
| 4 |
"""
|
|
|
|
|
|
|
| 5 |
import os
|
| 6 |
import gc
|
| 7 |
import shutil
|
|
|
|
| 2 |
"""
|
| 3 |
人声分离模块 - 支持 Demucs 和 Mel-Band Roformer (audio-separator)
|
| 4 |
"""
|
| 5 |
+
from __future__ import annotations
|
| 6 |
+
|
| 7 |
import os
|
| 8 |
import gc
|
| 9 |
import shutil
|
tests/test_model_defaults.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
import sys
|
| 2 |
import tempfile
|
| 3 |
import unittest
|
|
@@ -71,6 +72,42 @@ class ModelDefaultTests(unittest.TestCase):
|
|
| 71 |
self.assertFalse(hasattr(separator, "KARAOKE_FALLBACK_MODELS"))
|
| 72 |
self.assertFalse(hasattr(separator, "ROFORMER_DEREVERB_FALLBACK_MODELS"))
|
| 73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 74 |
|
| 75 |
class KaraokeCandidateScoringTests(unittest.TestCase):
|
| 76 |
def test_karaoke_candidate_score_rewards_reconstruction_and_low_correlation(self):
|
|
|
|
| 1 |
+
import subprocess
|
| 2 |
import sys
|
| 3 |
import tempfile
|
| 4 |
import unittest
|
|
|
|
| 72 |
self.assertFalse(hasattr(separator, "KARAOKE_FALLBACK_MODELS"))
|
| 73 |
self.assertFalse(hasattr(separator, "ROFORMER_DEREVERB_FALLBACK_MODELS"))
|
| 74 |
|
| 75 |
+
def test_separator_import_survives_missing_audio_separator(self):
|
| 76 |
+
script = """
|
| 77 |
+
import importlib.abc
|
| 78 |
+
import sys
|
| 79 |
+
|
| 80 |
+
class BlockAudioSeparator(importlib.abc.MetaPathFinder):
|
| 81 |
+
def find_spec(self, fullname, path=None, target=None):
|
| 82 |
+
if fullname == "audio_separator" or fullname.startswith("audio_separator."):
|
| 83 |
+
raise ImportError("blocked audio_separator")
|
| 84 |
+
return None
|
| 85 |
+
|
| 86 |
+
sys.meta_path.insert(0, BlockAudioSeparator())
|
| 87 |
+
from infer import separator
|
| 88 |
+
|
| 89 |
+
assert separator.AUDIO_SEPARATOR_AVAILABLE is False
|
| 90 |
+
try:
|
| 91 |
+
separator.RoformerSeparator()
|
| 92 |
+
except ImportError as exc:
|
| 93 |
+
assert "audio-separator" in str(exc)
|
| 94 |
+
else:
|
| 95 |
+
raise AssertionError("RoformerSeparator should fail when audio_separator is missing")
|
| 96 |
+
"""
|
| 97 |
+
result = subprocess.run(
|
| 98 |
+
[sys.executable, "-c", script],
|
| 99 |
+
cwd=REPO_ROOT,
|
| 100 |
+
text=True,
|
| 101 |
+
capture_output=True,
|
| 102 |
+
check=False,
|
| 103 |
+
)
|
| 104 |
+
|
| 105 |
+
self.assertEqual(
|
| 106 |
+
result.returncode,
|
| 107 |
+
0,
|
| 108 |
+
msg=f"stdout:\n{result.stdout}\nstderr:\n{result.stderr}",
|
| 109 |
+
)
|
| 110 |
+
|
| 111 |
|
| 112 |
class KaraokeCandidateScoringTests(unittest.TestCase):
|
| 113 |
def test_karaoke_candidate_score_rewards_reconstruction_and_low_correlation(self):
|