Created message service responsible for searching the prompts inside the recognized text and sending it to the client. Created recognizer with two strategies: whisper and Dany's fast whisper. Implemented file stack which works in the separated thread, sends the file to the recognizer and after that sends the message to the client (Rat, for example).
32 lines
831 B
Python
32 lines
831 B
Python
from threading import Thread
|
|
|
|
from recognizer import Recognizer
|
|
from message import MessageComposer
|
|
|
|
class WavStack:
|
|
def __init__(self, recognizer: Recognizer, message_composer: MessageComposer):
|
|
self._stack = []
|
|
self._recognizer = recognizer
|
|
self._message_composer = message_composer
|
|
self._running = False
|
|
|
|
def append(self, file):
|
|
self._stack.append(file)
|
|
|
|
def loop(self):
|
|
self._running = True
|
|
while self._running:
|
|
if self._stack:
|
|
file = self._stack.pop(0)
|
|
recognized_text = self._recognizer.recognize(file)
|
|
message = self._message_composer.compose(recognized_text)
|
|
|
|
if message.has_prompt():
|
|
message.send()
|
|
|
|
def start_loop_in_thread(self):
|
|
thread = Thread(target=self.loop)
|
|
thread.start()
|
|
|
|
def stop_loop(self):
|
|
self._running = False |