human/asr/asr_base.py

38 lines
911 B
Python
Raw Normal View History

2024-10-09 12:19:00 +00:00
#encoding = utf8
import threading
from .asr_observer import AsrObserver
class AsrBase:
def __init__(self):
self._sample_rate = 32000
self._samples_per_read = 100
self._observers = []
self._stop_event = threading.Event()
self._thread = threading.Thread(target=self._recognize_loop)
self._thread.start()
def _recognize_loop(self):
pass
def _notify_process(self, message: str):
for observer in self._observers:
observer.process(message)
def _notify_complete(self, message: str):
for observer in self._observers:
observer.completed(message)
def stop(self):
self._stop_event.set()
self._thread.join()
def attach(self, observer: AsrObserver):
self._observers.append(observer)
def detach(self, observer: AsrObserver):
self._observers.remove(observer)