用Syntiant TinyML实现用中文人声控制板载LED
参加Funpack第二季第一期:Syntiant TinyML的活动,使用中文指令控制板载LED。
标签
机器学习
学习
syntant
Joey
更新2022-07-07
448

Funpack syntant tiny ml

 

一、介绍

配备超低功耗 Syntiant ® NDP101神经决策处理器™,可以使语音和传感器应用程序分别在 140 和 100 微瓦以下运行,与基于 MCU 的传统 MCU 相比,吞吐量提高 20 倍,系统效率提高 200 倍。Syntiant TinyML 板的尺寸为 24 毫米 x 28 毫米,是一个小型的独立系统,通过微型 USB 连接通过 Edge Impulse 轻松下载经过训练的模型,而无需任何专用硬件。

主要特点 

  • 神经决策处理器使用NDP101,连接了两个传感器
    • BMI160 6轴运动传感器
    • SPH0641LM4H麦克风
  • 主机处理器:SAMD21 Cortex-M0+ 32位低功耗48MHz ARM MCU
    • 内置256KB FLASH和32KB SRAM,
    • 5个数字I/O,与Arduino MKR系列板兼容
    • 其中包含1路UART接口和1路I2C接口(包括在数字I/O引脚中)
    • 2MB板载串行闪存
    • 一个用户定义的RGB LED
    • uSD卡插槽
  • 电路板可使用5V micro-USB或3.7V LiPo电池供电

 

FuDm-zZSWvdyFAl4Cs2UIlEVa_m0

 

二、编译环境

首先需要安装Arduino IDE和Arduino CLI。下载git上的code。

安装需要安装的库。

打开arduino程序,编译一下,编译成功就没有问题了。

 

三、训练模型

接下来就需要训练模型,训练模型的网址https://studio.edgeimpulse.com。

Impulses can be deployed as an optimized Syntiant NDP 101 library. This packages all your signal

processing blocks, configuration and learning blocks up into a single package. You can include this

package in your own application to run the impulse locally. In this tutorial you'll export an impulse, and run

the application on the Syntiant TinyML Board to control GPIO pins when the keyword 'go' or 'stop' is uttered.

edge impules里我是复制的官方的模型,然后把官方的模型删掉,自己重新训练模型。

因为官方文档说尚未支持开发板作为外部麦克风,所以我通过手机手机数据。下面是官方的说明。

Audio acquisition - Windows OS

Using the Syntiant TinyML board as an external microphone for data collection doesn't currently

work on Windows OS. We are working on a fix and will update the firmware accordingly.

 

 

录好数据,看一下数据是否在中间,不在的就删了,否则影响模型,个人感觉还是用板子作为外部麦克风采集数据比较好。我听一些大佬说板子会有一些底噪,我就是用手机去采集数据,识别的时候容易误触发,我怀疑可能是这部分的原因,如果有知道原因的大佬,可以告诉我一下,我感激不尽。采集好数据就要create impules,选择Audio (Syntiant)和Classification (Keras)然后保存impulse。然后选择syntant打开之后等模型加载出来,点save parameters,在点NN Classifier,大家按照官方的知道方法操作就可以,接下来我说一下需要注意的地方。

 

四、烧录

自定义代码后,请使用由Arduino输出的bin文件,并将其重命名为 firmware.ino.bin,放到你生成的刷固件的文件夹里,我是这样理解的。

bin文件将位于输出目录中,如下所示:C: \\Users\\username\\AppData\\Local\\Temp\\arduino\u build\u 106482(用您自己的用户名替换用户名)。官方原文如下:

Once you've customized your code, take the .bin file output by Arduino and rename it to firmware.ino.bin

before using the same flashing script from before to flash your dongle with updated functionality. In

Windows, the .bin file will be located in the output directory like so:

C:\Users\username\AppData\Local\Temp\arduino_build_106482 (replace username with your own)

如果要使用关键字或其他音频而不是“go”或“stop”创建项目,则需要使用部署页面上的“创建库”选项。这将创建一个输出 zip,其中包含

包含您需要的 dsp_blocks.h 和 model_metadata.h 的模型参数文件夹

以放入自定义固件构建目录的* src/model-parameters*文件夹中。此导出将

还创建一个ei_model.bin,可以使用之前相同的闪烁脚本进行闪烁。

 

五 、实现的功能

我觉得需要注意的就这些,下面的图片是我的代码,说开灯,所有灯都会亮,关灯,所有灯都熄灭,说蓝灯,蓝灯亮,说红灯,红灯亮,说绿灯,绿灯亮。

我的容易误触发,暂时还没有解决,知道的大佬可以告诉一下。谢谢。

在arduino程序里设置

 

FjERLxJ3X21UGnM0BQfXQVIkI1rOFtX-nw2votI3Ts-6YIlYL2uSP73n

附件下载
firmware-syntiant-tinyml.zip
syntiant-rc-开灯-关灯-红灯-绿灯-蓝灯-syntiant-ndp101-lib-v44.zip
syntiant-rc-开灯-关灯-红灯-绿灯-蓝灯-syntiant-ndp101-v43.zip
团队介绍
个人制作
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号