🐛[bugfix] Model: mic/speakerの音声入力処理のThreadの処理を修正(energyはまだ)
This commit is contained in:
38
model.py
38
model.py
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user