2011-01-12 4 views
3

Я запускаю PyAudio под Python 2.6.6 и хотел бы, чтобы он использовал ALSA, а не JACK.PyAudio пытается использовать 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 
+0

Что происходит, если вы запускаете JACK вручную с терминала через 'jackstart'? Вы также можете использовать http://qjackctl.sourceforge.net/ для управления демоном JACK, если вам нравится графический интерфейс пользователя. В любом случае, отправьте вывод запуска демона. –

+0

Из документов в [http://people.csail.mit.edu/hubert/pyaudio/docs/](http://people.csail.mit.edu/hubert/pyaudio/docs/) Я думаю, вы будете необходимо передать 'pyaudio.paALSA'' 'pa.open()' вместо того, чтобы полагаться на выбранную систему. – ldrumm

+0

Ну, у меня была аналогичная проблема, но причиной было недостаточное разрешение. На Ubuntu мне нужно было добавить себя в группу «audio». И сообщения об ошибках были примерно одинаковыми. –

ответ

5

Для тех, кто посчастливилось найти себя в этом старом вопросе с помощью 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 
+0

Действительно! И если вы хотите избавиться от раздражающих сообщений, посмотрите http://stackoverflow.com/q/36956083. – Matthias