我正在使用一個語音識別庫來創建一個類似Siri的程序。我希望將來我可以使用Arduino的代碼來控制房間周圍的事物。這裏是我的問題:Python if if,elif,else chain
我有基本的語音識別代碼,但爲了理解某些命令的程序,我將不得不通過很長的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。你的問題是_Too Broad_:有太多可能的答案,或者這個格式的答案太長。請添加詳細信息以縮小答案集或隔離幾個段落中可以回答的問題。請參閱http://stackoverflow.com/help/how-to-ask – Selcuk
我們需要更多地瞭解您的代碼如何工作以提供合理的答案 –
請查看Aya提供的答案,以解答之前提出的類似問題:http: //stackoverflow.com/questions/17166074/most-efficient-way-of-making-an-if-elif-elif-else-statement-when-the-else-is-don – abhi