如何使用语音识别实现用户卡片信息的语音输入替代键盘输入?
解决方案:将所有卡片输入改为语音识别
修改思路
把重复的语音识别逻辑封装成可复用函数,用该函数获取四张卡片的语音输入替代键盘输入,同时添加异常处理避免识别失败导致程序崩溃。
完整代码
import speech_recognition as s def get_voice_input(prompt): sr = s.Recognizer() print(f''' listening... {prompt}''') with s.Microphone() as m: # 适配环境噪音,提升识别准确率 sr.adjust_for_ambient_noise(m, duration=0.2) audio = sr.listen(m) try: # 通过Google语音识别API转换语音为文本 query = sr.recognize_google(audio, language='eng-in') print(f"识别结果:{query}") return query.strip() except s.UnknownValueError: print("无法识别语音,请重新输入") return get_voice_input(prompt) except s.RequestError: print("语音识别服务不可用,请检查网络连接") return get_voice_input(prompt) # 获取四张卡片的语音输入 first_card = get_voice_input("speak the first card") second_card = get_voice_input("speak the second card") third_card = get_voice_input("speak the third card") fourth_card = get_voice_input("speak the fourth card") # 输出结果 print("the upnext cards are", fourth_card, third_card, second_card, first_card)
关键说明
- 函数封装:
get_voice_input函数统一处理语音监听、识别流程,减少代码冗余,方便后续维护。 - 噪音适配:
adjust_for_ambient_noise方法让识别器快速适应环境噪音,降低识别错误率。 - 异常处理:捕获两类常见错误(无法识别语音、服务不可用),并递归重新请求输入,保证程序稳定运行。
- 输入替换:用语音输入函数完全替代原有的
input键盘输入,实现全语音输入需求。
内容的提问来源于stack exchange,提问作者Kamran Aslam
相关产品推荐
相关产品推荐

