问题描述
我正在做一个虚拟助手项目,使用 speech_recognition
,但是,由于某种原因,代码无法接收语音。
预期的输出应该是这样的:
user: Titan
program: Waiting for command
user: open youtube
program: opening Youtube
但目前它是这样的:
user: Titan
program: Waiting for command
user: open youtube
*program resets to listening for wake word*
收听功能:
def hear(self,recognizer,microphone,response):
try:
with microphone as source:
print("Waiting for command.")
recognizer.adjust_for_ambient_noise(source)
recognizer.dynamic_energy_threshold = 3000
# May reduce the time out in the future
audio = recognizer.listen(source,timeout=5.0)
command = recognizer.recognize_google(audio)
s.remember(command)
return command.lower()
except sr.WaitTimeoutError:
pass
except sr.UnkNownValueError:
pass
except sr.RequestError:
print("Network error.")
监听功能:
def listen(self,microphone):
while True:
try:
with microphone as source:
print("Listening.")
recognizer.adjust_for_ambient_noise(source)
recognizer.dynamic_energy_threshold = 3000
audio = recognizer.listen(source,timeout=5.0)
response = recognizer.recognize_google(audio)
if response == WAKE:
if LED:
listening_byte = "L" # L matches the Arduino sketch code for the blue color
ser.write(listening_byte.encode("ascii")) # encodes and sends the serial byte
s.speak("How can I help you?")
return response.lower()
else:
pass
except sr.WaitTimeoutError:
pass
except sr.UnkNownValueError:
pass
except sr.RequestError:
print("Network error.")
响应函数:
def open_things(self,command):
# Will need to expand on "open" commands
if command == "open youtube":
s.speak("opening YouTube.")
webbrowser.open("https://www.youtube.com")
pass
else:
s.speak("I don't kNow how to open that yet.")
pass
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)