内容介绍
内容介绍
- 任务要求
任务一:用自带的麦克风,搭建机器学习模型,使板卡上的LED灯根据中文语音指令(不少于三个指令)呈现出不同效果,如开灯、关灯、闪烁、SOS、呼吸等
2. 任务分析与准备
任务主要可以分为以下三个环节:
- 编程ARDUINO环境搭建。包括下载ARDUINO编辑器软件,Syntiant有一个EDGE Impulse环境搭建的准备网页:https://docs.edgeimpulse.com/docs/development-platforms/officially-supported-mcu-targets/syntiant-tinyml-board
- 可以根据网页的内容指导进行编译环境的搭建。 主要包括:下载Githab的例程程序firmware-syntiant-tinyml;安装ARDUINO CLI和EDGE IMPULSE CLI;安装audio firmware;通过response to your voice例程了解EDGE IMPULSE编程的方式。
- EDGE IMPULSE机器学习训练的过程是:连接开发板或用电脑麦克风进行数据采集,并对数据进行分类,数据采集的长度设为1秒;设定数据分析,创建Impluse,选择audio syntiant, keras;配置好修正数据,开始机器学习训练,查看训练的正确率
- 在开发板上部署机器学习程序。这里可以选择用Arduino编译下载,也可以使用命令行编译的方式,包括:
arduino-win-build.bat --build;
arduino-win-build.bat --flash
两个命令。
3. 程序部分。
这部分的程序,主要是修改irmware-syntiant-tinyml的例程。
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, "lv") == 0) {
// Toggle LED
digitalWrite(LED_RED, LOW);
digitalWrite(LED_BLUE, LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_GREEN, HIGH);
delay(5000);
digitalWrite(LED_GREEN, LOW);
}
if (strcmp(event, "lan") == 0) {
// Toggle LED
digitalWrite(LED_RED, LOW);
digitalWrite(LED_BLUE, LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_BLUE, HIGH);
delay(5000);
digitalWrite(LED_BLUE, LOW);
}
if (strcmp(event, "hong") == 0) {
// Toggle LED
digitalWrite(LED_RED, LOW);
digitalWrite(LED_BLUE, LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_RED, HIGH);
delay(5000);
digitalWrite(LED_RED, LOW);
}
event是机器学习对声音的判断标识,也就是我们之前做的分类标签。当识别到了对应的标签就通过程序点亮相应颜色的灯。点亮5秒后熄灭对应颜色的灯。
4.功能展示。如下是实现的效果。
说:“绿”。 电路板上三色灯点亮绿色。
说:“蓝”。 电路板上三色灯点亮蓝色。
说:“红”。 电路板上三色灯点亮红色。
5.心得体会。
通过这块开发板学习了EDGE IMPULSE机器学习训练的步骤。也体会了机器学习中数据获取的重要性和困难,个人获取大量数据既是费时费力的工作,而且也不易获取高质量的数据。另外背景校准数据的使用有助于后面获取判断的准确性。整个开发板作为尝试边缘计算,起到了学习的作用。如果要进一步学习,这块开发板没有开放NDP101的datasheet, 无法进一步了解机器学习芯片里的实现原理。
附件下载
code.zip
代码
hong_lv_lan-syntiant-ndp101-lib-v7.zip
机器学习训练模型
团队介绍
嵌入式编程爱好者
团队成员
MMA
评论
0 / 100
查看更多
猜你喜欢
Funpack第二季第一期 Syntiant TinyML Board用自带的麦克风,搭建机器学习模型,使板卡上的LED灯根据中文语音指令(不少于三个指令)呈现出不同效果,如开灯、关灯、闪烁、SOS、呼吸等
xbreeze
968
FUNPACK第二季第一期项目_Syntiant TinyML_中文语音指令控制LED灯闪烁本项目基于Syntiant公司的TinyML板卡完成了利用中文语音指令控制LED灯闪烁的功能。设计了唤醒词“你好,小板子”,并有三个中文指令,分别为“打开灯光”,“关闭灯光”以及“闪烁灯光”。
Owen
1005
Funpack第二季第一期-用Syntiant TinyML根据中文指令使LED呈现出不同效果Funpack第二季第一期-用Syntiant TinyML根据中文语音指令使LED呈现出不同效果
liurongbao
740