项目说明

本次项目用 Syntiant TinyML 开发板自带的麦克风,通过 Edge Impulse 搭建机器学习模型,使板卡上的 LED 灯根据中文语音指令呈现出不同效果。一共训练了四个标签的声音数据,具体说明如下。

标签 关键词 动作
turn_on_blue 打开蓝灯 使板卡上的 RGB LED 灯显示蓝色
turn_on_green 打开绿灯 使板卡上的 RGB LED 灯显示绿色
turn_on_red 打开红灯 使板卡上的 RGB LED 灯显示红色
turn_off 关灯 关闭板卡上的 RGB LED 灯

硬件平台

Syntiant TinyML Board 是美国 AI 芯片研发商 Syntiant 推出的一款 TinyML 开发板,它配备了超低功耗 Syntiant NDP101 神经决策处理器,可以使语音和传感器应用程序分别在 140 和 100 微瓦以下运行。与基于 MCU 的传统 MCU 相比,Syntiant TinyML 板的吞吐量提高 20 倍,系统效率提高 200 倍。

Syntiant TinyML 板的尺寸非常小,仅为 24 毫米 x 28 毫米,是一个小型的独立系统。开发者可以直接通过 Micro 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 电池供电

语音训练

打开 studio.edgeimpulse.com 网页,创建一个新的项目,例如 Syntiant_TinyML_Voice,作为本次语音训练的项目。

创建完成后进入项目主页面,在这里可以看到训练的大致流程:选择设备、选择语音输入源、采集语音数据、创建 Impulse 模型、训练数据、生成固件、部署到硬件。

语音数据采集方面,由于我们需要采集类似“打开红灯”这样的语音,为了方便采集和训练,我们将采集时长定为 2 秒。分别为四个标签采集 20 组数据,按照 8:2 的比例分为训练集和测试集。

采集数据后记得检查一下数据的质量,在 Data acquisition 页面选中任意一条采集的语音数据,可以看到声音的波形,回放该条录音。在训练之前需要确保所有训练和测试的数据完好,否则会影响训练效果。

如果数据没问题,接下来就可以创建机器学习模型,一共分为四个模块。首先是时间窗口的设置,对于 Syntiant TinyML 语音模块,Window size 大小固定为 968 ms,Window increase 设置为 30 ms(窗口增加设置比较小有利于机器学习匹配出语音)。第二个模块选择 Syntiant audio,第三个模块选择最近邻分类器(Nearest Neighbor Classifier),最后确认输出 turn_offturn_on_blueturn_on_greenturn_on_red 四个标签。点击 Save Impulse 保存模型。

然后设置 Mel 滤波器特征参数,这里采用默认参数。

开始训练模式,训练结果准确率为 90.2%,不是特别高,但也可以测试看看。

点击左侧边栏的 Deployment,选择 Syntiant NDP101 library 下载训练好的库,将其替换到你的工程中(参考 Syntiant TinyML Board 固件下载)。

Arduino 工程

参考 Syntiant_TinyML_Board_Demo 中的 VoiceResponding 项目,修改标签名称及其触发的动作,代码如下。

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 keywordsif (strcmp(event, "turn_on_red") == 0) {// Toggle LEDdigitalWrite(LED_RED, HIGH);digitalWrite(LED_BLUE, LOW);digitalWrite(LED_GREEN, LOW);}if (strcmp(event, "turn_on_green") == 0) {// Toggle LEDdigitalWrite(LED_GREEN, HIGH);digitalWrite(LED_BLUE, LOW);digitalWrite(LED_RED, LOW);}if (strcmp(event, "turn_on_blue") == 0) {// Toggle LEDdigitalWrite(LED_BLUE, HIGH);digitalWrite(LED_GREEN, LOW);digitalWrite(LED_RED, LOW);}if (strcmp(event, "turn_off") == 0) {// Toggle LEDdigitalWrite(LED_BLUE, LOW);digitalWrite(LED_GREEN, LOW);digitalWrite(LED_RED, LOW);}
}

通过 Arduino IDE 重新编译、上传到 Syntiant TinyML Board,就可以看到效果啦!

演示视频

  • https://www.bilibili.com/video/BV1ZN4y1u7kX

相关文章

  • Syntiant TinyML Board 简介
  • Syntiant TinyML Board 固件下载
  • Syntiant TinyML Board 识别声音

Syntiant TinyML 开发板 + Edge Impulse 机器学习实现语音识别相关推荐

  1. GEC6818开发板JPG图像显示,科大讯飞离线语音识别包Linux_aitalk_exp1227_1398d7c6运行demo程序,开发板实现录音

    GEC6818开发板JPG图像显示 | 开发板实现录音 一.GEC6818开发板JPG图像显示 1.jpg图片特性 2.如何解压缩jpg图片 1.对jpegsrc.v8c.tar.gz进行arm移植 ...

  2. NXP i.MX8M Plus赋能边缘机器学习,启扬IAC-IMX8MP-Kit开发板

    云计算.边缘计算和机器视觉越来越多地应用在工业和消费系统中,NXP推出先进的i.MX8M Plus应用处理器,将用于机器学习加速的神经处理单元(NPU).图像信号处理器(ISP).GPU集成在处理器上 ...

  3. 使用Arduino开发板进行语音识别

    语音识别技术在自动化中非常有用,它不仅可以让您免提控制设备,还可以提高系统的安全性.除了制造语音控制小工具外,语音识别还为患有各种残疾的人们提供了重要帮助. 在之前的帖子中,我们制作了基于Arduin ...

  4. 学习嵌入式,买什么样的开发板?

    类似这样的问题在公众号后台.微信.交流群问的比较多.学嵌入式开发,买开发板是必须的,但不是买了开发板就等于学会了嵌入式. 下面围绕买什么样的开发板这个话题简单说两点. 开发板种类 市面上的开发板有很多 ...

  5. 嵌入式开发板硬件操作入门学习9——集成电路芯片手册术语词汇表(中英文对照)

    原创链接:集成电路芯片半导体中英文对照术语词汇表 英语 中文 1-9 10 gigabit 10 Gb 1st Nyquist zone 第一奈奎斯特区域 3D full‑wave electroma ...

  6. 乐鑫esp8266模块MicroPython开发板MQTT物联网人工智能最小系统

    简 介: ※对于购买自网络的基于ESP8266的实验模块进行了初步的测试,它其中的一些示例进行了练习.特别是对于基于ESP8266的特殊的一些外设的测试. 关键词: ESP8266,MicroPyth ...

  7. Google人体图像分割模型Bodypix再次更新,针对Coral开发板优化,720p/30fps流畅运行...

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI AI开发板果然是各大厂商的必争之地.树莓派4刚发布8GB版,快被遗忘的谷歌Coral开发板就迎来新的机器学习模型,登上了近日GitHub开 ...

  8. 移植u-boot-2012.04.01到jz2440开发板

    今天我给大家分享一下如何移植一个纯净的uboot到jz2440开发大版,通过记录学习分享,与大家一起进步!!! 1.首先我们在uboot官网下载u-boot-2012.04.01.tar.bz2,建立 ...

  9. 玩转 Rockchip 的开发板,这些信息你要知道

    RK 的处理器 Rockchip 在江湖中简称 RK,是一家总部坐落于福建福州的 SOC 设计公司. RK  基于 Arm cortex-A 内核设计的一系列 SOC ,宛如苍穹中一颗颗明星,在国内外 ...

最新文章

  1. 几款不同颜色LED的伏安特性
  2. 专为linux设计的笔记本,平板变笔记本,Linux 设备也要凑凑热闹
  3. java -TCP通信
  4. Andorid之打包出现Proguard returned with erro code 1.See console解决办法
  5. 它是世界上最轻的固体!1000℃下不会熔化,上过火星,还能进你家......
  6. 云计算的认识和看法_云存储已经成为存储的未来,你的存储跟上节奏了吗?
  7. Matlab多组条形图Bar多组误差棒绘制Errorbar位置设置
  8. 基于OpenCV的计算机视觉入门(4)线段和形状的绘制
  9. 已有一个名为“frmadd”的组件。组件的名称必须是唯一的,而且名称必须不区分大小
  10. Windows XP下无法安装字体的解决方案
  11. 微信开放平台:微信扫码登录功能
  12. 一阶微分方程的物理意义_薛定谔方程的物理意义
  13. WebService CXF-RS技术之@Pathparam与@Queryparam注解区别
  14. matlab零阶保持器的作用,5.8 记忆模块、零阶保持器、一阶保持器
  15. 【论文阅读】AProNet: Detecting objects with precise orientation from aerial images
  16. php或js判断网站访问者来自手机或者pc机
  17. 计算机打游戏的硬件,玩电脑常见的六大误区 看看你犯了几条
  18. node+express+mysql搭建一个系统
  19. 欧科云链接受北京电视台采访:以创新科技助力《反电信网络诈骗法》实施
  20. HazelEngine 学习记录 - ImGui Docking

热门文章

  1. 心里窝火无语的图片_窝火的心情说说图片
  2. h5app 实现ios更新跳转appStore
  3. 一个轻量级内存池的实现与细节
  4. arcgis字段计算器使用rnd函数生成随机数
  5. 2021地理设计组一等奖:融合短视频和深度学习的城市空间意象解构与分析
  6. yy神曲url解析php_歪歪神曲解析源码(参考)
  7. 计算机用户没有权限怎么办,电脑软件没权限怎么办
  8. 详解Python正则表达式中group与groups的用法
  9. python中模拟上公交车
  10. 微机原理-汇编语言-控制转移/跳转语句总结(JMP JE...)