Python 语音识别程序容易卡在某个地方

Python Speech Recognition Program Tends To Hang In A Certain Place

此计划尚未完成,但仍在进行中。

import speech_recognition as sr
import subprocess as sp
import time, os
r = sr.Recognizer()
print("Voice Recognition Software\n\n******************************************************************************\n")

while True:
    r.energy_threshold = 8000
    t = None
    with sr.Microphone() as source:
        success = False
        print (">")
        audio = r.listen(source)
        try:
            print("Processing...")
            t = r.recognize_google(audio)
            print (": " + t)
        except sr.UnknownValueError:
            print("Unknown input") 
            continue
        except sr.RequestError as e:
            print("An error occured at GAPI\nA common cause is lack of internet connection")
            continue

        if "open" in t:
            t = t.replace("open","")
            t = t.replace(" ","")
            t = t + ".exe"
            print (t)

            for a,d,f in os.walk("C:\"):
                for files in f:
                    if files == t.lower() or files == t.capitalize() or files == t.upper():
                        pat = os.path.join(a,files)
                        print (pat)
                        sp.call([pat])
                        success = True

        if success == True:
            continue

我面临的问题是,在 >Processing 之后,程序有时会停止响应。没有错误消息或任何东西,在 shell 它只是打印 >Processing 并留在那里。

这是随机发生的,程序可以连续运行很长时间,但在任何给定时刻,无论出于何种原因,它都会冻结。通常在一两分钟后,它会移动到下一部分并再次开始响应,但情况并非总是如此。

我试图创建一种故障安全机制,因此如果响应时间太长,程序将关闭并再次打开,但我没有成功,所以现在我试图找出根本原因问题。

有这方面经验的人可以帮助我理解为什么会这样吗?

编辑:

我能够解决问题。原来这里有个超时参数r.listen(source).

我能够解决问题。原来这里有个超时参数r.listen(source).