[英]How to manually take user input if user doesn't give voice input in python3
我正在使用 Python3 的 pyttsx3 和語音識別包來獲取用戶的語音輸入。 但是如果用戶沒有提供任何語音輸入並且超時后用戶必須手動輸入怎么辦? 請幫我解決這個問題!
import pyttsx3
import speech_recognition as sr
import pyjokes
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
r = sr.Recognizer()
user_jokes = "Set a range in number..."
print(user_jokes)
engine.say(user_jokes)
engine.runAndWait()
with sr.Microphone() as source:
user_jokes_rec = r.listen(source, timeout = 2)
user_jokes_X = r.recognize_google(user_jokes_rec, language='en-US')
if user_jokes_X is None:
user_jokes_X = int(input("Set a range for jokes... "))
for x in range(user_jokes_X):
user_jo = pyjokes.get_joke()
print(user_jo)
engine.say(user_jo)
engine.runAndWait()
在這段代碼中,if條件應該滿足, user_jokes_X的值為空或none,用戶手動輸入一個范圍?
您可以像這樣將程序放入 try 塊中:
import pyttsx3
import speech_recognition as sr
import pyjokes
engine = pyttsx3.init()
voices = engine.getProperty('voices')
r = sr.Recognizer()
user_jokes = "Set a range in number..."
print(user_jokes)
engine.say(user_jokes)
engine.runAndWait()
try:
with sr.Microphone() as source:
user_jokes_rec = r.listen(source, timeout = 2)
user_jokes_X = r.recognize_google(user_jokes_rec, language='en-US')
except:
user_jokes_X = int(input("Set a range for jokes... "))
for x in range(user_jokes_X):
user_jo = pyjokes.get_joke()
print(user_jo)
engine.say(user_jo)
engine.runAndWait()
如果這能解決您的問題,請告訴我。
你可以這樣嘗試: except sr.UnknownValueError as e
在下面顯示的異常中,因為它由於沒有語音輸入而拋出 UnknownValueError:
try:
with sr.Microphone() as source:
user_jokes_rec = r.listen(source)
user_jokes_X = r.recognize_google(user_jokes_rec, language='en-US')
except sr.UnknownValueError as e:
user_jokes_X = int(input("Set a range for jokes... "))
`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.