Merge branch 'bugfix_speakerdevice' into develop

This commit is contained in:
misyaguziya committed 2024-05-06 03:21:30 +09:00
commit 7c07949f4b
3 files changed
+32 -25

No files matched your search

+26 -24
View File
@@ -9,7 +9,7 @@ from datetime import datetime
from logging import getLogger, FileHandler, Formatter, INFO
from time import sleep
from queue import Queue
from threading import Thread, Event
from threading import Thread
from requests import get as requests_get
import webbrowser
@@ -33,22 +33,20 @@ from config import config
class threadFnc(Thread):
def __init__(self, fnc, end_fnc=None, daemon=True, *args, **kwargs):
super(threadFnc, self).__init__(daemon=daemon, *args, **kwargs)
super(threadFnc, self).__init__(daemon=daemon, target=fnc, *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,9 +424,10 @@ 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(wait_for_stop=False, forced_stop=True)
self.mic_audio_recorder.stop()
self.mic_audio_recorder = None
# if isinstance(self.mic_get_energy, threadFnc):
# self.mic_get_energy.stop()
@@ -465,7 +465,7 @@ class Model:
self.mic_energy_plot_progressbar.stop()
self.mic_energy_plot_progressbar = None
if isinstance(self.mic_energy_recorder, SelectedMicEnergyRecorder):
self.mic_energy_recorder.stop(wait_for_stop=False, forced_stop=True)
self.mic_energy_recorder.stop()
self.mic_energy_recorder = None
def startSpeakerTranscript(self, fnc, error_fnc=None):
@@ -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,9 +539,10 @@ 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(wait_for_stop=False, forced_stop=True)
self.speaker_audio_recorder.stop()
self.speaker_audio_recorder = None
# if isinstance(self.speaker_get_energy, threadFnc):
# self.speaker_get_energy.stop()
@@ -578,7 +580,7 @@ class Model:
self.speaker_energy_plot_progressbar.stop()
self.speaker_energy_plot_progressbar = None
if isinstance(self.speaker_energy_recorder, SelectedSpeakerEnergyRecorder):
self.speaker_energy_recorder.stop(wait_for_stop=False, forced_stop=True)
self.speaker_energy_recorder.stop()
self.speaker_energy_recorder = None
def notificationXSOverlay(self, message):
@@ -1,3 +1,4 @@
import time
from io import BytesIO
from threading import Event
import wave
@@ -38,6 +39,9 @@ class AudioTranscriber:
self.transcription_engine = "Whisper"
def transcribeAudioQueue(self, audio_queue, language, country):
if audio_queue.empty():
time.sleep(0.01)
return False
audio, time_spoken = audio_queue.get()
self.updateLastSampleAndPhraseStatus(audio, time_spoken)
@@ -75,6 +79,7 @@ class AudioTranscriber:
if text != '':
self.updateTranscript(text)
return True
def updateLastSampleAndPhraseStatus(self, data, time_spoken):
source_info = self.audio_sources
+1 -1
View File
@@ -14,5 +14,5 @@ ctranslate2==4.1.0
faster-whisper==1.0.1
openvr==1.26.701
translators @ git+https://github.com/misyaguziya/translators@5.8.9
SpeechRecognition @ git+https://github.com/misyaguziya/custom_speech_recognition@3.10.3
SpeechRecognition @ git+https://github.com/misyaguziya/custom_speech_recognition@3.10.4
tinyoscquery @ git+https://github.com/cyberkitsune/tinyoscquery@0.1.2