python - SpeechRecognition 产生 OSError: 没有可用的默认输入设备
问题描述
这个:
import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
print("Speak Anything :")
audio = r.listen(source)
try:
text = r.recognize_google(audio)
print("You said : {}".format(text))
except:
print("Sorry could not recognize what you said")
制作这个:
Traceback (most recent call last):
File "magic.py", line 5, in <module>
with sr.Microphone() as source:
File "/home/myPorfile/anaconda3/envs/customEnv/lib/python3.6/site-packages/speech_recognition/__init__.py", line 86, in __init__
device_info = audio.get_device_info_by_index(device_index) if device_index is not None else audio.get_default_input_device_info()
File "/home/myPorfile/anaconda3/envs/customEnv/lib/python3.6/site-packages/pyaudio.py", line 949, in get_default_input_device_info
device_index = pa.get_default_input_device()
OSError: No Default Input Device Available
显然,Pyaudio 没有检测到我的耳机和电脑的麦克风。
sr.Microphone.list_microphone_names()
通过返回一个空列表来验证这一点[]
。
我还尝试安装 Pyaudio 和 portaudio。
使用:Ubuntu 18.04.2 LTS / python 3.6
解决方案
推荐阅读
- php - php setcookie,域在 chrome 中未正确限制,但在 Firefox 中
- kubernetes - 尝试安装 Kubernetes 时遇到问题 [openstack 上的 ubuntu18 映像]
- java - java for 以“true”作为停止条件的循环?
- c - 涉及 C 中结构的 IP 地址程序的问题
- javascript - jQuery 查找已注册事件的状态
- python - 如何在二维中制作具有不同长度的 Numpy 3D 数组?
- c++ - C/C++ 线程在条件上的神奇差异
- angular - 类型 'string' 不可分配给类型 'ArrayBuffer | 共享数组缓冲区 | 类数组
' - r - 我的模式匹配和替换功能有什么问题
- service-worker - 如何从服务人员检索存储在缓存中的 JSON 对象?