我正在用PyAudio录制麦克风的输入。
既然录音对我来说很好,我应该试着抑制它的错误信息吗?还是有办法解决?
ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib audio/pcm_bluetooth.c:1613:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1613:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1613:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1613:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
您可以尝试清理您的ALSA配置,例如
是由
/usr/share/alsa/alsa.conf
引起的:一旦您注释掉这些行,这些错误消息将消失。您可能还需要检查
~/.asoundrc
和/etc/asound.conf
。也就是说,其中一些消息告诉您配置中有问题,尽管它们不会导致任何真正的问题。我不建议您清理
alsa.conf
,因为它最初来自ALSA,更新ALSA lib时可能会覆盖它。有一种方法可以在Python中抑制消息,下面是一个示例代码:
我电脑的输出:
这些消息由alsa lib打印,而不是PyAudio或PortAudio。代码直接使用alsa lib
snd_lib_error_set_handler
函数设置错误处理程序py_error_handler
,您可以使用它来删除任何消息。我已经检查了其他Python ALSA绑定,pyalsa和PyAlsaAudio,它们不支持设置错误处理程序。然而,PortAudio上有an issue,以前所有的ALSA错误消息似乎都被抑制了。
以上都是事实,是一个很好的解决方案。我只是来这里建议一种更好的重新使用错误处理程序代码的方法:
执行此操作后,可以通过使用
noalsaerr
上下文重新使用错误处理程序:这些看起来像正常的调试消息,因为它知道如何在您的系统上运行。我看你没什么理由不压制他们。
你也许可以以某种方式关闭对
jack
服务器、蓝牙设备、环绕声等的检测,但这不是必要的,你可能会把事情搞砸。不要乱动正在工作的东西!相关问题 更多 >
编程相关推荐