【发布时间】:2019-10-04 23:11:09
【问题描述】:
我想做一个带有语音识别的小程序。
这是我的代码(经典的):
import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
print("SAY SOMETHING")
audio = r.listen(source,timeout=3, phrase_time_limit=3)
print("TIME OVER")
try:
print("TEXTE : "+r.recognize_google(audio, language="fr-FR"))
except Exception:
print("ERROR")
但是当我尝试启动程序时出现这个错误:
ALSA lib pcm_dsnoop.c:638:(snd_pcm_dsnoop_open) 无法打开从站
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) 未知 PCM 卡.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) 未知 PCM 卡.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) 未知 PCM 卡.pcm.side
ALSA lib pcm_route.c:869:(find_matching_chmap) 找不到匹配的频道图
ALSA lib pcm_route.c:869:(find_matching_chmap) 找不到匹配的频道图
ALSA lib pcm_route.c:869:(find_matching_chmap) 找不到匹配的频道图
ALSA lib pcm_dsnoop.c:638:(snd_pcm_dsnoop_open) 无法打开从站
无法连接到服务器套接字错误 = 没有这样的文件或目录
无法连接到服务器请求 channeljack 服务器未运行或无法启动
JackShmReadWritePtr::~JackShmReadWritePtr - 未完成 -1 的初始化,跳过解锁
JackShmReadWritePtr::~JackShmReadWritePtr - 未完成 -1 的初始化,跳过解锁
回溯(最近一次通话最后一次):
中的文件“record.py”,第 6 行 以 sr.Microphone() 作为来源:
文件“/usr/lib/python2.7/site- packages/speech_recognition/__init__.py",第 86 行,在 __init__
device_info = audio.get_device_info_by_index(device_index) if
device_index 不是 None 其他 audio.get_default_input_device_info()
文件“/usr/lib64/python2.7/site-packages/pyaudio.py”,第 949 行,在
获取默认输入设备信息
device_index = pa.get_default_input_device()
IOError: 没有可用的默认输入设备
当我做arecord -l 时,我有这个:
**** CAPTURE 硬件设备列表 ****
卡 0:PCH [HDA Intel PCH],设备 0:ALC298 模拟 [ALC298 模拟]
子设备:0/1
子设备#0:子设备#0
Ps : 麦克风适用于任何软件,如 Skype 或 Google
【问题讨论】:
-
来自模块文档:pypi.org/project/SpeechRecognition“正如错误所说,程序不知道要使用哪个麦克风。要继续,请使用 Microphone(device_index=MICROPHONE_INDEX, ...) 而不是Microphone(...),或在您的操作系统中设置默认麦克风。您可以使用此问题上方的故障排除条目中的代码获取 MICROPHONE_INDEX 的可能值。"
-
我已经尝试过使用索引 0 到 5 ...
-
如何在 linux 上设置默认麦克风?仅通过命令行...我在 Fedora 29 上(但奇怪的是我可以在所有其他应用程序上使用麦克风)
-
您是否尝试列出设备以查看可用的设备?
for index, name in enumerate(sr.Microphone.list_microphone_names()): print("Microphone with name \"{1}\" found forMicrophone(device_index={0})".format(index, name)) -
我有 13 个 device_index 我尝试了所有但没有一个工作...这是错误(对所有人都一样):使用 sr.Microphone(device_index = 13) 作为源:文件“/usr/local /lib/python3.7/site-packages/speech_recognition/__init__.py", 第 141 行, in enter input=True, #stream 是一个输入流 File "/usr/local/lib64/python3 .7/site-packages/pyaudio.py”,第 750 行,在开放流中 = Stream(self, *args, **kwargs) 文件“/usr/local/lib64/python3.7/site-packages/pyaudio.py ",第 441 行,在 init self._stream = pa.open(**arguments) OSError: [Errno -9998] Invalid number of channels
标签: python audio speech-recognition microphone alsa