din*_*aur 6 python speech-recognition
我正在使用该SpeechRecognition软件包来尝试识别语音。当我打电话时recognizer.listen(mic, timeout=5.0),超时被完全忽略。有时即使我没有对着麦克风说话,它也会在一秒或更短的时间内返回。有时它会在返回之前等待 30 秒或更长时间。有时它根本不返回,或者只是花费了很长时间以至于它似乎挂了。最重要的是,它永远不会超时。
如何让语音识别器尊重我的 tiemout?
尝试设置recognizer.dynamic_energy_threshold = False。
要理解为什么会这样,请打印出来recognizer.energy_threshold看看它对于不同迭代的值是什么 when recognizer.dynamic_energy_thresholdis True。
我发现如果允许能量阈值是动态的,有时它会设置得非常低。然后,即使您没有说话,识别器也会听到连续的环境噪音并认为您在连续说话。它不会返回,直到它停止听到“语音”。除非在超时时间内听到完全静音,否则它不会超时。
我将能量阈值设置为 400,并且 recognizer.dynamic_energy_threshold = False. 这样,识别器将一定量的背景噪音(包括沉重的呼吸声)解释为完全沉默,并在我不说话时按预期超时。
| 归档时间: |
|
| 查看次数: |
5307 次 |
| 最近记录: |