Miuzarte commited on
Commit
8c5e44c
·
1 Parent(s): b60540c

Upload 3 files

Browse files
Files changed (2) hide show
  1. app.py +75 -14
  2. inference_main.py +2 -2
app.py CHANGED
@@ -39,8 +39,10 @@ def vc_fn(sid, input_audio, vc_transform):
39
  app = gr.Blocks()
40
  with app:
41
  with gr.Tabs():
42
- with gr.TabItem("岁己SUI"):
43
  gr.Markdown(value="""
 
 
44
  ## 这是 sovits 3.0 48kHz AI岁己“歌声”音色转换的在线demo
45
 
46
  #### 目前模型训练状态:700000steps / 640epochs
@@ -49,25 +51,84 @@ with app:
49
 
50
  #### 如果要在本地推理请使用 git lfs clone 本仓库,安装 requirements.txt 后运行 app.py 即可
51
 
52
- #### 更建议参考仓库[README.md上的推理部分](https://github.com/innnky/so-vits-svc/tree/main#%E6%8E%A8%E7%90%86),在本地使用 inference_main.py 处理
53
-
54
- #### 3060Ti 8G可推理一条20(建议) - 30s的音频,过长音频可分割后批量处理
55
-
56
- ### 亿点点注意事项:
57
-
58
- #### 输入的音频一定要是纯净的干音,不要把歌曲直接扔进来
59
 
60
- #### 长音不太稳,音域不算宽,选曲限制比较大,推荐多试试变调
61
-
62
- #### 对陈述语气没多大作用,实在没干音库的话,你可以自己唱然后升十几个调慢慢试效果
63
-
64
- #### 因为训练集来自于录播,所以音色偏本音,前期变调用于匹配音域,后期可以升一个调匹配一下岁己的歌音
65
  """)
66
  sid = gr.Dropdown(label="音色", choices=["岁己(本音)"], value="岁己(本音)")
67
  vc_input3 = gr.Audio(label="输入音频(长度请控制在30s左右,过长可能会爆内存)")
68
  vc_transform = gr.Number(label="变调(整数,可以正负,半音数量,升高八度就是12)", value=0)
69
  vc_submit = gr.Button("转换", variant="primary")
70
  vc_output1 = gr.Textbox(label="输出日志")
71
- vc_output2 = gr.Audio(label="输出音频")
72
  vc_submit.click(vc_fn, [sid, vc_input3, vc_transform], [vc_output1, vc_output2])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  app.launch()
 
39
  app = gr.Blocks()
40
  with app:
41
  with gr.Tabs():
42
+ with gr.TabItem("歌声音色转换"):
43
  gr.Markdown(value="""
44
+ # 强烈建议☝️先看一遍使用说明
45
+
46
  ## 这是 sovits 3.0 48kHz AI岁己“歌声”音色转换的在线demo
47
 
48
  #### 目前模型训练状态:700000steps / 640epochs
 
51
 
52
  #### 如果要在本地推理请使用 git lfs clone 本仓库,安装 requirements.txt 后运行 app.py 即可
53
 
54
+ #### 更建议参考仓库[README.md上的推理部分](https://github.com/innnky/so-vits-svc/tree/main#%E6%8E%A8%E7%90%86),在本地使用 inference_main.py 处理,速度可以比 Hugging Face 快上十几倍
 
 
 
 
 
 
55
 
56
+ #### 本地推理会调用GPU(cuda),3060Ti 8G可推理一条20(建议) - 30s的音频,过长音频可分割后批量处理
 
 
 
 
57
  """)
58
  sid = gr.Dropdown(label="音色", choices=["岁己(本音)"], value="岁己(本音)")
59
  vc_input3 = gr.Audio(label="输入音频(长度请控制在30s左右,过长可能会爆内存)")
60
  vc_transform = gr.Number(label="变调(整数,可以正负,半音数量,升高八度就是12)", value=0)
61
  vc_submit = gr.Button("转换", variant="primary")
62
  vc_output1 = gr.Textbox(label="输出日志")
63
+ vc_output2 = gr.Audio(label="输出音频(最右侧三个点可以下载)")
64
  vc_submit.click(vc_fn, [sid, vc_input3, vc_transform], [vc_output1, vc_output2])
65
+ with gr.TabItem("亿点点使用说明➕保姆级本地部署教程"):
66
+ gr.Markdown(value="""
67
+ # 强烈建议👇先看一遍使用说明
68
+
69
+ ### 输入的音频一定要是纯净的干音,不要把歌曲直接扔进来
70
+
71
+ ### 长音不太稳,音域不算宽,选曲限制比较大,推荐多试试变调
72
+
73
+ ### 对陈述语气没多大作用,实在没干音库的话,你可以自己唱然后升十几个调慢慢试效果
74
+
75
+ ### 因为训练集来自于录播,所以音色偏本音,前期变调用于匹配音域,后期可以升一个调匹配一下岁己的歌音
76
+
77
+ # 在本地部署并使用 inference_main.py 处理的保姆级教程:
78
+
79
+ ### 0. 创建一个存放文件的目录,例如 D:\\SUI\\
80
+
81
+ ### 1. 安装所需的软件
82
+
83
+ 1. [miniconda-Python3.8](https://docs.conda.io/en/latest/miniconda.html#windows-installers)(未测试其他Python版本)[点这里可以直接下载](https://repo.anaconda.com/miniconda/Miniconda3-py38_22.11.1-1-Windows-x86_64.exe),Just Me 与 All Users 都行,其余可无脑下一步
84
+
85
+ 2. [git](https://git-scm.com/download/win)(建议使用便携版)[点这里可以直接下载(便携版v2.39.0.2)](https://github.com/git-for-windows/git/releases/download/v2.39.0.windows.2/PortableGit-2.39.0.2-64-bit.7z.exe),路径填 D:\\SUI\\git\\
86
+
87
+ ### 2. 在开始菜单中运行 Anaconda Powershell Prompt 并配置环境(除了工作目录,复制粘贴回车即可)
88
+
89
+ ```
90
+ # 切换工作目录
91
+ cd D:\\SUI\\
92
+ # 拉取仓库
93
+ .\\git\\bin\\git lfs clone https://huggingface.co/spaces/Miuzarte/SUI-svc-3.0
94
+
95
+ # 创建环境
96
+ conda create -n sovits python=3.8 -y
97
+ # 更换国内豆瓣源
98
+ conda config --set show_channel_urls yes
99
+ conda config --remove-key channels
100
+ conda config --add channels https://pypi.douban.com/anaconda/cloud/conda-forge/
101
+ conda config --add channels https://pypi.douban.com/anaconda/cloud/msys2/
102
+ conda config --add channels https://pypi.douban.com/anaconda/cloud/bioconda/
103
+ conda config --add channels https://pypi.douban.com/anaconda/cloud/menpo/
104
+ conda config --add channels https://pypi.douban.com/anaconda/cloud/pytorch/
105
+ pip config set global.index-url https://pypi.doubanio.com/simple
106
+
107
+ # 下面这一条给 NVIDIA 用户
108
+ conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -y
109
+ # 安装其余依赖
110
+ pip install -r requirements.txt -y
111
+ ```
112
+
113
+ 至此环境配置完成,关闭该终端窗口(方便我写下一步)
114
+
115
+ ### 3. 歌声音色转换
116
+
117
+ 1. 运行 Anaconda Powershell Prompt 切换工作目录并激活环境
118
+
119
+ ```
120
+ cd D:\\SUI\\
121
+ conda activate sovits
122
+ ```
123
+
124
+ 2. 在 SUI-svc-3.0\\raw\\ 文件夹中放入需要转换的音频(wav格式),8G显存的情况下不建议每条音频超过30s(不包括无声部分),过长会爆显存导致处理时间超级加倍甚至直接报错
125
+
126
+ 3. 编辑 SUI-svc-3.0\\inference_main.py 的第23行(可参考第24行注释的格式),以及26行的变调,修改完保存时注意编码应为 UTF-8
127
+
128
+ 4. 在终端中运行 inference_main.py 开始推理,音频将输出至 SUI-svc-3.0\\results\\ 文件夹
129
+
130
+ ```
131
+ python inference_main.py
132
+ ```
133
+ """)
134
  app.launch()
inference_main.py CHANGED
@@ -14,13 +14,13 @@ from inference.infer_tool import Svc
14
  logging.getLogger('numba').setLevel(logging.WARNING)
15
  chunks_dict = infer_tool.read_temp("inference/chunks_temp.json")
16
 
17
- model_path = "logs/48k/G_700000.pth"
18
  config_path = "configs/suiji.json"
19
  svc_model = Svc(model_path, config_path)
20
  infer_tool.mkdir(["raw", "results"])
21
 
22
  # 支持多个wav文件,放在raw文件夹下
23
- clean_names = ["2043_7"]
24
  # 例如:clean_names = ["千千阙歌_1", "千千阙歌_2", "千千阙歌_3", "千千阙歌_4", "千千阙歌_5", "千千阙歌_6", "千千阙歌_7", "千千阙歌_8"]
25
  # 中文字符过多会报编码错误,分两批就好
26
  trans = [0] # 音高调整,支持正负(半音)
 
14
  logging.getLogger('numba').setLevel(logging.WARNING)
15
  chunks_dict = infer_tool.read_temp("inference/chunks_temp.json")
16
 
17
+ model_path = "logs/48k/suiji.pth"
18
  config_path = "configs/suiji.json"
19
  svc_model = Svc(model_path, config_path)
20
  infer_tool.mkdir(["raw", "results"])
21
 
22
  # 支持多个wav文件,放在raw文件夹下
23
+ clean_names = []
24
  # 例如:clean_names = ["千千阙歌_1", "千千阙歌_2", "千千阙歌_3", "千千阙歌_4", "千千阙歌_5", "千千阙歌_6", "千千阙歌_7", "千千阙歌_8"]
25
  # 中文字符过多会报编码错误,分两批就好
26
  trans = [0] # 音高调整,支持正负(半音)