У меня есть программа, которая слушает мой голос, и когда я говорю «выход», она должна полностью и немедленно завершить работу программы, хотя кажется, что она делает это (не знаю, извините, как это объяснить) в первый раз, когда я говорю «выход», но затем ей требуется еще один голосовой ввод, прежде чем она фактически выключится.
ОС: Windows 11
Версия RealtimeSTT: 0.3.104
Ожидаемое поведение: я ожидал, что моя программа закроется после того, как я произнесу «выход», вместо того, чтобы произнести еще один произвольный голосовой ввод, чтобы успокоить Recorder.text().
AudioToTextRecorder() принадлежит KoljaB/RealtimeSTT, у меня возникли проблемы с поиском документации на этом сайте.
Я попросил ChatGPT помочь мне с потоками, но я не до конца понимаю, что именно происходит. здесь, но у меня есть идея.
Вот та часть, о которой я говорю, и в которой, по моему мнению, заключается проблема. Я считаю, что она зависает на text = Recorder.text(), поскольку ожидает другого голосового ввода:
def run_transcription_service(q, stop_event):
thread_q = ThreadQueue()
def capture():
with AudioToTextRecorder() as recorder:
while not stop_event.is_set():
text = recorder.text()
thread_q.put(text)
t = threading.Thread(target=capture, daemon=True)
t.start()
while not stop_event.is_set() or not thread_q.empty():
try:
text = thread_q.get(timeout=0.1)
q.put(text)
except Empty:
continue
Подробнее здесь: https://stackoverflow.com/questions/798 ... ce-to-exit