Add files via upload

This commit is contained in:
RVC-Boss 2023-10-08 18:31:09 +08:00 committed by GitHub
parent 361e674054
commit ec29cf8d65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 53 additions and 18 deletions

View File

@ -216,16 +216,26 @@ class Predictor:
path_other = "%s/%s_others.wav" % (others_root, basename) path_other = "%s/%s_others.wav" % (others_root, basename)
sf.write(path_vocal, mix - opt, rate) sf.write(path_vocal, mix - opt, rate)
sf.write(path_other, opt, rate) sf.write(path_other, opt, rate)
opt_path_vocal=path_vocal[:-4] + ".%s" % format
opt_path_other=path_other[:-4] + ".%s" % format
if os.path.exists(path_vocal): if os.path.exists(path_vocal):
os.system( os.system(
"ffmpeg -i %s -vn %s -q:a 2 -y" "ffmpeg -i %s -vn %s -q:a 2 -y"
% (path_vocal, path_vocal[:-4] + ".%s" % format) % (path_vocal, opt_path_vocal)
) )
if(os.path.exists(opt_path_vocal)):
try:
os.remove(path_vocal)
except:pass
if os.path.exists(path_other): if os.path.exists(path_other):
os.system( os.system(
"ffmpeg -i %s -vn %s -q:a 2 -y" "ffmpeg -i %s -vn %s -q:a 2 -y"
% (path_other, path_other[:-4] + ".%s" % format) % (path_other, opt_path_other)
) )
if(os.path.exists(opt_path_other)):
try:
os.remove(path_other)
except:pass
class MDXNetDereverb: class MDXNetDereverb:
@ -242,5 +252,5 @@ class MDXNetDereverb:
self.pred = Predictor(self) self.pred = Predictor(self)
self.device = device self.device = device
def _path_audio_(self, input, vocal_root, others_root, format): def _path_audio_(self, input, vocal_root, others_root, format,is_hp3=False):
self.pred.prediction(input, vocal_root, others_root, format) self.pred.prediction(input, vocal_root, others_root, format)

View File

@ -9,7 +9,7 @@ import torch
from configs.config import Config from configs.config import Config
from infer.modules.uvr5.mdxnet import MDXNetDereverb from infer.modules.uvr5.mdxnet import MDXNetDereverb
from infer.modules.uvr5.preprocess import AudioPre, AudioPreDeEcho from infer.modules.uvr5.vr import AudioPre, AudioPreDeEcho
config = Config() config = Config()
@ -34,8 +34,9 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format
os.getenv("weight_uvr5_root"), model_name + ".pth" os.getenv("weight_uvr5_root"), model_name + ".pth"
), ),
device=config.device, device=config.device,
is_half=config.is_half, is_half=config.is_half
) )
is_hp3 = "HP3" in model_name
if inp_root != "": if inp_root != "":
paths = [os.path.join(inp_root, name) for name in os.listdir(inp_root)] paths = [os.path.join(inp_root, name) for name in os.listdir(inp_root)]
else: else:
@ -52,7 +53,7 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format
): ):
need_reformat = 0 need_reformat = 0
pre_fun._path_audio_( pre_fun._path_audio_(
inp_path, save_root_ins, save_root_vocal, format0 inp_path, save_root_ins, save_root_vocal, format0,is_hp3=is_hp3
) )
done = 1 done = 1
except: except:

View File

@ -16,7 +16,7 @@ from infer.lib.uvr5_pack.utils import inference
class AudioPre: class AudioPre:
def __init__(self, agg, model_path, device, is_half, tta=False): def __init__(self, agg, model_path, device, is_half, tta = False):
self.model_path = model_path self.model_path = model_path
self.device = device self.device = device
self.data = { self.data = {
@ -41,7 +41,7 @@ class AudioPre:
self.mp = mp self.mp = mp
self.model = model self.model = model
def _path_audio_(self, music_file, ins_root=None, vocal_root=None, format="flac"): def _path_audio_(self, music_file, ins_root=None, vocal_root=None, format="flac",is_hp3=False):
if ins_root is None and vocal_root is None: if ins_root is None and vocal_root is None:
return "No save root." return "No save root."
name = os.path.basename(music_file) name = os.path.basename(music_file)
@ -120,18 +120,20 @@ class AudioPre:
else: else:
wav_instrument = spec_utils.cmb_spectrogram_to_wave(y_spec_m, self.mp) wav_instrument = spec_utils.cmb_spectrogram_to_wave(y_spec_m, self.mp)
logger.info("%s instruments done" % name) logger.info("%s instruments done" % name)
if(is_hp3==True):head="vocal_"
else:head="instrument_"
if format in ["wav", "flac"]: if format in ["wav", "flac"]:
sf.write( sf.write(
os.path.join( os.path.join(
ins_root, ins_root,
"instrument_{}_{}.{}".format(name, self.data["agg"], format), head+"{}_{}.{}".format(name, self.data["agg"], format),
), ),
(np.array(wav_instrument) * 32768).astype("int16"), (np.array(wav_instrument) * 32768).astype("int16"),
self.mp.param["sr"], self.mp.param["sr"],
) # ) #
else: else:
path = os.path.join( path = os.path.join(
ins_root, "instrument_{}_{}.wav".format(name, self.data["agg"]) ins_root, head+"{}_{}.wav".format(name, self.data["agg"])
) )
sf.write( sf.write(
path, path,
@ -139,11 +141,18 @@ class AudioPre:
self.mp.param["sr"], self.mp.param["sr"],
) )
if os.path.exists(path): if os.path.exists(path):
opt_format_path=path[:-4] + ".%s" % format
os.system( os.system(
"ffmpeg -i %s -vn %s -q:a 2 -y" "ffmpeg -i %s -vn %s -q:a 2 -y"
% (path, path[:-4] + ".%s" % format) % (path, opt_format_path)
) )
if os.path.exists(opt_format_path):
try:
os.remove(path)
except:pass
if vocal_root is not None: if vocal_root is not None:
if(is_hp3==True):head="instrument_"
else:head="vocal_"
if self.data["high_end_process"].startswith("mirroring"): if self.data["high_end_process"].startswith("mirroring"):
input_high_end_ = spec_utils.mirroring( input_high_end_ = spec_utils.mirroring(
self.data["high_end_process"], v_spec_m, input_high_end, self.mp self.data["high_end_process"], v_spec_m, input_high_end, self.mp
@ -158,14 +167,14 @@ class AudioPre:
sf.write( sf.write(
os.path.join( os.path.join(
vocal_root, vocal_root,
"vocal_{}_{}.{}".format(name, self.data["agg"], format), head+"{}_{}.{}".format(name, self.data["agg"], format),
), ),
(np.array(wav_vocals) * 32768).astype("int16"), (np.array(wav_vocals) * 32768).astype("int16"),
self.mp.param["sr"], self.mp.param["sr"],
) )
else: else:
path = os.path.join( path = os.path.join(
vocal_root, "vocal_{}_{}.wav".format(name, self.data["agg"]) vocal_root, head+"{}_{}.wav".format(name, self.data["agg"])
) )
sf.write( sf.write(
path, path,
@ -173,14 +182,19 @@ class AudioPre:
self.mp.param["sr"], self.mp.param["sr"],
) )
if os.path.exists(path): if os.path.exists(path):
opt_format_path=path[:-4] + ".%s" % format
os.system( os.system(
"ffmpeg -i %s -vn %s -q:a 2 -y" "ffmpeg -i %s -vn %s -q:a 2 -y"
% (path, path[:-4] + ".%s" % format) % (path, opt_format_path)
) )
if os.path.exists(opt_format_path):
try:
os.remove(path)
except:pass
class AudioPreDeEcho: class AudioPreDeEcho:
def __init__(self, agg, model_path, device, is_half, tta=False): def __init__(self, agg, model_path, device, is_half, tta = False):
self.model_path = model_path self.model_path = model_path
self.device = device self.device = device
self.data = { self.data = {
@ -207,7 +221,7 @@ class AudioPreDeEcho:
self.model = model self.model = model
def _path_audio_( def _path_audio_(
self, music_file, vocal_root=None, ins_root=None, format="flac" self, music_file, vocal_root=None, ins_root=None, format="flac",is_hp3=False
): # 3个VR模型vocal和ins是反的 ): # 3个VR模型vocal和ins是反的
if ins_root is None and vocal_root is None: if ins_root is None and vocal_root is None:
return "No save root." return "No save root."
@ -306,10 +320,15 @@ class AudioPreDeEcho:
self.mp.param["sr"], self.mp.param["sr"],
) )
if os.path.exists(path): if os.path.exists(path):
opt_format_path=path[:-4] + ".%s" % format
os.system( os.system(
"ffmpeg -i %s -vn %s -q:a 2 -y" "ffmpeg -i %s -vn %s -q:a 2 -y"
% (path, path[:-4] + ".%s" % format) % (path, opt_format_path)
) )
if os.path.exists(opt_format_path):
try:
os.remove(path)
except:pass
if vocal_root is not None: if vocal_root is not None:
if self.data["high_end_process"].startswith("mirroring"): if self.data["high_end_process"].startswith("mirroring"):
input_high_end_ = spec_utils.mirroring( input_high_end_ = spec_utils.mirroring(
@ -340,7 +359,12 @@ class AudioPreDeEcho:
self.mp.param["sr"], self.mp.param["sr"],
) )
if os.path.exists(path): if os.path.exists(path):
opt_format_path=path[:-4] + ".%s" % format
os.system( os.system(
"ffmpeg -i %s -vn %s -q:a 2 -y" "ffmpeg -i %s -vn %s -q:a 2 -y"
% (path, path[:-4] + ".%s" % format) % (path, opt_format_path)
) )
if os.path.exists(opt_format_path):
try:
os.remove(path)
except:pass