Python语音识别输入功能如何添加10秒计时限制
语音输入添加10秒计时限制实现方案
speech_recognition 库的listen()方法内置了时间控制参数,无需额外实现定时器逻辑,可直接满足需求:
phrase_time_limit参数:指定语音开始录制后的最大时长,单位为秒,设置为10即可实现最多录制10秒语音的效果timeout参数(可选):指定等待语音输入开始的最大时长,超出后抛出超时异常,避免程序无限等待
你提供的原始代码存在导入不完整的问题,修正后的完整可运行代码如下:
import speech_recognition as sr # 初始化识别器 r = sr.Recognizer() # 调用麦克风 with sr.Microphone() as source: # 校准环境噪音,提升识别准确率 r.adjust_for_ambient_noise(source) # 循环监听,你可以根据需求修改循环终止条件 while True: print('请说话') try: # 核心配置:等待语音输入超时5秒,最长录制10秒 audio = r.listen(source, timeout=5, phrase_time_limit=10) # 如需识别中文,添加language='zh-CN'参数,默认识别英文 query = r.recognize_google(audio, language='zh-CN') print(f"识别结果:{query}") except sr.WaitTimeoutError: print("等待超时,未检测到语音输入") except sr.UnknownValueError: print("无法识别当前语音内容") except sr.RequestError: print("语音识别服务请求失败,请检查网络连接")
如果你的需求是「从调用监听开始无论是否检测到语音,10秒后都强制停止」,可以额外引入threading定时器实现,不过绝大多数场景下上述内置参数已经足够使用。
内容的提问来源于stack exchange,提问作者Shubham Kumar
相关产品推荐
相关产品推荐

