0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TinyML音频识别应用及在Cortex-M4开发板上的入门

冬至配饺子 来源:Mary Bennion 作者:Mary Bennion 2022-07-27 16:27 次阅读

TinyML很强大是因为它帮助微型设备基于大量数据采集制定决策方法,而不会浪费时间和精力传输数据。假设你正在追踪非洲大草原的动物行为,你想知道狮子在一天中不同时间咆哮的频率。

你可以选择以下方法收集数据:

•躲在草丛中,用记事本和铅笔记录每次听到的吼声。

•用设置好的带电池的录音机记录,每隔几星期去更换存储卡。

•通过数据连接(如蜂窝网络)传输音频

以上所有方法都有以下缺点:

•将人员留在现场是非常昂贵的,同时还需考虑他们的安全问题

•驾车去收集存储卡需要耗费时间和钱,而且每隔几周才可以获得新数据。

•传输数据会消耗大量能量和钱,并且大部分地区的网络带宽也受到限制。这种方法可能会更快地获得数据,但仍需定期开车去更换电池。

除了这些缺点以外,在录音中数出狮子的吼声真的很无聊,而且还需要花费宝贵的资金。训练机器学习模型来识别录音中的狮子吼声并自动计数可以减轻这一烦恼。为此需要先收集一组带标签的数据输入到算法中,然后创建一个模型来识别音频中的吼叫声。

pYYBAGLg9a-ASp4CAAB912YTxu4827.png

这将解决需要花费数小时收听Savanna音频的问题。但是这样仍然保留了上述缺点。

在过去,机器学习模型只能存在于强大的大型硬件上,导致它们大多数时候只能在实验室的服务器上运行。但是近年来机器学习算法和低功耗硬件已经发展到可以在嵌入式设备上运行复杂模型的阶段。

如果我们采用狮吼计数模型应用在嵌入式设备中并部署到野外,我们会获得以下优势:

•我们的设备无需通过昂贵的高带宽网络来发送记录到的音频,而是可以当场计算听到的吼声数量,并发送极低功率的远程无线电,像LoRa那样。

•获得咆哮声的数量就够了,所以不需要存储音频以及收集存储卡。

•此设备很便宜且功耗极低,仅用一个电池即可运行数年。

•没有人需要听100小时的野生动植物混合录音带了。

这听起来是一个很好的解决方案。我们解决了一些实际问题,并获得了比以前更便宜更可靠的解决方案。

但是机器学习是一个令人生畏的主题。它技术性很强并涉及许多新概念,它也存在很多陷阱,可以很容易地训练一个看似有用但无法工作的模型。

更重要的是,在嵌入式设备上运行机器学习代码非常困难。除了需要了解机器学习和信号处理算法的知识外,通常还会受制于硬件性能的限制,可能要运用书中的所有技巧才能发挥给定类型芯片的全部性能。

当我们写《TinyML》这本书时,我意识到尽管任何人都可以轻松地开始学习基于嵌入式设备的机器学习。但想要构建出可用于生产的东西却会困难得多。对于专注解决实际问题的普通工程师来说,一天中没有足够的时间来学习机器学习,更不用说要为特定的微控制器架构优化底层ML代码了。机器学习听起来是一个不错的解决方案,但是它需要大量的投入来学习和使用。

这就是为什么我对Edge Impulse感到非常感兴趣的原因(事实上我因为太感兴趣而加入了这个团队)。它是一组用于处理机器学习中繁琐部分的工具,使开发人员可以专注于他们要解决的问题。Edge Impulse让收集数据集,选择正确的机器学习算法,训练生产级模型以及测试的过程变得容易。然后它将整个内容导出为可以轻松放入项目中的高效,高度优化的C ++库。

使用Edge Impulse创建咆哮计数模型的步骤很简单:

1.收集少量音频数据,给他们标记为“吼”或“非吼”,整个过程只需几分钟就可以完成。
2.使用Edge Impulse CLI将数据上传到Edge Impulse。
3.按照说明训练简单模型。
4.添加更多数据并调整模型的设置直到获得所需的精准度。
5.将模型导出为C ++库,并将其添加到嵌入式项目中去。

整个过程可以在几分钟内完成,你不必亲自参观非洲大草原。

由于现实中没有狮子,所以本教程训练了一个可以识别家庭声音的模型:即水龙头发出的自来水声。 要训练的模型大小约为18Kb并且体积小巧,却可以运用在复杂应用的同时为应用程序代码留出大量空间。

如果你有一个基于Arm Cortex-M4的STM32 IoT Node Discovery Kit套件开发板,就可以通过WiFi或串行捕获自己的数据集。如果你没有或者正在等待一个板子,可以下载我从Sunnyvale公寓收集的数据集。Edge Impulse构建了一个可以内置到任何Cortex-M或Cortex-A设备中紧凑独立的C ++库。我们自动使用FPU,矢量扩展,CMSIS-DSP和CMSIS-NN来优化性能,并最大程度地减少RAM和闪存的使用。

除狮子和水龙头外,TinyML还有很多不同应用。想象一下可以识别语音命令的微型设备:当机器出现故障时进行识别,根据周围的声音了解房屋中发生的活动。它最大的优点是借助设备上的推理功能可以保护用户隐私-无需将任何音频发送到云上。

通过使用Edge Impulse任何开发人员都可以轻松构建ML应用程序,Edge Impulse为所有想把惊人想法应用在硬件领域的人实现了梦想。我们随着技术的发展不断改进我们的平台,因此每个人都将从最新的算法和技术中受益。

审核编辑:刘清

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

    关注

    48

    文章

    7555

    浏览量

    151427
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114704
  • Cortex-M4
    +关注

    关注

    6

    文章

    89

    浏览量

    46551
收藏 人收藏

    评论

    相关推荐

    瑞芯微主板/开发板Linux系统播放音频方法,触觉智能RK3562开发板演示

    本文介绍瑞芯微方案主板/开发板Linux系统播放音频的方法,触觉智能RK3562开发板演示,通用RK3566、RK3568、RK3588等
    的头像 发表于 12-13 11:40 218次阅读
    瑞芯微主板/<b class='flag-5'>开发板</b>Linux系统播放<b class='flag-5'>音频</b>方法,触觉智能RK3562<b class='flag-5'>开发板</b>演示

    正点原子fpga开发板不同型号

    ZYNQ-7000系列 ZYNQ-7000系列是正点原子的入门级FPGA开发板,适合初学者和教育用途。这些开发板搭载了Xilinx的Zynq-7000系列SoC芯片,集成了ARM Corte
    的头像 发表于 11-13 09:30 718次阅读

    航顺 HK32F407ZGT7 芯片的开发板:多功能外设助力多领域应用

    HK32F407ZGT7开发板 1.开发板简介 开发板是基于航顺芯片公司F4系列HK32F407ZGT7开发的一款
    的头像 发表于 11-08 14:43 244次阅读
    航顺 HK32F407ZGT7 芯片的<b class='flag-5'>开发板</b>:多功能外设助力多领域应用

    【干货】有了这份HK32F407ZGT7开发板介绍,1万个项目轻松拿捏!

    2024-11-0811:39·航顺HK32MCUHK32F407ZGT7开发板开发板简介开发板是基于航顺芯片公司F4系列HK32F407ZGT7
    的头像 发表于 11-08 13:28 305次阅读
    【干货】有了这份HK32F407ZGT7<b class='flag-5'>开发板</b>介绍,1万个项目轻松拿捏!

    【干货】性价比拉满!HK32F407VG开发板介绍

    开发板简介开发板是基于航顺芯片公司F4系列HK32F407VGT7芯片的一款开发板Cortex-M4内核,最高主频168MHz,内置1MK
    的头像 发表于 11-08 13:27 228次阅读
    【干货】性价比拉满!HK32F407VG<b class='flag-5'>开发板</b>介绍

    配置新!米尔-新唐MA35D1核心512M DDR配置发布!

    米尔2024年8月推出了基于新唐MA35D1芯片设计的嵌入式处理器模块MYC-LMA35核心开发板。MA35D1是集成2个Cortex-A35与1个
    的头像 发表于 11-07 09:03 357次阅读
    配置<b class='flag-5'>上</b>新!米尔-新唐MA35D1核心<b class='flag-5'>板</b>512<b class='flag-5'>M</b> DDR配置发布!

    ARM开发板与树莓派的比较

    处理器 ARM开发板通常采用不同的ARM处理器,如Cortex-A系列、Cortex-M系列等,而树莓派则主要使用博通的ARM处理器。树莓派的处理器性能相对较高,尤其是最新的树莓派
    的头像 发表于 11-05 11:11 458次阅读

    TI开发板启用Android Automotive

    电子发烧友网站提供《TI开发板启用Android Automotive.pdf》资料免费下载
    发表于 09-18 14:52 0次下载
    <b class='flag-5'>在</b>TI<b class='flag-5'>开发板</b><b class='flag-5'>上</b>启用Android Automotive

    新唐MA35D1核心-米尔开发板-原生支持17路UART和4路CAN FD

    MYC-LMA35核心开发板多核异构的新唐MA35D1核心,赋能边缘计算新唐MA35D1,双核Cortex-A35和Cortex-M4
    发表于 08-15 16:03 2次下载

    Banana Pi BPI-M4 Berry 开源硬件开发板以太网口和WiFi测试

    Banana Pi BPI-M4 Berry 开源硬件开发板以太网口和WiFi测试
    的头像 发表于 07-02 16:16 898次阅读
    Banana Pi BPI-<b class='flag-5'>M4</b> Berry 开源硬件<b class='flag-5'>开发板</b>以太网口和WiFi测试

    Banan Pi BPI-M4 Berry 全志科技H618开发板烧录镜像教程

    Banan Pi BPI-M4 Berry 全志科技H618开发板烧录镜像教程
    的头像 发表于 07-02 16:13 834次阅读
    Banan Pi BPI-<b class='flag-5'>M4</b> Berry 全志科技H618<b class='flag-5'>开发板</b>烧录镜像教程

    【基于存内计算芯片开发板验证语音识别】训练手册

    本教程展现语音识别算法WTM2101开发板从训练到部署的全流程,包括实验环境搭建,语音数据集以及算法模型转换烧录。
    的头像 发表于 05-16 14:49 650次阅读
    【基于存内计算芯片<b class='flag-5'>开发板</b>验证语音<b class='flag-5'>识别</b>】训练手册

    瑞萨MCU/MPU开发板概述

    瑞萨MCU/MPU开发板 介绍           FPB-RA6E2 (200MHz Arm Cortex-M33,64引脚,ROM:256KB,RAM:40KB,板载SEGGER J-Link
    的头像 发表于 04-15 08:35 710次阅读
    瑞萨MCU/MPU<b class='flag-5'>开发板</b>概述

    【英飞凌测评】英飞凌PSoC™ 62开发板试用报告-LCD ILI9341 8080 DEMO

    0)的开发板,其具有单周期乘法的150-MHz Arm Cortex-M4F CPU (浮点和存储器保护单元),
    的头像 发表于 03-07 21:07 713次阅读
    【英飞凌测评】英飞凌PSoC™ 62<b class='flag-5'>开发板</b>试用报告-LCD ILI9341 8080 DEMO

    盘点那些硬件+项目学习套件:STM32MP157 Linux开发板入门常见问题解答

    Cortex-M4核,Cortex-A7核可以跑Linux操作系统,Cortex-M4可以跑FreeRTOS、RT-Thread等实时
    发表于 02-01 14:25