Python语音识别运行报listen()缺失source位置参数如何解决
错误成因
你代码的核心问题出在takeCommand函数中对Recognizer的调用行:r = sr.Recognizer,你没有加括号完成类的实例化,只是把Recognizer类本身赋值给了变量r,而非创建该类的实例对象。
speech_recognition库的listen是Recognizer类的实例方法,方法定义的第一个参数为实例本身(即约定的self参数),第二个参数才是source。当你用实例对象调用listen时,self会由Python自动传入,无需手动传递;但你直接用类本身调用listen时,你传入的source会被识别为第一个self参数,方法要求的第二个位置参数source就缺少传值,因此抛出对应的报错。
解决方法
只需要修改实例化Recognizer的代码行,补充括号完成类实例化即可:
# 原错误代码 # r = sr.Recognizer # 修改后代码 r = sr.Recognizer()
修改后重新运行代码即可正常调用麦克风收音,不会再报参数缺失的错误。
内容的提问来源于stack exchange,提问作者Akshat Singh
相关产品推荐
相关产品推荐

