大家好,我想分享我过去几个月工作的一个项目的开发过程和技术历程。核心目标是解决传统白噪音机器的问题:它们的音量固定,但突然的家庭噪音(门关上,吵闹的对话,街头噪音)仍然会打断睡着的婴儿。以下是开发过程的分解:

1. 阶段1:实时分贝监测 & 音频引擎

我先从实时测量环境噪音水平开始。初始挑战是设置一个干净的麦克风监听器来读取 RMS 分贝值,同时输出舒缓的背景声音而不出现音频卡顿。

2. 阶段2:平滑 & 动态增益算法

标准分贝脉冲很尖锐。如果应用程序立即增强播放音量,会惊醒婴儿而不是遮盖噪音。我构建了一个移动平均滤波器来计算房间基准噪音,并平滑地调节增益在音量脉冲期间。

3. 阶段3:设备内音频录制 & 剪辑

接下来,我想让父母能够录制自定义“嘘嘘”声或婴儿歌曲。集成设备内音频录制器并使用 FFmpeg 音频工具在应用程序内无缝剪辑音频片段而不冻结主 UI 线程是重要里程碑。

4. 阶段4:凌晨背景执行 & 电池优化

这是最困难的部分。连续运行 8+ 小时的麦克风监听器和音频播放器在凌晨没有 OS 背景杀手关闭应用程序或造成严重电池耗损需要微调前台服务(Android)和背景音频模式(iOS),以及在静音期间降低分贝采样频率。

5. 阶段5:日志 & 趋势可视化

最后,我添加了一个本地数据库日志系统(SharedPreferences & 本地存储),将噪音水平趋势绘制成时间线,让父母可视化房间静谧程度。

💬 讨论 / 社区问题:
现在基础建立起来了,我想听听您的经验或关于以下几点的想法:

  1. 背景管理:您如何处理 Android 14+ / iOS 上的长时间背景麦克风过程而不造成电池耗损或 OS 限制?
  2. 音频缩放:您是否之前实现过音频平滑算法?哪些数学/滤波器效果最好?
  3. 架构:婴儿/睡眠跟踪应用程序中哪个功能或边缘案例开发者经常忽视?期待您的技术见解和反馈!