🐛[bugfix] Model: mic/speakerの音声入力処理のThreadの処理を修正(energyはまだ)

This commit is contained in:
misyaguziya
2024-05-06 01:29:44 +09:00
parent 3ea40e1bd3
commit 5566ebe401
2 changed files with 25 additions and 18 deletions

View File

@@ -36,19 +36,17 @@ class threadFnc(Thread):
super(threadFnc, self).__init__(daemon=daemon, *args, **kwargs)
self.fnc = fnc
self.end_fnc = end_fnc
self._stop = Event()
def stop(self):
self._stop.set()
def stopped(self):
return self._stop.is_set()
def run(self):
while True:
if self.stopped():
if callable(self.end_fnc):
self.end_fnc()
return
self.fnc(*self._args, **self._kwargs)
self.loop = True
def stop(self):
self.loop = False
def run(self):
while self.loop:
self.fnc(*self._args, **self._kwargs)
if callable(self.end_fnc):
self.end_fnc()
return
class Model:
_instance = None
@@ -392,9 +390,10 @@ class Model:
)
def sendMicTranscript():
try:
self.mic_transcriber.transcribeAudioQueue(mic_audio_queue, config.SOURCE_LANGUAGE, config.SOURCE_COUNTRY)
message = self.mic_transcriber.getTranscript()
fnc(message)
res = self.mic_transcriber.transcribeAudioQueue(mic_audio_queue, config.SOURCE_LANGUAGE, config.SOURCE_COUNTRY)
if res:
message = self.mic_transcriber.getTranscript()
fnc(message)
except Exception:
pass
@@ -425,6 +424,7 @@ class Model:
def stopMicTranscript(self):
if isinstance(self.mic_print_transcript, threadFnc):
self.mic_print_transcript.stop()
self.mic_print_transcript.join()
self.mic_print_transcript = None
if isinstance(self.mic_audio_recorder, SelectedMicEnergyAndAudioRecorder):
self.mic_audio_recorder.stop()
@@ -505,9 +505,10 @@ class Model:
)
def sendSpeakerTranscript():
try:
self.speaker_transcriber.transcribeAudioQueue(speaker_audio_queue, config.TARGET_LANGUAGE, config.TARGET_COUNTRY)
message = self.speaker_transcriber.getTranscript()
fnc(message)
res = self.speaker_transcriber.transcribeAudioQueue(speaker_audio_queue, config.TARGET_LANGUAGE, config.TARGET_COUNTRY)
if res:
message = self.speaker_transcriber.getTranscript()
fnc(message)
except Exception:
pass
@@ -538,6 +539,7 @@ class Model:
def stopSpeakerTranscript(self):
if isinstance(self.speaker_print_transcript, threadFnc):
self.speaker_print_transcript.stop()
self.speaker_print_transcript.join()
self.speaker_print_transcript = None
if isinstance(self.speaker_audio_recorder, SelectedSpeakerEnergyAndAudioRecorder):
self.speaker_audio_recorder.stop()