×

Arduino物联网设备中开发唤醒词检测应用程序

消耗积分:0 | 格式:zip | 大小:0.15 MB | 2022-12-07

分享资料个

描述

队员:

陈玉婷 (yc119)

王帮举 (bw27)

唤醒词检测技术已广泛应用于各种语音助手,如 Apple Siri、Microsoft Cortana、Google Assistant。为了更好地理解这项技术,我们在我们的项目Arduino中构建了这个项目,以在资源有限的物联网设备中开发唤醒词检测应用程序

该模型将音频数据作为输入。正如我们将看到的,这需要大量处理才能将其输入模型。该模型是一个分类器,输出类别概率。我们必须解析并理解这个输出。

使用该模型可以识别包括“是”和“否”在内的词,其他词可以被检测为“未知”。需要说明的是,在板检测到“是”一词后,灯将亮起 3 秒。同时,识别结果会显示在屏幕上。检测到“否”后,指示灯不变,识别结果显示在屏幕上。此外,当检测到其他词时,灯仍然不会改变,屏幕上会显示“未知”。

我们将使用现有数据集,使用 Tensorflow 训练我们的模型,将其转换为 TensorFlow Lite 模型并将模型部署到 Arduino 中。然后我们将观察 LED 灯并查看 Arduino IDE 消息以获取 Arduino 的输出信息。

如图所示,该程序包含以下组件:

主循环

与“hello world”示例一样,我们的应用程序在连续循环中运行。所有后续进程都包含在其中,并且它们会持续执行,只要微控制器能够以每秒多次的速度运行它们即可。

音频供应商

该组件从麦克风捕获原始音频数据。由于捕获音频的方法因设备而异,因此可以覆盖和自定义此组件。

特征提供者

功能提供者将原始音频数据转换为我们的模型所需的频谱图格式。它作为主循环的一部分在滚动的基础上这样做,为解释器提供一系列重叠的一秒窗口。

TF Lite 解释器

解释器运行 TensorFlow Lite 模型,将输入的频谱图转换为一组概率。

模型

该模型作为数据数组包含在内,并由解释器运行。该数组位于 tiny_conv_micro_features_model_data.cc 中。

识别命令

由于推理每秒运行多次,因此识别命令类会聚合结果并确定平均而言是否听到了一个已知单词。

命令响应器

如果听到命令,命令响应器会使用设备的输出功能让用户知道。根据设备的不同,这可能意味着 LED 闪烁,或在 LCD 显示屏上显示数据。可以针对不同的设备类型覆盖它。


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

评论(0)
发评论

下载排行榜

全部0条评论

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