static mic

master
bel 2023-03-22 19:30:43 -06:00
parent d78f5afcb2
commit 02ce0aeef4
1 changed files with 13 additions and 3 deletions

View File

@ -52,14 +52,24 @@ class Listener():
print("[{0}] Microphone with name \"{1}\" found for `Microphone(device_index={0})`".format(index, name)) print("[{0}] Microphone with name \"{1}\" found for `Microphone(device_index={0})`".format(index, name))
exit() exit()
self.name = environ["MIC_NAME"] self.name = environ["MIC_NAME"]
self._mic = None
def mic(self):
if not self._mic:
self._mic = self.new_mic()
return self._mic
def new_mic(self):
idx = [idx for idx,v in enumerate(sr.Microphone.list_microphone_names()) if v in self.name.split(",")][0]
mic = sr.Microphone(device_index=idx)
mic.__enter__()
return mic
def run(self): def run(self):
mic_timeout=int(environ.get("MIC_TIMEOUT", 5)) mic_timeout=int(environ.get("MIC_TIMEOUT", 5))
# obtain audio from the microphone # obtain audio from the microphone
r = sr.Recognizer() r = sr.Recognizer()
idx = [idx for idx,v in enumerate(sr.Microphone.list_microphone_names()) if v in self.name.split(",")][0] return r.listen(self.mic(), timeout=mic_timeout, phrase_time_limit=mic_timeout)
with sr.Microphone(device_index=idx) as source:
return r.listen(source, timeout=mic_timeout, phrase_time_limit=mic_timeout)
q = queue.Queue(maxsize=1) q = queue.Queue(maxsize=1)
l = Listener() l = Listener()