Sonos Announce

🔊 Sonos 智能播报,断点续播

Sonos 智能音箱音频播报与智能状态恢复,支持暂停流媒体、跳过外部输入后自动恢复播放。

收藏
3.2k
安装
1.1k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心功能

sonos-announce 是一款针对 Sonos 智能音箱系统的 Python 自动化工具,核心能力在于智能音频播报与状态恢复。它通过本地 HTTP 服务器向 Sonos 推送音频文件,播放完成后自动恢复之前的播放状态——包括精确 seek 到 Spotify 曲目的秒级位置、重新连接 Line-In/TV/蓝牙等外部输入。

显著优点

1. 智能状态保存与恢复:完整记录播放位置、队列状态、输入源类型,支持 Spotify/Apple Music/本地队列等主流源的精确恢复
2. 外部输入自动处理:自动识别并跳过无法暂停的 Line-In、TV(HDMI)、蓝牙等输入,播放结束后重新连接

3. 零配置发现:自动检测局域网 IP、Sonos 设备拓扑,支持多房间协调器(coordinator)管理

4. 跨平台支持:macOS/Linux/Windows 全平台兼容,自适应处理进程管理

5. 低延迟本地服务:内置轻量 HTTP 服务器(默认 8888 端口),避免云端依赖

潜在局限

  • 网络依赖:要求运行设备与 Sonos 处于同一局域网,跨 VLAN 或复杂网络架构可能失效
  • 端口占用:HTTP 服务器需要独占端口,冲突时需手动配置 SONOS_HTTP_PORT
  • seek 限制:Spotify Radio、TuneIn、Pandora 等流式电台不支持精确位置恢复,只能从起始播放
  • Python 生态依赖:需维护 soco 库兼容性,Sonos API 变更可能导致 breakage
  • 无内置 TTS:仅为音频播放器,语音合成需外接 ElevenLabs、edge-tts 等服务

适合人群

  • 智能家居自动化爱好者(Home Assistant、Node-RED 用户)
  • 需要家庭广播/通知系统的多房间 Sonos 用户
  • 开发语音助手、门铃提醒、日程播报等场景的技术人员
  • 追求"播放不中断体验"的高级用户

常规风险

| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 网络暴露 | HTTP 服务绑定在 LAN IP,但仍存在局域网内未授权访问可能 | 建议结合防火墙规则限制访问源 |
| 状态竞争 | 高频调用时可能出现状态捕获与恢复的竞争条件 | 避免并发调用,添加调用间隔 |
| 音频劫持 | 恶意音频文件可被推送至全屋播放 | 严格校验 `media_dir` 路径,避免目录遍历 |
| 依赖失效 | `soco` 库维护状态或 Sonos API 变更 | 锁定依赖版本,关注上游更新 |

Sonos Announce 内容

手动下载zip · 7.0 kB
SKILL.mdtext/markdown
请选择文件