我正在Python上构建我的个人语音助手
这是密码
import pyttsx3
import speech_recognition as sr
import sys
import subprocess
engine = pyttsx3.init()
en_voice_id_m = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0"
en_voice_id_f = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0"
gb_voice_id_f = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-GB_HAZEL_11.0"
voices = engine.getProperty('voices')
engine.setProperty('voice', en_voice_id_f)
engine.setProperty('rate', 195)
#engine.say("Hello. I'm Elsi, your voice assistant. I can do anything u want")
engine.runAndWait()
while True:
r = sr.Recognizer()
with sr.Microphone() as source:
print("Say something!")
audio = r.listen(source)
if r.recognize_google(audio).lower() == 'hello':
engine = pyttsx3.init()
engine.say("Hi! How are you?")
engine.runAndWait()
elif r.recognize_google(audio).lower() == 'who are you':
engine = pyttsx3.init()
engine.say("I am Elsi, voice assistant")
engine.runAndWait()
elif r.recognize_google(audio).lower() == 'what can you do':
engine = pyttsx3.init()
engine.say("I can turn on film or music, open application and that's all :)")
engine.runAndWait()
elif r.recognize_google(audio).lower() == 'how can I call you?':
engine = pyttsx3.init()
engine.say("You can call me Elsi")
engine.runAndWait()
elif r.recognize_google(audio).lower() == 'stop':
engine = pyttsx3.init()
engine.say("Turning off")
engine.runAndWait()
sys.exit()
elif r.recognize_google(audio).lower() == 'exit':
engine = pyttsx3.init()
engine.say("Goodbye ;)")
engine.runAndWait()
sys.exit()
elif r.recognize_google(audio).lower() == 'turn off':
engine = pyttsx3.init()
engine.say("One moment please...")
engine.runAndWait()
sys.exit()
elif r.recognize_google(audio).lower() == 'telegram':
engine = pyttsx3.init()
engine.say("One moment")
engine.runAndWait()
subprocess.check_output(telegram, shell=True)
elif r.recognize_google(audio).lower() == 'open telegram':
engine = pyttsx3.init()
engine.say("Opening....")
engine.runAndWait()
subprocess.check_output(telegram, shell=True)
elif r.recognize_google(audio).lower() == 'Elsi open telegram':
engine = pyttsx3.init()
engine.say("Yes sir")
engine.runAndWait()
subprocess.check_output(telegram, shell=True)
elif r.recognize_google(audio).lower() == 'viber':
engine = pyttsx3.init()
engine.say("One moment")
engine.runAndWait()
subprocess.check_output(viber, shell=True)
elif r.recognize_google(audio).lower() == 'open viber':
engine = pyttsx3.init()
engine.say("Opening....")
engine.runAndWait()
subprocess.check_output(viber, shell=True)
else:
engine = pyttsx3.init()
engine.say("Didn't catch it, repeat please")
engine.runAndWait()
当我运行程序并静坐时,会出现以下错误-
Traceback (most recent call last):
File "C:\Users\___\!Python!\Elsi\version#2.py", line 38, in <module>
if r.recognize_google(audio).lower() == 'hello':
File "C:\Users\___\AppData\Local\Programs\Python\Python36-32\lib\site-packages\speech_recognition\__init__.py", line 858, in recognize_google
if not isinstance(actual_result, dict) or len(actual_result.get("alternative", [])) == 0: raise UnknownValueError()
speech_recognition.UnknownValueError
这是我做这件事的尝试-
r = sr.Recognizer()
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source, 1)
audio = r.listen(source, 1)
recognize_sphinx() offline
while r.recognize_google(audio).lower() != 'Elsi' or 'Elsea' or 'Elsa' or 'Elsia' or 'Chelsea':
if
、elif
和else
条件李>dict
中作为键。该值可以是一个列表,其中索引0是文本响应,索引2是命令('exit'
、viber
、telegram
)或None
。.get()
方法检索值,如果没有键匹配,则返回unknown_command_phrase
李>r.recognize_google(audio).lower()
到变量pattern
相关问题 更多 >
编程相关推荐