【Code with SOLO】被楼上噪音逼到崩溃后,我用 SOLO 做了一款已上架 App Store 的“噪音怪兽取证器”

官网:www.zhenxiaoning.com
App Store:搜索「镇小宁」即可下载
赛道:Code with SOLO

1. 摘要

这是一款本不该存在的软件。

如果每个人都能在深夜放轻脚步,镇小宁 就没有存在的必要。但现实里,楼上的低频撞击、拖拽、跑跳声,往往很难录清、很难说清,也很难取证。

于是我这个缺乏 iOS 底层开发经验的人,用 TRAE SOLO 做出了一款已经上架 App Store 的噪音治理 App:它能记录分贝、震动、异常事件和取证报告,还能把每一次“砰”封印成一只噪音怪兽。

图注:镇小宁监测首页:把楼上噪音变成可记录的分贝、震动和事件数据。

2. 背景:我为什么要做镇小宁

我长期被楼上噪音困扰。真正折磨人的,不只是声音本身,而是它的不可预测。

你不知道下一声什么时候来,也不知道该怎么证明它真的发生过。
你明明被吵醒了,但拿出来的可能只是一句“刚才真的很吵”。
对物业、邻居、调解方来说,这句话很难成为事实。

普通分贝仪能显示数字,但它解决不了三个问题:

  • 低频闷响经常被手机系统自动处理掉。

  • 单张截图很难说明噪音发生的时间、频次和持续性。

  • 长期记录噪音很痛苦,每次打开工具都像在重复确认自己的崩溃。

所以我一开始只是想做一个取证工具。后来我发现,单纯的取证工具太冷了,它只是一个痛苦记录仪。

于是我给镇小宁加了另一层灵魂:把噪音交给 AI,生成“夜啼婴”“天花板巨人”“燹鸣”这样的怪兽档案。不是为了娱乐化痛苦,而是为了把无形的恐惧变成一个可以被命名、被收集、被处理的对象。

图注:怪兽收容所:每一次噪音异常,都被封印成一只可追踪的怪兽。

3. 实践过程:我和 SOLO 怎么把它做出来

3.1 第一步:把一个崩溃想法拆成可开发系统

我最开始给 SOLO 的描述非常大白话:

我想做一个 iOS App,用来记录楼上噪音。
它要能测分贝、录音、记录时间地点,还要能把噪音变成怪兽图鉴。
我不会 iOS 音频底层,你要帮我拆架构、写 SwiftUI 页面、设计音频采集逻辑。

SOLO 帮我把项目拆成三条主线:

  • 取证线:分贝监测、录音线索、时间地点、异常事件、导出报告。

  • 识别线:声源识别、低频冲击检测、动态基准线、误报控制。

  • 转化线:AI 怪兽档案、噪音故事、协商材料、用户成长体系。

这一步对我很关键。因为我不是专业 iOS 工程师,如果直接开写,项目很容易变成一堆互相缠绕的页面。SOLO 帮我把它拆成 SwiftUI + 服务层 + 云端数据的结构,再一点点补齐。

3.2 第二步:让 iPhone 尽量听见低频噪音

第一个硬坑是:iOS 默认会对麦克风输入做处理,很多楼板低频闷响会被削弱。

我问 SOLO:

iPhone 录音为什么听不到楼板低频撞击?
我不是要做音乐录音,我要尽可能真实地保留环境噪音。
Swift 里应该怎么配置 AVAudioSession?

SOLO 帮我围绕 AVAudioSession.Mode.measurement 设计采集链路,尽量减少系统自动降噪、增益和滤波的干扰。后面又继续补了音频 buffer 分析、软件增益、频域识别等思路。

这里我第一次感觉到:SOLO 不是只会写页面,它能把一句“我想抓住楼上那种闷响”,拆成音频采集、频域分析、异常峰值和数据记录。

3.3 第三步:只看分贝不够,必须控制误报

第二个坑是误报。

如果只看瞬时分贝,开门声、说话声、风声都可能被记录成异常。但楼上噪音最典型的是低频冲击、重复拖拽和突然撞击。

我继续问 SOLO:

我不想只看分贝峰值。
楼上噪音往往是低频冲击、重复拖拽、突然撞击。
能不能做一个动态基准线,让环境本身变吵时不要一直误报?

SOLO 帮我设计了混合检测思路:

  • 用 SoundAnalysis / CoreML 做声源辅助识别。

  • 用 vDSP / FFT 捕捉低频异常变化。

  • 用动态基准线适配当前环境噪声,降低误报。

我最喜欢的是动态基准线:环境突然安静时,基准线要跟得快;环境慢慢变吵时,基准线要升得慢。这样既能抓住突发撞击,又不至于把整段背景噪音都当异常。

【图片 3:数据分析_作息规律烦噪趋势】

图注:数据分析:把噪音记录转成作息规律、烦噪趋势和可复盘数据。

3.4 第四步:怪兽图鉴和严肃证据必须同时存在

镇小宁不是只做可爱图鉴。它必须能在需要协商时变得严肃。

我给 SOLO 的要求是:

App 内部可以叫“天花板巨人”“夜啼婴”,但导出给物业或调解方时不能这么写。
请帮我设计一个导出规则,把娱乐化命名转换成严肃描述。
例如“天花板巨人”变成“疑似楼板撞击声”。

最后镇小宁形成了两套表达:

  • App 内:用怪兽图鉴降低恐惧,增强收集感和掌控感。

  • 导出时:转成时间、设备、峰值、持续时间、异常事件和报告。

也就是说,镇小宁表面是“怪兽图鉴”,底层是“噪音证据链”。

图注:AI 根据噪音数据生成怪兽档案,把无形恐惧变成可命名、可收集的对象。

图注:取证报告预览:时间、设备、峰值、异常事件被整理成可分享材料。

3.5 第五步:从 Demo 到真正能上架的 App

真正难的不是做一个漂亮 Demo,而是把它变成能长期使用、能上架、能维护的产品。

SOLO 后续陪我处理了很多杂但关键的问题:

  • SwiftUI 页面状态混乱。

  • 调试入口隐藏导致测试困难。

  • 游客数据迁移到注册账号时,图鉴、录音线索、算力需要一起迁移。

  • 后端权限、VIP 配置、触发器和字段兼容问题。

  • App Store 上架前的隐私政策、用户协议和权限说明。

下面这两张是我和 SOLO 真实协作的截图。它们不是宣传图,而是我把问题丢给 SOLO 后,它直接改 SQL、改 Swift、修权限、补配置的过程。

图注:TRAE SOLO 协作截图:修复后端权限触发器与 VIP 配置。

图注:TRAE SOLO 协作截图:修复 Debug 日志入口与 SettingsView 逻辑。

如果没有 SOLO,我大概率会卡死在这些“不酷但必须解决”的工程细节里。它真正帮到我的地方,是把我从一个只会描述痛点的人,推到了可以独立交付产品的人。

4. 成果展示

4.1 监测:把噪音从感觉变成数据

镇小宁可以记录环境分贝、震动、触发次数、噪音峰值和最近捕获,让“我感觉很吵”变成可复盘的记录。

4.2 图鉴:把噪音从恐惧变成怪兽

每一次异常都可以进入怪兽收容所。用户看到的不是一串冷冰冰数据,而是一只被捕获、被命名、被记录的怪兽。

4.3 证据:把零散记录变成报告

镇小宁可以把一天的异常事件、峰值、趋势和事件时间线整理成报告,便于后续协商、投诉和留存。

图注:全天监测报告:将零散噪音记录整理成结构化证据。

4.4 声掩蔽:把崩溃拉回可控

我不希望镇小宁鼓励冲突升级。它的目标不是报复邻居,而是帮助被噪音困扰的人记录事实、整理证据、保持边界,并通过声掩蔽等方式缓冲情绪压力。

4.5 宣传视频

15 秒竖屏宣传视频:

5. 效果与总结

这次开发让我真正理解了 TRAE SOLO 的意义。

它不是“替我写几段代码”的工具,而是一个能陪普通人穿过陌生技术栈的合作者。

没有 SOLO,我可能只会继续忍受噪音,或者买一个普通分贝仪截图;有了 SOLO,我把这个真实痛点做成了一个已经上架 App Store 的产品。

对我来说,镇小宁有三层价值:

  • 它是工具:记录噪音、辅助协商、保留线索。

  • 它是疗愈:把未知的惊吓变成可命名、可收集的怪兽。

  • 它是方法:当一个普通人的痛点足够真实,AI 可以把“我不会”变成“我可以试试”。

我也想把这套方法分享给更多正在被噪音折磨的人:不要只剩下忍耐,也不要先把关系推向失控。先记录、先表达、先协商,让数据和文字帮你站稳。

镇小宁的 slogan 是:

镇小宁 真安宁 镇安宁。

每一声“砰”,都应该有名字、有时间、有证据。

感谢大家能看到最后,也更加感谢TRAE,感谢这个时代的巨大发展

你的这个帖子,必须来一票,我颜值控

1 个赞

感谢朋友的支持 :smiling_face_with_three_hearts:

image

1 个赞

好的创意,真棒

1 个赞

捕获后是否有自动开启录音功能呢

1 个赞

首先佬在楼上折磨人的情况下还能另辟蹊径转移思路,说明忍耐力惊人,其次你的前端形象很好看,所以我必然是作为天使投资人直接梭哈你

1 个赞