• 方案介绍
  • 相关推荐
申请入驻 产业图谱

【代码库】基于 i.MX RT106V 的智能语音用户界面解决方案

09/04 10:27
471
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

基于 i.MX RT106V 的智能语音用户界面解决方案

这款恩智浦 EdgeReady 解决方案适用于本地和在线语音控制,它采用 i.MX RT106V 跨界 MCU,并集成语音智能技术 (VIT) 语音转意图 (Speech to Intent),为非接触式应用提供自然的语音用户界面。这款超小尺寸、可立即投入生产的硬件设计配备了基于 FreeRTOS 的全集成软件,可快速进行开箱即用的评估和概念验证开发。

这款交钥匙解决方案可最大限度地缩短上市时间、降低风险并减少开发工作量,使 OEM 能够轻松地为其智能家居智能家电产品添加语音功能。

恩智浦 EdgeReady 解决方案是 EdgeVerse? 边缘计算平台的一部分。

2024 年 10 月的软件更新支持 Wi-Fi 连接,并整合了面向物联网设备的 Matter 互操作性标准以及恩智浦专有的语音转意图 (S2I) 自然语言语音控制技术,适用于边缘计算。

通过此次升级,开发人员现在可以使用 RT106V 设计与 Matter 连接的物联网节点,并使用自然语音命令控制系统中的任何节点。

板材:定制板材

类别:语音、音频、HMI、RTOS、用户界面

外设:USB、UART、SPI、SDMMC、SDIO、SAI、PWM、I2S、GPIO、FlexIO、FLASH、DMA、时钟

工具链:MCUXpresso IDE V11.10.0 或更高版本

目录

  1. 软件
  2. 硬件
  3. 设置
  4. 结果
  5. 常见问题解答
  6. 支持
  7. 发行说明
  8. 已知问题

1.软件

  • MCUXpresso 11.10.0
  • MCUXpresso RT1060 EVKC 2.16.0 SDK
  • Cyberon Dspotter 建模工具 V2(最新测试版本为 2.2.19.1)
  • 串行连接软件(Putty、Tera Term、MobaXterm等)

2.硬件

  • SLN-SVUI-IOT板
  • USB Type-A 至 Type-C(应包含在开发套件盒中)
  • 用于烧写或调试的 J-link(带 9 针适配器,如下所示)

3. 设置

该项目包含恩智浦智能语音UI解决方案的全部源代码
有关智能语音UI的更多入门和运行信息,请参阅智能语音UI入门指南

3.1 步骤 1

下载 MCUXpresso 11.10.0

  • 转到此URL:https://www.nxp.com/mcuxpresso/ide
  • 点击“下载”橙色按钮
  • 转到“MCUXpresso集成开发环境(IDE)”部分,然后单击“下载”
  • 如果您尚未登录,系统可能会要求您登录 NXP 帐户
  • 登录后,您将看到产品信息。点击“MCUXpresso IDE”链接
  • 同意“软件条款和条件”,即可访问下载链接

3.2 第 2 步

下载 MIMXRT1060-EVKC v2.16.0 SDK

  • 在“搜索硬件”中输入 RT1060 EVKC
  • “MIMXRT1060-EVKC”板应出现在结果中

  • 点击棋盘
  • 在屏幕右侧,您应该看到“Build SDK”按钮
  • SDK 版本应为 2.16.0(如果默认未选择)

  • 如果尚未选择,请选择“MCUXpresso IDE”作为工具链
  • 点击页面底部的“构建 SDK”按钮

  • SDK 可能会显示正在构建一段时间
  • 准备就绪后,即可在 MCUXpresso SDK 仪表板中下载

3.3 步骤 3

在IDE中安装SDK

  • 打开 MCUXpresso IDE
  • 如果是第一次打开该工具,会显示“欢迎”页面。您可以关闭它

  • 您现在应该能够看到“已安装的 SDK”视图
  • 要安装之前下载的 SDK,请将 zip 文件拖放到此 IDE 视图中
  • 下面是安装 SDK 后视图的示例

  • 系统将要求您确认 SDK 安装,请按“确定”

3.4 步骤 4(可选,仅当使用 DSMT 时)

下载 Cyberon DSpotter 建模工具 v2,版本 2.2.19.1

  • 转到此网址: https://tool.cyberon.com.tw/DSMT_V2/index.php?lang= en
  • 向下滚动直至到达“下载”部分
  • 点击下载v2.2.19.1

3.5 步骤 5

下载 Ivaldi 工具

使用预配置的 Ivaldi 更新到最新的二进制文件

  • 在开始定制示例之前,我们需要确保我们有正确的设置并且主板正在运行最新的 NXP 软件。

使用预配置的 Ivaldi

  • 预配置的 Ivaldi 是一款即用型工具,专门设计用于简化主板更新过程
  • 它也可以用作制造工具
  • 它在tools/Ivaldi_updater文件夹中可用
  • 下载文件夹后,预配置的 Ivaldi 的内容应如下图所示:

  • 在 ImageBinaries 文件夹中,您可以找到:
    • 应用程序的图像(bootstrap、bootloader、localdemovit 和 localdemodsmt)
    • 将在闪存中编程的音频文件
    • 运行脚本时,包含音频文件(file

    system)的二进制文件会自动生成并添加到文件夹中

笔记

开发板通电时请勿移动跳线

  • 关闭开发板电源后,将跳线J61连接至引脚 2 和 3(朝向按钮),使开发板处于串行下载器模式

  • 将 USB Type-C 连接器插入 SLN-SVUI-IOT 板,将 USB Type-A 连接器插入计算机
  • 启动上面选择的FLASHSVUIBOARD.bat脚本
  • 输出应如下所示:

  • 更新完成后,断开电路板,将跳线移至初始位置(连接引脚 1 和 2 - 朝向扬声器)并重新启动电路板

3.6 步骤 6(可选,仅当您想使用 MSD 进行更新时)

MSD 更新

从 axf 生成二进制文件

  • 选择并构建项目。

  • 右键单击生成的.axf文件
  • 转到二进制实用程序 -> 创建二进制文件

  • 右键单击相同的 .axf 文件,然后转到实用程序 -> 在此处打开目录浏览器

  • 您现在可以使用生成的 .bin 进行 MSD 更新

进入 MSD 模式

  • 要将设备置于 MSD 模式,请在电路板启动时按住开关 2 (SW2)(断开电源,按下 SW2,重新插入电源线)
  • LED 应亮粉色,每隔 3 秒亮一次,然后熄灭
  • 然后应该已经安装了新的驱动器
  • 复制 - 粘贴或拖放生成的二进制文件,就像使用记忆棒一样
  • 蓝色LED灯将开始闪烁。当该过程结束时,绿色LED灯将闪烁一次

3.7 步骤 7

串行终端设置

3.8 步骤 8

下载项目库

SVUI 项目中使用的所有库均可在nxp.com解决方案页面的slnsvuiiotlibs.zip文件中找到。下载后,解压库并将其添加到libs文件夹中所需项目 slnsvuiiotlocaldemo 或 slnsvuiiotaec_demo 中。

添加文件后, slnsvuiiotlocaldemo/libsslnsvuiiotaecdemo/libs的内容应如下图所示:

3.9 步骤 9

DSMT 生产和评估库

笔记

对于 DSMT 集成,包含 2 个库:生产 libslnasr 和评估 libslnasr。

slnasrproduction lib与其余库一起位于slnsvuiiot_libs.zip文件内。

slnasrevaluation lib 需要从nxp.com上的解决方案页面单独下载。

生产库仅适用于 RT106C。

该开发套件基于 RT106V。

为了使 DSMT 项目在 RT106V 上运行,必须使用评估 libslnasr。

该库必须仅用于评估而不能投入生产,因为这将破坏重新分发条款。

为了与生产 libslnasr 链接,必须:

  1. 将 libslnasrproduction.a 复制到 slnsvuiiotlocaldemo/libs 文件夹中。
  2. 右键单击 slnsvuiiotlocaldemo MCUXpresso 项目,选择属性 -> C/C++ 构建 -> 设置 -> MCU 链接器 -> 库。
  3. 添加 slnasrproduction 条目。
  4. 构建 DSMT 项目。

当使用 libslnasrproduction.a 进行 RT106C 投入生产时,请不要忘记在 app.h 中将 USEDSMTEVALUATION_MODE 设置为 0。

为了与评估 libslnasr 链接,必须:

  1. 将 libslnasrevaluation.a 复制到 slnsvuiiotlocaldemo/libs 文件夹中。
  2. 右键单击 slnsvuiiotlocaldemo MCUXpresso 项目,选择属性 -> C/C++ 构建 -> 设置 -> MCU 链接器 -> 库。
  3. 添加 slnasrevaluation 条目。
  4. 构建 DSMT 项目 -> 现在它应该可以在智能语音开发套件上成功运行。

3.10 步骤 10

VIT 语音到意图和命令库

笔记

VIT 提供两种类型的语音检测引擎:一种用于仅检测预定义命令,另一种能够检测意图,从而提供更大的灵活性。

解决方案页面nxp.com上的slnsvuiiot_libs.zip文件中包含以下 VIT 库:

  • 适用于slnsvuiiotlocaldemo的 VITCM7Productionv0603_01 ,带有语音转意图引擎
  • 适用于slnsvuiiotlocaldemo的 VITCM7v040801 ,带有 VIT 引擎
  • 用于slnsvuiiotaecdemo的 VITCM7v041000

笔记

slnsvuiiotlocaldemo项目中的模型最初是为 VITCM7v040801 库版本创建的。因此,我们在slnsvuiiotlocaldemoslnsvuiiotaecdemo项目中使用了不同的库。

根据所需的演示和引擎组合,用户需要从解决方案页面下载特定的库,然后按照以下步骤操作。

为了链接语音到意图 VIT 库,必须:

  1. 将 VITCM7Productionv060301.a 复制到 slnsvuiiotlocal_demo/libs 文件夹中。
  2. 右键单击要使用语音到意图 VIT 库的项目,即slnsvuiiotlocaldemo MCUXpresso 项目,选择属性 -> C/C++ 构建 -> 设置 -> MCU 链接器 -> 库。
  3. 如果其他 VIT 库已存在条目,请将其替换为 VITCM7Productionv060301。否则,只需添加 VITCM7Productionv060301 条目即可。
  4. 在 app.h 中选择 S2I ASR 并构建项目。

为了链接命令 VIT 库,必须:

  1. 将 VITCM7v040801.a 复制到slnsvuiiotlocaldemo中,或将 VITCM7v041000.a复制到slnsvuiiotlocaldemo/libs 文件夹中。
  2. 右键单击要使用命令 VIT 库的项目,slnsvuiiotlocaldemoslnsvuiiotaecdemo MCUXpresso 项目,选择属性 -> C/C++ 构建 -> 设置 -> MCU 链接器 -> 库。
  3. 如果其他 VIT 库已有条目,请将其替换为slnsvuiiotlocaldemo的 VITCM7v040801 或slnsvuiiotaecdemo**的 VITCM7v041000 。否则,只需为每个演示添加相应的条目即可。
  4. 在app.h中选择VIT ASR并构建项目。

笔记

我们鼓励您在生成新模型时始终使用最新的 VIT 库。

3.11 第 11 步(可选,仅当您想使用 Visual Studio Code 时)

使用 Visual Studio Code 导入、构建和调试智能语音项目

VS Code + MCUXpresso 扩展的先决条件:

  1. 从官方网站下载并安装 VS Code
  2. 按照此处的指南安装 MCUXpresso 扩展的依赖项。
  3. 从网络市场或通过 VS Code 内置市场下载并安装 MCUXpresso 扩展。

完成设置后,您现在可以直接在 VS Code 中导入、构建和调试 slnsvuiiotlocaldemo 项目(或任何其他示例):

  1. 导入slnsvuiiotlocaldemo项目。
  2. 系统将要求您选择一个工作区文件夹。该扩展程序通过将项目复制到工作区来工作。
  3. 选择所需的工具链。

  1. 将 libs 文件夹添加到工作区中的项目(副本)中。
  2. 选择您想要的构建配置。

  1. 构建项目。

  1. 调试项目。首次调试时,J-Link 会询问设备类型,请选择 MIMXRT1062XXX6B。

  1. 使用 VS Code 调试器选项卡导航项目。

4.结果

本节包含不同 VIT 和 DSMT 实现的示例。

S2I

维生素

DSMT

通用输入输出

5. 常见问题解答

5.1 SVUI 的 CPU 使用率是多少?

  • NXP VIT,3 x 12S 麦克风

  • Cyberon DSMT Level 1 型号,3 个 I2S 麦克风

  • NXP 语音转意图,2 个 PDM 麦克风

  • NXP 语音转意图 + AEC,2 个 I2S 麦克风

  • NXP VIT + AEC,2 个 I2S 麦克风

  • Cyberon DSMT 4 级型号 + AEC、2 个 I2S 麦克风

5.2 SVUI 的内存使用量是多少?

5.3 SVUI S2I + Matter 的 CPU 使用率是多少?

5.4 SVUI + Matter 的内存使用情况是多少?

5.5 SVUI 的功耗是多少?

关于我们的智能语音解决方案的功耗:

  1. 我们利用 Voice Seeker 的 VAD 功能,在一段时间不活动后进入低功耗状态。在我们最新的代码库中,10 秒不活动后即可进入低功耗状态。
  2. 在低电量期间,我们会绕过 ASR 处理。
  3. 我们将 I2S 实现从 528MHz 切换到 66MHz,将 PDM 实现从 528MHz 切换到 75MHz(对于 PDM 情况,我们需要更多的 MIPS,因为抽取是在软件中完成的)。
  4. 我们备份最新的 450 毫秒的音频,进入正常运行模式后我们首先处理这些音频。

通过这些优化,我们得到以下内容(针对整个电路板,而不仅限于 MCU):

  • 正常运行模式为 320mW
  • 低功耗模式为 160mW

SOC(RT106V)的功耗与常规 RT1062 相同。基于 AN12245:

在528MHz频率下,25摄氏度时的最小功耗为174mW。75MHz频率下的预计最小功耗为30-40mW。

5.6 SVUI的识别结果如何?

搭载 NXP VIT S2I:唤醒词识别:在安静、外部厨房噪音和外部音乐噪音测试中,可理解 99% 以上的唤醒词。表情识别:在安静和外部厨房噪音测试中,可识别 98% 以上的表情。在外部音乐噪音测试中,可识别 84% 以上的表情。误触发:24 小时英语新闻播放中误触发 5 次。

搭载 NXP VIT:唤醒词识别:静音状态下可理解唤醒词 97%,外部厨房噪音状态下可理解唤醒词 96.5%,外部音乐噪音状态下可理解唤醒词 96%。指令识别:静音状态下可识别唤醒词 96.5%,外部厨房噪音状态下可识别唤醒词 96%,外部音乐噪音状态下可识别唤醒词 89%。误触发:24 小时英语新闻播放中误触发 6 次,24 小时德语新闻播放中误触发 6 次,24 小时法语新闻播放中误触发 1 次,24 小时中文新闻播放中误触发 6 次。

6. 支持

如果您对此代码有任何疑问或反馈,请联系 NXP 支持或在我们的社区https://community.nxp.com/上发帖。

项目元数据

类别徽章 类别徽章 类别徽章 类别徽章 类别徽章

周边徽章 周边徽章 周边徽章 周边徽章 周边徽章 周边徽章 周边徽章 周边徽章 周边徽章 周边徽章 周边徽章 周边徽章 周边徽章

工具链徽章

有关此示例的内容/正确性的问题可以作为此 GitHub 存储库中的问题输入。

来源:恩智浦appcodehub

恩智浦

恩智浦

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。

恩智浦半导体创立于2006年,其前身为荷兰飞利浦公司于1953年成立的半导体事业部,总部位于荷兰埃因霍温。恩智浦2010年在美国纳斯达克上市。恩智浦2010年在美国纳斯达克上市。恩智浦半导体致力于打造全球化解决方案,实现智慧生活,安全连结。收起

查看更多

相关推荐