<p>这里似乎有错误</p>
<pre><code>def take_command():
try:
with sr.Microphone() as source:
print('I\'m Listening')
voice = listener.listen(source)
command = listener.recognize_google(voice)
command = command.lower()
if 'jarvis' in command:
command = command.replace('jarvis', '')
print('I heard ' + '\"'+command+' \"')
except:
pass
return command
</code></pre>
<p>发生这种情况是因为未定义<code>command</code>。在定义<code>command</code>之前,您的try部分发生错误。因此,它会排除并尝试<code>return command</code>。尽管像我上面说的,命令并没有定义。因此,如果您<code>except:pass</code>而不是pass,则将其设置为<code>return None</code></p>
<p>更新:评论中有人建议将<code>return command</code>放在try块中,这样更有意义</p>
<pre><code>def take_command():
try:
with sr.Microphone() as source:
print('I\'m Listening')
voice = listener.listen(source)
command = listener.recognize_google(voice)
command = command.lower()
if 'jarvis' in command:
command = command.replace('jarvis', '')
print('I heard ' + '\"'+command+' \"')
return command
except:
return None
</code></pre>
<p>如何检查引发的错误</p>
<pre><code> except Exception as e:
print(e)
</code></pre>