Home  >  Article  >  Backend Development  >  I can't generate google/youtube research results in my speech recognition code

I can't generate google/youtube research results in my speech recognition code

PHPz
PHPzforward
2024-02-06 08:10:07719browse

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

Question content

I'm trying to build a chatbot that can interact with people and help them update quickly. Below is the code I'm using to get search results from youtube/google. Please tell me where is the problem?

maya_google_search.pyCode:

import speech_recognition
import pyttsx3
import pywhatkit
from wikipedia import wikipedia
import wikipedia as googlescrap
import webbrowser

engine = 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}\n")

    except exception as e:
        print("say that again")
        speak("say that again")
        return "none"
    
    return query

query = 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")

maya_ai.pyCode:

import pyttsx3
import speech_recognition

engine = 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}\n")
        # speak(query)

    except Exception as e:
        print("Say that again")
        return "None"
    
    return query

if __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)

If I say google sundar pichai, it will just print what I said and say I'm fine sir, or nothing.

Please help me solve this problem.


Correct Answer


Change

elif "how are you":

for

elif "how are you" in query:

Then you need to add the final else statement in case none of the previous conditions trigger

The above is the detailed content of I can't generate google/youtube research results in my speech recognition code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete