![](/img/trans.png)
[英]How do I fix 'UnboundLocalError: local variable 'dc' referenced before assignment' in my code?
[英]How do i fix UnboundLocalError: local variable 'command' referenced before assignment
我正在尝试制作一个虚拟助手,剩下的唯一问题就是这个。 我尝试了 google 和 reddit,但我没有得到任何答案。 我不知道如何解决它,但这里是代码:
我输入这个是因为堆栈溢出不会让我发帖,除非我有更多的文字,所以这是我的人生故事。 上周在学校里我们做了一个实验,我们必须喝 5 升水,然后在寒冷的天气里用大麦和衣服等 10 分钟。 我们必须看看站在寒冷中是否会让我们比在里面更想小便。 理论是血叶会收缩,没有水的空间,所以我们会把它尿出来。 直到下节课才开始小便,然后每个人每 10 分钟去一次洗手间。
import speech_recognition as sr
import pyttsx3
import pywhatkit
import datetime
import wikipedia
import pyjokes
listener = sr.Recognizer()
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)# 0 is male, 1 is female
engine.say('Booting Lora system')
engine.runAndWait()
def talk(text):
engine.say(text)
engine.runAndWait()
def take_command():
try:
with sr.Microphone() as source:
voice = listener.listen(source)
command = listener.recognize_google(voice)
command = command.lower()
except:
pass
return command
def run_lora():
command = take_command()
if 'play' in command:
song = command.replace('play', '')
talk('playing ' + song)
pywhatkit.playonyt(song)
elif 'time' in command:
time = datetime.datetime.now().strftime('%H:%M')
talk('Current time is ' + time)
elif 'who' in command:
question = command
info = wikipedia.summary(question, 3)
talk(info)
elif 'tell' in command and 'joke' in command:
talk(pyjokes.get_joke())
else:
talk('Sorry I did not understand')
while True:
run_lora()
因为你在run_lora
中定义了command
它是一个私有变量,你只需要添加global command
。
def take_command():
global command # <---- Over Here #############
try:
with sr.Microphone() as source:
voice = listener.listen(source)
command = listener.recognize_google(voice)
command = command.lower()
except:
pass
return command
在take_command()
function 中将 word command
更改为cmnd
。 您的命令变量在实际声明之前被引用
def take_command():
try:
with sr.Microphone() as source:
voice = listener.listen(source)
cmnd = listener.recognize_google(voice)
cmnd = cmnd.lower()
except:
pass
return cmnd
我认为我的问题是我需要 pyadio 但 pyaudio 版本对于 python 3.8 来说太旧了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.