From fe768be48d0201c8c3764fa12058e1e89457299a Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Mon, 12 Feb 2024 22:47:35 +0900 Subject: [PATCH 1/2] typo SelectedSpeakeEnergyRecorder -> SelectedSpeakerEnergyRecorder --- model.py | 6 +++--- models/transcription/transcription_recorder.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/model.py b/model.py index 06a9cb7d..7d9f8c74 100644 --- a/model.py +++ b/model.py @@ -18,7 +18,7 @@ from models.translation.translation_translator import Translator from models.transcription.transcription_utils import getInputDevices, getDefaultOutputDevice from models.osc.osc_tools import sendTyping, sendMessage, sendTestAction, receiveOscParameters from models.transcription.transcription_recorder import SelectedMicEnergyAndAudioRecorder, SelectedSpeakerEnergyAndAudioRecorder -from models.transcription.transcription_recorder import SelectedMicEnergyRecorder, SelectedSpeakeEnergyRecorder +from models.transcription.transcription_recorder import SelectedMicEnergyRecorder, SelectedSpeakerEnergyRecorder from models.transcription.transcription_transcriber import AudioTranscriber from models.xsoverlay.notification import xsoverlayForVRCT from models.translation.translation_languages import translation_lang @@ -500,7 +500,7 @@ class Model: sleep(0.01) speaker_energy_queue = Queue() - self.speaker_energy_recorder = SelectedSpeakeEnergyRecorder(speaker_device) + self.speaker_energy_recorder = SelectedSpeakerEnergyRecorder(speaker_device) self.speaker_energy_recorder.recordIntoQueue(speaker_energy_queue) self.speaker_energy_plot_progressbar = threadFnc(sendSpeakerEnergy, end_fnc=end_fnc) self.speaker_energy_plot_progressbar.daemon = True @@ -510,7 +510,7 @@ class Model: if isinstance(self.speaker_energy_plot_progressbar, threadFnc): self.speaker_energy_plot_progressbar.stop() self.speaker_energy_plot_progressbar = None - if isinstance(self.speaker_energy_recorder, SelectedSpeakeEnergyRecorder): + if isinstance(self.speaker_energy_recorder, SelectedSpeakerEnergyRecorder): self.speaker_energy_recorder.stop() self.speaker_energy_recorder = None diff --git a/models/transcription/transcription_recorder.py b/models/transcription/transcription_recorder.py index 281c48b6..694df7d0 100644 --- a/models/transcription/transcription_recorder.py +++ b/models/transcription/transcription_recorder.py @@ -78,7 +78,7 @@ class SelectedMicEnergyRecorder(BaseEnergyRecorder): super().__init__(source=source) # self.adjustForNoise() -class SelectedSpeakeEnergyRecorder(BaseEnergyRecorder): +class SelectedSpeakerEnergyRecorder(BaseEnergyRecorder): def __init__(self, device): source = Microphone(speaker=True, From c2715adab78591cce99112151b92e77847a44a35 Mon Sep 17 00:00:00 2001 From: misyaguziya Date: Mon, 12 Feb 2024 23:07:29 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=91=8D[Update]=20Model=20:=20?= =?UTF-8?q?=E6=96=87=E5=AD=97=E8=B5=B7=E3=81=93=E3=81=97=E3=81=AEENERGY?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E5=87=A6=E7=90=86=E3=82=92=E4=B8=80=E6=99=82?= =?UTF-8?q?=E7=9A=84=E3=81=AB=E3=83=9E=E3=82=B9=E3=82=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model.py | 70 ++++++++++--------- .../transcription/transcription_recorder.py | 6 +- 2 files changed, 41 insertions(+), 35 deletions(-) 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):