【问题标题】:recogniser.listen(source) doesn't stop listeningrecogniser.listen(source) 不会停止收听
【发布时间】:2020-12-13 22:04:11
【问题描述】:

我正在制作一个 python 脚本,它会听你的声音,然后根据你所说的执行功能。

我刚开始做一个“唤醒词”,代码如下:

while True:
    try:
        with sr.Microphone() as source1:
            SpeakText("one")
            r.adjust_for_ambient_noise(source1)
            print("Set minimum energy threshold to {}".format(r.energy_threshold))
            SpeakText("two")
            audio1 = r.listen(source)
            SpeakText("three")
            MyText = r.recognize_google(audio1)
            print(MyText)
            SpeakText("four")
            MyText = MyText.lower()

            if MyText == "oink" or "ink" or "link":
                playsound("oink_boop.mp3")
                detect_command()
                        
    except sr.UnknownValueError:
        print("No Speech or No Internet")

现在我放入 SpeakText 部分(使用 pyttsx3)只是出于调试目的,但它说“两个”,然后在 audio1 = r.listen(source) 上听我的演讲时卡住了

它似乎并没有停止听我说话,我什至尝试将麦克风静音,但也没有用。

【问题讨论】:

    标签: python speech-recognition voice pyttsx


    【解决方案1】:
    r = sr.Recognizer()
        with sr.Microphone() as source:
            r.pause_threshold = 1
            audio = r.listen(source)
    
        try:
            query = r.recognize_google(audio, language='en-en')
            your_query_Fuction(query)
        except Exception:
            print("No Speech or No Internet")
            your_Mic_Fuction()
    

    您还应该使用: if 'oink' in MyText or ...

    编辑: 使用这个。

    def your_Mic_Fuction():
        while True:
            r = sr.Recognizer()
            with sr.Microphone() as source:
                r.pause_threshold = 1
                audio = r.listen(source)
    
            try:
                query = r.recognize_google(audio, language='en-en')
                your_query_Fuction(query)
            except Exception:
                print("No Speech or No Internet")
                your_Mic_Fuction()
    
    def your_query_Fuction(query):
        if "oink" in query or "ink" in query or "link" in query:
            playsound("oink_boop.mp3")
    
    your_Mic_Fuction()
    

    【讨论】:

    • 我应该保留 r.adjust_for_ambient_noise 吗?
    【解决方案2】:

    我试过了:

        with sr.Microphone() as source1:
            r.adjust_for_ambient_noise(source1)
            r.pause_threshold = 1
                
            audio1 = r.listen(source1)
        try:
            
                MyText = r.recognize_google(audio1, language='en-en')
                MyText = MyText.lower()
                if "oink" in MyText or "ink" in MyText or "link" in MyText:
                    playsound("oink_boop.mp3")
                    detect_command()
                            
        except sr.UnknownValueError:
            print("No Speech or No Internet")
    

    还是不行 我做错了什么吗?

    【讨论】:

      猜你喜欢
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2013-10-13
      • 2018-12-04
      • 1970-01-01
      • 2020-11-23
      相关资源
      最近更新 更多