diff --git a/model.py b/model.py index 7d9f8c74..6bc62b0c 100644 --- a/model.py +++ b/model.py @@ -321,7 +321,7 @@ class Model: return mic_audio_queue = Queue() - mic_energy_queue = Queue() + # mic_energy_queue = Queue() device = [device for device in getInputDevices()[config.CHOICE_MIC_HOST] if device["name"] == config.CHOICE_MIC_DEVICE][0] record_timeout = config.INPUT_MIC_RECORD_TIMEOUT phase_timeout = config.INPUT_MIC_PHRASE_TIMEOUT @@ -334,7 +334,8 @@ class Model: dynamic_energy_threshold=config.INPUT_MIC_DYNAMIC_ENERGY_THRESHOLD, record_timeout=record_timeout, ) - self.mic_audio_recorder.recordIntoQueue(mic_audio_queue, mic_energy_queue) + # self.mic_audio_recorder.recordIntoQueue(mic_audio_queue, mic_energy_queue) + self.mic_audio_recorder.recordIntoQueue(mic_audio_queue, None) mic_transcriber = AudioTranscriber( speaker=False, source=self.mic_audio_recorder.source, @@ -351,23 +352,23 @@ class Model: except Exception: pass - def sendMicEnergy(): - if mic_energy_queue.empty() is False: - energy = mic_energy_queue.get() - # print("mic energy:", energy) - try: - fnc(energy) - except Exception: - pass - sleep(0.01) + # def sendMicEnergy(): + # if mic_energy_queue.empty() is False: + # energy = mic_energy_queue.get() + # # print("mic energy:", energy) + # try: + # fnc(energy) + # except Exception: + # pass + # sleep(0.01) self.mic_print_transcript = threadFnc(sendMicTranscript) self.mic_print_transcript.daemon = True self.mic_print_transcript.start() - self.mic_get_energy = threadFnc(sendMicEnergy) - self.mic_get_energy.daemon = True - self.mic_get_energy.start() + # self.mic_get_energy = threadFnc(sendMicEnergy) + # self.mic_get_energy.daemon = True + # self.mic_get_energy.start() def stopMicTranscript(self): if isinstance(self.mic_print_transcript, threadFnc): @@ -376,9 +377,9 @@ class Model: if isinstance(self.mic_audio_recorder, SelectedMicEnergyAndAudioRecorder): self.mic_audio_recorder.stop() self.mic_audio_recorder = None - if isinstance(self.mic_get_energy, threadFnc): - self.mic_get_energy.stop() - self.mic_get_energy = None + # if isinstance(self.mic_get_energy, threadFnc): + # self.mic_get_energy.stop() + # self.mic_get_energy = None def startCheckMicEnergy(self, fnc, end_fnc, error_fnc=None): if config.CHOICE_MIC_HOST == "NoHost" or config.CHOICE_MIC_DEVICE == "NoDevice": @@ -423,7 +424,7 @@ class Model: return speaker_audio_queue = Queue() - speaker_energy_queue = Queue() + # speaker_energy_queue = Queue() record_timeout = config.INPUT_SPEAKER_RECORD_TIMEOUT phase_timeout = config.INPUT_SPEAKER_PHRASE_TIMEOUT if record_timeout > phase_timeout: @@ -435,7 +436,8 @@ class Model: dynamic_energy_threshold=config.INPUT_SPEAKER_DYNAMIC_ENERGY_THRESHOLD, record_timeout=record_timeout, ) - self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue, speaker_energy_queue) + # self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue, speaker_energy_queue) + self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue ,None) speaker_transcriber = AudioTranscriber( speaker=True, source=self.speaker_audio_recorder.source, @@ -452,23 +454,23 @@ class Model: except Exception: pass - def sendSpeakerEnergy(): - if speaker_energy_queue.empty() is False: - energy = speaker_energy_queue.get() - # print("speaker energy:", energy) - try: - fnc(energy) - except Exception: - pass - sleep(0.01) + # def sendSpeakerEnergy(): + # if speaker_energy_queue.empty() is False: + # energy = speaker_energy_queue.get() + # # print("speaker energy:", energy) + # try: + # fnc(energy) + # except Exception: + # pass + # sleep(0.01) self.speaker_print_transcript = threadFnc(sendSpeakerTranscript) self.speaker_print_transcript.daemon = True self.speaker_print_transcript.start() - self.speaker_get_energy = threadFnc(sendSpeakerEnergy) - self.speaker_get_energy.daemon = True - self.speaker_get_energy.start() + # self.speaker_get_energy = threadFnc(sendSpeakerEnergy) + # self.speaker_get_energy.daemon = True + # self.speaker_get_energy.start() def stopSpeakerTranscript(self): if isinstance(self.speaker_print_transcript, threadFnc): @@ -477,9 +479,9 @@ class Model: if isinstance(self.speaker_audio_recorder, SelectedSpeakerEnergyAndAudioRecorder): self.speaker_audio_recorder.stop() self.speaker_audio_recorder = None - if isinstance(self.speaker_get_energy, threadFnc): - self.speaker_get_energy.stop() - self.speaker_get_energy = None + # if isinstance(self.speaker_get_energy, threadFnc): + # self.speaker_get_energy.stop() + # self.speaker_get_energy = None def startCheckSpeakerEnergy(self, fnc, end_fnc, error_fnc=None): speaker_device = getDefaultOutputDevice() diff --git a/models/transcription/transcription_recorder.py b/models/transcription/transcription_recorder.py index 694df7d0..0128a37b 100644 --- a/models/transcription/transcription_recorder.py +++ b/models/transcription/transcription_recorder.py @@ -1,6 +1,7 @@ from speech_recognition import Recognizer, Microphone from pyaudiowpatch import get_sample_size, paInt16 from datetime import datetime +from queue import Queue class BaseRecorder: def __init__(self, source, energy_threshold, dynamic_energy_threshold, record_timeout): @@ -113,7 +114,10 @@ class BaseEnergyAndAudioRecorder: def energyRecordCallback(energy): energy_queue.put(energy) - self.stop = self.recorder.listen_energy_and_audio_in_background(self.source, audioRecordCallback, phrase_time_limit=self.record_timeout, callback_energy=energyRecordCallback) + if isinstance(energy_queue, Queue): + self.stop = self.recorder.listen_energy_and_audio_in_background(self.source, audioRecordCallback, phrase_time_limit=self.record_timeout, callback_energy=energyRecordCallback) + else: + self.stop = self.recorder.listen_energy_and_audio_in_background(self.source, audioRecordCallback, phrase_time_limit=self.record_timeout) class SelectedMicEnergyAndAudioRecorder(BaseEnergyAndAudioRecorder): def __init__(self, device, energy_threshold, dynamic_energy_threshold, record_timeout):