You need to enable JavaScript to run this app. 运行于Pi4B的Python3版Google Assistant API如何连接蓝牙设备
优惠活动
大模型
产品
解决方案
定价
更多

运行于Pi4B的Python3版Google Assistant API如何连接蓝牙设备

Raspberry Pi 4B Google Assistant 蓝牙音箱输出优先级修复方案

1 前置设备确认

  • 首先运行命令列出所有系统可识别的播放设备,确认蓝牙音箱的硬件标识:
    • 通用ALSA设备查询:aplay -l
    • PulseAudio 设备查询(树莓派默认桌面版预装):pactl list short sinks
  • 从输出结果中找到对应蓝牙音箱的条目,PulseAudio 下蓝牙sink的命名格式一般为bluez_sink.你的蓝牙MAC地址替换冒号为下划线.a2dp_sink

2 强制修改系统默认播放设备

2.1 PulseAudio 环境(推荐,操作更简单)

  • 临时生效测试:运行命令 pactl set-default-sink 你的蓝牙sink名称,测试播放音频确认输出到蓝牙音箱
  • 永久生效:编辑 /etc/pulse/default.pa 文件,找到set-default-sink相关配置行,修改为:
    set-default-sink 你的蓝牙sink名称
    
  • 重启PulseAudio服务生效:pulseaudio -k && pulseaudio --start

2.2 纯ALSA环境

  • 编辑当前用户目录下的.asoundrc配置文件:nano ~/.asoundrc
  • 填入以下内容,将<蓝牙设备card号>替换为aplay -l查询到的蓝牙音箱对应card编号:
    pcm.!default {
        type hw
        card <蓝牙设备card号>
        device 0
    }
    ctl.!default {
        type hw
        card <蓝牙设备card号>
    }
    
  • 保存后重启设备生效

3 禁用Blue Yeti的扬声器功能,避免抢占优先级

  • 运行pactl list cards查询到Blue Yeti对应的card名称
  • 运行命令修改Blue Yeti的配置为仅输入模式,关闭输出能力:pactl set-card-profile BlueYeti的card名称 input:analog-stereo
  • 如需永久生效,将上述命令添加到/etc/pulse/default.pa文件末尾即可

4 Python 代码层指定输出设备(如果程序不走系统默认配置)

如果Google Assistant的Python代码仍然输出到Blue Yeti,可在代码中硬编码指定蓝牙输出设备:

  • 先运行以下脚本获取蓝牙输出设备的pyaudio索引:
    import pyaudio
    p = pyaudio.PyAudio()
    for i in range(p.get_device_count()):
        dev = p.get_device_info_by_index(i)
        if "blue" in dev["name"].lower() or "你的蓝牙音箱名称" in dev["name"]:
            print(f"蓝牙输出设备ID: {i}, 设备名: {dev['name']}")
    
  • 在Google Assistant示例代码的音频流初始化参数中,添加output_device_index=查询到的ID即可

5 蓝牙自动连接配置

如果重启后蓝牙音箱未自动连接,可进入bluetoothctl命令行设置自动连接:

  • 运行bluetoothctl进入交互界面,依次执行:
    1. trust 你的蓝牙音箱MAC地址
    2. autoconnect yes
    3. quit

内容的提问来源于stack exchange,提问作者Mr. Student.exe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 22:15:04