1
0
mirror of https://github.com/MarkParker5/STARK.git synced 2025-07-12 22:50:22 +02:00

separate transcribe method

This commit is contained in:
Mark Parker
2023-06-28 19:28:38 +02:00
parent 3f64c58703
commit 5a3ec6ebf2

View File

@ -37,7 +37,9 @@ class VoskSpeechRecognizer(SpeechRecognizer):
self.audio_queue = queue.Queue() self.audio_queue = queue.Queue()
self.kaldiRecognizer = vosk.KaldiRecognizer(self.model, self.samplerate) self.kaldiRecognizer = vosk.KaldiRecognizer(self.model, self.samplerate)
self.parameters = { @property
def sounddevice_parameters(self):
return {
'samplerate': self.samplerate, 'samplerate': self.samplerate,
'blocksize': self.blocksize, 'blocksize': self.blocksize,
'dtype': self.dtype, 'dtype': self.dtype,
@ -52,12 +54,15 @@ class VoskSpeechRecognizer(SpeechRecognizer):
async def start_listening(self): async def start_listening(self):
self._is_listening = True self._is_listening = True
with sounddevice.RawInputStream(**self.parameters): with sounddevice.RawInputStream(**self.sounddevice_parameters):
while self._is_listening: while self._is_listening:
await asyncio.sleep(0.05) await asyncio.sleep(0.05)
data = self.audio_queue.get() data = self.audio_queue.get()
self._transcribe(data)
def _transcribe(self, data):
if self.kaldiRecognizer.AcceptWaveform(data): if self.kaldiRecognizer.AcceptWaveform(data):
result = json.loads(self.kaldiRecognizer.Result()) result = json.loads(self.kaldiRecognizer.Result())
if (string := result.get('text')) and string != self.last_result: if (string := result.get('text')) and string != self.last_result: