语音助手,可以借助python中的语音命令打开应用程序

语音助手,可以借助python中的语音命令打开应用程序,python,voice-recognition,Python,Voice Recognition,大家好, 我一直在尝试构建一个语音助手,它可以借助python中的语音命令打开应用程序。因为我只是一个新手,所以我只在谷歌和维基百科上试过,但不起作用。它只会打开维基百科,即使我告诉他打开谷歌。谁能帮我一下吗?顺便说一下,我在mac电脑上。 非常感谢 我的代码: import speech_recognition as sr import webbrowser speech_engine = sr.Recognizer() with sr.Microphone() as micro:

大家好, 我一直在尝试构建一个语音助手,它可以借助python中的语音命令打开应用程序。因为我只是一个新手,所以我只在谷歌和维基百科上试过,但不起作用。它只会打开维基百科,即使我告诉他打开谷歌。谁能帮我一下吗?顺便说一下,我在mac电脑上。 非常感谢

我的代码:

import speech_recognition as sr
import webbrowser

speech_engine = sr.Recognizer()


with sr.Microphone() as micro:
    print("Recording...")
    audio = speech_engine.record(micro, duration=5)
    print("Recognizing...")
    text = speech_engine.recognize_google(audio, language="de-DE")
    print(text)
if speech_engine == "Open Google":
    webbrowser.open("https.//google.com")
else:
    webbrowser.open("https://wikipedia.org")´´´

在您的代码中,
text
正在重新启动输出,而不是
speech\u引擎
,因此您应该更改您的条件,它将正常工作

import speech_recognition as sr
import webbrowser

speech_engine = sr.Recognizer()


with sr.Microphone() as micro:
    print("Recording...")
    audio = speech_engine.record(micro, duration=5)
    print("Recognizing...")
    text = speech_engine.recognize_google(audio, language="en")
    print(text)
if text == "Open Google" or text=="Google":
    webbrowser.open("https.//google.com")
else:
    webbrowser.open("https://wikipedia.org")
输出:

Recording...
Recognizing...
Google

我真的不知道这是否是一个好答案,但我发现助手在执行第一个if语句中使用的命令时有问题。elif语句中的所有其他命令都可以正常工作。这就是我的代码:

import speech_recognition as sr
import webbrowser

speech_engine = sr.Recognizer()


with sr.Microphone() as micro:
    print("Recording...")
    audio = speech_engine.record(micro, duration=5)
    print("Recognizing...")
    text = speech_engine.recognize_google(audio, language="en")
    print(text)
if text == 'come on':
    print("I am sorry, Sir")
elif text == 'open Wikipedia':
    webbrowser.open("https://wikipedia.org")
    print("opening Wikipedia")
elif text == 'open Google':
    webbrowser.open("https://google.com")
    print("opening Google")
elif text == 'open stack overflow':
    webbrowser.open("https://stackoverflow.com")
    print("opening Google")
else:
    print("Unrecognized Command")
´´´

这是因为它无法识别google及其else语句,因此它打开了wikipedia。欢迎使用stack overflow,要进行调试,第一步是编写更全面的
if
语句。类似于:
if speech\u engine==“open Google”:webbrowser.open(“https://Google.com”)elif speech\u engine==“open Wikipedia”:webbrowser.open(“https://wikipedia.org)否则:打印(“未重新定义的命令”)
。第二步,我认为您应该使用
if text==“Open Google”
而不是
if speech\u engine==“Open Google”
非常感谢您提供的所有答案。但是现在输出只是:录制。。。认识到。。。打开Google Unrecognized命令过程结束,退出代码为0您可以通过编辑您的帖子向我们显示完整的错误回溯吗好的可能是语言检测问题您可以从我的代码中使用“en”来更改语言尝试itI稍微更改了我的程序,以便助手在运行时打印“打开Google”或“打开wikipedia”。问题似乎有点变了。当我告诉我的助手打开维基百科时,他打开了。但当我告诉他打开谷歌时,他没有。他给了我“打开谷歌”的输出,但他没有打开它。不应该所有的都在with语句中吗不应该所有的都在with语句中吗不,它是双向的!