From 4eb811aac4b113043f7b9e0bbfb3ae149dd9ce97 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Wed, 14 Feb 2024 00:21:56 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7[WIP/TEST]=20Model=20:=20=E7=BF=BB?= =?UTF-8?q?=E8=A8=B3=E8=B5=B7=E5=8B=95=E6=99=82=E3=81=AB=E3=83=A2=E3=83=87?= =?UTF-8?q?=E3=83=AB=E3=82=92=E3=83=AD=E3=83=BC=E3=83=89=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller.py | 2 ++ model.py | 5 +++-- models/translation/translation_translator.py | 8 ++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/controller.py b/controller.py index a40282df..34ea3a14 100644 --- a/controller.py +++ b/controller.py @@ -377,8 +377,10 @@ def callbackSelectedTranslationEngine(selected_translation_engine): def callbackToggleTranslation(is_turned_on): config.ENABLE_TRANSLATION = is_turned_on if config.ENABLE_TRANSLATION is True: + model.changeTranslatorCTranslate2Model() view.printToTextbox_enableTranslation() else: + model.clearTranslatorCTranslate2Model() view.printToTextbox_disableTranslation() def callbackToggleTranscriptionSend(is_turned_on): diff --git a/model.py b/model.py index f5913d17..e39b718f 100644 --- a/model.py +++ b/model.py @@ -66,8 +66,6 @@ class Model: self.speaker_energy_recorder = None self.speaker_energy_plot_progressbar = None self.translator = Translator() - if config.USE_TRANSLATION_FEATURE is True: - self.translator.changeCTranslate2Model(config.PATH_LOCAL, config.CTRANSLATE2_WEIGHT_TYPE) self.keyword_processor = KeywordProcessor() def checkCTranslatorCTranslate2ModelWeight(self): @@ -76,6 +74,9 @@ class Model: def changeTranslatorCTranslate2Model(self): self.translator.changeCTranslate2Model(config.PATH_LOCAL, config.CTRANSLATE2_WEIGHT_TYPE) + def clearTranslatorCTranslate2Model(self): + self.translator.clearCTranslate2Model() + def checkTranscriptionWhisperModelWeight(self): return checkWhisperWeight(config.PATH_LOCAL, config.WHISPER_WEIGHT_TYPE) diff --git a/models/translation/translation_translator.py b/models/translation/translation_translator.py index c966c672..a71d0f55 100644 --- a/models/translation/translation_translator.py +++ b/models/translation/translation_translator.py @@ -1,3 +1,4 @@ +import gc import os from deepl import Translator as deepl_Translator from translators import translate_text as other_web_Translator @@ -44,6 +45,13 @@ class Translator(): tokenizer_path = os.path.join("./weights", "ctranslate2", directory_name, "tokenizer") self.ctranslate2_tokenizer = transformers.AutoTokenizer.from_pretrained(tokenizer, cache_dir=tokenizer_path) + def clearCTranslate2Model(self): + del self.ctranslate2_translator + del self.ctranslate2_tokenizer + gc.collect() + self.ctranslate2_translator = None + self.ctranslate2_tokenizer = None + @staticmethod def getLanguageCode(translator_name, target_country, source_language, target_language): match translator_name: