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

    文章

    6809

    浏览量

    147633
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113705
  • Cortex-M4
    +关注

    关注

    6

    文章

    89

    浏览量

    46239
收藏 人收藏

    评论

    相关推荐

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

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

    【先楫HPM5361EVK开发板试用体验】:4TinyML测试(1)

    1、TinyML简介 TinyML是指在边缘设备运行的机器学习模型,通常是资源受限的嵌入式系统运行的轻量级模型。这些设备可以是智能手机
    发表于 12-22 10:12

    标准系统:OSWare 大牛-8M Mini

    开发板名称(芯片型号) OSWare 大牛-8M Mini 芯片架构 CPU频率 介绍(字数请控制200字以内) NXP i.MX 8M Mini是一款集成
    发表于 10-19 10:53

    tl5728-easyevm开发板规格书

    dsp、双核pru-icss、双核cortex-m4 ipu、双核gpu等处理单元,支持opencl、openmp、ipc多核开发;强劲的视频编解码能力,支持1路1080p60或2路720p60或4
    发表于 10-09 08:37

    迅为i.MX8M Mini开发板一些功能

    提供在Android9系统移植4G模块方法,并带大家一步步调试率先提供如何通过SD卡启动Linux镜像,例如yocto debian ubuntu等文件系统; 教大家如何将驱动编译进内核源码; 根据IMX8MM开发板的原理图总
    发表于 09-05 10:30

    LPCXpresso54114:Cortex-M4/M0+教程

    监视、内存和外围设备窗口)、硬件断点和观察点的非侵入性读/写。 许多恩智浦Cortex-M3、M4M7都有ETM指令跟踪,它还提供代码覆盖和性能分析。 Keil生产MCB54110全功能电路
    发表于 09-05 07:56

    Cortex-M4(F)延迟堆叠和上下文切换应用说明

    Cortex-M4处理器基于ARMv7E-M架构,与Cortex-M3类似。 它有一个用于一般数据处理的整数寄存器组,这与ARM Cortex-M3中的相同,以及一个基于堆栈的异常
    发表于 08-29 06:34

    Arm Cortex-M4产品介绍

    Cortex-M4处理器开发Cortex-M4处理器,以解决数字信号控制市场的问题,这些市场需要高效、易于使用的混合控制和信号处理能力;高效率信号处理功能与Cortex-M处理器大家
    发表于 08-25 06:15

    【米尔-STM32MP135开发板-入门级MPU试用】STM32MP135开发板评测之初体验

    基本了解。 #MYC-YF13X核心开发板 STM32MP135高性价比入门级MPU设计平台 基于STM32MP135新一代通用工业级MPU,单核Cortex-A7@
    发表于 08-16 23:59

    ARM Cortex-M4处理器技术参考手册

    Cortex-M4处理器包含处理器核心、嵌套矢量中断控制器(NVIC)、高性能总线接口、低成本调试解决方案和可选的浮点单元(FPU)。 Cortex-M4处理器包含以下功能: •处理器核心。 •嵌套
    发表于 08-08 07:18

    ARM Cortex-M4技术参考手册

    Cortex-M4技术参考手册 - ARM DDI 0439B Errata 01
    发表于 08-02 07:22

    NXP i.MX 8M Mini开发板规格书(四核ARM Cortex-A53 + 单核ARM Cortex-M4,主频1.6GHz)

    1 评估简介创龙科技TLIMX8-EVM是一款基于NXP i.MX 8M Mini的四核ARM Cortex-A53 + 单核ARM Cortex-M4异构多核处理器设计的高性能评估
    发表于 06-15 11:03

    Arm Cortex-M4(STM32F411)上的语音识别

    电子发烧友网站提供《Arm Cortex-M4(STM32F411)上的语音识别.zip》资料免费下载
    发表于 06-13 16:21 4次下载
    Arm <b class='flag-5'>Cortex-M4</b>(STM32F411)上的语音<b class='flag-5'>识别</b>

    iTOP-STM32MP157开发板开发学习一两用

    处理器 iTOP-STM32MP157开发板采用ST推出的双核cortex-A7+单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。 核心
    发表于 06-07 10:54

    如何使用i.MX8MM Cortex-M4的ECSPI?

    使用 i.MX8MM 的 Cortex-M4 的 ECSPI 和 fsl_ecspi.c 中可用的函数时遇到问题。 最终,我需要与复杂的 ADC 和 DAC 设备进行通信。为了尝试简化证明接口
    发表于 05-30 08:00