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

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

3天内不再提示

基于Cortex-M处理器上实现高精度关键词语音识别方案

电子设计 来源:电子设计 作者:电子设计 2020-12-10 21:40 次阅读

作者:吴湛

我们可以对神经网络架构进行优化,使之适配微控制器的内存和计算限制范围,并且不会影响精度。我们将在本文中解释和探讨深度可分离卷积神经网络在 Cortex-M 处理器上实现关键词识别的潜力。

关键词识别 (KWS) 对于在智能设备上实现基于语音的用户交互十分关键,需要实时响应和高精度,才能确保良好的用户体验。最近,神经网络已经成为 KWS 架构的热门选择,因为与传统的语音处理算法相比,神经网络的精度更胜一筹。

关键词识别神经网络管道

由于要保持“永远在线”,KWS 应用的功耗预算受到很大限制。虽然 KWS 应用也可在专用 DSP 或高性能 CPU 上运行,但更适合在 Arm Cortex-M 微控制器上运行,有助于最大限度地降低成本,Arm Cortex-M 微控制器经常在物联网边缘用于处理其他任务。

但是,要在基于 Cortex-M 的微控制器上部署基于神经网络的 KWS,我们面临着以下挑战:

有限的内存空间

典型的 Cortex-M 系统最多提供几百 KB 的可用内存。这意味着,整个神经网络模型,包括输入/输出、权重和激活,都必须在这个很小的内存范围内运行。

2. 有限的计算资源

由于 KWS 要保持永远在线,这种实时性要求限制了每次神经网络推理的总运算数量。

以下是适用于 KWS 推理的典型神经网络架构:

• 深度神经网络 (DNN)

DNN 是标准的前馈神经网络,由全连接层和非线性激活层堆叠而成。

• 卷积神经网络 (CNN)

基于 DNN 的 KWS 的一大主要缺陷是无法为语音功能中的局域关联性、时域关联性、频域关联性建模。CNN 则可将输入时域和频域特征当作图像处理,并且在上面执行 2D 卷积运算,从而发现这种关联性。

• 循环神经网络 (RNN)

RNN 在很多序列建模任务中都展现出了出色的性能,特别是在语音识别、语言建模和翻译中。RNN 不仅能够发现输入信号之间的时域关系,还能使用“门控”机制来捕捉长时依赖关系。

• 卷积循环神经网络 (CRNN)

卷积循环神经网络是 CNN 和 RNN 的混合,可发现局部时间/空间关联性。CRNN 模型从卷积层开始,然后是 RNN,对信号进行编码,接下来是密集全连接层。

• 深度可分离卷积神经网络 (DS-CNN)

最近,深度可分离卷积神经网络推荐为标准 3D 卷积运算的高效替代方案,并已用于实现计算机视觉的紧凑网络架构。

DS-CNN 首先使用独立的 2D 滤波,对输入特征图中的每个通道进行卷积计算,然后使用点态卷积(即 1x1),合并纵深维度中的输出。通过将标准 3D 卷积分解为 2D和后续的 1D,参数和运算的数量得以减少,从而使得更深和更宽的架构成为可能,甚至在资源受限的微控制器器件中也能运行。

在 Cortex-M 处理器上运行关键词识别时,内存占用和执行时间是两个最重要因素,在设计和优化用于该用途的神经网络时,应该考虑到这两大因素。以下所示的神经网络的三组限制分别针对小型、中型和大型 Cortex-M 系统,基于典型的 Cortex-M 系统配置。

KWS 模型的神经网络类别 (NN) 类别,假定每秒 10 次推理和 8 位权重/激活

要调节模型,使之不超出微控制器的内存和计算限制范围,必须执行超参数搜索。下表显示了神经网络架构及必须优化的相应超参数。

神经网络超参数搜索空间

首先执行特征提取和神经网络模型超参数的穷举搜索,然后执行手动选择以缩小搜索空间,这两者反复执行。下图总结了适用于每种神经网络架构的最佳性能模型及相应的内存要求和运算。DS-CNN 架构提供最高的精度,而且需要的内存和计算资源也低得多。

最佳神经网络模型中内存与运算/推理的关系

KWS 应用部署在基于 Cortex-M7 的 STM32F746G-DISCO 开发板上(如下图所示),使用包含 8 位权重和 8 位激活的 DNN 模型,KWS 在运行时每秒执行 10 次推理。每次推理(包括内存复制、MFCC 特征提取、DNN 执行)花费大约 12 毫秒。为了节省功耗,可让微控制器在余下时间处于等待中断 (WFI) 模式。整个 KWS 应用占用大约 70 KB 内存,包括大约 66 KB 用于权重、大约 1 KB 用于激活、大约 2 KB 用于音频 I/O 和 MFCC 特征。

Cortex-M7 开发板上的 KWS 部署

总而言之,Arm Cortex-M 处理器可以在关键词识别应用中达到很高的精度,同时通过调整网络架构来限制内存和计算需求。DS-CNN 架构提供最高的精度,而且需要的内存和计算资源也低得多。

代码、模型定义和预训练模型可从 github.com/ARM-software 获取。

审核编辑 黄昊宇

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

    关注

    42

    文章

    4759

    浏览量

    100456
  • 语音识别
    +关注

    关注

    38

    文章

    1715

    浏览量

    112514
  • Cortex-M
    +关注

    关注

    2

    文章

    227

    浏览量

    29715
收藏 人收藏

    评论

    相关推荐

    利用Sitara AM57x处理器处理器SDK实现工业机器视觉的2D物体识别

    电子发烧友网站提供《利用Sitara AM57x处理器处理器SDK实现工业机器视觉的2D物体识别.pdf》资料免费下载
    发表于 10-10 09:36 0次下载
    利用Sitara AM57x<b class='flag-5'>处理器</b><b class='flag-5'>上</b>的<b class='flag-5'>处理器</b>SDK<b class='flag-5'>实现</b>工业机器视觉的2D物体<b class='flag-5'>识别</b>

    物联网系统中高精度RTK定位方案实现_高精度定位模块

    物联网系统中为什么要使用高精度定位模块 物联网系统中使用高精度定位模块的原因主要体现在以下几个方面: 提高定位精度 厘米级高精度高精度定位
    的头像 发表于 09-26 17:53 727次阅读
    物联网系统中<b class='flag-5'>高精度</b>RTK定位<b class='flag-5'>方案</b>的<b class='flag-5'>实现</b>_<b class='flag-5'>高精度</b>定位模块

    NRK3502空气净化语音芯片方案,本地识别算法+芯片架构

    算法与芯片架构,提供Turnkey语音识别方案,特别适用于空气净化等智能家居设备。NRK3502是一款蓝牙双模智能语音IoT芯片,集成了3
    的头像 发表于 09-19 08:02 249次阅读
    NRK3502空气净化<b class='flag-5'>器</b><b class='flag-5'>语音</b>芯片<b class='flag-5'>方案</b>,本地<b class='flag-5'>识别</b>算法+芯片架构

    如何在MSP430™实现内置振荡高精度定时

    电子发烧友网站提供《如何在MSP430™实现内置振荡高精度定时.pdf》资料免费下载
    发表于 09-14 11:10 0次下载
    如何在MSP430™<b class='flag-5'>上</b><b class='flag-5'>实现</b>内置振荡<b class='flag-5'>器</b>的<b class='flag-5'>高精度</b>定时<b class='flag-5'>器</b>

    嵌入式微处理器有哪些类型 嵌入式微处理器有哪些产品

    在不同的领域和应用中发挥作用,如消费电子产品、智能家居、工业自动化、汽车电子、医疗器械等。 以下是一些常见的嵌入式微处理器类型和产品: ARM Cortex-M系列: ARM Cortex-M系列是一种低成本、低功耗的嵌入式微
    的头像 发表于 04-21 14:48 1837次阅读

    嵌入式微处理器有哪些部分 嵌入式微处理器有哪些区别

    部分,负责执行指令和进行数据处理处理核心的结构可以是单核、多核、超标量或向量等。常见的处理核心有ARM Cortex-M系列、Intel Quark等。 外设接口:外设接口用于连接
    的头像 发表于 04-21 11:31 1106次阅读

    高精度电流采集探头:精准测量电流的关键工具

    在电力系统、电子设备测试和工业自动化等领域,准确测量电流是至关重要的。高精度电流采集探头作为一种关键工具,能够实现对电流信号的精确采集和测量。本文将深入探讨高精度电流采集探头的工作原理
    的头像 发表于 04-15 10:29 819次阅读
    <b class='flag-5'>高精度</b>电流采集探头:精准测量电流的<b class='flag-5'>关键</b>工具

    瑞萨推出基于Arm Cortex-M23处理器的RA0微控制(MCU)系列

    全球半导体解决方案供应商瑞萨电子(TSE:6723)宣布推出基于Arm Cortex-M23处理器的RA0微控制(MCU)系列。全新32位通用MCU RA0系列产品除了
    的头像 发表于 04-14 10:12 781次阅读
    瑞萨推出基于Arm <b class='flag-5'>Cortex-M</b>23<b class='flag-5'>处理器</b>的RA0微控制<b class='flag-5'>器</b>(MCU)系列

    Cortex-M0+内核介绍

    和8位的价位实现32位性能。处理器的低门数使其能够部署在需要简单功能的应用中。 作为ARM Cortex-M处理器系列的最新成员,32位Cortex
    的头像 发表于 03-27 09:13 929次阅读
    <b class='flag-5'>Cortex-M</b>0+内核介绍

    瑞萨电子宣布推出基于Arm Cortex-M23处理器的RA2A2微控制产品群

    全球半导体解决方案供应商瑞萨电子(TSE:6723)今日宣布推出基于Arm Cortex-M23处理器的RA2A2微控制(MCU)产品群。
    的头像 发表于 03-22 10:57 648次阅读
    瑞萨电子宣布推出基于Arm <b class='flag-5'>Cortex-M</b>23<b class='flag-5'>处理器</b>的RA2A2微控制<b class='flag-5'>器</b>产品群

    业界首款基于Arm Cortex-M85处理器的MCU

    所有RA8系列MCU均利用Arm Cortex-M85处理器和Arm的Helium技术所带来的高性能,结合矢量/SIMD指令集扩展,能够在数字信号处理器(DSP)和机器学习(ML)的实施方面获得相比
    发表于 03-05 14:14 624次阅读
    业界首款基于Arm <b class='flag-5'>Cortex-M</b>85<b class='flag-5'>处理器</b>的MCU

    Cortex-M85内核单片机如何快速上手

    2022年4月,Arm推出了全新的MCU级内核Cortex-M85。截止目前(2024年2月),Cortex-M85是最新、最强的Cortex-M内核。
    发表于 02-29 09:35 656次阅读
    <b class='flag-5'>Cortex-M</b>85内核单片机如何快速上手

    请问mbed物联网操作系统会成为cortex-m中的android吗?

    mbed 物联网操作系统会成为cortex-m中的android吗?
    发表于 01-17 07:14

    如何在雅特力AT32 MCU实现关键词语音识别(KWS)

    和家用电器语音激活功能,已经是语音交互设计产品的广泛需求。对于KWS,实时响应和高精度才能获得良好的用户体验。最近,神经网络已成为KWS架构的一个有吸引力的选择
    的头像 发表于 01-06 08:14 824次阅读
    如何在雅特力AT32 MCU<b class='flag-5'>上</b><b class='flag-5'>实现</b><b class='flag-5'>关键词语音</b><b class='flag-5'>识别</b>(KWS)

    离线语音识别及控制是怎样的技术?

    进行处理。  离线语音识别能够在设备实现实时的语音识别
    发表于 11-24 17:41