当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]语音交互正成为与嵌入式系统互动的越来越流行的方式。通过 DEEPCRAFT™ 语音助手和 PSOC™ Edge E84 AI 开发套件,您可以创建自定义语音指令,这些指令完全在设备上运行,并触发您应用程序中的操作。

语音交互正成为与嵌入式系统互动的越来越流行的方式。通过 DEEPCRAFT™ 语音助手和 PSOC™ Edge E84 AI 开发套件,您可以创建自定义语音指令,这些指令完全在设备上运行,并触发您应用程序中的操作。

本指南将详细介绍完整的开发流程:创建语音助手模型、配置唤醒词和意图、将生成的模型部署到 PSOC™ Edge E84 AI 开发套件中,最后在 MicroPython 中使用该模型。

在 DEEPCRAFT™ 语音助手中创建模型

首先,访问网站并点击“立即开始”,以创建语音助手。登录后,您将进入主页面。接着点击“设计新项目”以开始创建新的语音助手项目。

随后,为您的项目命名并点击“下一步”。

之后会看到一个空白页面。

数字1显示了您可以在草图中“拖放”的节点,您可以将这些节点连接起来。

唤醒词

当您点击某个节点时,右侧将弹出以下窗口。您选择一个感叹词和唤醒词,例如“Hi Infineon”。

唤醒词必须位于您的指令开头。

文本

在“Wakeword”之后,你可以添加用户可以或必须输入的文本。如图所示,你可以选择是否需要此功能。

我这里选择了“设置定时器为”。

变量

你提供的变量应包含别名、数据类型、取值范围和单位。我这里选择了别名为“time”,数据类型为“Integer”,取值范围为“0 到 9”,单位为“分钟”。

意图

最后一个节点必须是“意图”(Intent)。你需要为你的意图命名,我选择了“timer”。

数字2显示了你项目的属性。

唤醒词检测(WWD Settings)

控制唤醒词被识别的难易程度。

•数值越低(10%)= 更严格,系统仅对非常清晰的唤醒词发音作出响应 → 假阳性较少,但偶尔错过唤醒词的风险更高。

•数值越高 = 更灵敏,唤醒词更容易被识别,但也可能更频繁地误触发(例如由于背景噪音或发音相似的词语)。

唤醒词检测最大非语音时间

定义在唤醒词检测过程中,系统允许的最大静止/沉默时间,超过该时间后系统将中止或重新开始检测。如果暂停时间超过此值,系统将不再将其视为连续的语音表达。

自然语言理解敏感度(NLU Sensitivity)

决定系统在将语音文本与预设意图匹配时的“严格程度”。

•数值越低 = 识别意图需要更严格的匹配条件

•数值越高 = 系统可接受更不精确或更多样化的表达方式作为意图匹配

自然语言理解最大非语音时间(NLU Max Non-Speech Time)NLU 最大非语音时间是指系统在识别命令时,允许最长的语音暂停时间,之后系统认为语音输入已结束。

NLU 最大持续时间因子用于定义语音命令的最长持续时间。如果您的应用使用较长的命令,请增加此值;对于较短的命令,通常较低的值就足够了。较高的值还允许用户说话更慢,从而产生更长的语音表达,而较低的值则期望较短且说话更快的命令。

数字3 为您提供了文档、支持、使用条款和隐私政策的链接。

以下是两个示例项目,以便您了解其结构方式。

一个命令通常以唤醒词开始,接着是文本和/或变量,最后映射到一个意图,该意图决定了所需的操作。

当您认为项目已完成时,请点击右上角的“生成”。

几分钟后,您的项目即可准备就绪并可下载。

将模型部署到 PSOC™ Edge E84 AI 开发板

只需一条命令,部署工具即可完成所有操作:安装模型资源、编译 CM55 固件,并将其刷入开发板。

步骤1 — 下载部署工具:

步骤2 — 运行部署命令

只需将 test_gpio_control 替换为您的模型文件夹路径(或导出的 .zip 文件),即可部署自定义模型。

步骤3 — 安装 MicroPython 固件

如果您尚未在 PSOC™ Edge 上安装 MicroPython 软件,现在正是时候进行安装。

您可以按照本指南在您的 PSOC™ Edge AI 设备上刷入 MicroPython。

使用 MicroPython 的语音助手

现在,让我们来解析这段 MicroPython 代码中的核心语音助手逻辑。

意图映射 — 将语音指令与操作关联

这个字典是应用程序逻辑的核心。它将语音助手模型返回的意图索引映射到相应的函数。我这里选择了一个触发定时器的函数,但你可以根据需要选择任意函数。

设置与 CM55 的 IPC 连接

该脚本运行在 CM33 核心(即“主机”),而实际的语音处理,如唤醒词检测和意图识别,则由 CM55 核心完成。语音助手模型类封装了传输层,并提供了语音助手事件接口,使两个核心通过 IPC 进行通信。

启动并运行语音助手

•enable_target() 会开启并启动 CM55 核心——即运行实际 DEEPCRAFT™ 模型的处理器。

•短暂的延迟可确保核心有足够时间完全启动。

•model.start() 发送启动命令(DEEPCRAFT_CMD_START),之后语音助手将激活并开始监听。

事件回调 — 语音交互的核心

此函数是语音助手的核心事件处理程序。每当CM55核心通过IPC报告新事件时,它都会被自动调用。下面我们逐一分析各个分支:

VA_EVENT_READY:在DEEPCRAFT™模型于CM55上完成加载并开始监听唤醒词后立即触发一次。代码会在控制台中确认这一状态,并显示滚动的“KITCHEN TIMER”消息,以视觉方式提示用户:“我已准备就绪——请说出唤醒词。”

VA_EVENT_WAKEWORD_DETECTED:当用户成功说出“Hi Infineon”时立即触发。屏幕将清空并显示“...”,作为系统正在等待后续指令的视觉提示。

VA_EVENT_INTENT:这是最重要的分支,语音实际被转化为具体操作:

•value包含识别出的意图索引(例如,若用户说“三分钟”,则为3),为便于理解,将其重新赋值给intent_idx。

•该索引通过.get()方法在INTENT_ACTIONS字典中查找,如果索引不存在,则会安全地返回None,而非抛出错误。

•一旦找到匹配的函数,便会立即执行——这正是start_timer(3)真正运行的时刻。

•否则,程序不会崩溃,而是打印错误信息。

VA_EVENT_TIMEOUT:当唤醒词后在允许的时间窗口内未说出有效指令时触发。系统将直接返回到空闲的“等待”显示状态,并提示用户重试。

VA_EVENT_STOPPED:当语音助手完全关闭时触发——此时仅记录一条消息,因为程序在此处已结束。

VA_EVENT_ERROR:当CM55语音处理过程中发生错误时触发。在显示屏上显示清晰的“ERR”提示,以便立即发现问题。

else(回退)——安全网:捕获上述未明确处理的任何事件类型,将其记录下来,而不是静默忽略或导致程序崩溃。

主循环

只要模型尚未返回IDLE状态,程序就会一直保持在此循环中。在此期间,所有语音事件(如唤醒词检测、意图识别、超时等)均通过回调函数进行响应。

示例

以下示例演示了如何将语音助手用作厨房计时器。

可以通过如下命令启动计时器:

“嗨 Infineon,设置5分钟计时。”

应用程序启动时,屏幕会以“Hello :)”向用户打招呼。

当语音助手听到“Hi Infineon,将计时器设置为5分钟”后,便会识别指令并开始倒计时。为了演示目的,此示例中的计时器运行速度是实际应用中10倍。

倒计时结束后,屏幕会显示“Done”。

第一步:拆卸LED矩阵

首先,需要将左右两侧的LED矩阵从电路板上拆下。矩阵的具体位置在附图中清晰可见。此步骤需格外小心——LED矩阵的引脚非常敏感,容易弯曲。因此,请缓慢、均匀地操作,切勿倾斜。

第二步:连接线缆

拆下LED矩阵后,接下来需要连接线缆。此步骤必须在安装新LED矩阵前完成,否则之后将无法使用连接器。连接线缆的位置和方式请参考附图。在继续下一步之前,请确保所有线缆均已牢固且正确连接。

第三步:安装并拧紧LED矩阵

正确插入LED矩阵(带线缆的引脚朝左),然后用角落的孔位将其拧紧。使用四颗M3×5螺丝固定,以确保矩阵稳固不松动。当运输箱体或平放时,螺丝可防止矩阵脱落。

第四步:重新安装之前移除的LED矩阵

现在,可以将第一步中移除的两个LED矩阵重新插入到其原始位置。再次操作时请小心谨慎,确保引脚正确对齐后再将矩阵压入到位。

第五步:插入并连接PSOC Edge E84 AI套件

在最后一步,将PSOC™插入指定位置,并用相应的线缆进行连接。如何插入PSOC™以及需要连接哪些线缆,请参考附带的图片。请确保所有连接牢固且正确接好。

第六步:关闭盖子完成组装

最后一步是像下图所示,关闭盖子。

使用0.2毫米厚的前面板盖和0.4毫米厚的后面板盖。

第七步:在设备上刷写代码

您可以从附件中复制粘贴代码,并将其刷写到您的PSOC™ Edge E84 AI套件上。

此外,还需按照本文开头所述的方法,在您的设备上刷写模型。我使用PowerShell执行了该命令。

再见

这涵盖了从设计语音模型,到将其部署到 PSOC™ Edge E84 AI 开发板,再到使用 MicroPython 处理唤醒词和意图的完整工作流程。这种基于事件的架构几乎可以用于任何语音控制应用,无论是切换 GPIO、控制电机,还是在你的开发板上触发更复杂的逻辑。希望这个小技巧能为你用 PSOC™ Edge 构建自己的语音助手项目提供一个坚实的基础。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

Math Toucan Core 是一款掌中大小的数学训练器,基于 M5Stack Core2 和本地 LLM 单元构建。只需轻按一个按钮,它就会生成一道简单的数学题:思考问题,尝试自己解决,待准备就绪后,再按下另一个按...

关键字: 微控制器 大语言模型 嵌入式系统 M5Stack Core2

颜色检测是许多嵌入式系统中的基本任务,从工业分拣设备到智能家居照明和DIY电子设备都广泛应用。在使用如 ESP32 这样的微控制器(MCU)时,通常有两种常见方法:

关键字: 嵌入式系统 传感器 TCS34725

现代嵌入式系统需要在多个处理单元之间实现可靠的通信,同时具备较强的抗故障和信号干扰能力。本项目提出了一种混合通信平台,结合Arduino Pro Micro和Raspberry Pi 4,实现实时的信号生成、传输、处理与...

关键字: 嵌入式系统 Arduino Raspberry Pi 4

我们最近完成了一个项目,将嵌入式系统、定制硬件和移动开发整合到一个专注的设备中:一款完全通过智能手机控制的便携式音频播放器。客户希望这款设备能放置在教堂大厅,甚至用于健身房会员的定制自动售货机——它是一款低成本、耐用的设...

关键字: 嵌入式系统 音频播放器 ESP32

嵌入式系统中的并发性允许多个任务在同一系统内运行。在本项目中,使用RT-Spark开发板上的定时器中断和任务调度机制来管理不同任务,并高效响应各种事件。

关键字: 嵌入式系统 定时器 RT-Spark开发板

引言:微控制器广泛应用于嵌入式系统中,用于控制输入和输出设备。GPIO引脚使微控制器能够与所使用的外部硬件进行通信,例如开关按钮、LED灯和显示屏(LCD)。

关键字: 微控制器 嵌入式系统 LED

在工业控制、汽车电子、电力电子等高可靠嵌入式系统开发中,MCU内部Flash未使用的程序空间填充,是保障系统长期稳定运行、抵御异常干扰的关键可靠性设计手段。很多开发者在产品开发阶段只关注功能逻辑的实现,完全忽略未使用Fl...

关键字: MCU 嵌入式系统

电压监测是嵌入式系统中的基本任务。本项目在STM32 RT-Spark开发板上构建了一个软件比较器,通过ADC读取电位器的输出,并将其与电阻分压参考值进行比较。当电压超过设定阈值时,内置LED会改变颜色,从而提供即时的视...

关键字: 电位器 LED 嵌入式系统 RT-Spark开发板

嵌入式系统向来是软件驱动的。几十年来,工程师一直借助软件来打造产品差异化、提升性能,并在固定硬件的基础上扩展更多功能。改变的不是想法本身,而是规模与复杂性。

关键字: 嵌入式系统 软件 物联网

在嵌入式系统工程领域,主要挑战在于在严格的时间约束下实现任务的确定性执行。微控制器通常需要同时执行复杂的数学运算,并管理高频的输入和输出。如果采用简单的定时方法,例如使用阻塞式的忙等待循环,常常会导致处理器饥饿问题,即一...

关键字: 信号发生器 嵌入式系统 STM32
关闭