PyAudio пытается использовать JACK

Я использую PyAudio под Python 2.6.6 и хотел бы, чтобы он использовал ALSA, а не JACK.

In [1]: import pyaudio

In [2]: pa = pyaudio.pa

In [3]: pa.initialize()
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

person Gus    schedule 12.01.2011    source источник
comment
Что произойдет, если вы запустите JACK вручную с терминала через jackstart? Вы также можете использовать qjackctl.sourceforge.net для управления демоном JACK, если вам больше нравится графический интерфейс пользователя. В любом случае, опубликуйте вывод запуска демона.   -  person Jim Brissom    schedule 12.01.2011
comment
Из документации по адресу http://people.csail.mit.edu/hubert/pyaudio/docs/ Я думаю, вам нужно передать pyaudio.paALSA в pa.open(), а не полагаться на выбор системы.   -  person    schedule 21.05.2013
comment
Ну, у меня была похожая проблема, но причина была в недостаточных разрешениях. В Ubuntu мне нужно было добавить себя в группу audio. И сообщения об ошибках были примерно одинаковыми.   -  person Tomasz Gandor    schedule 21.07.2015
comment
Связанный stackoverflow.com/questions/7088672/   -  person Nikolay Shmyrev    schedule 14.03.2019


Ответы (1)


Для тех, кто случайно нашел этот старый вопрос через Google:

Сообщение, отображаемое pyaudio...

jack server is not running or cannot be started

... является информативным, а не ошибкой. Это означает, что portaudio пытался и не смог подключиться к Джеку, но это не значит, что он отказался от всего.

На этом этапе у вас должен быть полностью функциональный объект PyAudio, использующий ALSA. Вы можете убедиться в этом, например, просмотрев список доступных устройств:

>>> 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
person larsks    schedule 01.02.2016
comment
Верно! А если вы хотите избавиться от раздражающих сообщений, загляните на stackoverflow.com/q/36956083. - person Matthias; 11.12.2016