一位生活在噪音城市的开发者近日分享了一个有趣的个人项目:他借助AI编程工具,仅用约8小时就搭建了一套完整的睡眠噪音追踪系统,成功找出导致自己夜间频繁醒来的干扰源。
从"想都不敢想"到"周末就能搞定"
这位名为Martin的开发者居住在一座嘈杂的城市,经常在凌晨3点左右被不明噪音惊醒,或者第二天查看智能手表时发现睡眠数据出现了异常中断。困扰他的是,当声音把人从睡梦中唤醒时,大脑需要一定时间才能完全恢复清醒,等反应过来时,噪音往往已经消失。没有明确的干扰源,就无法针对性地解决问题。
"几年前我会把这种项目归类为'投入产出比太低'而不予考虑,"Martin在博客中写道,"但现在有了AI工具,这类项目完全可以塞进一个周末完成。"
系统架构:多源数据融合的可视化时间轴
Martin的解决方案整合了多个数据源:
- 硬件层:两台廉价USB麦克风(分别放置在室内和朝向街道的窗外),以及一台Raspberry Pi微型计算机作为音频采集终端。
- 数据采集:音频仅在特定条件下才会被采集——通过Home Assistant智能家居系统的自动化规则,只有当Martin在家、在床上且处于常规睡眠时间时,麦克风才会开启。其他时间系统完全禁用,确保隐私安全。
- 睡眠数据:来自Garmin智能手表的睡眠阶段、心率、心率变异性(HRV)等生物指标。
- 传感器数据:原有的智能家居传感器网络,包括运动检测、门窗状态、灯光、温湿度、二氧化碳和空气质量等。
当Raspberry Pi检测到超过阈值的音量时,会保存包含前后几秒上下文的音频片段。所有数据最终汇集到一个Web应用中,以类似音乐制作软件(DAW)的多轨道时间轴形式呈现。

核心创新:用AI降低开发成本,而非替代人工判断
Martin特别澄清了AI在这个项目中的角色:
AI负责的部分:整个系统的开发工作,包括Web应用、Raspberry Pi端的音频采集程序、Home Assistant集成组件等。Martin甚至没有阅读生成的代码,而是通过测试结果给出反馈,让AI自行验证输出(通过浏览器截图)。对于Raspberry Pi,他甚至给了AI编程助手SSH访问权限,让AI直接在设备上进行实验和调试。
AI不负责的部分:声音识别。判断一段音频是关门声、餐具碰撞还是摩托车轰鸣,仍然需要Martin本人戴上耳机逐一聆听。AI只是帮他定位"哪些时刻值得听"。
"有趣的变化不在于AI解决了我的问题,而在于AI降低了构建'让我自己解决问题'的工具的成本。"
发现与改进:数据驱动的睡眠优化
使用这套系统后,Martin很快发现了规律:
- 关门声:邻居摔门或家人夜间使用卫生间时的关门声
- 餐具碰撞:高频尖锐的声音,在公寓内传播效果出奇地好
- 街道噪音:摩托车、踏板车、卡车以及垃圾清运车
- 误判情况:有些噪音原本以为是室外来源,实际来自室内,反之亦然
基于这些数据,Martin采取了针对性措施:安装宜家办公室隔音板、在卧室门和窗户周围增加密封条(硅胶、橡胶等)。对于室内噪音,解决方案则是"一次友好的交谈"。
技术细节与隐私考量
从技术实现来看,这套系统有几个值得注意的设计:
Raspberry Pi采用滚动内存缓冲区持续录音(仅在启用检测模式时),音量超过阈值才写入磁盘。输入端配置了噪声抑制配置文件,过滤掉持续性的背景噪音(如远处的交通嗡嗡声、冰箱运转声),大幅减少误触发。
整个系统运行在家庭内网,Web应用采用渐进式Web应用(PWA)形式,支持Web推送通知。每天醒来查看手机时,Martin会收到"昨晚数据已准备好"的通知,所有数据都不离开本地网络。
未来可能的扩展
Martin列出了几个尚未实现但可能有趣的扩展方向:
- 智能通知:仅在检测到值得关注的噪音时才发送推送,安静的夜晚自动跳过
- 声音聚类:使用模型将相似音频片段自动分组,只需标注一次(门、餐具、摩托车等),后续系统可自行推测新事件的来源
- 条件警报:仅在检测到可能干扰睡眠的噪音时才发出提醒
"这些扩展每个可能都需要再花一个周末,而这正是我想表达的核心观点——过去那些'想做但不值得'的项目,现在变成了'可以试试'。"
原文博客:
https://martin.sh/i-let-ai-build-a-tool-to-help-me-figure-out-what-was-waking-me-up-at-night/