mason369 commited on
Commit
6183caf
·
verified ·
1 Parent(s): a9536c4

Sync latest code and fix Space startup

Browse files
README.md CHANGED
@@ -1,151 +1,719 @@
1
- ---
2
- title: AI-RVC 一键 AI 翻唱
3
- emoji: 🎤
4
- colorFrom: blue
5
- colorTo: purple
6
- sdk: gradio
7
- sdk_version: 3.50.2
8
- app_file: app.py
9
- pinned: false
10
- license: mit
11
- ---
 
 
 
 
12
 
13
- # 🎤 AI-RVC 一键 AI 翻唱
14
 
15
- 基于 RVC v2 的一键 AI 翻唱系统,自动完成人声分离、音色转换、混音合成全流程
 
 
 
 
16
 
17
  ## 功能特点
18
 
19
- - **AI 歌曲翻唱**:上传歌曲自动分离人声、转换音色、混合伴奏,一键生翻唱
20
- - **人声分离**:默认 Mel-Band Roformer (KimberleyJensen),在 MVSEP 公开 Multisong 指标中为 Vocals SDR 11.01 / Instrum SDR 17.32
21
- - **音色转换**:RVC v2 架构 + FAISS 检索增强流程
22
- - **RMVPE 音高提取**:高精度 F0 提取,噪声鲁棒性
23
- - **角色模型**:内置 117 个可下载角色模型
24
- - **混音效果**:支持人声混响、音量调节、4 种混音预设
25
- - **卡拉OK模式**:分离主唱和唱轨道
26
- - **VC预处理**:4 种模式(自动直通、学习型DeEcho、旧版手工链)
27
- - **VC管道**:支持当前实现和官方实现
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  ## 使用方法
30
 
31
- ### 1. 下载角色模型
32
 
33
- 首次使用需要下载角色模型:
34
  1. 进入「歌曲翻唱」标签页
35
- 2. 展开「下载角色模型」折叠面板
36
- 3. 选择并下载一个角色(推荐:星空凛、芙宁娜、纳西妲等)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
- ### 2. 开始翻唱
39
 
40
- 1. 上传歌曲文件(支持 MP3/WAV/FLAC)
41
- 2. 选择已下载的角色
42
- 3. 调整参数:
43
- - 音调偏移男转女 +12,女转男 -12
44
- - 混音预设:通用/人声突出/伴奏突出/现场感
45
- - 卡拉OK模式:启用主唱/伴唱分离
46
- 4. 点击「🚀 开始翻唱
47
- 5. 下载生成的翻唱作品
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
  ## 参数说明
50
 
51
- ### 基础参数
 
 
 
 
 
 
 
 
 
 
 
52
 
53
- - **音调偏移**:半音,正数升调,负数降调(男转女: +12, 女转男: -12)
54
- - **索引率**:越高越像训练音色(建议 10-50%)
55
- - **说话ID**:多说话模型说话人选择(通常为 0)
 
 
 
56
 
57
  ### 混音预设
58
 
59
- - **通用**:默认均衡
60
- - **人声突出**:人声 +15%,伴奏 -10%,混响 -5%
61
- - **伴奏突出**:人声 -10%,伴奏 +15%,混响 -5%
62
- - **现场感**:默认音量,混响 +10%
 
 
63
 
64
  ### VC 预处理模式
65
 
66
- - **自动**:根据型可性自动选择(推荐)
67
- - **直通**:主唱直接进入 RVC
68
- - **学习型 DeEcho**:使UVR DeEcho/DeReverb
69
- - **旧版手工链**:仅用于对比测试
 
 
70
 
71
- ## 可用角色模型(117 个)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
- 音频输入 → CoverPipeline
88
-
89
- 人声分离 (Mel-Band Roformer)
90
-
91
- RVC 音色转换 (HuBERT + RMVPE + FAISS)
92
-
93
- 混音 (音量调节 + 混响)
94
-
95
- AI 翻唱成品
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  ```
97
 
98
  ## 常见问题
99
 
100
- **Q: 首次运行很慢?**
101
 
102
- A: 首次运行会自动下载模型文件(HuBERT、RMVPE、Roformer 等),请耐心等待。
 
 
 
103
 
104
- **Q: 高音断音/撕裂?**
105
 
106
- A: 尝试降低保护系数0.33 → 0.2),增滤波半径(3 → 5)。
107
 
108
- **Q: 转换后声失真?**
109
 
110
- A: 降低索引率,调整音调偏移,使用更高质量输入音频。
 
 
 
 
111
 
112
- **Q: 如何选择合适的角色?**
113
 
114
- A: 建议选择与原唱性别、音色相近的角色,效果自然
115
 
116
- ## 性能说明
117
 
118
- - **GPU 加速**:自动测并使用 GPU(CUDA/ROCm)
119
- - **处理时间**:一首 3-5 分钟的歌曲约需 2-5 分钟处理
120
- - **显存需求**:建议 4GB 以上显存
 
121
 
122
- ## 限制说明
123
 
124
- - **音频长度**:建议单次处理不超过 10 分钟
125
- - **文件大小**:建议上传文件不超过 50MB
126
- - **并发处理**:同时只能处理一个任务
127
 
128
- ## 更多信息
 
 
 
 
129
 
130
- - **GitHub 仓库**:https://github.com/mason369/AI-RVC
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
- - [RMVPE](https://arxiv.org/abs/2306.15412) - F0 提取
 
 
 
 
145
  - [Gradio](https://gradio.app/) - Web 界面框架
146
 
147
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
 
149
- **License**: MIT
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
+ ![Windows 界面](docs/Windows界面.png)
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
+ ![Colab 演示](docs/Colab演示.png)
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
- - **人声分离**:默认 Mel-Band Roformer (KimberleyJensen),在 MVSEP 公开 Multisong 指标中为 Vocals SDR 11.01 / Instrum SDR 17.32
21
- - **音色转换**:RVC v2 架构 + FAISS 检索增强流程
22
- - **RMVPE 音高提取**:高精度 F0 提取噪声鲁棒性强
23
- - **角色模型**:内置 117 个可下载角色模型
24
- - **混音效果**:支持人声混响、音量调节4 种混音预设
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-03-15
 
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):