【发布时间】:2019-03-20 03:01:36
【问题描述】:
import speech_recognition as sr
r = sr.Recognizer()
#
with sr.Microphone() as source:
print("Say something!")
audio = r.listen(source)
try:
print("google speech recognition thinks you said " + r.recognize_google(audio))
except sr.UnknowValueError:
print("google speech recognition could not understand audio")
except sr.RequestError as e:
print("Could not request results from google speech recognition service;{0}".format(e))
macOS Mojave。
portaudio-19.6.0
pyaudio-0.2.11
运行 python main.py 后,我对我的 mac 说了什么,然后等了几分钟。一点反应都没有! Control+C 停止进程,错误信息如下。
Say something!
^CTraceback (most recent call last):
File "main.py", line 6, in <module>
audio = r.listen(source)
File "/Library/Python/2.7/site-packages/speech_recognition/__init__.py", line 620, in listen
buffer = source.stream.read(source.CHUNK)
File "/Library/Python/2.7/site-packages/speech_recognition/__init__.py", line 161, in read
return self.pyaudio_stream.read(size, exception_on_overflow=False)
File "/Library/Python/2.7/site-packages/pyaudio.py", line 608, in read
return pa.read_stream(self._stream, num_frames, exception_on_overflow)
KeyboardInterrupt
【问题讨论】:
-
我在迁移到 MacOS Mojave 时也经历过类似的事情。我认为问题可能是 Mojave 需要授予权限才能让应用程序访问麦克风。我已经尝试以 root 身份运行我的应用程序,但到目前为止这也没有奏效......我很想知道你是否解决了这个问题......?
-
好的,我解决了我的问题。就像我描述的那样,这是一个权限问题。如果我在终端而不是 iTerm2 中运行我的脚本,我会被要求授予应用程序权限。我想这是 iTerm2 需要解决的问题。希望这有帮助吗?
-
授予权限后是否可以在终端中使用?之前没试过,今晚想试试。
标签: python-2.7 speech-recognition pyaudio portaudio