我正在尝试使用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(这是必需的)而引起的,我没有意识到。现在我无法阻止它录制麦克风。
答案 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: