簡體   English   中英

如果用戶沒有在 python3 中提供語音輸入,如何手動接受用戶輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM