Python SpeechRecognition在侦听时忽略超时,并挂起

Python SpeechRecognition在侦听时忽略超时,并挂起,python,speech-recognition,Python,Speech Recognition,我用这个软件包试着识别语音。当我调用识别器.listen(麦克风,超时=5.0)时,超时被完全忽略。有时,即使我没有对着麦克风说话,它也会在一秒钟或更短的时间后返回。有时,它会等待30秒或更长时间才返回。有时它根本就不会回来,或者只是花了很长时间,以至于看起来像是挂着的。最重要的是,它从不超时 如何使语音识别器尊重我的信息?尝试设置recognizer.dynamic\u energy\u threshold=False 要了解其工作原理,请打印出recognizer.energy\u thre

我用这个软件包试着识别语音。当我调用识别器.listen(麦克风,超时=5.0)时,超时被完全忽略。有时,即使我没有对着麦克风说话,它也会在一秒钟或更短的时间后返回。有时,它会等待30秒或更长时间才返回。有时它根本就不会回来,或者只是花了很长时间,以至于看起来像是挂着的。最重要的是,它从不超时


如何使语音识别器尊重我的信息?

尝试设置
recognizer.dynamic\u energy\u threshold=False

要了解其工作原理,请打印出
recognizer.energy\u threshold
,查看当
recognizer.dynamic\u energy\u threshold
True时,它在不同迭代中的值

我发现,如果允许能量阈值是动态的,有时它会将自身设置得很低。然后,即使你不说话,识别器也会听到连续的环境噪音,并认为你在连续说话。它不会回来,直到它停止听到“讲话”。它不会超时,除非在超时时间内听到完全的沉默

我将能量阈值设置为400,并且
recognizer.dynamic_energy_threshold=False
。通过这种方式,识别器将一些背景噪音(包括沉重的呼吸)解释为完全的沉默,并在我不说话时按预期超时