PHP前端开发

我无法在我的语音识别代码中生成 google/youtube 的研究结果

百变鹏仔 1天前 #Python
文章标签 语音识别
问题内容

我正在尝试构建一个聊天机器人,它可以与人们互动并帮助他们快速更新。下面是我用来从 youtube/google 获取搜索结果的代码。请告诉我问题出在哪里?

ma​​ya_google_search.py​​代码:

import speech_recognitionimport pyttsx3import pywhatkitfrom wikipedia import wikipediaimport wikipedia as googlescrapimport webbrowserengine = pyttsx3.init("sapi5")voices = engine.getproperty("voices")engine.setproperty("voice", voices[1].id)engine.setproperty("rate", 150)def speak(audio):    engine.say(audio)    engine.runandwait()def takecommand():    r = speech_recognition.recognizer()    with speech_recognition.microphone() as source:        print("listening.............")        r.pause_threshold = 1        r.energy_threshold = 300        audio = r.listen(source,0,4)    try:        print("understanding............")        query = r.recognize_google(audio, language='en-in')        print(f"you said: {query}")    except exception as e:        print("say that again")        speak("say that again")        return "none"        return queryquery = takecommand().lower()def googlesearch(query):        if "google" in query:        query = query.replace("maya", "")        query = query.replace("google search", "")        query = query.replace("google", "")        speak("this is what i found on google.....")                try:            pywhatkit.search(query)            result = googlescrap.summary(query,sentences=2)            speak("according to google..........")            speak(result)                except:            speak("no speakable output available")def youtubesearch(query):    if "youtube" in query:        query = query.replace("maya", "")        query = query.replace("youtube search", "")        query = query.replace("youtube", "")        speak("this is what i found for your search!")         web = "https://www.youtube.com/results?search_query=" + query        webbrowser.open(web)        pywhatkit.playonyt(query)                speak("done, sir")

ma​​ya_ai.py代码:

import pyttsx3import speech_recognitionengine = pyttsx3.init("sapi5")voices = engine.getProperty("voices")engine.setProperty("voice", voices[1].id)engine.setProperty("rate", 150)def speak(audio):    engine.say(audio)    engine.runAndWait()    def takeCommand():    r = speech_recognition.Recognizer()    with speech_recognition.Microphone() as source:        print("listening.............")        r.pause_threshold = 1        r.energy_threshold = 300        audio = r.listen(source,0,4)    try:        print("Understanding............")        query = r.recognize_google(audio, language='en-in')        print(f"You said: {query}")        # speak(query)    except Exception as e:        print("Say that again")        return "None"        return queryif __name__ == "__main__":        while True:        query = takeCommand().lower()        if "wake up" in query:            from maya_greeting import greetMe            greetMe()            while True:                query = takeCommand().lower()                if "go to sleep" in query:                    speak("Ok sir, You can call me anytime...")                    break                                elif "hello" in query:                    speak("Hello Sir, how are you?")                elif "i am fine" in query:                    speak("That's really great to know sir....")                elif "how are you":                    speak("i am perfectly alright sir.")                elif "thank you" in query:                    speak("you're welcome sir")                elif "google" in query:                    from maya_google_search import Googlesearch                    Googlesearch(query)                elif "youtube" in query:                    from maya_google_search import Youtubesearch                    Youtubesearch(query)                                elif "wikipedia" in query:                    from maya_google_search import Wikisearch                    Wikisearch(query)

如果我说 google sundar pichai,它只会打印我所说的内容,并说我很好,先生,或者什么也没有。

请帮我解决这个问题。


正确答案


改变

elif "how are you":

对于

elif "how are you" in query:

然后您需要添加最后的 else 语句,以防前面的条件都没有触发