python - if 工作正常但 elif 抛出错误
问题描述
我正在编写一个 python 代码(提供);但是当我说“打开照片”时,一切正常,它会识别出我说的是“打开照片”,但会抛出 except 语句而不是 'elif listen() == "open photos": output'。请帮助我。
import speech_recognition as sr
import pyttsx3
import time
friday = pyttsx3.init('sapi5')
r = sr.Recognizer()
mic = sr.Microphone()
friday.setProperty('rate', 150)
def listen():
with mic as source:
r.adjust_for_ambient_noise(source)
audio = r.listen(source)
try:
text = r.recognize_google(audio)
print(text)
return text
except sr.UnknownValueError:
friday.say("sorry sir , could't do that")
friday.runAndWait()
print("started!")
while 1:
if listen() == "hello Jarvis":
friday.say("hello sir")
friday.runAndWait()
elif listen() == "open photos":
friday.say("opening")
friday.runAndWait()
解决方案
我认为你需要的是更好的关注。 listen
将消耗输入;再次调用它会迫使您重复该短语。相反,第一次要注意。:-)
heard = listen()
if heard == "hello Jarvis":
friday.say("hello sir")
friday.runAndWait()
elif heard == "open photos":
friday.say("opening")
friday.runAndWait()
请注意,如果您一致地缩进,您的代码更易于阅读:同一处理级别的代码,即使是在独立块之间,也应该缩进到同一级别。
推荐阅读
- wordpress - 自定义菜单栏 wordpress 以构建一页功能
- git - git tagging – 远程也使用本地标签?
- windows - LIB 命令创建 .lib
- python - 将抓取的数据另存为 CSV 文件?
- ios - 更改应用程序语言而不设置 iPhone 语言
- ruby - Netlify 安装 bibtex-ruby gem,但在脚本中要求“bibtex”失败
- python - 为什么 Django 日志记录不能与 Gunicorn 一起使用?
- android - 约束布局 - 组可见性在动态模块中不起作用
- stripe-payments - 当我在条纹中添加费用时,它显示错误
- c# - 我想问如何在 C# wpf 项目中对 3D 对象应用触发器?