diff --git a/src-python/config.py b/src-python/config.py index 52fa5f07..fd21ca00 100644 --- a/src-python/config.py +++ b/src-python/config.py @@ -82,10 +82,6 @@ class Config: def TRANSPARENCY_RANGE(self): return self._TRANSPARENCY_RANGE - @property - def APPEARANCE_THEME_LIST(self): - return self._APPEARANCE_THEME_LIST - @property def UI_SCALING_RANGE(self): return self._UI_SCALING_RANGE @@ -320,17 +316,6 @@ class Config: self._TRANSPARENCY = value self.saveConfig(inspect.currentframe().f_code.co_name, value) - @property - @json_serializable('APPEARANCE_THEME') - def APPEARANCE_THEME(self): - return self._APPEARANCE_THEME - - @APPEARANCE_THEME.setter - def APPEARANCE_THEME(self, value): - if value in self.APPEARANCE_THEME_LIST: - self._APPEARANCE_THEME = value - self.saveConfig(inspect.currentframe().f_code.co_name, value) - @property @json_serializable('UI_SCALING') def UI_SCALING(self): @@ -918,7 +903,6 @@ class Config: self._DOCUMENTS_URL = "https://mzsoftware.notion.site/VRCT-Documents-be79b7a165f64442ad8f326d86c22246" self._DEEPL_AUTH_KEY_PAGE_URL = "https://www.deepl.com/ja/account/summary" self._TRANSPARENCY_RANGE = (40, 100) - self._APPEARANCE_THEME_LIST = ["Light", "Dark", "System"] self._UI_SCALING_RANGE = (40, 200) self._TEXTBOX_UI_SCALING_RANGE = (40, 200) self._MESSAGE_BOX_RATIO_RANGE = (1, 99) @@ -953,7 +937,7 @@ class Config: # Save Json Data ## Main Window self._SELECTED_TAB_NO = "1" - self._SELECTED_TRANSLATION_ENGINES= { + self._SELECTED_TRANSLATION_ENGINES = { "1":"CTranslate2", "2":"CTranslate2", "3":"CTranslate2", @@ -1030,7 +1014,6 @@ class Config: ## Config Window self._TRANSPARENCY = 100 - self._APPEARANCE_THEME = "Dark" self._UI_SCALING = 100 self._TEXTBOX_UI_SCALING = 100 self._MESSAGE_BOX_RATIO = 10 @@ -1043,7 +1026,7 @@ class Config: "width": 870, "height": 654, } - self._AUTO_MIC_SELECT = True + self._AUTO_MIC_SELECT = False self._SELECTED_MIC_HOST = device_manager.getDefaultMicDevice()["host"]["name"] self._SELECTED_MIC_DEVICE = device_manager.getDefaultMicDevice()["device"]["name"] self._MIC_THRESHOLD = 300 @@ -1052,17 +1035,17 @@ class Config: self._MIC_PHRASE_TIMEOUT = 3 self._MIC_MAX_PHRASES = 10 self._MIC_WORD_FILTER = [] - self._MIC_AVG_LOGPROB=-0.8 - self._MIC_NO_SPEECH_PROB=0.6 - self._AUTO_SPEAKER_SELECT = True + self._MIC_AVG_LOGPROB = -0.8 + self._MIC_NO_SPEECH_PROB = 0.6 + self._AUTO_SPEAKER_SELECT = False self._SELECTED_SPEAKER_DEVICE = device_manager.getDefaultSpeakerDevice()["device"]["name"] self._SPEAKER_THRESHOLD = 300 self._SPEAKER_AUTOMATIC_THRESHOLD = False self._SPEAKER_RECORD_TIMEOUT = 3 self._SPEAKER_PHRASE_TIMEOUT = 3 self._SPEAKER_MAX_PHRASES = 10 - self._SPEAKER_AVG_LOGPROB=-0.8 - self._SPEAKER_NO_SPEECH_PROB=0.6 + self._SPEAKER_AVG_LOGPROB = -0.8 + self._SPEAKER_NO_SPEECH_PROB = 0.6 self._OSC_IP_ADDRESS = "127.0.0.1" self._OSC_PORT = 9000 self._AUTH_KEYS = { diff --git a/src-python/webui_controller.py b/src-python/webui_controller.py index 371dda1b..4fed20ae 100644 --- a/src-python/webui_controller.py +++ b/src-python/webui_controller.py @@ -398,10 +398,6 @@ class Controller: def getTransparencyRange(*args, **kwargs) -> dict: return {"status":200, "result":config.TRANSPARENCY_RANGE} - @staticmethod - def getAppearanceThemesList(*args, **kwargs) -> dict: - return {"status":200, "result":config.APPEARANCE_THEME_LIST} - @staticmethod def getUiScalingRange(*args, **kwargs) -> dict: return {"status":200, "result":config.UI_SCALING_RANGE} @@ -416,8 +412,11 @@ class Controller: @staticmethod def getComputeDeviceList(*args, **kwargs) -> dict: - device_list = [{"type":"cuda", "device_index": i, "name": torch.cuda.get_device_name(i)} for i in range(torch.cuda.device_count())] - device_list.append({"type":"cpu", "device_index": 0, "name": "cpu"}) + device_list = [] + if torch.cuda.is_available(): + for i in range(torch.cuda.device_count()): + device_list.append({"device":"cuda", "device_index": i, "name": torch.cuda.get_device_name(i)}) + device_list.append({"device":"cpu", "device_index": 0, "name": "cpu"}) return {"status":200, "result":device_list} @staticmethod @@ -515,13 +514,33 @@ class Controller: @staticmethod def getSelectedTranslationEngines(*args, **kwargs) -> dict: - return {"status":200, "result":config.SELECTED_TRANSLATION_ENGINES} + data = { + "engines":config.SELECTED_TRANSLATION_ENGINES, + "weight_type":config.CTRANSLATE2_WEIGHT_TYPE, + } + return {"status":200, "result":data} @staticmethod - def setSelectedTranslationEngines(engines:dict, *args, **kwargs) -> dict: - printLog("setSelectedTranslationEngines", engines) - config.SELECTED_TRANSLATION_ENGINES = engines - return {"status":200,"result":config.SELECTED_TRANSLATION_ENGINES} + def setSelectedTranslationEngines(data:dict, *args, **kwargs) -> dict: + config.SELECTED_TRANSLATION_ENGINES = data.get("engines", { + "1":"CTranslate2", + "2":"CTranslate2", + "3":"CTranslate2", + }) + config.CTRANSLATE2_WEIGHT_TYPE = data.get("weight_type", "small") + + if model.checkTranslatorCTranslate2ModelWeight(config.CTRANSLATE2_WEIGHT_TYPE): + def callback(): + model.changeTranslatorCTranslate2Model() + th_callback = Thread(target=callback) + th_callback.daemon = True + th_callback.start() + + data = { + "engines":config.SELECTED_TRANSLATION_ENGINES, + "weight_type":config.CTRANSLATE2_WEIGHT_TYPE, + } + return {"status":200,"result":data} @staticmethod def getSelectedYourLanguages(*args, **kwargs) -> dict: @@ -543,12 +562,21 @@ class Controller: @staticmethod def getSelectedTranscriptionEngine(*args, **kwargs) -> dict: - return {"status":200, "result":config.SELECTED_TRANSCRIPTION_ENGINE} + data = { + "engine":config.SELECTED_TRANSCRIPTION_ENGINE, + "weight_type":config.WHISPER_WEIGHT_TYPE, + } + return {"status":200, "result":data} @staticmethod - def setSelectedTranscriptionEngine(data, *args, **kwargs) -> dict: - config.SELECTED_TRANSCRIPTION_ENGINE = str(data) - return {"status":200, "result":config.SELECTED_TRANSCRIPTION_ENGINE} + def setSelectedTranscriptionEngine(data:dict, *args, **kwargs) -> dict: + config.SELECTED_TRANSCRIPTION_ENGINE = data.get("engine", "Google") + config.WHISPER_WEIGHT_TYPE = data.get("weight_type", "base") + data = { + "engine":config.SELECTED_TRANSCRIPTION_ENGINE, + "weight_type":config.WHISPER_WEIGHT_TYPE, + } + return {"status":200, "result":data} @staticmethod def getMultiLanguageTranslation(*args, **kwargs) -> dict: @@ -615,15 +643,6 @@ class Controller: config.TRANSPARENCY = int(data) return {"status":200, "result":config.TRANSPARENCY} - @staticmethod - def getAppearanceTheme(*args, **kwargs) -> dict: - return {"status":200, "result":config.APPEARANCE_THEME} - - @staticmethod - def setAppearanceTheme(data, *args, **kwargs) -> dict: - config.APPEARANCE_THEME = data - return {"status":200, "result":config.APPEARANCE_THEME} - @staticmethod def getUiScaling(*args, **kwargs) -> dict: return {"status":200, "result":config.UI_SCALING} @@ -1111,30 +1130,6 @@ class Controller: self.updateTranslationEngineAndEngineList() return {"status":200, "result":config.AUTH_KEYS["DeepL_API"]} - @staticmethod - def getCtranslate2WeightType(*args, **kwargs) -> dict: - return {"status":200, "result":config.CTRANSLATE2_WEIGHT_TYPE} - - @staticmethod - def setCtranslate2WeightType(data, *args, **kwargs) -> dict: - config.CTRANSLATE2_WEIGHT_TYPE = str(data) - if model.checkTranslatorCTranslate2ModelWeight(config.CTRANSLATE2_WEIGHT_TYPE): - def callback(): - model.changeTranslatorCTranslate2Model() - th_callback = Thread(target=callback) - th_callback.daemon = True - th_callback.start() - return {"status":200, "result":config.CTRANSLATE2_WEIGHT_TYPE} - - @staticmethod - def getWhisperWeightType(*args, **kwargs) -> dict: - return {"status":200, "result":config.WHISPER_WEIGHT_TYPE} - - @staticmethod - def setWhisperWeightType(data, *args, **kwargs) -> dict: - config.WHISPER_WEIGHT_TYPE = str(data) - return {"status":200, "result": config.WHISPER_WEIGHT_TYPE} - @staticmethod def getAutoClearMessageBox(*args, **kwargs) -> dict: return {"status":200, "result":config.AUTO_CLEAR_MESSAGE_BOX} @@ -1639,6 +1634,14 @@ class Controller: th_download.daemon = True th_download.start() + @staticmethod + def updateComputeDeviceSettings() -> None: + if torch.cuda.is_available() is False: + if config.SELECTED_TRANSLATION_COMPUTE_DEVICE["device"] != "cpu": + config.SELECTED_TRANSLATION_COMPUTE_DEVICE = {"device":"cpu", "device_index":0, "device_name":"cpu"} + if config.SELECTED_TRANSCRIPTION_COMPUTE_DEVICE["device"] != "cpu": + config.SELECTED_TRANSCRIPTION_COMPUTE_DEVICE = {"device":"cpu", "device_index":0, "device_name":"cpu"} + @staticmethod def startWatchdog(*args, **kwargs) -> dict: model.startWatchdog() @@ -1689,6 +1692,10 @@ class Controller: self.updateDownloadedWhisperModelWeight() self.updateTranscriptionEngine() + # set Compute CPU or CUDA + printLog("Set Compute CPU or CUDA") + self.updateComputeDeviceSettings() + # set word filter printLog("Set Word Filter") model.addKeywords() diff --git a/src-python/webui_mainloop.py b/src-python/webui_mainloop.py index a3deffcd..75518655 100644 --- a/src-python/webui_mainloop.py +++ b/src-python/webui_mainloop.py @@ -136,10 +136,6 @@ mapping = { "/set/data/selected_translation_compute_device": {"status": True, "variable":controller.setSelectedTranslationComputeDevice}, "/get/data/selectable_ctranslate2_weight_type_dict": {"status": True, "variable":controller.getSelectableCtranslate2WeightTypeDict}, - - "/get/data/ctranslate2_weight_type": {"status": True, "variable":controller.getCtranslate2WeightType}, - "/set/data/ctranslate2_weight_type": {"status": True, "variable":controller.setCtranslate2WeightType}, - "/run/download_ctranslate2_weight": {"status": True, "variable":controller.downloadCtranslate2Weight}, "/get/data/deepl_auth_key": {"status": False, "variable":controller.getDeepLAuthKey}, @@ -241,10 +237,6 @@ mapping = { "/set/data/selected_transcription_compute_device": {"status": True, "variable":controller.setSelectedTranscriptionComputeDevice}, "/get/data/selectable_whisper_weight_type_dict": {"status": True, "variable":controller.getSelectableWhisperWeightTypeDict}, - - "/get/data/whisper_weight_type": {"status": True, "variable":controller.getWhisperWeightType}, - "/set/data/whisper_weight_type": {"status": True, "variable":controller.setWhisperWeightType}, - "/run/download_whisper_weight": {"status": True, "variable":controller.downloadWhisperWeight}, # VR