PyAudio IOError:没有默认输入设备可用

我在Ubuntu 10.10 x64中的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:No Default Output Device Available”     
已邀请:

bab

好的,这是一个不太漂亮但对我有用的解决方案。 根据我对ulidtko的回答的评论,pyaudio不是问题,而是pyaudio应该绑定的底层PortAudio。 在ubuntu上,portaudio驱动程序随这个软件包一起安装:
sudo apt-get install python-gnuradio-audio-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'
我将enthought _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
    
我会推荐PYO用于音频I / O和合成,我发现它很容易上手。 这里有一些代码来说明如何让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
。     
检查一下 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权限(在Ubuntu下
sudo su root
,其中普通
su root
不起作用。) 将portaudio存档放在
/usr/src
中并用
tar xvfz pa_snapshot.tgz
解压缩。这将生成目录
/usr/src/portaudio
。 下降到此目录并执行以下命令:
./configure

make

make install

ldconfig
在成功安装portaudio之后,必须运行
linrad
配置脚本,以使Linrad知道portaudio可用的事实。 确保在
./configure
文件中将ALSA设置为是
 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
)     

要回复问题请先登录注册