PyAudio抛出“无法打开从设备”错误。

7

每次执行pyaudio.PyAudio()时,我都会收到以下错误信息。我尝试使用这些指令显示由麦克风录制的音频:https://swharden.com/wp/2016-07-19-realtime-audio-visualization-in-python/,并且使用我的USB麦克风和树莓派3+上的耳机插孔。

Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPer                                  iodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPer                                   iodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPer                                   iodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924 

更新:如评论中所提到的,我通过编辑alsa.conf文件解决了“Unknown PCM”问题,但是我意识到我在这里发布的代码片段中没有添加回溯信息,因此以下是“新的、完整的”消息:
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
ALSA lib pcm_dsnoop.c:638:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
Traceback (most recent call last):
  File "sound.py", line 9, in <module>
    frames_per_buffer=CHUNK)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 750, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pyaudio.py", line 441, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno -9996] Invalid input device (no default output device)

额外信息:

**** List of CAPTURE Hardware Devices ****
card 2: Device [USB PnP Audio Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

[12:06:02] openhabian@openhab:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3

.asoundrc - 配置:


pcm.!default {
  type asym
  capture.pcm "hw:2,0"
  playback.pcm "hw:1,0"
}


你能添加导致错误的代码吗? - Greg
1
重新创建错误的最简单方法是打开Python,导入pyaudio并尝试执行PyAudio()方法。Python 2.7.16(默认值,2019年10月10日,22:02:15) [GCC 8.3.0]在linux2上 键入“help”,“copyright”,“credits”或“license”以获取更多信息。 >>> import pyaudio >>> p = pyaudio.PyAudio() - Schotti100
请编辑您的问题以添加代码。注释不适合于代码片段。 - herrbischoff
1个回答

0

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