核心功能与用法
RoomSound 赋予 AI 代理通过蓝牙控制音箱、播放 YouTube 音频的能力。核心工作流分为三类:设备发现(扫描已配对蓝牙设备、检测 PipeWire/PulseAudio 输出端)、音箱切换(断开/连接蓝牙设备、设置默认音频输出)、YouTube 播放(直接 URL 播放或搜索后播放)。
首次运行需完成依赖验证:安装 yt-dlp、mpv、bluez、pulseaudio-utils,配置 yt-dlp 的 Node.js 运行时环境,并引导用户为检测到的蓝牙设备设置友好别名(如 "kitchen" → MAC 地址)。后续交互通过别名即可快速切换。
显著优点
- 端到端音频控制:整合蓝牙管理、音频路由、流媒体播放于单一技能
- 自然语言交互:用户可用 "播放爵士乐到厨房音箱" 等口语化指令
- 多后端兼容:同时支持 PipeWire(
wpctl)和 PulseAudio(pactl) - 搜索与确认分离:YouTube 搜索展示 Top 5 结果(含标题、上传日期、URL),避免误播放
潜在局限与风险
- 依赖外部二进制:
yt-dlp、mpv、bluetoothctl任一缺失即导致功能失效,需 root 权限安装系统包 - 蓝牙连接不稳定:未提供自动重试机制,连接失败时需用户手动将音箱置于配对模式
- 无音频权限隔离:以代理运行用户身份直接操作蓝牙和音频子系统
- MAC 地址管理:别名映射存储于代理内存/配置,跨会话持久化机制未明确
- 网络与版权:YouTube 播放依赖 yt-dlp,受平台服务条款及区域网络限制
适合人群
Linux 桌面用户、自建智能家居系统开发者、希望通过语音/文本控制家庭音响的技术爱好者。需要具备基本的命令行操作能力以处理依赖安装和故障排查。
常规风险提示
- 蓝牙设备切换可能中断其他设备的音频连接,建议在切换前确认当前播放状态
- yt-dlp 的 Node.js 运行时配置若失败,可能导致搜索/解析功能异常
- 部分蓝牙音箱需手动解除与其他设备的绑定才能被代理连接