diff --git a/.gitignore b/.gitignore index ac0e8ec5..2e3ea7c3 100644 --- a/.gitignore +++ b/.gitignore @@ -41,5 +41,6 @@ client/lib/worklet/dist docker/cudnn/ server/weights/ +server/weights_/ start_trainer.sh diff --git a/server/MMVCServerSIO.py b/server/MMVCServerSIO.py index 906ec22a..f024dec9 100755 --- a/server/MMVCServerSIO.py +++ b/server/MMVCServerSIO.py @@ -169,8 +169,11 @@ if __name__ == "MMVCServerSIO": "position": 1, } ) - with ThreadPoolExecutor() as pool: - pool.map(download, downloadParams) + + # with ThreadPoolExecutor() as pool: + # pool.map(download, downloadParams) + for param in downloadParams: + download(param) if ( os.path.exists(voiceChangerParams.hubert_base) is False diff --git a/server/voice_changer/RVC/_ModelWrapper.py b/server/voice_changer/RVC/_ModelWrapper.py deleted file mode 100644 index a659a05a..00000000 --- a/server/voice_changer/RVC/_ModelWrapper.py +++ /dev/null @@ -1,130 +0,0 @@ -import onnxruntime -import torch -import numpy as np -import json - -# providers = ['OpenVINOExecutionProvider', "CUDAExecutionProvider", "DmlExecutionProvider", "CPUExecutionProvider"] -providers = ["CPUExecutionProvider"] - - -class ModelWrapper: - def __init__(self, onnx_model): - self.onnx_model = onnx_model - - # ort_options = onnxruntime.SessionOptions() - # ort_options.intra_op_num_threads = 8 - self.onnx_session = onnxruntime.InferenceSession( - self.onnx_model, providers=providers - ) - # input_info = s - first_input_type = self.onnx_session.get_inputs()[0].type - if first_input_type == "tensor(float)": - self.is_half = False - else: - self.is_half = True - modelmeta = self.onnx_session.get_modelmeta() - try: - metadata = json.loads(modelmeta.custom_metadata_map["metadata"]) - self.samplingRate = metadata["samplingRate"] - self.f0 = metadata["f0"] - self.embChannels = metadata["embChannels"] - self.modelType = metadata["modelType"] - self.deprecated = False - self.embedder = ( - metadata["embedder"] if "embedder" in metadata else "hubert_base" - ) - print( - f"[Voice Changer] Onnx metadata: sr:{self.samplingRate}, f0:{self.f0}, embedder:{self.embedder}" - ) - except: - self.samplingRate = 48000 - self.f0 = True - self.embChannels = 256 - self.modelType = 0 - self.deprecated = True - self.embedder = "hubert_base" - print( - "[Voice Changer] ############## !!!! CAUTION !!!! ####################" - ) - print( - "[Voice Changer] This onnx's version is depricated. Please regenerate onnxfile. Fallback to default" - ) - print( - f"[Voice Changer] Onnx metadata: sr:{self.samplingRate}, f0:{self.f0}" - ) - print( - "[Voice Changer] ############## !!!! CAUTION !!!! ####################" - ) - - def getSamplingRate(self): - return self.samplingRate - - def getF0(self): - return self.f0 - - def getEmbChannels(self): - return self.embChannels - - def getModelType(self): - return self.modelType - - def getDeprecated(self): - return self.deprecated - - def getEmbedder(self): - return self.embedder - - def set_providers(self, providers, provider_options=[{}]): - self.onnx_session.set_providers( - providers=providers, provider_options=provider_options - ) - - def get_providers(self): - return self.onnx_session.get_providers() - - def infer_pitchless(self, feats, p_len, sid): - if self.is_half: - audio1 = self.onnx_session.run( - ["audio"], - { - "feats": feats.cpu().numpy().astype(np.float16), - "p_len": p_len.cpu().numpy().astype(np.int64), - "sid": sid.cpu().numpy().astype(np.int64), - }, - ) - else: - audio1 = self.onnx_session.run( - ["audio"], - { - "feats": feats.cpu().numpy().astype(np.float32), - "p_len": p_len.cpu().numpy().astype(np.int64), - "sid": sid.cpu().numpy().astype(np.int64), - }, - ) - return torch.tensor(np.array(audio1)) - - def infer(self, feats, p_len, pitch, pitchf, sid): - if self.is_half: - audio1 = self.onnx_session.run( - ["audio"], - { - "feats": feats.cpu().numpy().astype(np.float16), - "p_len": p_len.cpu().numpy().astype(np.int64), - "pitch": pitch.cpu().numpy().astype(np.int64), - "pitchf": pitchf.cpu().numpy().astype(np.float32), - "sid": sid.cpu().numpy().astype(np.int64), - }, - ) - else: - audio1 = self.onnx_session.run( - ["audio"], - { - "feats": feats.cpu().numpy().astype(np.float32), - "p_len": p_len.cpu().numpy().astype(np.int64), - "pitch": pitch.cpu().numpy().astype(np.int64), - "pitchf": pitchf.cpu().numpy().astype(np.float32), - "sid": sid.cpu().numpy().astype(np.int64), - }, - ) - - return torch.tensor(np.array(audio1))