我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:音频打开错误:没有这样的文件或目录
答案 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应用程序正常运行。