From d77733911053e2f812349771c5a63970c03b4e23 Mon Sep 17 00:00:00 2001 From: misyaguziya <53165965+misyaguziya@users.noreply.github.com> Date: Wed, 30 Oct 2024 00:37:41 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8D=EF=B8=8F[Update]=20Model=20:=20use?= =?UTF-8?q?=5Ftranslation=5Ffeature=E3=82=92=E5=89=8A=E9=99=A4/=E3=81=9D?= =?UTF-8?q?=E3=82=8C=E3=81=AB=E4=BC=B4=E3=81=84=E4=B8=80=E9=83=A8=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-python/config.py | 14 +---- .../models/translation/translation_utils.py | 5 +- src-python/webui_controller.py | 55 ++++--------------- src-python/webui_mainloop.py | 6 +- 4 files changed, 16 insertions(+), 64 deletions(-) diff --git a/src-python/config.py b/src-python/config.py index 009749fb..a7a8e747 100644 --- a/src-python/config.py +++ b/src-python/config.py @@ -676,17 +676,6 @@ class Config: self._USE_EXCLUDE_WORDS = value self.saveConfig(inspect.currentframe().f_code.co_name, value) - @property - @json_serializable('USE_TRANSLATION_FEATURE') - def USE_TRANSLATION_FEATURE(self): - return self._USE_TRANSLATION_FEATURE - - @USE_TRANSLATION_FEATURE.setter - def USE_TRANSLATION_FEATURE(self, value): - if isinstance(value, bool): - self._USE_TRANSLATION_FEATURE = value - self.saveConfig(inspect.currentframe().f_code.co_name, value) - @property @json_serializable('SELECTED_TRANSLATION_COMPUTE_DEVICE') def SELECTED_TRANSLATION_COMPUTE_DEVICE(self): @@ -1033,7 +1022,7 @@ class Config: }, }, } - self._SELECTED_TRANSCRIPTION_ENGINE = "Google" + self._SELECTED_TRANSCRIPTION_ENGINE = "Whisper" self._MULTI_LANGUAGE_TRANSLATION = False self._CONVERT_MESSAGE_TO_ROMAJI = False self._CONVERT_MESSAGE_TO_HIRAGANA = False @@ -1080,7 +1069,6 @@ class Config: "DeepL_API": None, } self._USE_EXCLUDE_WORDS = True - self._USE_TRANSLATION_FEATURE = True self._SELECTED_TRANSLATION_COMPUTE_DEVICE = {"device": "cpu", "device_index": 0, "device_name":"cpu"} self._SELECTED_TRANSCRIPTION_COMPUTE_DEVICE = {"device": "cpu", "device_index": 0, "device_name":"cpu"} self._CTRANSLATE2_WEIGHT_TYPE = "Small" diff --git a/src-python/models/translation/translation_utils.py b/src-python/models/translation/translation_utils.py index ca0eddc7..dbe06e76 100644 --- a/src-python/models/translation/translation_utils.py +++ b/src-python/models/translation/translation_utils.py @@ -39,7 +39,7 @@ def calculate_file_hash(file_path, block_size=65536): return hash_object.hexdigest() -def checkCTranslate2Weight(path, weight_type="Small"): +def checkCTranslate2Weight(root, weight_type="Small"): weight_directory_name = ctranslate2_weights[weight_type]["directory_name"] hash_data = ctranslate2_weights[weight_type]["hash"] files = [ @@ -47,6 +47,7 @@ def checkCTranslate2Weight(path, weight_type="Small"): "sentencepiece.model", "shared_vocabulary.txt" ] + path = os_path.join(root, "weights", "ctranslate2") # check already downloaded already_downloaded = False @@ -66,7 +67,7 @@ def downloadCTranslate2Weight(root, weight_type="Small", callback=None, end_call path = os_path.join(root, "weights", "ctranslate2") os_makedirs(path, exist_ok=True) - if checkCTranslate2Weight(path, weight_type) is False: + if checkCTranslate2Weight(root, weight_type) is False: try: with tempfile.TemporaryDirectory() as tmp_path: res = requests_get(url, stream=True) diff --git a/src-python/webui_controller.py b/src-python/webui_controller.py index 0cccba25..371dda1b 100644 --- a/src-python/webui_controller.py +++ b/src-python/webui_controller.py @@ -547,21 +547,8 @@ class Controller: @staticmethod def setSelectedTranscriptionEngine(data, *args, **kwargs) -> dict: - engine = data["engine"] - weight_type = data["weight_type"] - if engine == "Whisper" and config.SELECTABLE_WHISPER_WEIGHT_TYPE_DICT[weight_type] is False: - config.SELECTED_TRANSCRIPTION_ENGINE = "Google" - config.WHISPER_WEIGHT_TYPE = None - else: - config.SELECTED_TRANSCRIPTION_ENGINE = engine - config.WHISPER_WEIGHT_TYPE = weight_type - return { - "status":200, - "result":{ - "engine": config.SELECTED_TRANSCRIPTION_ENGINE, - "weight_type": config.WHISPER_WEIGHT_TYPE, - } - } + config.SELECTED_TRANSCRIPTION_ENGINE = str(data) + return {"status":200, "result":config.SELECTED_TRANSCRIPTION_ENGINE} @staticmethod def getMultiLanguageTranslation(*args, **kwargs) -> dict: @@ -1124,26 +1111,6 @@ class Controller: self.updateTranslationEngineAndEngineList() return {"status":200, "result":config.AUTH_KEYS["DeepL_API"]} - @staticmethod - def getUseTranslationFeature(*args, **kwargs) -> dict: - return {"status":200, "result":config.USE_TRANSLATION_FEATURE} - - @staticmethod - def setEnableUseTranslationFeature(*args, **kwargs) -> dict: - config.USE_TRANSLATION_FEATURE = True - 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.USE_TRANSLATION_FEATURE} - - @staticmethod - def setDisableUseTranslationFeature(*args, **kwargs) -> dict: - config.USE_TRANSLATION_FEATURE = False - return {"status":200, "result": config.USE_TRANSLATION_FEATURE} - @staticmethod def getCtranslate2WeightType(*args, **kwargs) -> dict: return {"status":200, "result":config.CTRANSLATE2_WEIGHT_TYPE} @@ -1702,26 +1669,26 @@ class Controller: auth_keys["DeepL_API"] = None config.AUTH_KEYS = auth_keys + # download CTranslate2 Model Weight + printLog("Download CTranslate2 Model Weight") + if model.checkTranslatorCTranslate2ModelWeight(config.CTRANSLATE2_WEIGHT_TYPE) is False: + self.downloadCtranslate2Weight(config.CTRANSLATE2_WEIGHT_TYPE) + # set Translation Engine printLog("Set Translation Engine") self.updateDownloadedCTranslate2ModelWeight() self.updateTranslationEngineAndEngineList() - # download CTranslate2 Model Weight - printLog("Download CTranslate2 Model Weight") - if config.USE_TRANSLATION_FEATURE is True and model.checkTranslatorCTranslate2ModelWeight(config.CTRANSLATE2_WEIGHT_TYPE) is False: - self.downloadCtranslate2Weight(config.CTRANSLATE2_WEIGHT_TYPE) + # download Whisper Model Weight + printLog("Download Whisper Model Weight") + if model.checkTranscriptionWhisperModelWeight(config.WHISPER_WEIGHT_TYPE) is False: + self.downloadWhisperWeight(config.WHISPER_WEIGHT_TYPE) # set Transcription Engine printLog("Set Transcription Engine") self.updateDownloadedWhisperModelWeight() self.updateTranscriptionEngine() - # download Whisper Model Weight - printLog("Download Whisper Model Weight") - if model.checkTranscriptionWhisperModelWeight(config.WHISPER_WEIGHT_TYPE) is False: - self.downloadWhisperWeight(config.WHISPER_WEIGHT_TYPE) - # set word filter printLog("Set Word Filter") model.addKeywords() diff --git a/src-python/webui_mainloop.py b/src-python/webui_mainloop.py index 2f892dd8..baddba4c 100644 --- a/src-python/webui_mainloop.py +++ b/src-python/webui_mainloop.py @@ -21,7 +21,7 @@ run_mapping = { "word_filter":"/run/word_filter", "download_ctranslate2_weight":"/run/download_ctranslate2_weight", - "downloaded_ctranslate2_weight":"/run/download_ctranslate2_weight", + "downloaded_ctranslate2_weight":"/run/downloaded_ctranslate2_weight", "download_whisper_weight":"/run/download_whisper_weight", "downloaded_whisper_weight":"/run/downloaded_whisper_weight", @@ -131,10 +131,6 @@ mapping = { "/set/data/main_window_geometry": {"status": True, "variable":controller.setMainWindowGeometry}, # Translation - "/get/data/use_translation_feature": {"status": True, "variable":controller.getUseTranslationFeature}, - "/set/enable/use_translation_feature": {"status": True, "variable":controller.setEnableUseTranslationFeature}, - "/set/disable/use_translation_feature": {"status": True, "variable":controller.setDisableUseTranslationFeature}, - "/get/data/translation_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList}, "/get/data/selected_translation_compute_device": {"status": True, "variable":controller.getSelectedTranslationComputeDevice}, "/set/data/selected_translation_compute_device": {"status": True, "variable":controller.setSelectedTranslationComputeDevice},