SmartListener -使用AI的环境声音分类器
扫描二维码
随时随地手机看文章
SmartListener是一款低成本、支持wi - fi的边缘人工智能设备,可以监听现实世界的声音,比如婴儿的哭声、狗叫声或玻璃破碎声,并在检测到特定声音事件时发送MQTT警报。它使用PSoC6 AI Kit运行使用DeepCraft Studio训练的轻量级ML模型,并具有定制的3d打印外壳,可在任何房间部署。
主要特点:
•Edge AI:直接在PSoC™6上运行TensorFlow Lite模型。
•5+声音类:检测婴儿哭声,火灾警报,玻璃破碎,脚步声和狗叫。
•MQTT集成:向任何代理(HiveMQ/ mosquito)发布JSON警报。
•低延迟:用最少的硬件进行实时处理。
数据集准备(ESC-50)
ESC-50是环境声音分类(ESC)领域的一个免费的、标记良好的、广泛使用的数据集。我们使用自定义Python脚本来拆分、重新采样和转换数据集,以匹配DeepCraft Studio期望的输入格式。
脚本1:按类拆分ESC-50
脚本2:转换到WAV +采样到16千赫
这些确保每个音频文件在16 kHz,单声道,16位PCM - PSoC6推理所需。
DEEPCRAFT工作室
英飞凌科技的DEEPCRAFT™Studio是一个端到端平台,用于开发和部署边缘人工智能应用程序。它支持音频、雷达、时间序列和计算机视觉数据。凭借直观的基于图形的界面,它简化了从数据收集到部署的机器学习工作流程。该平台还提供开源入门模型,使开发人员能够快速启动人工智能项目并将其部署到边缘设备。
DEEPCRAFT工作室:数据标签
在能够训练模型甚至执行预处理之前,需要将数据导入DEEPCRAFT工作室,以便我们可以开始标记它。我们创建了一个Generic Graph UX项目,在其中添加了一个“wav文件”节点,这样我们就可以读取训练数据。
选择标签
•婴儿哭了
•狗叫声
•玻璃打破
•门敲
•背景噪音(“未知”)
•其他事件(未标记)
DEEPCRAFT工作室:数据导入
在标记了所有将用于训练模型的数据之后,需要将数据导入DEEPCRAFT分类项目。然后我们需要将数据分成三类:训练数据集,验证数据集,测试数据集。
DEEPCRAFT Studio:预处理
原始录音使用DeepCraft Studio设计的精心制作的特征提取管道进行预处理。输入音频片段为单通道PCM WAV文件,采样频率为16 kHz,并对预处理链进行了实时推理和分类精度优化。
•滑动窗口:该步骤将传入的音频流分割成~32毫秒的重叠窗口,用于基于帧的处理。
•汉恩平滑:通过应用汉恩窗来减少光谱泄漏。
•实离散傅里叶变换(RDFT):使用实值FFT将时域信号转换到频域。
•Frobenius范数:使用Frobenius范数将FFT输出减少为每帧单个功率谱。
•梅尔滤波器组:将功率谱转换为感知启发的梅尔尺度表示-将高维FFT压缩成有意义的30 bin频率特征。
•剪辑:通过剪辑极值来确保数值的稳定性
•对数:应用对数压缩来模拟人类的响度感知,并进一步规范化动态范围。
•最终滑动窗口(谱图块):创建谱图“快照”,将其传递到神经网络中进行分类。
DEEPCRAFT工作室:模型训练
为了训练音频分类模型,我使用了DeepCraft Studio的modelwizard,它简化了神经网络架构的选择和调整。该模型针对PSoC6 AI Kit的部署进行了优化,重点关注大小、延迟和泛化。
DEEPCRAFT工作室:模型评估
训练后的Conv1DLSTM模型达到了76.13%的准确率和76.08%的f1分数,证明了轻量级架构的可靠性能。混淆矩阵显示了在分类不同的声音方面的优势,比如火(10.25%的正确率)和婴儿哭声(11.32%的正确率),尽管在模糊或罕见的类别中会出现挑战。例如,玻璃破碎只有1.27%的时间被正确识别,经常被错误地分类为未知(1.91%),可能是由于有限的训练样本或细微的声学特征。该模型倾向于将39.46%的样本标记为未知,这表明保守的置信度阈值或噪声敏感性,而狗和婴儿哭声之间的混淆(1.37%)暗示了重叠的频率模式。
为了提高鲁棒性,未来的工作可以集中在代表性不足的类别(例如,合成玻璃破碎样本)的数据增强和调整置信度阈值以减少未知预测。尽管存在这些挑战,该模型仍优于基线CNN(准确率约68%),使其成为进一步优化边缘部署的有希望的候选者。
DEEPCAFT工作室:模型生成
DeepCraft Studio被配置为生成优化的C代码(model.h/model. C),用于在英飞凌的PSoC 6微控制器上部署音频分类模型。针对双核Cortex-M4/M0+架构,该设置支持cmsis加速浮点运算,同时保持全精度(Float32)而无需量化。
部署
在PSoC™6 AI Kit上部署机器学习模型需要使用英飞凌的开发工具(如ModusToolbox™和DEEPCRAFT™Studio)将训练好的模型集成到嵌入式应用程序中。该模型嵌入到PSoC 6的双核ARM Cortex-M4F/M0+微控制器上运行的固件中。实时收集来自板载外设MEMS麦克风的音频数据,并将其传递给模型,直接在设备上进行推理,从而实现低延迟的设备上AI处理。
为了实现通信,PSoC 6 AI Kit使用AIROC™CYW43439模块进行Wi-Fi和MQTT连接。通过在应用程序中集成MQTT客户机库,该工具包可以将推理结果发布到MQTT代理,使其成为边缘到云用例的理想选择。这种设置允许我们的应用程序在本地执行推理并无线发送结果,实现边缘智能和连接通信之间的有效平衡。
部署:PSoC 6 AI套件概述
英飞凌科技的PSoC™6 AI评估套件(CY8CKIT-062S2-AI)是一款面向边缘AI应用的紧凑型开发平台。它具有双核ARM Cortex-M4F/M0+微控制器,集成了6轴运动传感器,雷达和MEMS麦克风等传感器,以及通过AIROC™CYW43439 Wi-Fi/蓝牙组合模块的无线连接。该套件与DEEPCRAFT™Studio兼容,支持机器学习模型训练和部署,使其成为智能家居设备,可穿戴设备和工业监控等应用的理想选择。
部署:ML模型推理
项目包含一个操作系统任务,该任务将用于读取PDM (mic)输入并将其传递给模型,以便进行预处理和分类。
推理任务将检查模型的结果,并在将检测到的标签发送到要发布的MQTT任务之前执行一些退出操作。
部署:MQTT通信
MQTT通信使用以下配置来选择代理(HiveMQ)和发布者使用的主题
一旦标签被模型确认,它将被发送到MQTT任务以发布它。
部署:最终测试
在用代码闪烁电路板并连接锂离子电池后,我们可以将设备放入定制的外壳中,让它倾听周围环境,开始检测预定义的声音并将其传达给云。
本文编译自hackster.io