Arm Cortex MCU上的Fluent.ai高效多语言语音识别和理解

作者 : IT 大叔 本文共3309个字,预计阅读时间需要9分钟 发布时间: 2020-08-4

Arm Cortex MCU上的Fluent.ai高效多语言语音识别和理解插图

***此博客中的所有内容均由Fluent.ai的 Vikrant Tomar,Sam Myer和Kirsten Joe 撰写 ***

近年来,深度学习和相关的人工智能AI)技术的兴起助长了我们周围设备中语音用户界面的泛滥。此类设备的示例包括Siri,Google Home和Amazon Alexa。但是,当前大多数设备都已连接互联网,并引起隐私问题。脱机处理语音数据将使这些设备能够尊重用户隐私,同时最大程度地减少延迟。Fluent.ai正在进行的工作旨在通过优化复杂的语音识别和理解低功耗设备(例如Arm Cortex-M系列)的模型来实现这一目标。

语音识别技术由于对计算的高要求,传统上一直依赖于云计算。这些系统通常遵循两步过程。首先,他们将用户语音转录为文本。然后他们使用自然语言处理(NLP)来导出含义。虽然这种方法具有能够通过Internet进行搜索的优点,但它也存在很多缺点。虚拟助理在用户对话中进行侦听时存在隐私问题,无法在无法访问Internet的环境中使用这些技术,以及有限的语言和口音支持。例如,有新闻报道的合同工正在收听连接互联网的虚拟助手用户的私人语音数据。由于这些原因,市场对可在小型设备上离线工作的更灵活,更安全的语音识别解决方案的市场需求不断增长。

这是Fluent.ai要解决的问题:如何将语音识别从云中移除,如何将其嵌入到小型平台上,同时为任何语言,任何重音和任何环境提供高精度和鲁棒性。Fluent.ai专注于下一波语音用户界面,这将由低功率,始终未连接的设备主导。这种类型的设备通常由电池供电,而Arm Cortex-M系列MCU由于具有强大的功能和经济高效的实现方式,因此为它们提供了理想的平台。Fluent.ai低足迹语音理解算法可在包括Arm Cortex-M系统在内的嵌入式系统上完全脱机工作。使用突破性的基于深度神经网络的语音到意图技术,Fluent.ai解决方案将用户语音直接映射到他们的预期动作。

这种仅声学的方法具有多个优点。生成的模型更小,端到端优化。这将导致模型更小但精度更高且噪声更强。此外,这种方法使Fluent.ai能够以任何语言快速开发模型,从而减少了合作伙伴的上市时间和成本。最后,Fluent.ai开发了业内唯一可以同时识别多种语言的真正多语言模型。此功能使用户无需在两种语言之间进行配置即可在各种语言之间无缝切换。

Fluent.ai提供两种主要产品线:WakeWord和Fluent.ai Air——用于自动意图识别。总之,Fluent.ai语音到意图航空模型的独特语音提供了完全脱机,低功耗和低延迟的语音理解系统,可以对它们进行培训,以在一个小的空间内识别任何语言,口音以及语言和口音的组合软件模型。

流利的µCore和主要功能

Fluent µCore是Fluent.ai专有的推理引擎,它建立在Arm CMSIS-DSP和CMSIS-NN库的顶部。Fluent µCore针对低占用空间的设备和低延迟进行了优化。Fluent µCore包含多项创新,例如用于优化代码大小的选择性编译,量化网络权重(从32位浮点数到8位整数)以及使用流式NN计算进行实时处理。

Fluent µCore由Fluent WakeWord引擎(WW)和自动意图识别(Air)引擎组成。流利的WW会持续聆听一个或多个唤醒短语。传入的音频通过特征提取和WakeWord神经网络进行流传输,以检测音频是否包含唤醒短语。当检测到唤醒短语时,µCore将开始侦听用户的命令或查询,例如“关灯”。在此阶段,通过意图识别神经网络评估输入语音。如果意图网络检测到用户已经说出有效意图,则系统输出用户意图的表示。

Arm Cortex MCU上的Fluent.ai高效多语言语音识别和理解插图(2)

图1. Fluent WakeWord引擎(WW)和自动意图识别(Air)引擎

建立一个总是倾听的低功率语音理解系统的主要挑战之一是实时处理语音或语音。在训练期间,整个话语都是可用的,并且话语的长度是有限的并且提前知道。但是,在微控制器上进行推理时,音频数据以一次一帧的形式在流中接收。这引入了独特的问题,例如,必须将解码时间最小化才能获得良好的用户体验。连续收听时,音频没有固定的长度或预定的结尾。通常必须通过在重叠的窗口中应用网络,才能在不确定的持续时间内计算神经网络。任何推理算法都必须能够有效地做到这一点,同时保持与训练期间相同的准确性。此外,在GPU上进行训练时,专为批处理而设计,整个网络的话语激活可以存储在内存中。但是,内存是微控制器上的稀缺资源,因此无法存储整个网络的激活信息。

处理此类无界时间数据的一种潜在方法是单向递归神经网络(RNN)。但是,RNN可能需要大量计算。卷积网络的计算效率更高,但是现有库中的卷积主要是针对图像识别而不是像语音这样的时间数据进行设计的。Fluent µCore旨在解决这些问题。它使我们能够在流功能上处理神经网络。Fluent µCore利用Arm的CMSIS-NN库在Arm平台上利用汇编程序优化。此外,Arm CMSIS-NN是具有Apache 2.0许可证的开源软件,也使其成为在其他平台上使用的理想选择。Fluent µCore以模块化方式构建,因此可以根据需要轻松地将基础CMSIS库更改为更新版本。

神经网络中的每一层都表示为一个对象,具有权重数组,激活缓冲区和处理功能。在Arm Cortex芯片上,可以根据需要从闪存加载砝码。处理功能将单个音频帧的矢量作为输入,执行计算,更新其缓冲区,并发出输出矢量。然后可以将这些层组合在顺序网络中。

Arm Cortex MCU上的Fluent.ai高效多语言语音识别和理解插图(4)

图2. Fluent µCore和CMSIS-NN

在对流数据执行卷积或池化之类的窗口化操作时,我们只需要保留一个宽度等于内核宽度的缓冲区即可。这种方法极大地减少了内存使用,因为我们不需要为整个话语保留功能和激活,而只需要保留最新的帧。同样,该方法不需要卷积网络具有固定的输入大小。通常,将卷积网络应用于时间序列时,需要将整个网络重复应用于重叠的窗口,从而导致冗余操作。流解码消除了对这些冗余计算的需求,从而潜在地节省了CPU周期。由于在用户说出语音时不断进行处理,因此该方法的解码时间也较短。

 

Arm Cortex MCU上的Fluent.ai高效多语言语音识别和理解插图(6)

图3使用Fluent µCore和的Fluent WakeWord模型的比较。适用于微控制器的Tensorflow Lite。

为了研究Fluent µCore和Arm CMSIS的有效性,我们使用唤醒词识别模型将µCore与微控制器(tflite-micro)的Tensorflow Lite进行了基准比较。该原型模型是由Fluent设计的,是一个150kb,具有多个卷积层的8位量化网络。Fluent流解码每80毫秒产生一次输出。比较结果如图3所示。

我们以两种方式测试了tflite-micro:以80ms的间隔应用窗口,以及以400ms的间隔应用稍大的窗口。较大的间隔需要较少的计算,但是要付出更高的等待时间。当用户说出唤醒字时,他们将必须等待多达400毫秒才能使系统做出反应。无论哪种情况,将激活存储在µCore中所需的RAM量都是TFLite所需RAM的一小部分。此外,即使使用400毫秒的间隔,tflite-micro也需要超过三倍的CPU周期。总之,Fluent µCore较小的内存和MIPS要求使得可以在内存和CPU受限的设备上运行功能更强大的网络。这可以降低我们的OEM / ODM合作伙伴和最终用户的成本。

Fluent.ai嵌入式语音识别软件是使用Arm处理器的消费类电子设备的理想解决方案。Fluent µCore的高能效以及我们机器学习算法固有的隐私保护特性,使其非常适合家庭和办公室中的智能设备。智能手表,健身追踪器以及诸如微波炉,洗衣机,空调和工厂机器人自动化等智能家用电器都是Fluent.ai语音理解技术目标应用的主要示例。此外,Fluent能够将多种语言构建为一个模型,这意味着用户在与设备进行交互时可以在多种语言之间无缝切换,而无需在两者之间配置语言设置。这还可以节省成本,简化业务,和我们的OEM和ODM合作伙伴的市场优势。他们不仅可以使用单个SKU解决方案来应对多个市场,而且还可以毫不费力地应对高语言密度的市场。

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » Arm Cortex MCU上的Fluent.ai高效多语言语音识别和理解

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论