Skip to content

Commit 2d1ddec

Browse files
authored
Add files via upload
1 parent 7c3f34a commit 2d1ddec

1 file changed

Lines changed: 50 additions & 44 deletions

File tree

tools/uvr5/webui.py

Lines changed: 50 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import os
22
import traceback,gradio as gr
33
import logging
4-
from i18n.i18n import I18nAuto
4+
from tools.i18n.i18n import I18nAuto
55
i18n = I18nAuto()
66

77
logger = logging.getLogger(__name__)
8-
import ffmpeg
8+
import librosa
9+
import soundfile as sf
910
import torch
1011
import sys
1112
from mdxnet import MDXNetDereverb
@@ -19,7 +20,8 @@
1920

2021
device=sys.argv[1]
2122
is_half=sys.argv[2]
22-
23+
webui_port_uvr5=int(sys.argv[3])
24+
is_share=eval(sys.argv[4])
2325

2426
def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format0):
2527
infos = []
@@ -50,40 +52,32 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format
5052
paths = [path.name for path in paths]
5153
for path in paths:
5254
inp_path = os.path.join(inp_root, path)
53-
need_reformat = 1
54-
done = 0
55+
if(os.path.isfile(inp_path)==False):continue
5556
try:
56-
info = ffmpeg.probe(inp_path, cmd="ffprobe")
57-
if (
58-
info["streams"][0]["channels"] == 2
59-
and info["streams"][0]["sample_rate"] == "44100"
60-
):
61-
need_reformat = 0
62-
pre_fun._path_audio_(
63-
inp_path, save_root_ins, save_root_vocal, format0, is_hp3=is_hp3
64-
)
65-
done = 1
66-
except:
67-
need_reformat = 1
68-
traceback.print_exc()
69-
if need_reformat == 1:
70-
tmp_path = "%s/%s.reformatted.wav" % (
71-
os.path.join(os.environ["TEMP"]),
72-
os.path.basename(inp_path),
73-
)
74-
os.system(
75-
"ffmpeg -i %s -vn -acodec pcm_s16le -ac 2 -ar 44100 %s -y"
76-
% (inp_path, tmp_path)
77-
)
78-
inp_path = tmp_path
79-
try:
80-
if done == 0:
81-
pre_fun._path_audio_(
82-
inp_path, save_root_ins, save_root_vocal, format0
57+
done = 0
58+
try:
59+
y, sr = librosa.load(inp_path, sr=None)
60+
info = sf.info(inp_path)
61+
channels = info.channels
62+
if channels == 2 and sr == 44100:
63+
need_reformat = 0
64+
pre_fun._path_audio_(
65+
inp_path, save_root_ins, save_root_vocal, format0, is_hp3=is_hp3
66+
)
67+
done = 1
68+
else:
69+
need_reformat = 1
70+
except:
71+
need_reformat = 1
72+
traceback.print_exc()
73+
if need_reformat == 1:
74+
tmp_path = "%s/%s.reformatted.wav" % (
75+
os.path.join(os.environ["TEMP"]),
76+
os.path.basename(inp_path),
8377
)
84-
infos.append("%s->Success" % (os.path.basename(inp_path)))
85-
yield "\n".join(infos)
86-
except:
78+
y_resampled = librosa.resample(y, sr, 44100)
79+
sf.write(tmp_path, y_resampled, 44100, "PCM_16")
80+
inp_path = tmp_path
8781
try:
8882
if done == 0:
8983
pre_fun._path_audio_(
@@ -92,10 +86,21 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format
9286
infos.append("%s->Success" % (os.path.basename(inp_path)))
9387
yield "\n".join(infos)
9488
except:
95-
infos.append(
96-
"%s->%s" % (os.path.basename(inp_path), traceback.format_exc())
97-
)
98-
yield "\n".join(infos)
89+
try:
90+
if done == 0:
91+
pre_fun._path_audio_(
92+
inp_path, save_root_ins, save_root_vocal, format0
93+
)
94+
infos.append("%s->Success" % (os.path.basename(inp_path)))
95+
yield "\n".join(infos)
96+
except:
97+
infos.append(
98+
"%s->%s" % (os.path.basename(inp_path), traceback.format_exc())
99+
)
100+
yield "\n".join(infos)
101+
except:
102+
infos.append("Oh my god. %s->%s"%(os.path.basename(inp_path), traceback.format_exc()))
103+
yield "\n".join(infos)
99104
except:
100105
infos.append(traceback.format_exc())
101106
yield "\n".join(infos)
@@ -115,10 +120,10 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format
115120
yield "\n".join(infos)
116121

117122

118-
with gr.Blocks(title="UVR5 WebUI") as app:
123+
with gr.Blocks(title="RVC WebUI") as app:
119124
gr.Markdown(
120125
value=
121-
"MIT license. https://github.com/Anjok07/ultimatevocalremovergui"
126+
i18n("本软件以MIT协议开源, 作者不对软件具备任何控制力, 使用软件者、传播软件导出的声音者自负全责. <br>如不认可该条款, 则不能使用或引用软件包内任何代码和文件. 详见根目录<b>LICENSE</b>.")
122127
)
123128
with gr.Tabs():
124129
with gr.TabItem(i18n("伴奏人声分离&去混响&去回声")):
@@ -143,7 +148,7 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format
143148
minimum=0,
144149
maximum=20,
145150
step=1,
146-
label="人声提取激进程度",
151+
label=i18n("人声提取激进程度"),
147152
value=10,
148153
interactive=True,
149154
visible=False, # 先不开放调整
@@ -179,6 +184,7 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format
179184
app.queue(concurrency_count=511, max_size=1022).launch(
180185
server_name="0.0.0.0",
181186
inbrowser=True,
182-
server_port=9873,
187+
share=is_share,
188+
server_port=webui_port_uvr5,
183189
quiet=True,
184-
)
190+
)

0 commit comments

Comments
 (0)