内容介绍
内容介绍
- 开发板简介
Syntiant TinyML 开发板是构建低功耗语音、声学事件检测和传感器ML应用的理想平台。
TinyML板配备了超低功耗的Syntiant® NDP101神经决策处理器,最低功耗神经网络计算。
板载麦克风和 BMI160 传感器可轻松配置语音、 6 轴运动的应用。
利用Edge Impulse 的边缘计算, 经过训练的模型可以通过微型USB连接轻松下载到TinyML板上 ,实现机器学习在开发板的部署。
接下来 我们开始开发板之旅:
第一步,通电验证开发板
开发板自带的FW 自带一个语音识别模型。
唤醒指令为: Alexa,Play music.
连接USB 通电后,等待几秒,说: Alexa,Play music
观察是否会亮起红灯。
如果能正常亮红灯,恭喜你,没问题。可以进行下一步。
第二步,体验语音识别demo
Edge Impulse提供边缘计算的数据采集,模型训练,模型部署下载。
注册账号复制repo
复制这个respo Dashboard - Syntiant-RC-Go-Stop - Edge Impulse
基于官方的demo 会省去很多问题。
官方demo 是一个 go stop的语音识别,有2.5小时训练数据的完整项目。
通过这个项目简单熟悉数据采集 数据训练,并下载这个项目的lib 进行部署实测。
如下图所示。按照如下路径 下载压缩包
点击flash_windows.bat 下载到开发板
实测体验语音识别
说 go, 或者 Stop
观察亮灯情况。
红灯 或者绿灯显示,表示正常识别。
到此为止 我们体验了 整个语音demo
接下来 我们要构建 我们自己的语音识别。
第三步,构建自定义的语音识别
这部分第一步,需要先确认语音识别词。
直播时,老师对识别词部分有详细讲解。
总结来说,推荐用四个字的词 差异化较大的词。
综合考虑后,我们采用如下语音词
- 关灯睡觉 (close)
- 起床吃饭 (open)
- 起床吃饭 (open)
- 别看手机 (watch)
万事俱备,现在开始:
-
采集数据(captured data)
如下图 选择设备源,推荐选择电脑 或者手机。
这样利用手机或者电脑的麦克风 进行音频数据采集。
开始数据采集,如下图所示
将关键字设置为标签,并将样本长度设置为 2 秒。
然后点击开始录制并开始一遍又一遍地说出关键字(每个话语之间稍有停顿)。
我这里是每个词录制20次。(最好是各种情况,速度快,速度慢等)
-
训练模型(trained a model)
目前使用的训练模式
配置神经网络
处理完所有数据后,是时候开始训练神经网络了。神经网络是一种算法,以人脑为原型,可以学习识别其训练数据中出现的模式。
我们在这里训练的网络将处理块特征作为输入,并尝试将其映射到三个类之一 - “open”,“close”或“watch”。
单击左侧菜单中的 NN 分类器。您将看到以下页面:
Syntiant NN Configuration
神经网络架构自动填充了 Syntiant 配置:3 个密集层,包含 256 个神经元和 3 个 Dropout 层。
一切就绪后,单击“开始训练”。您将在训练输出面板中看到大量文本飞过 ,您现在可以忽略这些文本。培训需要几分钟时间。完成后,您将看到页面底部显示“上次训练表现”面板:
当前使用数据训练结果如下
close 情况一般 后面验证也如此
open 与watch 效果还可以。
-
部署到开发板(deployed it to the Syntiant TinyML Board)
-
下载代码,配置环境,更新代码逻辑
-
把如下代码下载到本地 修改逻辑
修改代码逻辑。
对应的三个关键词 灯的状态为:
- 关灯睡觉 蓝灯亮
- 起床吃饭 绿灯亮
- 起床吃饭 绿灯亮
- 别看手机 红灯亮
void on_classification_changed(const char *event, float confidence, float anomaly_score) {
// here you can write application code, e.g. to toggle LEDs based on keywords
if (strcmp(event, "close") == 0) {
// Toggle LED
digitalWrite(LED_BLUE,HIGH);
}
if (strcmp(event, "open") == 0) {
// Toggle LED
digitalWrite(LED_GREEN,HIGH);
}
if (strcmp(event, "watch") == 0) {
// Toggle LED
digitalWrite(LED_RED,HIGH);
}
}
-
-
替换model 文件 替换下载model bin
-
生成部署如下图 选择生成NDP101 LIB 会下载压缩包 包括
-
-
-
-
-
替换 * src/model-parameters* 文件目录
-
-
生成arduino bin
-
生成的 arduino 地址: C:\Users\username\AppData\Local\Temp\arduino_build_106482(按按实际)
-
-
下载到flash
-
在二步下载的demo 包中 替换
firmware.ino.bin
firmware.ino.with_bootloader.bin
ei_model.bin
ei_model.synpkg
然后执行flash_windows.bat
如下图所示 下载完成。
重开机后,
分别说出
- 关灯睡觉
- 起床吃饭
- 起床吃饭
- 别看手机
观察灯的变化
三条指令 对应灯的状态:
- 关灯睡觉 蓝灯亮
- 起床吃饭 绿灯亮
- 起床吃饭 绿灯亮
- 别看手机 红灯亮
心得体会
感谢主办方,不错的活动 体验不一样的开发板 熟悉与体验AI ,希望后续能体验更多的好板子。
附件下载
syntiant.zip
code model压缩包
团队介绍
一枚攻城狮
评论
0 / 100
查看更多
猜你喜欢