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

树莓派4B连接麦克风做语音识别时出现ALSA错误求助

解决树莓派4 Model B上ALSA音频错误及语音识别故障

错误原因分析

你遇到的ALSA错误核心是系统无法找到默认音频声卡(card '0'),说明麦克风未被系统正确识别,或者音频默认设备配置错误,导致speech_recognition库无法获取音频输入。

解决方案步骤

1. 检查麦克风硬件识别情况

首先确认系统是否检测到麦克风设备:

arecord -l
  • 如果无输出:检查USB麦克风连接是否牢固,尝试更换USB端口,或重启树莓派后再次检测。
  • 如果有输出:记录下麦克风对应的card和device编号(例如card 1: USB [USB Audio Device], device 0: USB Audio [USB Audio]中的card 1和device 0)。

2. 配置ALSA默认音频设备

如果系统已识别麦克风但默认设备不正确,创建或编辑用户级ALSA配置文件:

nano ~/.asoundrc

写入以下内容(将card和device替换为你刚才记录的编号):

pcm.!default {
    type hw
    card 1
    device 0
}

ctl.!default {
    type hw
    card 1
    device 0
}

保存退出后,重新测试音频输入。

3. 验证音频输入功能

录制一段测试音频并播放,确认设备正常工作:

arecord test.wav
# 录制完成后按Ctrl+C停止
aplay test.wav

如果能正常播放录制的音频,说明音频设备配置成功。

4. 调整Python代码(可选,无需系统配置时用)

如果不想修改系统ALSA配置,可以在代码中直接指定麦克风设备:
先运行以下命令查看可用麦克风列表及对应索引:

python3 -c "import speech_recognition as sr; print(sr.Microphone.list_microphone_names())"

然后修改代码,指定设备索引(例如索引为1):

import speech_recognition as sr

try:
    r = sr.Recognizer()
    # 指定麦克风设备索引
    mic = sr.Microphone(device_index=1)
    print("What do you think to say? ")
    with mic as src:
        r.energy_threshold = 4000
        audio = r.listen(src)
    print("Recognized the speech.....")
    pattern = r.recognize_google(audio, language='en_US')
    print(pattern)
except sr.UnknownValueError:
    print("无法识别语音")
except Exception as e:
    print(f"错误信息: {e}")

5. 确认依赖安装完整

确保speech_recognition依赖的音频库已安装:

sudo apt update && sudo apt install portaudio19-dev python3-pyaudio

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:05:20