【问题标题】:Errors using pyAudio使用 pyAudio 的错误
【发布时间】:2015-11-11 19:11:18
【问题描述】:

我正在尝试使用https://people.csail.mit.edu/hubert/pyaudio/#examples 上提供的 pyaudio 示例。

我有两个 Raspberry Pi,它们都安装了 pyAudio。其中一个可以运行示例而没有任何问题,但是另一个在尝试录制音频时会吐出以下错误消息,例如:

ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1438
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2742
Traceback (most recent call last):
  File "audioRecord.py", line 17, in <module>
    frames_per_buffer=CHUNK)
  File "/usr/local/lib/python3.2/dist-packages/pyaudio.py", line 747, in open
    stream = Stream(self, *args, **kwargs)
  File "/usr/local/lib/python3.2/dist-packages/pyaudio.py", line 442, in __init__
    self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998

我有以下音频配置:

$ cat /proc/asound/modules
  0 snd_usb_audio
  1 snd_bcm2835

$ lsusb
  Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
  Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
  Bus 001 Device 004: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
  Bus 001 Device 005: ID 046d:c31c Logitech, Inc. Keyboard K120 for Business
  Bus 001 Device 006: ID 046d:c077 Logitech, Inc. 
  Bus 001 Device 007: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter

$ aplay -l
  **** List of PLAYBACK Hardware Devices ****
  card 0: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio]
    Subdevices: 1/1
    Subdevice #0: subdevice #0
  card 1: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
    Subdevices: 8/8
    Subdevice #0: subdevice #0
    Subdevice #1: subdevice #1
    Subdevice #2: subdevice #2
    Subdevice #3: subdevice #3
    Subdevice #4: subdevice #4
    Subdevice #5: subdevice #5
    Subdevice #6: subdevice #6
    Subdevice #7: subdevice #7
  card 1: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
    Subdevices: 1/1
    Subdevice #0: subdevice #0

您能否告知一下,这第二台设备上可能缺少什么?

【问题讨论】:

  • 当 PortAudio 尝试搜索所有设备时,那些“未知”/“无法”/“不能”消息是正常的。但是“channelCount
  • 非常感谢您的反馈!!我试图运行名为“记录”的示例。你完全正确,将变量 CHANNELS = 2 更改为 1 至少可以解决第一条错误消息,现在我有:* 记录 Traceback(最近一次调用最后一次):文件“audioRecord.py”,第 24 行,在 data = stream.read(CHUNK) File "/usr/local/lib/python3.2/dist-packages/pyaudio.py", line 605, in read return pa.read_stream(self._stream, num_frames) IOError: [Errno 输入溢出] -9981
  • 我很困惑为什么其他 Pi 可以毫无问题地运行整个脚本并将通道从 2 更改为 1 或在任何方面触摸脚本......硬件是相同的,我已经安装了相同的东西并进行了相同的配置设置(至少据我所知),但显然两台设备上的结果肯定有所不同。任何关于我应该采取的方向的建议都非常感谢!
  • 其他 Pi 是否也将耳机(的麦克风)作为默认设备?
  • 是的,同样是默认设备。但是我注意到以下差异。另一台设备(能播放好)有如下aplay -l: card 0: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice # 0

标签: python-3.x alsa pyaudio


【解决方案1】:

解决方案是将声音设备设为默认值。

【讨论】:

  • 你是怎么做到的?
猜你喜欢
  • 2011-09-27
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 2015-11-16
  • 1970-01-01
  • 2013-11-30
  • 2018-03-12
相关资源
最近更新 更多