You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用speech_recognition报NotImplementedError报错及抽象类含义咨询

错误原因

你代码中误用了speech_recognition.Recognizer类作为with上下文管理器的操作对象,这个类是语音识别核心类,本身不支持上下文管理协议,你应该使用专门用来获取麦克风输入的speech_recognition.Microphone类。

另外你原有代码在异常捕获逻辑后重复调用了一次语音识别方法,会导致异常捕获完全失效,也需要同步修改。

抽象类(abstract class)含义

抽象类是面向对象编程中的类设计类型,它仅用于定义子类必须遵循的方法和属性规范,本身不能被直接实例化完成具体功能,需要子类继承并实现它定义的所有抽象方法后才能正常使用。你触发报错就是因为调用了Recognizer类中没有实现的上下文接口方法,库内置抛出了该错误提示。

修正后可运行代码
import speech_recognition

ai_ear = speech_recognition.Recognizer()
# 替换为Microphone类获取麦克风输入
with speech_recognition.Microphone() as mic:
    print("AI: I'm listening...")
    audio = ai_ear.listen(mic)

try:
    # 增加language参数适配中文识别,仅需要识别英文可以删掉该参数
    you = ai_ear.recognize_google(audio, language="zh-CN")
except:
    you = "语音识别失败"

print(you)
运行前置说明
  • 首先需要安装pyaudio依赖才能调用麦克风,执行命令pip install pyaudio安装即可,Windows系统如果安装失败可以下载对应Python版本的pyaudio whl离线包安装
  • 运行时请允许程序访问麦克风权限,首次运行会自动完成环境噪音校准,等待1-2秒即可正常录音

内容的提问来源于stack exchange,提问作者jDuck_77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 21:54:07