私はUbuntu10.10x64のEnthought Python Distribution(Python 2.6.6)でPyAudioを使用しています。
>>> 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:使用可能なデフォルトの出力デバイスがありません」があります
OK、これはきれいではないが私にとってはうまくいく解決策です。 ulidtkoの回答に対する私のコメントによると、pyaudioは問題ではなく、pyaudioがバインドすることになっている基盤となるPortAudioです。
Ubuntuでは、portaudioドライバーはこのパッケージとともにインストールされます。
Sudo apt-get install python-gnuradio-audio-portaudio
あなたのストックubuntuはあなたのコードをうまく実行すると言ったので、あなたはすでにこれを持っている必要があります(無視できるいくつかのデバッグメッセージがありますが)
Enthoughtのpythonを実行しているときに、portaudioモジュールの場所を照会すると、次のことがわかります。
>>> 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を邪魔にならないように移動し、システム_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
オーディオ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では、シンセサイザーやジェネレーターなどの周波数やパラメーターをその場で変更することもできます。これは、主にライブシンセサイザー楽器のプログラミングに使用しているため、私にとって最大の魅力でした。
それはまた素晴らしい 手動 ...
PyAudioは、クロスプラットフォームのオーディオI/OライブラリであるPortAudioにPythonバインディングを提供します。
http://people.csail.mit.edu/hubert/pyaudio/
PortAudioソフトウェアをインストールしましたか? pyaudio
が機能するために必要です。
次のソースからpyaudioをインストールするとうまくいきました
conda install nwani::portaudio nwani::pyaudio
参照:質問に対するMamunまたはRashidの回答... OSError:使用可能なデフォルトの入力デバイスがありません
これを確認してください 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
次に、root権限を取得します(プレーンな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が正常にインストールされた後に実行して、Linradにportaudioが使用可能であることを認識させる必要があります。
./configure
ファイルでALSAがyesとして取得されていることを確認してください
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
)をインストールします