diff --git a/controller.py b/controller.py index 3d848556..ef639284 100644 --- a/controller.py +++ b/controller.py @@ -74,6 +74,8 @@ def sendMicMessage(message): if model.checkKeywords(message): view.printToTextbox_DetectedByWordFilter(detected_message=message) return + elif model.detectRepeatSendMessage(message): + return elif config.ENABLE_TRANSLATION is False: pass else: @@ -145,7 +147,9 @@ def stopThreadingTranscriptionSendMessageOnOpenConfigWindow(): def receiveSpeakerMessage(message): if len(message) > 0: translation = "" - if config.ENABLE_TRANSLATION is False: + if model.detectRepeatReceiveMessage(message): + return + elif config.ENABLE_TRANSLATION is False: pass else: translation, success = model.getOutputTranslate(message) diff --git a/model.py b/model.py index a25432c0..fb493cde 100644 --- a/model.py +++ b/model.py @@ -68,6 +68,8 @@ class Model: self.speaker_audio_recorder = None self.speaker_energy_recorder = None self.speaker_energy_plot_progressbar = None + self.previous_send_message = "" + self.previous_receive_message = "" self.translator = Translator() self.keyword_processor = KeywordProcessor() self.overlay = Overlay() @@ -203,6 +205,20 @@ class Model: def checkKeywords(self, message): return len(self.keyword_processor.extract_keywords(message)) != 0 + def detectRepeatSendMessage(self, message): + repeat_flag = False + if self.previous_send_message == message: + repeat_flag = True + self.previous_send_message = message + return repeat_flag + + def detectRepeatReceiveMessage(self, message): + repeat_flag = False + if self.previous_receive_message == message: + repeat_flag = True + self.previous_receive_message = message + return repeat_flag + @staticmethod def oscStartSendTyping(): sendTyping(True, config.OSC_IP_ADDRESS, config.OSC_PORT)