Ошибка ввода-вывода PyAudio: устройство ввода по умолчанию недоступно - PullRequest
25 голосов
/ 12 января 2011

Я использую PyAudio в дистрибутиве Python Enthought (Python 2.6.6) в Ubuntu 10.10 x64.

>>> import pyaudio
>>> pa = pyaudio.PyAudio()
>>> pa.get_default_input_device_info()

Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    pa.get_default_input_device_info()
  File "/usr/lib/python_epd/lib/python2.6/site-packages/pyaudio.py", line 936, in get_default_input_device_info
    device_index = pa.get_default_input_device()
IOError: No Default Input Device Available

Это та же ошибка, что и при попытке открыть входной поток. Возникла соответствующая ошибка «Ошибка ввода-вывода: устройство вывода по умолчанию недоступно»

Ответы [ 4 ]

3 голосов
/ 22 июля 2011

Я бы порекомендовал PYO для аудио ввода / вывода и синтеза, я нашел это действительно легко подобрать. Вот некоторый код, чтобы проиллюстрировать, как заставить PYO получать и выводить аудиовход после обработки, чтобы изменить его высоту тона:

from pyo import *
serv = Server(duplex=1).boot()
serv.start()
shiftfreq = 329.63
# 329.63 is the frequency for the E note
mic = Input(chnl=0)
shift = FreqShift(mic, shift=shiftfreq, mul=.5).out()
serv.gui(locals())

PYO также позволяет вам изменять частоты и параметры синтеза, генераторов или чего-то еще на лету, что было для меня самой большой выгодой, потому что я использую его в основном для программирования инструментов живого синтезатора.

Он также имеет большое руководство ...

2 голосов
/ 26 апреля 2012

Хорошо, вот решение, которое не красиво, но работает для меня.Согласно моему комментарию к ответу ulidtko, pyaudio - это не проблема, а основной PortAudio, с которым pyaudio должен связываться.

В Ubuntu драйверы portaudio устанавливаются с этим пакетом:

sudo apt-get install python-gnuradio-audio-portaudio

Это должно быть уже у вас, так как вы сказали, что ваш стандартный Ubuntu прекрасно работает с вашим кодом (хотя и с некоторыми отладочными сообщениями, которые можно игнорировать)

Если вы запросите расположение вашего модуля portaudio, вы найдете следующеевы используете питон enthought:

>>> import pyaudio
>>> pyaudio.pa.__file__
'/opt/epd-7.2-2-rh5-x86_64/lib/python2.7/site-packages/_portaudio.so'

и следующее на стандартной Ubuntu:

In [1]: import pyaudio
In [2]: pyaudio.pa.__file__
Out[2]: '/usr/lib/pymodules/python2.7/_portaudio.so'

Я убрал enthought _portaudio.so и заменил его ссылкой наsystem _portaudio.so и теперь все, включая прекрасный анализатор спектра в каталоге chaco demo / advanced, работает:

cd /opt/epd-7.2-2-rh5-x86_64/lib/python2.7/site-packages/
mv _portaudio.so _portaudio.so.originalEPD
ln -s /usr/lib/pymodules/python2.7/_portaudio.so
1 голос
/ 20 января 2011

PyAudio предоставляет привязки Python для PortAudio, кросс-платформенной библиотеки аудио ввода-вывода.

http://people.csail.mit.edu/hubert/pyaudio/

Вы установили программное обеспечение PortAudio?Для работы pyaudio требуется.

0 голосов
/ 24 сентября 2018

Проверьте это https://github.com/shichao-an/soundmeter/issues/7

Все, что вам нужно сделать, это установить ALSA: sudo apt-get install libasound-dev

, а затем собрать portaudio (эта версия pa_stable_v190600_20161030.tgz) http://www.portaudio.com/download.html

затем получить права суперпользователя (sudo su root в Ubuntu, где обычный su root не работает.)

Поместить архив portaudio в /usr/src и распаковать его с помощью tar xvfz pa_snapshot.tgz Это создаст каталог /usr/src/portaudio,

Зайдите в этот каталог и выполните следующие команды:

./configure

make

make install

ldconfig

Сценарий linrad configure должен быть запущен после успешной установки portaudio, чтобы Линрад знал о том, что portaudioдоступны.

Убедитесь, что вы получили ALSA как да в ./configure файле

 Target ...................... x86_64-unknown-linux-gnu
  C++ bindings ................ no
  Debug output ................ no

  ALSA ........................ yes
  ASIHPI ...................... no

  OSS ......................... yes
  JACK ........................ no       "

Установите последнюю версию pyaudio (PyAudio-0.2.11.tar.gz)

...