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

描述

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

本文将介绍一种专为网络边缘设计的基于 NN 的关键短语检测解决方案。这些二值化型号可在低功耗UltraPlus™ FPGA上运行。本文将讨论当使用包含嘈杂背景(如音乐或聊天噪音)的数据集训练 NN 时,如何在嘈杂环境中使用关键短语检测。在这种情况下,神经网络使用公共数据集进行训练,以检测单词“七”。关键短语检测可用于广泛的应用,而无需个人助理设备。可能的应用包括智能灯开关、智能电视和 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 的性能提高到接近浮点版本的水平。要构建简单的边缘设备,训练必须创建具有 1 位权重的 NN 模型。这些模型被称为二值化神经网络(BNN)。

通过使用 1 位值而不是更大的数字,BNN 可以消除乘法和除法的使用。这允许使用 XOR 和弹出计数计算卷积,从而节省大量成本并节省高达 16 倍的功耗。借助当今的 FPGA,设计人员拥有一个高度灵活的平台,可提供所需的所有存储器、逻辑和 DSP 资源。

三、NN实施

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

存储器

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

存储器

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

BNN使用GPU进行训练,并运行标准的训练工具,如Café和TensorFlow。使用的训练数据集是一个公共训练集,其中包含 1K+ 人 65,000 个 30 个短词的 1 秒长话语。此阶段称为训练阶段。然后,训练工具的输出通过莱迪思半导体的神经网络编译器工具进行格式化,以供FPGA设计使用。您可以将权重视为在边缘硬件上进行推理时使用的关键短语的模板。选择的关键词是“七”。

四、制度实施

为了演示系统的功能,工程师使用了HiMax HM01B0 UPduino扩展板和iCE40 UltraPlus FPGA。这是一款低成本的Arduino外形威廉希尔官方网站 板,旨在展示FPGA的功能。该板具有两个直接连接到 FPGA 的 I2S 麦克风、用于 FPGA 设计的外部闪存和权重激活存储。它还具有 LED 以指示关键短语的检测。用户可以直接对着麦克风讲话。检测到关键短语后,LED 将亮起。

五、性能

在此应用中,FPGA设计频率和处理长度可以用功耗来换取。在27MHz时,16K原始样本相当于1秒的音频处理,可以在25ms内处理,同时消耗7.7mW。当频率降低到13.5MHz时,功耗降至4.2mW,相同的1秒音频样本在50ms内处理完毕。

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

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

六、结语

将 AI 带到边缘带来了几个重大挑战。然而,它也提供了巨大的机会。正如该项目所证明的那样,使用实施BNN而不是基于云的资源的FPGA将AI构建到设备中可以大大降低硬件成本,同时加快响应时间。同时,将处理保持在本地可提高安全性并节省宝贵的带宽和服务器使用成本。

审核编辑:郭婷

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

全部0条评论

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

×
20
完善资料,
赚取积分