对于那些碰巧通过谷歌发现自己在这个老问题上的人:
pyaudio显示的消息...
jack server is not running or cannot be started
...内容丰富,不是错误。这意味着 portaudio 尝试连接到 Jack 但失败了,但这并不意味着它放弃了一切。
此时,您应该拥有一个使用 ALSA 的功能齐全的 PyAudio 对象。您可以通过例如查看可用设备列表来验证这一点:
>>> import pyaudio
>>> pa = pyaudio.PyAudio()
[...lots of crap from ALSA...]
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
>>> print '\n'.join([y['name']
... for y in [pa.get_device_info_by_index(x)
... for x in range(pa.get_device_count())]])
bcm2835 ALSA: - (hw:0,0)
bcm2835 ALSA: IEC958/HDMI (hw:0,1)
USB Audio Device: - (hw:2,0)
sysdefault
dmix
default