2011-01-12 18 views
23

Estoy usando PyAudio bajo la distribución Enthought Python (Python 2.6.6) en Ubuntu 10.10 x64.PyAudio IOError: No hay dispositivo de entrada predeterminado disponible

>>> 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 

Este es el mismo error que obtengo si intento abrir una secuencia de entrada. Existe el error correspondiente "IOError: No Disponible por defecto Dispositivo de salida"

+2

¿Qué obtienes si pruebas 'pa.get_device_count()'? – mtrw

+0

@mtrw pa.get_device_count() devuelve 0 – Gus

+0

'pyaudio' instalado a través de' sudo apt-get install python-pyaudio' funciona en Ubuntu-11.10 – jfs

Respuesta

2

OK, aquí es una solución que no es bonito, pero funciona para mí. Según mi comentario a la respuesta de ulidtko, pyaudio no es el problema, sino el PortAudio subyacente al que se supone que se debe vincular el pyaudio.

en Ubuntu los conductores PortAudio están instalados con este paquete:

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

Usted debe tener esto ya, ya que dijo su acción ubuntu corre el bien de código (aunque con algunos mensajes de depuración que puede ser ignorada)

Si se consulta la ubicación de su módulo de PortAudio se encuentra el siguiente cuando se está ejecutando pitón de Enthought:

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

y TH e siguiente en la acción ubuntu:

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

moví el Enthought _portaudio.so fuera del camino y lo reemplazó con un enlace al sistema de _portaudio.so y ahora todo lo que incluye el analizador de espectro encantador en la demo chaco/avanzado trabajos de directorio:

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 
+0

Me encontré con el mismo problema con EPD 7.3 (64 bit) en Ubuntu 12.04, y esta solución funcionó.Una diferencia: instalé python-pyaudio en lugar de python-gnuradio-audio-portaudio. –

+2

no puede encontrar el paquete 'python-gnuradio-audio-portaudio' incluso actualiza el apt-get – Sinux

1

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

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

¿Ha instalado el software PortAudio? Se requiere que el pyaudio funcione.

+0

sí, PortAudio está instalado. Creo que es una rareza que ver con la Distribución Python de Enthought. Bajo la distribución estándar, PyAudio funciona bien. – Gus

+0

El problema radica en Enthoughts portaudio ya que los módulos pyaudio son idénticos. – DrSAR

3

Recomendaría PYO para la E/S de audio y la síntesis, me pareció muy fácil de recoger. Aquí hay algo de código para ilustrar cómo iba a PYO para obtener y dar salida a una entrada de audio después de procesar a cambiar su lanzamiento:

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 también le permite cambiar las frecuencias y los parámetros de síntesis, generadores o nada sobre la marcha , que fue el mayor atractivo para mí porque lo uso principalmente para programar instrumentos de sintetizador en vivo.

También tiene un gran manual ...

Cuestiones relacionadas