Как заставить Recorder.text() из RealTime STT НЕ требовать ввода дважды для выхода?Python

Программы на Python
Anonymous
Как заставить Recorder.text() из RealTime STT НЕ требовать ввода дважды для выхода?

Сообщение Anonymous »

У меня есть программа, которая слушает мой голос, и когда я говорю «выход», она должна полностью и немедленно завершить работу программы, хотя кажется, что она делает это (не знаю, извините, как это объяснить) в первый раз, когда я говорю «выход», но затем ей требуется еще один голосовой ввод, прежде чем она фактически выключится.
ОС: 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

Вернуться в «Python»