Fix Space startup entrypoint
Browse files- README.md +18 -18
- app.py +2 -3
- tests/test_hf_entrypoint.py +28 -0
README.md
CHANGED
|
@@ -10,23 +10,23 @@ pinned: false
|
|
| 10 |
license: mit
|
| 11 |
---
|
| 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,4 +150,4 @@ A: 建议选择与原唱性别、音色相近的角色,效果更自然。
|
|
| 150 |
|
| 151 |
**License**: MIT
|
| 152 |
**Version**: 2.0
|
| 153 |
-
**Last Updated**: 2026-06-18
|
|
|
|
| 10 |
license: mit
|
| 11 |
---
|
| 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
|
app.py
CHANGED
|
@@ -25,8 +25,7 @@ if __name__ == "__main__":
|
|
| 25 |
|
| 26 |
# 启动 Gradio 界面
|
| 27 |
launch(
|
| 28 |
-
|
| 29 |
-
|
| 30 |
share=False,
|
| 31 |
-
inbrowser=False
|
| 32 |
)
|
|
|
|
| 25 |
|
| 26 |
# 启动 Gradio 界面
|
| 27 |
launch(
|
| 28 |
+
host="0.0.0.0",
|
| 29 |
+
port=7860,
|
| 30 |
share=False,
|
|
|
|
| 31 |
)
|
tests/test_hf_entrypoint.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import ast
|
| 2 |
+
import unittest
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
REPO_ROOT = Path(__file__).resolve().parents[1]
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
class HuggingFaceEntrypointTests(unittest.TestCase):
|
| 10 |
+
def test_entrypoint_calls_ui_launch_with_supported_keywords(self):
|
| 11 |
+
tree = ast.parse((REPO_ROOT / "app.py").read_text(encoding="utf-8"))
|
| 12 |
+
launch_calls = [
|
| 13 |
+
node
|
| 14 |
+
for node in ast.walk(tree)
|
| 15 |
+
if isinstance(node, ast.Call)
|
| 16 |
+
and isinstance(node.func, ast.Name)
|
| 17 |
+
and node.func.id == "launch"
|
| 18 |
+
]
|
| 19 |
+
|
| 20 |
+
self.assertEqual(len(launch_calls), 1)
|
| 21 |
+
self.assertEqual(
|
| 22 |
+
{keyword.arg for keyword in launch_calls[0].keywords},
|
| 23 |
+
{"host", "port", "share"},
|
| 24 |
+
)
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
if __name__ == "__main__":
|
| 28 |
+
unittest.main()
|