PyAudio在Ubuntu 14.04上无法使用麦克风,出现“无法打开从设备”的错误。

6

我已经尝试了几天在我的Ubuntu 14.04上使用PyAudio麦克风。实际上,我想使用Github上的“语音识别”包。

我发现它使用pyaudio内部,在Ubuntu 14.04上非常困难。它显示以下错误消息,无法从麦克风中识别我的声音:

ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave

我在网站上找到了几篇类似的帖子,但都没有解决方案。我的麦克风无法录制声音,它只是卡在那里。有人在Ubuntu 14.04上成功运行过吗?(使用PyAudio录制语音或语音识别


这个回答解决了您的问题吗?PyAudio正常工作,但每次都会显示错误信息 - Nikolay Shmyrev
1个回答

2

我不知道这是否也能解决您的问题,但在我的情况下,HDMI音频设备和pulse相互干扰(也适用于Ubuntu 14.04)。由于设备的索引似乎会发生变化,因此我想出了这个小脚本,它枚举了所有可用的设备并给出了pulse设备的索引(如果您有一个usb麦克风或其他设备,则可能需要另一个设备):

import pyaudio
pa = pyaudio.PyAudio()
chosen_device_index = -1
for x in xrange(0,pa.get_device_count()):
    info = pa.get_device_info_by_index(x)
    print pa.get_device_info_by_index(x)
    if info["name"] == "pulse":
        chosen_device_index = info["index"]
        print "Chosen index: ", chosen_device_index

之后,我可以打开流:

p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input_device_index=chosen_device_index, input=True, output=False)
stream.start_stream()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接