我有问题PyAudio没有检测到输入设备

时间:2017-05-12 22:27:14

标签: python pyaudio

made这个线程在Raspberry PI Stack Exchange中解决了我的问题。直到上周我再次尝试运行我的Python应用程序(在Raspbian和Ubuntu 16.04中),这个错误再次出现。

  

OSError:[Errrno -9996]输入设备无效(无默认输出设备)

到目前为止我做了什么。

  • pyaudio.PyAudio().get_device_count()返回0
  • arecord --device=hw:1,0 --format S16_LE --rate 44100 -c1 test.wav会返回此错误。
  

ALSA lib pcm_hw.c:1700:(_ snd_pcm_hw_open)卡的值无效   arecord:main:722:音频打开错误:没有这样的文件或目录

  • 我已经正确安装了PortAudio 19版稳定版。
  • 我仍然可以将麦克风用于其他活动,例如视频通话......
  • 我使用的是Python 3。

2 个答案:

答案 0 :(得分:0)

这并不是一个真正的答案,但打印pyaudio可用的所有设备列表并查看您的USB声卡是否被识别可能会有所帮助。

(以前项目中的一些代码):

p = pyaudio.PyAudio()
for i in range(p.get_device_count()):#list all available audio devices
  dev = p.get_device_info_by_index(i)
  print((i,dev['name'],dev['maxInputChannels']))

您可能还想查看alsa和一些techniques to list available devices以及可能的alsamixer

答案 1 :(得分:0)

问题肯定在PyAudio部分。然而,一些线程提到主要的罪魁祸首是PyAudio和PortAudio之间的错误连接(虽然,我已经编译了正确的PortAudio版本19稳定)。

此时我的解决方案是使用https://github.com/larsimmisch/pyalsaaudio中的pyalsaaudio。对于Python 2.x,您可以使用pip install pyalsaaudio安装它,但是对于Python 3.x,您需要从源代码编译它(请参阅其GitHub页面中的说明)。需要注意的是,pyalsaaudio仅适用于Linux。使用pyalsaaudio,我的Python应用程序正常运行。