2011-01-12 29 views
23

私は、Ubuntu 10.10 x64のEnthought Python Distribution(Python 2.6.6)でPyAudioを使用しています。PyAudio IOError:デフォルトの入力デバイスがありません

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

これは、入力ストリームを開こうとすると同じエラーが発生します。対応するエラーがあります "例外IOError:いいえデフォルトの出力デバイスが利用可能な"

+2

'pa.get_device_count()'を実行するとどうなりますか? – mtrw

+0

@mtrw pa.get_device_count()は0を返す – Gus

+0

'sudo apt-get install python-pyaudio 'でインストールされた' pyaudio'は、Ubuntu-11.10 – jfs

答えて

2

OKを持ってきれいではありませんですが、私の作品のソリューションです。 ulidtkoの答えに対する私のコメントによると、pyaudioは問題ではなく、pyaudioがバインドするはずの基礎となるPortAudioです。

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

あなたは既にこの、あなたの株式Ubuntuがあなたのコードの罰金を実行したので、(無視することができ、いくつかのデバッグメッセージとはいえ)

を持っている必要があります。portaudioドライバは、このパッケージと一緒にインストールされているUbuntuで

あなたportaudioモジュールの位置を照会する場合は、enthoughtののpythonを実行しているときに、次を見つける:

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

は私が邪魔に_portaudio.so enthoughtを移動し、そして今ではすべてチャコのデモで素敵なスペクトラムアナライザを含む_portaudio.soシステムへのリンクに置き換え/高度ディレクトリが動作します:

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

私はUbuntu 12.04のEPD 7.3(64ビット)で同じ問題に遭遇しましたが、この解決策が働いていました。1つの違い:python-gnuradio-audio-portaudioではなくpython-pyaudioをインストールしました。 –

+2

パッケージ 'python-gnuradio-audio-portaudio'が見つかりませんapt-getを更新する – Sinux

1

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

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

あなたはPortAudioソフトウェアをインストールしましたか? pyaudioが動作する必要があります。

+0

はい、PortAudioがインストールされています。これは、Enthought Python Distributionとは関係がありません。標準的なディストリビューションの下では、PyAudioは正常に動作します。 – Gus

+0

pyaudioモジュールが同一であるため、Enthoughts portaudioに問題があります。 – DrSAR

3

オーディオI/Oと合成には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はまた、あなたがその場で合成、発電機か何かの周波数やパラメータを変更することができますそれは私がライブシンセサイザーの楽器のプログラミングに主に使っているので、私にとっては最大の魅力でした。

また、ここでは、偉大なmanual ...

関連する問題