diff --git a/client/demo/src/100_options_microphone.tsx b/client/demo/src/100_options_microphone.tsx index 9604ab0c..7509f6a6 100644 --- a/client/demo/src/100_options_microphone.tsx +++ b/client/demo/src/100_options_microphone.tsx @@ -142,10 +142,23 @@ export const useMicrophoneOptions = () => { await clientState.loadModel(serverSetting.configFile, serverSetting.pyTorchModel, serverSetting.onnxModel) setUploadProgress(0) setIsUploading(false) + // await clientState.updateSettings(ServerSettingKey.framework, serverSetting.framework) + // await clientState.updateSettings(ServerSettingKey.onnxExecutionProvider, serverSetting.onnxExecutionProvider) + // await clientState.updateSettings(ServerSettingKey.srcId, speakerSetting.srcId) + // await clientState.updateSettings(ServerSettingKey.dstId, speakerSetting.dstId) + // await clientState.updateSettings(ServerSettingKey.gpu, convertSetting.gpu) + // await clientState.updateSettings(ServerSettingKey.crossFadeOffsetRate, convertSetting.crossFadeOffsetRate) + // await clientState.updateSettings(ServerSettingKey.crossFadeEndRate, convertSetting.crossFadeEndRate) } + + + + } setLoadModelFunc(loadModel) - }, [serverSetting.configFile, serverSetting.pyTorchModel, serverSetting.onnxModel]) + }, [serverSetting.configFile, serverSetting.pyTorchModel, serverSetting.onnxModel, + serverSetting.framework, serverSetting.onnxExecutionProvider, speakerSetting.srcId, speakerSetting.dstId, convertSetting.gpu, convertSetting.crossFadeOffsetRate, convertSetting.crossFadeEndRate + ]) const voiceChangerSetting = useMemo(() => { diff --git a/client/demo/src/hooks/useClient.ts b/client/demo/src/hooks/useClient.ts index 33b89a7b..32e0ba40 100644 --- a/client/demo/src/hooks/useClient.ts +++ b/client/demo/src/hooks/useClient.ts @@ -155,17 +155,19 @@ export const useClient = (props: UseClientProps): ClientState => { const uploadFile = useMemo(() => { return async (file: File, onprogress: (progress: number, end: boolean) => void) => { await initializedPromise + console.log("uploaded.....") const num = await voiceChangerClientRef.current.uploadFile(file, onprogress) const res = await voiceChangerClientRef.current.concatUploadedFile(file, num) - console.log("upload", num, res) + console.log("uploaded", num, res) } }, []) const loadModel = useMemo(() => { return async (configFile: File, pyTorchModelFile: File | null, onnxModelFile: File | null) => { + console.log("load model....") await initializedPromise await voiceChangerClientRef.current.loadModel(configFile, pyTorchModelFile, onnxModelFile) - console.log("load model") + console.log("loaded model") } }, []) diff --git a/client/lib/src/ServerConfigurator.ts b/client/lib/src/ServerConfigurator.ts index ad8ea3aa..b17c4bed 100644 --- a/client/lib/src/ServerConfigurator.ts +++ b/client/lib/src/ServerConfigurator.ts @@ -96,7 +96,7 @@ export class ServerConfigurator { concatUploadedFile = async (file: File, chunkNum: number) => { const url = this.serverUrl + "/concat_uploaded_file" - new Promise((resolve) => { + await new Promise((resolve) => { const formData = new FormData(); formData.append("filename", file.name); formData.append("filenameChunkNum", "" + chunkNum); diff --git a/server/voice_changer/VoiceChanger.py b/server/voice_changer/VoiceChanger.py index 1d32ca73..2e01fff2 100755 --- a/server/voice_changer/VoiceChanger.py +++ b/server/voice_changer/VoiceChanger.py @@ -36,9 +36,9 @@ class VocieChangerSettings(): class VoiceChanger(): - def __init__(self, config:str, pyTorch_model_file:str=None, onnx_model_file:str=None): + def __init__(self, config:str): # 初期化 - self.settings = VocieChangerSettings(config_file=config, pyTorch_model_file=pyTorch_model_file, onnx_model_file=onnx_model_file) + self.settings = VocieChangerSettings(config_file=config) self.unpackedData_length=0 # 共通で使用する情報を収集 self.hps = utils.get_hparams_from_file(config) @@ -53,6 +53,11 @@ class VoiceChanger(): print(f"VoiceChanger Initialized (GPU_NUM:{self.gpu_num}, mps_enabled:{self.mps_enabled})") + def loadModel(self, config:str, pyTorch_model_file:str=None, onnx_model_file:str=None): + self.settings.config_file = config + self.settings.pyTorch_model_file = pyTorch_model_file + self.settings.onnx_model_file = onnx_model_file + # PyTorchモデル生成 if pyTorch_model_file != None: self.net_g = SynthesizerTrn( @@ -70,21 +75,14 @@ class VoiceChanger(): if onnx_model_file != None: ort_options = onnxruntime.SessionOptions() ort_options.intra_op_num_threads = 8 - # ort_options.execution_mode = onnxruntime.ExecutionMode.ORT_SEQUENTIAL - # ort_options.execution_mode = onnxruntime.ExecutionMode.ORT_PARALLEL - # ort_options.inter_op_num_threads = 8 self.onnx_session = onnxruntime.InferenceSession( onnx_model_file, providers=providers ) - # print("ONNX_MDEOL!1", self.onnx_session.get_providers()) - # self.onnx_session.set_providers(providers=["CPUExecutionProvider"]) - # print("ONNX_MDEOL!1", self.onnx_session.get_providers()) - # self.onnx_session.set_providers(providers=["DmlExecutionProvider"]) - # print("ONNX_MDEOL!1", self.onnx_session.get_providers()) else: self.onnx_session = None + def destroy(self): if hasattr(self, "net_g"): del self.net_g diff --git a/server/voice_changer/VoiceChangerManager.py b/server/voice_changer/VoiceChangerManager.py index ad06e287..678cdd5b 100644 --- a/server/voice_changer/VoiceChangerManager.py +++ b/server/voice_changer/VoiceChangerManager.py @@ -11,9 +11,9 @@ class VoiceChangerManager(): return cls._instance def loadModel(self, config, model, onnx_model): - if hasattr(self, 'voiceChanger') == True: - self.voiceChanger.destroy() - self.voiceChanger = VoiceChanger(config, model, onnx_model) + if hasattr(self, 'voiceChanger') == False: + self.voiceChanger = VoiceChanger(config) + self.voiceChanger.loadModel(config, model, onnx_model) def get_info(self): if hasattr(self, 'voiceChanger'):