PyAudio在Ubuntu上无法工作且破坏声音

8 投票
2 回答
7292 浏览
提问于 2025-04-17 17:44

好的,我通过 apt-get 安装了 pyaudio,这个包叫 python-pyaudio。然后我尝试像下面这样导入并调用它:

Python 2.7.3 (default, Sep 26 2012, 21:53:58) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyaudio
>>> p= pyaudio.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_params.c:2162:(snd1_pcm_hw_refine_slave) Slave PCM not usable
ALSA lib pcm_params.c:2162:(snd1_pcm_hw_refine_slave) Slave PCM not usable
ALSA lib pcm_params.c:2162:(snd1_pcm_hw_refine_slave) Slave PCM not usable
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

结果出现了一些错误信息。经过一番研究,我发现了这个问题:

PyAudio工作正常,但每次都会出现错误信息

在回答中提到这些只是警告信息。

但对我来说,音频实际上并没有 正常工作,而且还导致我的系统音频出现问题,让声音设置里什么都显示为空,音频输出也无法使用。

之前的状态:

之后的状态:

这是我能解决的问题吗?

2 个回答

1

你需要连接的其实是JACK守护进程:

jack server is not running or cannot be started

大部分主流的Linux系统应该自带这个程序,如果没有安装的话,你可以去看看他们的页面,决定一下你需要哪种音频架构(通常是ALSA),以及你希望它以什么样的速度运行。我还建议你可以在它上面运行一个图形界面,比如QJackCtl,因为根据你的声卡,JACK有时需要一些配置。

3

你需要正确设置alsa,确保arecord这个工具能正常工作,并且默认设备能够正确录音。如果这些问题解决了,它就应该能正常使用了。

最好是重新编译PyAudio(Portaudio),不使用Jack和Alsa,而是支持Pulseaudio。

Pulseaudio是Ubuntu系统中的默认声音框架,应该能顺利工作,不会有问题。

撰写回答