You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyAudio与SpeechRecognition触发ALSA断言错误该如何修复?

问题根因

该报错是PyAudio依赖的PortAudio底层库与Linux ALSA音频服务交互时触发的断言错误,绝大多数出现在Conda环境中:Conda源提供的预编译PyAudio包绑定的PortAudio版本存在ALSA兼容缺陷,调用麦克风设备时扫描到异常虚拟音频设备就会触发崩溃。

可行修复方案
  • 第一步:卸载Conda环境中自带的预编译音频依赖
    执行命令:
conda remove pyaudio portaudio
  • 第二步:安装系统层面的PortAudio开发依赖(Debian/Ubuntu系发行版,其他发行版对应替换包名即可)
    执行命令:
sudo apt install portaudio19-dev libasound2-dev
  • 第三步:从源码编译安装PyAudio,绑定系统正常版本的PortAudio
    执行命令:
pip install pyaudio --no-binary :all:
  • 临时规避方案:若上述编译安装后仍存在问题,可手动指定麦克风设备索引,避免程序调用默认异常设备
    先运行代码打印所有可识别的音频设备:
import speech_recognition as sr
for index, name in enumerate(sr.Microphone.list_microphone_names()):
    print(f"设备索引 {index}: {name}")

选择对应实际麦克风的索引,初始化时显式指定:

mic = sr.Microphone(device_index=你选择的设备索引)
  • 额外适配:如果运行环境为WSL,需要先完成WSL侧的音频转发配置,否则无法识别Windows宿主的音频设备。

内容的提问来源于stack exchange,提问作者FOREVEREALIZE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:15:00