我正在从事一个涉及从树莓派上录制麦克风的项目。 现在我在程序运行时收到此错误。
python3:src / hostapi / alsa / pa_linux_alsa.c:3641: PaAlsaStreamComponent_BeginPolling:断言`ret == self-> nfds' 失败了中止
在寻找解决方法时,我发现文件pa_linux_alsa.c属于端口音频。请参考以下链接。
modified pa_linux_alsa.c i think
第一个链接是关于错误和已修正的修复程序,仍然不知道从哪里复制,最后两个是关于安装portaudio的。显然,没有简单的方法可以通过命令来安装它。
我下载了pa_snapshot的增强版本。 但是我不知道我应该把这些文件放在哪里开始按照自述文件进行配置和制作。我将portaudio目录复制到 home / pi (我认为是用户。“ cd ”并复制到那里),然后按照自述文件进行操作,然后重新启动了系统。我看不到程序错误的任何变化。我尝试对pa_ linux_alsa.c 使用命令 whereis 。该命令也不会显示文件或与portaudio相关的任何内容。
答案 0 :(得分:5)
您的第一个链接可以正确识别portaudio中的错误,但是修复不完整。我分叉了portaudio库,并创建了一个补丁来解决此问题。以下是删除portaudio软件包并从源代码编译修补版本的步骤:
sudo apt-get remove libportaudio2
sudo apt-get install libasound2-dev
git clone -b alsapatch https://github.com/gglockner/portaudio
cd portaudio
./configure && make
sudo make install
sudo ldconfig
cd ..
这时,您应该有一个基于pa_stable_v190600_20161030标记的修补后的portaudio库。最后,如果您需要用于Python的PyAudio软件包,请使用pip:sudo pip3 install pyaudio
安装它。