【发布时间】:2016-05-30 18:42:57
【问题描述】:
我正在使用语音识别库来创建类似 Siri 的程序。我希望将来我可以使用带有 Arduino 的代码来控制我房间周围的东西。这是我的问题:
我已经编写了基本的语音识别代码,但是为了让程序理解某些命令,我必须通过很长的 if-elif-elif-elif-else 命令列表来运行语音,这可能会很慢。由于大多数情况下它会导致 else 无法识别命令,因此我需要一个更快的替代方法来替代一长串 if-elif-else 语句。我也在用 tts 引擎和你对话。
这是我目前的代码
import pyttsx
import time
engine = pyttsx.init()
voices = engine.getProperty("voices")
spch = "There is nothing for me to say"
userSaid = "NULL"
engine.setProperty("rate", 130)
engine.setProperty("voice", voices[0].id)
def speak():
engine.say(spch)
engine.runAndWait()
def command():
**IF STATEMENT HERE**
r = sr.Recognizer()
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
print("CaSPAR is calibrated")
audio = r.listen(source)
try:
userSaid = r.recognize_google(audio)
except sr.UnknownValueError:
spch = "Sorry, I did'nt hear that properly"
except sr.RequestError as e:
spch = "I cannot reach the speech recognition service"
speak()
print "Done"
【问题讨论】:
-
欢迎来到 Stack Overflow。您的问题是太宽泛:可能的答案太多,或者对于这种格式来说,好的答案太长了。请添加详细信息以缩小答案集或隔离可以在几段中回答的问题。见*.com/help/how-to-ask
-
我们需要更多地了解您的代码如何工作以提供合理的答案
-
请查看 Aya 为之前提出的类似问题提供的答案:*.com/questions/17166074/…
-
@Falafel 我以前看过这个问题,因为我对 python 比较陌生,所以我不完全理解如何使用这个建议
标签: python if-statement speech-recognition siri