如何在资源有限的 MCU 上实现语音用户界面
投稿人:DigiKey 北美编辑
2023-12-14
智能扬声器和其他联网集线器构成了智能家居的核心,方便了用户控制设备和访问互联网。随着这些设备的普及,有两个趋势显而易见:用户更喜欢语音控制,而不是按键或复杂的菜单系统;由于担心隐私问题,用户对持续的云连接越来越不适应。
然而,一个强大而安全的语音用户界面 (VUI) 通常需要强大的硬件和复杂的软件来进行语音识别。否则很可能导致性能低下和用户体验不佳。此外,许多智能扬声器和集线器都是由电池供电的,因此必须在严格的电力预算范围内实现 VUI。对于缺乏语音界面经验的开发人员来说,这样一个雄心勃勃的项目可能会令人望而生畏。
为此,芯片制造商推出了一种基于音素的技术,大大降低了处理要求。这是一款高精度、高效率的 VUI 软件,可在熟悉的 32 位微控制器 (MCU) 上运行,并受到易于使用的设计工具支持。
本文首先介绍了 VUI 面临的挑战和使用案例。然后介绍了易于使用的商业 MCU 应用软件和适合互联家居应用的基于本地音素的 VUI 软件。文章最后向开发人员展示如何使用 Renesas MCU、VUI 软件和评估套件启动 VUI 项目。
构建 VUI 面临的挑战
VUI 是一种语音识别技术,可通过语音指令与电脑、智能手机、家庭自动化系统或其他设备进行交互。在经历了早期的工程挑战后,该技术已经成熟,成为一种可靠的控制界面,目前广泛应用于智能扬声器和其他智能家居设备。VUI 的主要优势在于其便利性:在语音范围内的任何地方都能进行即时控制,无需使用键盘、鼠标、按钮、菜单或其他界面来输入指令(图 1)。
图 1:VUI 技术因其方便、灵活,已在家庭和智能楼宇中广泛采用。(图片来源:Renesas)
VUI 的缺点就是其复杂性。传统技术依靠用特定字词对模型进行长时间的训练。但自然语言处理与词序无关,需要大量的开发工作和强大的计算能力才能实时运行。这拖慢了 VUI 的广泛运用。
现在,一种新技术简化了 VUI 软件,可以让其在小型、高效的微控制器 (MCU) 上运行,如 Arm® Cortex®-M 器件。这种技术所依赖的事实依据是,每句话中的所有单词都是由称为音素的语言声音组成的。音素数量远远少于单词数量;英语有 44 个,意大利语有 32 个,而传统的夏威夷语只有 14 个。如果 VUI 使用由 200 个单词组成的英语指令集,那么每个单词都可以从 44 个单词中分解出与之相关的音素。
在 VUI 软件中,每个音素都可以用数字代码(或“标记”)来识别,用各种标记组成语言。将单词存储为声音需要大量的计算资源,占用的存储空间远大于存储为标记的音素。按照预期的顺序处理音素标记(以及指令词)进一步简化了计算,并使 VUI 软件能够在本地适中的 MCU 上运行(图 2)。
图 2:用音素表示单词需要很少的微控制器资源。(图片来源:Renesas)
这意味着,通过使用音素实现的软件效率可以使处理过程在本地运行。不需要云处理,就意味着不需要持续的互联网连接,而互联网连接也会带来用户隐私和数据安全问题。
Renesas 作为其生态系统的一部分展示了一个基于音素原理的商用 VUI 软件包。这款名为 Cyberon DSpotter 的软件创建了一种 VUI 算法,其精简程度足以在配备 Arm Cortex-M4 和 M33 内核的 Renesas RA 系列 MCU 上运行。
使用 Cyberon DSpotter 进行开发
Cyberon DSpotter 建立在音素和音素组合库的基础之上。这是一种替代方法,传统方法为了识别特定单词需要进行计算量巨大的训练。开发人员可以使用 DSpotter 建模工具将单词分解为音素,然后将其表示为标记。
DSpotter 是一款嵌入式(非云)软件,可用作本地语音触发器和指令识别解决方案,具有强大的降噪功能。它消耗的资源极少,准确性极高。根据所选 MCU 的不同,还可实现安全数据传输。
DSpotter 会查询每个指令单词或短语,并将其分解为音素。然后,VUI 的指令集和支持数据会被内置到一个二进制文件中,开发人员会将该文件与 Cyberon 库一起放入项目中。该库和二进制文件一起用于 MCU,以支持对所需语音指令的识别。
DSpotter 工具可创建“指令集”,开发人员的程序可将这些指令集逻辑连接起来,以创建不同级别的 VUI。这样就可以发出多级指令,例如“请把灯泡调到高亮”:指令词语是“灯泡”,后跟“调到”和“高亮”。一个组中的每个指令都有自己的索引,一个级别中的每个指令也有自己的索引(图 3)。
图 3:DSpotter 工具允许创建“指令集”,开发人员的程序可将这些指令集逻辑连接起来,以创建不同级别的 VUI。(图片来源:Renesas)
DSpotter 库处理传入的声音,并搜索与数据库中指令相匹配的音素。当找到匹配时,它会返回索引和组号。这种安排可以让主应用代码创建一个分层的开关语句,以处理收到的指令字/词。由此产生的程序库非常小,可以安装在只有 256KB 闪存和 32KB SRAM 的 MCU 上。如果有更多存储空间,指令集还可以增长。
开发人员必须认识到,在 VUI 中使用音素法是有局限性的。由于 MCU 的资源相对有限,Cyberon DSpotter 只能进行语言识别,而非语音识别。这意味着软件无法进行自然语言处理。因此,如果指令字不按逻辑顺序排列(例如,用“高亮”、“灯泡”、“调为”代替“灯泡”、“调为”、“高亮”),系统将无法识别该指令,并将重置回顶层。
一个设计建议是在 VUI 中添加一个视觉指示器(如 LED 灯),当处理器认为自己处于指令集顶层时,指示器会提示用户按逻辑顺序重新下达指令(图 4)。
图 4:Cyberon DSpotter 的简约性要求指令必须遵循逻辑顺序,否则将无法识别。(图片来源:Renesas)
使用受限资源运行非云 VUI
Cyberon DSpotter 的高效率使之能够在 Renesas 的 RA2、RA4 和 RA6 系列 Arm Cortex-M MCU 上运行。这些产品在消费、工业和物联网应用领域广受欢迎。它们受到易于使用的设计工具支持,因此无需丰富的编码经验或内部专业知识,就能相对直接地构建一个简单的 VUI。
具体 RA 系列 MCU 选择主要取决于指令的复杂性和 Cyberon 库的大小。所以智能电灯开关只需要适度的指令集和有限的计算能力就能有效工作,可以采用 RA4 系列中的 R7FA4W1AD2CNG。该 MCU 配备了一个电池友好的 48 MHz Arm Cortex-M4 内核,提供 512 Kb 闪存和 96 Kb SRAM 支持。它采用段码式 LCD 控制器、电容式触摸感应单元、低功耗蓝牙无线连接、USB 2.0 全速、14 位模数转换器 (ADC)、12 位数模转换器 (DAC),并且具有安全保障功能(图 5)。
图 5:R7FA4W1AD2CNG MCU 为智能电灯开关等应用构建非云 VUI 提供了充足的资源。(图片来源:Renesas)
诸如智能扬声器之类应用需要更广泛的 Cyberon DSpotter 库和更强大的内核。R7FA6M4AF3CFM 就是一个合适的选择。这款 MCU 属 RA6 系列,采用功能更强大的 200 MHz Arm Cortex-M33 内核,提供了 1 Mb 闪存和 256 Kb SRAM。它具有 CAN 总线、以太网、I²C、LIN 总线、电容式触摸感应装置以及许多其他接口和外设。
RA4 和 RA6 系列分别受到 RTK7EKA4W1S00000BJ 和 RTK7EKA6M4S00001BE 评估板支持,开发人员可以利用这两款评估板训练 MCU 的能力。每个评估板都有目标 MCU 和板载调试器。
Renesas 还提供 VUI 解决方案套件,以加快开发速度。该套件与评估板类似,都包含目标器件和调试器。电路板还配有多个输入/输出接口和四个麦克风:两个模拟麦克风和两个数字麦克风。
使用 VUI 解决方案套件进行开发所需的软件均可在 Cyberon 网站上获取。其中包括免费的 Cyberon DSpotter 建模工具访问权限,以及带有可运行语音指令集的 e2 studio 项目(e2 studio 是基于 Eclipse 的集成开发环境 (IDE),适用于 Renesas MCU)。示例指令集可用作开发自定义语音指令序列的模板。然后就可以使用终端窗口监控系统的反应。创建图 4 所示的 VUI 结构一般需要 15 分钟左右。
针对 Cyberon 软件包的较复杂应用软件设计受到该公司的 Renesas 灵活软件包 (FSP) 支持,该软件包针对的就是使用 RA 系列的嵌入式系统设计。FSP 基于开放的软件生态系统,包括 Azure RTOS 或 FreeRTOS、传统代码和第三方生态系统。它可以在多个集成开发环境(包括e2 studio)中运行。
VUI 的性能如何?
VUI 在安静的实验室中运行良好是一回事,但在背景噪音较大的情况下准确运行又是另一回事。智能扬声器的典型工作环境包括电视或收音机、谈话、其他音乐源以及家庭或社交聚会的一般喧闹声。此外, VUI 还必须应对方言和发音不准。尽管存在这些挑战,但用户期望的性能几乎完美无瑕。
为了提高在困难的监听环境中的性能,在 Renesas RA 系列 MCU 上运行的 Cyberon DSpotter 软件具有抗噪功能,只需占用极少的处理器资源。为了展示其效率,我们使用 Cyberon DSpotter VUI 进行了测试,在 1.5 米和 3 米的距离内,在信噪比为 0、5 和 10 分贝 (dB) 的情况下,测试了各种背景噪音源对监听指令的影响。在所有情况下,VUI 的表现都优于亚马逊 Alexa 基准(表 1)。
|
表 1:Cyberon 支持的 VUI 在各种背景噪声下的指令成功率测试结果。在所有情况下,该 VUI 的表现都优于亚马逊 Alexa 基准。(图片来源:Renesas)
结语
VUI 正迅速成为消费者首选的智能产品控制界面。语音控制方法使用音素作为指令的基础,并采用严格的指令结构,可大幅降低存储和计算要求,使得该技术能够在资源有限的小型 MCU 上本地运行。
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。