边缘的超低功耗关键短语检测

描述

语音在与智能手机、平板电脑和个人辅助系统交互的广泛使用,使语音成为其他技术的首选HMI(人机界面)。例如,在当今的智能家居中,用户可以要求Alexa打开或关闭灯,锁门和调节恒温器。随着这项技术变得越来越普遍,人们越来越需要使用高度准确、紧凑和高能效的基于神经网络的关键短语检测解决方案来增加人与机器之间的交互的技术解决方案。与需要网络连接的云连接神经网络 (NN) 关键短语检测实现不同,基于边缘的解决方案在边缘执行所有计算,并且不会记录数据或将数据传输到云。

本文将介绍一种专为网络边缘设计的基于NN的关键短语检测解决方案。这些二值化型号可在低功耗超增强™ FPGA 上运行。本文将讨论当使用包含嘈杂背景(如音乐或聊天噪音)的数据集训练 NN 时,如何在嘈杂环境中使用关键短语检测。在这种情况下,神经网络是使用公共数据集来检测单词“seven”的训练。关键短语检测可用于各种应用,无需个人助理设备。可能的应用包括智能电灯开关、智能电视和使用调高和调低音量等命令管理设备的 AVR。

一、引言

长期以来,使用语音命令来控制人机界面(HMI)一直是系统设计人员的目标。可追溯到20世纪中叶的流行科幻电视节目和电影,如“星际迷航”和“星球大战”,给了我们一个声音世界可能是什么样子的暗示。但是,事实证明,为现实生活中的消费类应用开发低成本、高能效的解决方案是难以捉摸的。

然而,在过去几年中,亚马逊的Alexa和苹果的Siri等流行的AI应用程序的出现以及它们将语音命令转换为系统操作的能力加速了向基于语音的HMI的迁移。这些快速的进步为依赖关键短语检测的智能家居解决方案打开了大门。如今,用户可以要求Alexa通过互联网订购产品,打开灯,锁门,设置家庭恒温器,甚至给草地浇水。

通常,这些支持语音的 HMI 执行识别云中关键短语所需的计算。在许多情况下,设计人员将他们的应用程序插入到像亚马逊的Alexa这样的预先存在的基础设施中。但是,这种发展战略面临几个限制。首先是成本。在云中的服务器上运行关键短语检测算法的解决方案必须在每次访问云中的资源时按分钟付费。此外,构建基于云的边缘解决方案的开发人员必须向 NRE 支付费用,以针对特定设备训练其解决方案,然后为他们发布的每个解决方案支付版税。将设计插入预先存在的基础设施的设计人员将看到他们的成本上升,因为他们转向Wi-Fi模型,该模型需要更强大的处理器来获取数据,分析数据,将其发送到边缘设备,并通过Wi-Fi收听命令。

此外,依赖互联网连接会带来额外的风险。如果连接中断,使用互联网连接将数据传输到云可能会导致服务中断。通过互联网传输数据也会带来潜在的黑客攻击风险。从用户的角度来看,互联网连接为侵犯隐私和安全问题打开了大门。依赖于直接位于设备上的计算资源的边缘解决方案可避免这些潜在问题。

二、新方法

本文探讨了一种不同的方法,可为位于网络边缘的设备提供低成本的关键短语检测。利用在开发高度准确、紧凑和低成本的二值化神经网络(NN)模型方面取得的进展,以及新一代极低功耗现场可编程门阵列(FPGA)的改进,设计人员现在可以构建关键短语检测解决方案,在边缘执行所有计算,从而消除与云连接的NN关键短语检测实现相关的连接性、安全性和隐私问题。

通过在本地执行关键短语检测,与基于云的解决方案相比,此设计策略可显著节省成本。它也不依赖于其他生态系统来运行。如果基于云的解决方案中的互联网连接失败,则系统将失败。基于边缘的本地解决方案不会冒此风险。安全和隐私问题不是威胁。本地解决方案更易于用户设置和运行。最后,使用莱迪思的超低功耗iCE40 Ultra Plus FPGA,这种方法为设计人员提供了显著的省电功能,这是电池供电器件中的一个重要考虑因素。例如,本演示中描述的解决方案仅消耗7 mW。

将经济实惠的智能家居应用推向边缘的一个关键步骤是开发能够在低密度、低功耗FPGA上运行的二值化NN模型。在云中使用浮点计算的深度学习技术对于边缘的消费者应用程序是不切实际的。相反,设计人员必须开发计算效率高的解决方案,既要满足精度目标,又要符合消费市场的成本、尺寸和功耗限制。因此,在边缘操作的设计人员必须使用尽可能少的位的数学。

设计人员可以简化计算的一种方法是从浮点数切换到定点数甚至基本整数。通过补偿浮点到定点整数的量化,使用二值化NN的设计人员可以开发出训练速度更快、精度更高的解决方案,并提高定点、低精度整数NN的性能,接近浮点版本的水平。要构建简单的边缘设备,训练必须创建具有 1 位权重的 NN 模型。这些模型称为二值化神经网络 (BNN)。

通过使用 1 位值而不是较大的数字,BNN 可以消除乘法和除法的使用。这允许使用异或和爆裂计数计算卷积,从而产生显着的成本和高达16倍的节能。借助当今的 FPGA,设计人员拥有了一个高度灵活的平台,可提供他们所需的所有内存、逻辑和 DSP 资源。

三、国家实施

下面的讨论描述了一个关键短语检测解决方案的示例,该解决方案专为边缘应用而设计,并在具有BNN软核的iCE40 UltraPlus FPGA中实现。在正常操作期间,关键短语检测实现在功耗低于 1mW 的情况下侦听声音。一旦系统检测到声音,它就会激活 1 秒的缓冲,并调用 BNN。BNN直接在原始输入上运行,而不是在传统的频谱图和MFCC预处理上工作。代表 1 秒音频的 16K 原始样本经过重叠的 1D 卷积层,变成 30 张 32x32x3 图像,每张图像代表一个 10 毫秒的音频样本。然后将输出传递到主 BNN 进行处理。

智能手机

BNN有四层深,每层执行如下图所示的功能:

智能手机

二进制卷积是输入数据和 1 位权重的 1 位乘法。在这种情况下,乘法被异或函数所取代。批量规范化和缩放使激活规范化,并在 BNN 训练阶段提供帮助。整流线性单元 (ReLu) 将低于特定阈值的数据设置为 0,高于相同阈值的数据设置为 1。对图像的相邻像素的每个像素执行池化,并选择概率最高的有意义像素。此函数可减少后续步骤中所需的计算量。全连接层通常是最后一层,它需要前一层中的每个神经元。它对下一层的神经元也有一定的权重。此函数的计算成本通常很高,因此它是作为神经元明显较少的最后一次操作执行的。

BNN使用GPU进行训练,并运行标准训练工具,如咖啡馆和张量流。使用的训练数据集是一个公共训练集,其中包含 65,000 个一秒长的话语,其中包含 1000 多人的 30 个短词。此阶段称为训练阶段。然后,训练工具的输出通过莱迪思半导体的NN编译器工具进行格式化,以供FPGA设计使用。您可以将权重视为在边缘硬件推理期间要使用的关键短语的模板。选择的关键短语是“七”。

四、系统实施

为了演示系统的功能,工程师们将 HiMax HM01B0 UPduino 扩展板与 iCE40 超增强型 FPGA 配合使用。这是一款低成本的 Arduino 板块,旨在演示 FPGA 的功能。该板有两个直接连接到 FPGA 的 I2S 麦克风、用于 FPGA 设计的外部闪存和权重激活存储。它还具有LED,用于指示关键短语的检测。用户可以直接对着麦克风讲话。一旦检测到关键短语,LED就会亮起。

智能手机

五、性能

在此应用中,FPGA设计频率和处理长度可以换取功耗。在 27MHz 频率下,16K 原始采样(相当于 1 秒的音频处理)可在 25ms 内处理,而功耗为 7.7mW。当频率降至13.5MHz时,功耗降至4.2mW,并在50ms内处理相同的1秒音频样本。

关键短语检测通常必须在嘈杂的环境中运行,而无需添加额外的硬件来消除噪声和回声。该实现通过使用包含噪声背景的数据集来训练 NN 来实现这一目标,而无需进行定位和波束成形。经过训练的NN像人类一样检测关键词,具有类似的局限性。添加了具有各种随机人群噪音水平(咖啡馆,会议等)的数据集,并带有关键短语。使用更高噪声级别训练的 NN 对噪声的鲁棒性更强,但需要更响亮的关键短语。

BNN 可以检测多达 10 个 1 秒的关键短语,使其成为通过语音进行 HMI 的理想选择。为了提高检测精度,仅当发生连续检测时,才使用时域滤波器来报告关键短语检测。该设计为单个关键短语提供高达 99% 的准确率,为多达 5 个关键短语提供高达 90% 的准确率。

六、结语

将AI带到边缘会带来几个重大挑战。但是,它也提供了巨大的机会。正如该项目所表明的那样,使用实现BNN而不是基于云的资源的FPGA将AI构建到设备中可以显着降低硬件成本,同时加快响应时间。同时

审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分