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