bel 2023-03-22 19:42:13 -06:00
parent 02ce0aeef4
commit 3adc1d0efa
1 changed files with 19 additions and 6 deletions

View File

@ -20,6 +20,8 @@ class Recognizer(threading.Thread):
def run(self):
while True:
got = self.q.get()
if not got:
break
self.one(got)
def one(self, audio):
@ -66,18 +68,29 @@ class Listener():
return mic
def run(self):
try:
return self._run()
except Exception:
return None
def _run(self):
mic_timeout=int(environ.get("MIC_TIMEOUT", 5))
# obtain audio from the microphone
r = sr.Recognizer()
return r.listen(self.mic(), timeout=mic_timeout, phrase_time_limit=mic_timeout)
#return r.listen(self.mic(), timeout=mic_timeout, phrase_time_limit=mic_timeout)
return r.record(self.mic(), duration=mic_timeout)
q = queue.Queue(maxsize=1)
l = Listener()
t = Recognizer(q)
t.start()
while True:
try:
while True:
got = l.run()
q.put(got)
t.join()
except Exception:
pass
finally:
l._mic.__exit__(None, None, None)
t.join()