Python SpeechRecognition AttributeError:__ exit__ with sr.Microphone()

时间:2016-12-28 09:56:46

标签: python speech-recognition

我正在尝试使用SpeechRecognition 3.5将语音转换为文本。我正在使用 Python 2.7.13 。我查看了一些使用此模块的示例,我发现的所有示例包括:

r = sr.Recognizer()
with sr.Microphone() as source:
    audio = r.listen(source)

但是当我运行它时,它总是吐出这个错误

AttributeError: __exit__

我不知道如何解决这个问题,如

with sr.Microphone() as source:

正在寻找退出方法,但无法找到。所以我尝试取出with关键字,所以它看起来像这样:

source = sr.Microphone()
audio = r.listen(source)

然后它向我吐出一个AssertionError。

AssertionError: Audio source must be entered before listening, see documentation for ``AudioSource``; are you using ``source`` outside of a ``with`` statement?

我不知道该怎么做。有谁可以向我解释为什么这不起作用?

修改

sr.Microphone - > sr.Microphone()

编辑2:

错误是由于我没有导入PyAudio(这是必需的)而引起的,我没有意识到。现在我无法阻止它录制麦克风。

3 个答案:

答案 0 :(得分:0)

添加, phrase_time_limit = 10 // 10秒

例如:

with sr.Microphone() as source:
print("Say something!")
audio = r.listen(source,timeout=1,phrase_time_limit=10)

答案 1 :(得分:0)

var data = intent.getSerializableExtra("listItem") as MyData? 作为来源:

class MyData(): Serializable

如果您这样写,则会遇到属性错误,因此请用sr.Microphone添加替换print("say something!")

答案 2 :(得分:0)

使用

sr.Microphone() as source:

代替:

sr.Microphone as source: