PyAudio IOError: No Default Input Device Available PyAudio IOError: No Default Input Device Available python python

PyAudio IOError: No Default Input Device Available


OK, here is a solution that isn't pretty but works for me.As per my comment to ulidtko's answer, pyaudio is not the problem but rather the underlying PortAudio that pyaudio is supposed to bind to.

On ubuntu the portaudio drivers are installed with this package:

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

You must have this already, since you said your stock ubuntu runs your code fine (albeit with some debug messages that can be ignored)

If you query the location of your portaudio module you will find the following when you are running enthought's python:

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

and the following on stock ubuntu:

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

I moved the enthought _portaudio.so out of the way and replaced it with a link to the system _portaudio.so and now everything including the lovely spectrum analyzer in the chaco demo/advanced directory works:

cd /opt/epd-7.2-2-rh5-x86_64/lib/python2.7/site-packages/mv _portaudio.so _portaudio.so.originalEPDln -s /usr/lib/pymodules/python2.7/_portaudio.so


I would recommend PYO for audio I/O and synthesis, I found it really easy to pick up.Here's some code to illustrate how I would get PYO to get and output an audio input after processing it to change it's pitch:

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

PYO also lets you change frequencies and parameters of synthesis, generators or anything on the fly, which was the biggest draw for me because I use it mostly for programming live synthesiser instruments.

It also has a great manual...


PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library.

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

Did you install the PortAudio software? It is required fot the pyaudio to work.