如何使用在 Edge Impulse 上训练的机器学习模型,自动检测并分类打鼾,从而监测并提升睡眠质量
在探索睡眠的奥秘时,尤其是在深夜身体完全处于静止状态时,人们通常更容易察觉到健康状况和呼吸模式的变化,而非亲眼所见。对普通人而言,在漆黑的卧室里通过视觉提示或摄像头来监测睡眠质量并不现实,且会引发严重的隐私问题。然而,忽视黑暗中发生的一切可能带来危险。
睡眠呼吸暂停是一种常见的睡眠障碍,会导致夜间呼吸反复中断,由于症状常在睡眠中出现,因此往往难以被诊断。若不加以治疗,可能引发慢性疲劳、心血管疾病、注意力下降以及生活质量显著降低等严重健康问题。尽管多导睡眠图(睡眠监测)等临床诊断方法准确性很高,但费用昂贵、操作不便,且并非人人都能轻易获得。
我们的解决方案:基于音频的边缘人工智能
我们夜间环境中最突出且具有代表性的特征实际上是声音。这使得基于声音的分类成为一种更加实用、完全无创的初步筛查方法。
为了帮助提高早期检测并让监测更加便捷,我们开发了SnoringNoPlease。该床边系统采用边缘计算平台Edge Impulse训练和部署的声学机器学习模型,能够实时识别睡眠期间的呼吸异常及潜在的呼吸暂停事件。
机器学习与模型训练
我们使用 Edge Impulseulse 平台对音频样本进行机器学习模型训练,重点在于有效识别打鼾模式,并将其与环境背景噪音区分开来。
为了构建一个稳健的数据集,我们收集并筛选了清晰、明显的打鼾音频片段。同时,我们有意加入了环境背景噪音(如风扇、空调或房间一般的声音),但未包含任何打鼾声。这确保了我们的模型能够在真实家庭环境中准确检测异常情况,而不受日常家居声音的干扰。
如上训练性能指标所示,我们的模型在验证集上实现了高达90.4%的整体准确率。在检测打鼾方面,其真阳性率达到了96.4%,F1分数为0.92,表明该模型作为非侵入式辅助工具具有高度可靠性。
数据探索器可视化展示了模型如何清晰地将实际打鼾特征与房间基线噪音区分开来,确保在夜间实时监测过程中具有高可靠性。
WebWeb 应用程序架构
由于许多睡眠监测系统通常限制用户使用昂贵的专用硬件或不舒适的可穿戴传感器,我们希望让我们的应用尽可能广泛普及、轻量且通用。该应用采用现代响应式仪表盘布局,基于 React、Tailwind CSS 和 Shadcn UI UI 组件构建,能够无缝适配任何设备——无论用户将智能手机还是笔记本电脑放在床头柜上。
用户操作流程极为简单、高效,专为夜间使用而设计:
一键激活:睡前,用户只需点击仪表盘上的麦克风按钮即可开始会话。
全天候夜间监测:该应用程序会通过设备麦克风持续监听整夜,实时分析传入的音频缓冲数据。
智能打鼾分类:当音频流进入时,本地机器学习模型会立即区分出打鼾时段与背景噪音。
智能间歇追踪:关键在于,这款应用不仅记录打鼾次数,还会主动测量每次打鼾事件之间所经过的时间。追踪这些安静的间隔和中断对于发现不规则呼吸模式至关重要,这些模式可能提示存在潜在的睡眠呼吸暂停发作。
未来改进
未来,我们计划继续改进我们的网络应用,增加更精准的打鼾检测功能、更优质的可视化报告以及更个性化的用户推荐。同时,我们还希望与开发睡眠改善产品的公司以及官方医疗机构合作,从健康角度提升该解决方案的可靠性和实用性。
另一个未来目标是将我们的模型集成到智能可穿戴设备中,例如智能手环或手表。这些设备可以在睡眠期间监测打鼾情况,并在检测到异常或可能有害的打鼾模式时轻柔地唤醒用户。这有助于用户实时做出反应,从而改善睡眠质量并提升健康监测效果。
本文编译自hackster.io





