×

TinyML狗吠止动器开源硬件

消耗积分:0 | 格式:zip | 大小:0.31 MB | 2023-02-02

分享资料个

描述

问题

自从我家开始上学和工作后,我的狗就开始发疯了。在隔离期间,她真的很依恋并产生了分离焦虑。为了解决这个问题,我们必须在我们离开时检测到 Clairette 的吠叫,并使用我们的声音录音来回应它们。

如何建造

1. 按照原理图接线。

2. 将 bark_listener.ino 上传到 Arduino Nano 33 BLE Sense。

3. 上传 bark_audio_responder.ino 到 Arduino Nano。

4.上传音频文件到SD卡。

5. 将 Music Maker Feather 连接到 AUX 扬声器。

6. 插入 Arduino Nano 33 BLE Sense。

7. 看着树皮停止!

 
 
 
_dsc8230_(copy)_2IxeSeSZx4.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
 
1 / 7整个设置
 

训练模型

由于没有一个大数据集足以检测狗叫声,所以我使用了一对。按模型中的重要性排名,我使用的数据集是:

然后,我使用 Shawn Hymel 的关键词发现数据集管理脚本将数据预处理为一秒钟的剪辑并添加背景噪音。然后每个音频片段都被标记为“树皮”或“其他”。我还必须对树皮数据进行大量清理,因为来自 Google Audioset 的许多剪辑中没有树皮:我通过聆听标记为其他的音频样本并根据它们是否真的是树皮或重新分配它们来做到这一点不是)。

我将所有音频剪辑上传到 Edge Impulse 的标签下;然后,我使用 Edge Impulse 的 Eon Tuner 来寻找和训练最佳模型。

 
 
 
99_performance_cLmfZJSwJG.png?auto=compress%2Cformat&w=740&h=555&fit=max
 
1 / 3Eon 调谐器验证准确性和性能
 

原始音频被转换为 Mel-filterbank 能量谱图,这是模型使用的音频的图像表示。下图显示了不同类型之间的原始音频看起来并没有什么不同;频谱图使样本之间的相似性最明显。

bark_3_playing-recovered_Wa3fnOqSva.png?auto=compress%2Cformat&w=740&h=555&fit=max
频谱图
 

部署模型

optimizations_(2)_HXgRULgKfE.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
边缘脉冲输出
 

Edge Impulse 导出可与 Arduino Nano 33 BLE Sense 一起使用的 Arduino 库。该库处理音频到频谱图的转换和模型推理。

回应吠叫

screenshot_from_2021-11-02_10-06-35_mIBE2w2IBw.png?auto=compress%2Cformat&w=740&h=555&fit=max
音轨文件
 

每当检测到吠叫时,都会播放随机曲目以回应狗。我的狗最依恋我的妈妈,所以我们记录了她。曲目范围从告诉她停止或告诉她没关系。

我不得不使用外部 Arduino Nano 来控制,因为 Nano 33 运行 MBED 操作系统,它没有足够快的中断来控制音频(使用 Nano 33 时,音频非常不稳定)。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !