python - PyAudio 抛出“无法打开从属”错误
问题描述
嗨,每次我执行 pyauido.PyAudio() 我都会收到以下错误。我尝试使用以下说明显示我的麦克风录制的音频:https ://swharden.com/wp/2016-07-19-realtime-audio-visualization-in-python/ 并使用我的 USB-Mic 和耳机-我的树莓派杰克 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 文件摆脱了“未知 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"
}
解决方案
如果其他人在这里遇到这个问题,至少有一个解决方案可以删除“未知...”-消息:
推荐阅读
- node.js - 通过 Cloud Functions 从 Cloud Storage 解压缩文件
- c# - 后台定时器任务 .net Web Api 和 Xamarin 表单
- php - LinkedIn API 403 - “访问发布共享被拒绝”
- .net - 为什么我不能在 .NET 标准项目中禁用 DEBUG 预处理器符号?
- php - Laravel + Vue 前端解耦与可选的服务器端 Blade 渲染
- sql-server - PostgreSQL + debian 9 或 MS SQL 2017 企业版 + debian 8 能够与 Windows Server 2016 上的 MS SQL Server 2017 集成
- jquery - 通过菜单显示弹出窗口以及悬停
- android - 如何更改浮动操作按钮的颜色?
- swift - 中心对齐子视图
- mongodb - Mongo 3.6:删除重复项