PyAudio IOError: Pas De Périphérique D'Entrée Par Défaut Disponible

J'utilise PyAudio sous la Distribution Enthought Python (Python 2.6.6) dans 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

C'est la même erreur que j'obtiens si j'essaie d'ouvrir un flux d'entrée. Il y a l'erreur correspondante "IOError: No Default Output Device Available"

25
demandé sur Gus 2011-01-12 20:55:06

4 réponses

OK, voici une solution qui n'est pas jolie, mais fonctionne pour moi. Selon mon commentaire à la réponse d'ulidtko, pyaudio n'est pas le problème mais plutôt le PortAudio sous-jacent auquel pyaudio est censé se lier.

sur ubuntu les pilotes portaudio sont installés avec ce paquet:

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

vous devez déjà l'avoir, puisque vous avez dit que votre stock ubuntu exécute votre code très bien (bien qu'avec quelques messages de débogage qui peuvent être ignorés)

Si vous interrogez l'emplacement de votre module portaudio vous trouverez ce qui suit lorsque vous lancez le python de enthought:

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

et le suivant le stock ubuntu:

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

j'ai déplacé l'enthousiaste _portaudio.donc hors du chemin et remplacé par un lien vers le système _portaudio.donc et maintenant tout, y compris le bel analyseur de spectre dans le Chaco demo/répertoire avancé fonctionne:

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
2
répondu DrSAR 2012-04-26 18:30:40

je recommanderais PYO pour l'E/S audio et la synthèse, j'ai trouvé ça très facile à récupérer. Voici un code pour illustrer comment J'aurais pu faire en sorte que PYO obtienne et sorte une entrée audio après l'avoir traitée pour changer son pitch:

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 permet également de changer les fréquences et les paramètres de synthèse, générateurs ou n'importe quoi à la volée, ce qui a été le plus grand tirage pour moi parce que je l'utilise principalement pour programmer des instruments de synthétiseur en direct.

il a aussi un grand manuel...

3
répondu archiboldian 2012-11-16 12:46:31

PyAudio fournit des fixations Python pour PortAudio, la bibliothèque d'e/s audio multiplateformes.

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

pyaudio au travail.

1
répondu ulidtko 2011-01-20 14:01:50

vérifiez ceci https://github.com/shichao-an/soundmeter/issues/7

Tout ce que vous avez à faire est install ALSA:sudo apt-get install libasound-dev

puis construire portaudio (cette version pa_stable_v190600_20161030.tgz) http://www.portaudio.com/download.html

puis obtenir les privilèges root (sudo su root sous Ubuntu où brut su root ne fonctionne pas.)

Place de la portaudio archives /usr/src et décompressez-le avec tar xvfz pa_snapshot.tgz Cela permet de générer le répertoire /usr/src/portaudio.

Descendre dans ce répertoire et exécutez ces commandes:

./configure

make

make install

ldconfig

linrad configure script doit être lancé après l'installation réussie de portaudio pour informer Linrad du fait que portaudio est disponible.

assurez-vous que vous obtenez ALSA comme oui dans le ./configure le fichier

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

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

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

installez la dernière version de pyaudio (PyAudio-0.2.11.tar.gz)

0
répondu Parthan 2018-09-24 16:59:30