技术 / 实战指南

Sound Guard:Mac 长时间无声自动归零音量,避免突然外放的开源工具

Sound Guard 是一款开源 macOS 菜单栏音量保护工具:设备长时间没有播放活动时自动将输出音量归零,并通过设备白名单、保守检测和确认式恢复降低突然外放风险。

Mac 暂时不用时,系统音量往往还停在上一次的数值。下一次误触视频、广告或语音消息,就可能在办公室、深夜或会议现场突然外放。Sound Guard 的做法很克制:选定输出设备长时间没有播放活动后,自动把音量设为 0;此后未经用户明确确认,不主动恢复音量。

Sound Guard 常规设置界面

Sound Guard 是什么

Sound Guard(声音守卫)是一款面向 macOS 14.2 及以上版本的原生菜单栏工具,用来降低“忘记静音后突然外放”的风险。 它不会充当播放器,也不是每个 App 独立调音量的混音器,而是在系统输出保持非零、又长期没有播放活动时执行一次单向保护:把当前输出音量归零。

项目使用 Swift 和 AppKit 开发,不依赖第三方运行时,不需要麦克风权限。内建扬声器默认纳入保护,耳机、显示器、USB 声卡等外部设备则需要逐项选择,避免工具自行猜测用户意图。

它解决了哪些真实痛点

1. 离开电脑后忘记把音量调回 0

很多“突然外放”并不是播放时没发现,而是数小时前用完电脑后留下了一个非零音量。Sound Guard 把处理时机放在空闲阶段:默认等待 5 分钟,也可以设置为 1 至 120 分钟。

2. 插着耳机时静音,切回扬声器却仍有声音

macOS 的输出设备会不断变化。一个简单的定时脚本很容易改错设备,Sound Guard 则只监控当前系统默认输出,并要求该设备已被用户选中、可控制、未静音且音量非零。切换设备、睡眠唤醒或检测异常后,会重新给予完整等待时间。

3. 自动化工具擅自恢复音量

自动恢复看似方便,实际可能制造第二次意外。Sound Guard 的默认策略是“只归零,不恢复”。可选恢复提醒也只对本工具亲自归零的那一次生效;发现新播放后先弹出确认,只有点击恢复按钮才会恢复此前音量。关闭窗口、超时或选择保持静音,都继续保持 0。

4. 担心声音被录制或上传

默认模式只观察系统输出播放活动。可选的“静音流也计时”模式会分析系统输出的数字信号,用于区分持续播放与数字静音,但仍不使用麦克风,不保存音频,也不上传数据。回调缺失或状态无效时,保护会停止,而不是把未知状态误判为静音。

为什么不直接用定时脚本

普通脚本通常只能按时间修改一个音量值,却不知道当前设备是否变化、是否正在播放、用户是否刚调整过音量,也缺少睡眠唤醒和错误恢复保护。Sound Guard 把判断拆成多道条件,并使用单调时钟与过期任务保护,避免旧定时器在设备或播放状态已经变化后继续执行。

对用户来说,价值不只是“能把音量设为 0”,而是只在证据足够时执行,并在不确定时不操作

适合哪些人

  • 经常在办公室、图书馆、会议室使用 Mac,希望减少误外放的人。
  • 晚上连接显示器或音箱,担心下一次播放声音过大的人。
  • 在内建扬声器、耳机、显示器音频和 USB 声卡之间频繁切换的人。
  • 偏好本地运行、无账户、无云端上传工具的用户。
  • 希望把保护逻辑留在菜单栏,不想常驻一个大型控制面板的人。

如果你的目标是“分别控制每个 App 的音量”或“自动限制最大音量”,Sound Guard 并不是对应产品;它聚焦的是空闲后的输出归零与谨慎恢复。

功能设计中的几个关键取舍

设计用户价值
默认仅保护内建扬声器首次运行不会擅自处理未知外设
外部设备按 UID 和路由逐项选择同名设备或路由变化时减少误操作
播放中不归零不打断正常会议、音乐或视频
恢复提醒默认关闭自动化默认保持单向、可预测
手动归零不建立恢复凭据不把用户主动静音误解为可恢复状态
状态异常时停止保护未知状态不会被当成“安全静音”

安装与使用

普通用户可以前往 Sound Guard GitHub Releases 下载 Universal ZIP。项目当前采用 ad-hoc 签名且未完成 Apple 公证,首次启动需要按照仓库内的安装说明处理 macOS 安全拦截。

基本使用流程如下:

  1. 启动 Sound Guard,在菜单栏打开设置。
  2. 确认空闲等待时间,初次使用建议保留默认 5 分钟。
  3. 在设备页只勾选确实需要保护的输出设备。
  4. 保持“静音流也计时”和恢复提醒关闭,先观察默认模式是否符合习惯。
  5. 需要更严格识别数字静音时,再单独开启静音流检测。
  6. 需要恢复提示时再开启,并设置倒计时;辅助功能权限仅用于定位播放窗口,不影响核心归零能力。

开发者也可以从源码构建:

1
2
3
4
5
git clone https://github.com/wlzh/sound-guard-mac.git
cd sound-guard-mac
zsh scripts/test-all.sh
zsh scripts/build-app.sh
open "dist/Sound Guard.app"

当前版本与使用边界

截至 2026 年 9 月 14 日,仓库 README 标记当前版本为 v0.3.2 / build 7 开发预览。项目已经提供公开源码、测试文档、安装指南、Universal 构建与校验文件,但仍明确保留全部设备、辅助功能权限和长期性能实机验收门禁。因此,适合先在自己的设备和工作流中试用,不应把开发预览理解为已覆盖所有音频硬件的稳定发行版。

如果你还需要给发布图片快速加水印,可以继续阅读 WatermarkFlow:Mac 剪贴板图片一键加水印;如果痛点来自多显示器切换后窗口乱位,可查看 Window Layout Memory:记住每套显示器布局

常见问题

Sound Guard 会监听麦克风吗?

不会。默认模式监听系统输出播放活动;可选严格模式分析的是系统输出信号,不使用麦克风,也不保存或上传音频。

它会在我播放音乐时突然静音吗?

按项目设计,播放活动存在时不会归零。设备切换、睡眠唤醒和错误恢复也会重置等待期。不过它仍是开发预览,正式依赖前应在自己的输出设备上验证。

音量归零后会自动恢复吗?

默认不会。只有用户主动开启恢复提醒,而且这次归零确实由 Sound Guard 执行,工具才会在发现新播放时提供确认窗口;仍需用户点击才能恢复。

是否支持 Intel Mac?

仓库提供面向 Apple Silicon 与 Intel 的 Universal 构建,系统要求为 macOS 14.2 或更高版本。

项目链接