用 AI 搓了个能抓 Mac 奇怪通知音的工具,终于知道那个 bloop 声是谁发的
想搞清楚 Mac 莫名其妙响起的通知音到底来自哪个软件,可以尝试用一个监听系统音频并结合日志分析的逻辑来实现。这个工具的核心逻辑是实时捕捉系统音频,一旦监测到声音,立即通过系统日志定位触发源,并扫描 App Bundle 里的音频文件进行匹配。如果声音来自浏览器且安装了配套插件,甚至能直接定位到具体是哪个标签页在响。
怎么实现这种声音溯源的功能
要做出这种能识别「谁在发声」的工具,不能只靠音频采集,必须把音频时间戳和系统事件日志对齐。实现这个功能的逻辑步骤如下:
一、实时音频监听
程序需要持续监听 macOS 的系统输出流。当检测到音频幅度超过阈值(比如那个短促的 0.25 秒 "bloop" 声)时,立即记录精确到毫秒的时间戳。
二、系统日志与进程比对
在捕捉到声音的瞬间,快速检索系统日志,查找在同一时间点有音频输出请求的进程。通过分析哪个 App 正在调用音频驱动,可以初步缩小范围。
三、App Bundle 资源扫描
这是最硬核的一步。工具会进入可疑 App 的安装包(.app -> Contents -> Resources),扫描其中的 .wav 或 .aiff 等音频文件。将捕捉到的实时声音片段与这些内置文件进行指纹比对,如果匹配成功,就能实锤是哪个软件在发声。
四、浏览器标签页精准定位
由于浏览器所有声音都由同一个进程(如 Google Chrome)发出,单纯看进程没用。必须通过浏览器扩展程序(Extension)调用内部 API,获取当前所有活动标签页的音频状态,从而筛选出具体是哪个网页在播声音。
实际使用中的识别效果
这个工具在处理那些「闪现」的通知音时非常有效。很多时候某个 App 触发了一个极短的提示音,界面上没有任何弹窗,用户根本找不到来源。通过这种「监听 -> 查日志 -> 扫资源文件」的链路,可以把来源锁定在具体的文件路径上。
比如当你听到一个奇怪的叮咚声,工具会直接告诉你:
- 触发进程: 某个具体的第三方 App
- 匹配文件:
/Contents/Resources/sounds/alert.aiff - 结论: 确定是该软件的某个隐藏通知在响。
如果是网页端的通知,它能直接给出:
- 来源: Chrome 浏览器
- 具体标签页:
https://example.com/notifications
这种方案解决了 macOS 原生活动监视器无法实时追踪短促音频来源的痛点。
这玩意儿能不能顺便把那个像蚊子一样的 440Hz 杂音给抓出来,我快被搞疯了。