2024-11-27 11:51:48 只看该作者
164浏览
查看: 164|回复: 0
打印 上一主题 下一主题

[动态] TinyML 语音识别:ESP32、Arduino、STM32 硬件比较

[复制链接]

在嵌入式系统和物联网领域,TinyML 技术正成为一股越来越重要的力量。具体来说,在语音识别(控制)项目中,选择正确的硬件平台是确保成功的关键。本指南将对三种流行的 TinyML 硬件平台进行深入比较:ESP32、Arduino Nano 33 BLE Sense 和 STM32F746G-DISCO。我们将从硬件规格、性能、功耗和实际应用案例等各个角度对它们进行分析,以帮助开发人员做出最明智的选择。

通过阅读本指南,您将全面了解这些硬件平台在语音识别项目中的表现、它们的优势和劣势以及它们最适用的场景。您还将收到基于比较分析的建议,以确保您的 TinyML 项目取得成功。

TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图1

硬件平台概述

ESP32:

ESP32 是一款低功耗双核处理器,集成 Wi-Fi 和蓝牙功能,非常适合嵌入式和物联网应用。它具有成本效益,提供广泛的外设支持,并拥有强大的社区支持,是 TinyML 项目开发人员的热门选择。ESP32 在语音识别任务中表现出色,特别是在资源受限的环境中,它可以高效运行。

Arduino Nano 33 BLE 感应

Arduino Nano 33 BLE Sense 是一款小型高性能开发板,集成了各种传感器(包括环境光、加速度计、陀螺仪和麦克风),并具有低功耗蓝牙 (BLE) 功能。它特别适合需要多传感器数据融合的 TinyML 应用。该开发板因其易用性和在 Arduino 生态系统中的广泛支持而受到开发人员的青睐。

STM32F746G-DISCO

STM32F746G-DISCO 是一款基于 ARM Cortex-M7 处理器的高性能开发板,具有强大的计算能力和丰富的外设接口。它特别适合复杂的音频处理和语音识别任务。该板具有音频输入/输出接口,非常适合工业级和要求苛刻的应用场景。丰富的开发工具和文档支持使其成为从事高性能嵌入式应用的开发人员的首选。

TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图2

TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图3

测试用例比较

在了解了ESP32、Arduino Nano 33 BLE Sense、STM32F746G-DISCO的基本特性后,我们通过具体的应用案例来展示这三个硬件平台在智能家居语音控制系统中的实际表现,帮助读者更好的了解各个平台的应用效果,做出更明智的选择。

测试标准和方法概述

为了确保公平、全面地评估 ESP32、Arduino Nano 33 BLE Sense 和 STM32F746G-DISCO 在 TinyML 语音识别项目中的性能,我们建立了一系列标准化的测试标准和方法,详见本指南。这些测试在相同的条件下进行,以确保数据的可比性和准确性。

测试项目

语音识别准确度:

  • 模型名称:使用针对低资源环境下的语音识别进行优化的预训练的 TensorFlow Lite 模型。
  • 功能:该模型可以识别简单的关键词,例如“是”、“否”和“其他”(包括噪音或无效命令)。
  • 模型开发:该模型在 Edge Impulse 平台上使用官方数据集构建,并根据实际应用中遇到的常见噪声环境进行了微调。

响应时间:

  • 测量方法:利用精密的时间测量工具,记录语音输入到系统输出命令的延迟时间。所有硬件均在相同环境下进行测试。
    功耗测试:

测试环境

环境一致性:所有测试均在以下三种环境下进行,以模拟不同使用场景下的性能:

  • 安静的室内环境:没有背景噪音的标准室内环境。
  • 有背景噪声的室内环境:有背景噪声的室内环境,包括人声、音乐和其他环境声音。
  • 室外环境:典型的室外环境,具有风和车辆声音等自然噪音。
  • 操作条件:所有硬件都使用相同类型的电源、麦克风模块(例如 PDM 麦克风)和通信接口(Wi-Fi 或 BLE),以确保测试条件的一致性。

型号规格

  • 模型统一性:在三个硬件平台上运行相同的语音识别模型,统一优化以适应不同的硬件平台。
  • 模型大小与复杂度:模型大小(约50KB)和复杂度(约10层神经网络结构)保持一致,确保硬件之间的性能差异来自于其固有的计算能力和优化水平,而不是模型本身的差异。
    TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图4

    图:在嵌入式设备上使用 TensorFlow Lite 进行语音转意图处理

ESP32 的性能

使用型号:FireBeetle 2 ESP32-E

实施方法:

  • 硬件连接:使用FireBeetle 2 ESP32-E开发板,配备IO扩展板,通过扩展的IO口连接声音传感器模块,传感器通过三根线连接到开发板的模拟输入通道(A0),无需复杂的外部电路,直接读取声音信号。
  • 软件配置:本项目采用 TensorFlow Lite 模型,移植到 ESP32 平台进行语音识别。首先在 Arduino IDE 中加载 TensorFlow Lite 库,并初始化模型。开发板检查模型版本的兼容性,确保使用正确的模型版本。
  • 数据采集与处理:通过 FireBeetle 2 ESP32-E 的 A0 通道实时读取 DFR0034 传感器采集的模拟数据,采集到足够的数据后输入 TinyML 模型进行语音命令的预测与识别。
  • 语音命令识别与响应:系统根据模型的预测结果判断输入的语音是否符合“是”或“否”等预设命令。例如,当检测到“是”命令时,系统点亮连接的指示灯;当检测到“否”命令时,指示灯熄灭。
    TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图5

    图:FireBeetle 2 ESP32-E 语音识别项目设置

表现:

  • 识别准确率:在各种环境下测试,平均识别准确率为89%,详细数据如下表所示。
  • 响应时间:本地处理时的平均响应时间为 120 毫秒。
  • 功耗:待机状态下功耗为0.5W,运行时功耗为1.2W。
  • 稳定性:经过长时间的测试,系统运行稳定,未出现重大故障。
    TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图6
  • 评价:性价比高、无线连接稳定、功耗低,是智能家居设备的理想选择,但由于处理能力有限,只适合做简单的语音识别任务。

Arduino Nano 33 BLE Sense 的性能

实施方法:

  • Arduino Nano 33 BLE Sense 连接到麦克风和其他传感器以运行 TinyML 模型。
  • 通过BLE实现与家用电器的通信,实现语音控制。
    TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图7

    图:正在运行 TinyML 应用程序,由闪烁的 LED 指示

表现:

  • 识别准确率:多传感器融合的平均识别准确率为 86%。虽然在复杂环境下准确率略有下降,但传感器的多样性提供了丰富的上下文信息,增强了整体系统的稳健性。

  • 响应时间:由于处理能力有限,平均响应时间为 150 毫秒。
    功耗:待机模式下功耗为0.3W,运行模式下功耗为0.8W,非常适合电池供电的便携式应用。

  • 稳定性:在复杂环境下稳定性中等,偶尔会出现BLE连接不稳定的情况,尤其是在信号干扰较大的环境下。

    TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图8

    图:Arduino Nano 33 BLE Sense 上的 TensorFlow Lite TinyML 流程

  • 评估: Arduino Nano 33 BLE Sense 具有高灵敏度传感器、低功耗和小尺寸,特别适合便携式和可穿戴设备中的多传感器融合应用。然而,其有限的处理能力使其更适合简单的语音识别任务。对于需要更高性能和更复杂处理能力的应用程序,可能需要更强大的硬件平台。

STM32F746G-DISCO 的性能

实施方法:

  • STM32F746G-DISCO 连接到专业麦克风和音频接口,以运行复杂的 TinyML 语音识别模型。
  • 通过有线接口实现与家用电器的通讯,实现语音控制。
    TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图9

    图:正在运行 TinyML 应用程序,由闪烁的 LED 指示

表现:

  • 识别准确率:复杂环境下平均识别准确率为94%。
  • 响应时间:由于其强大的处理能力,平均响应时间为80毫秒。
  • 功耗:待机状态下功耗为1W,运行时功耗为2.5W。
  • 稳定性:系统运行稳定,适合高要求的应用场景。
  • 评价:STM32F746G-DISCO 处理能力强大,音频接口稳定,非常适合处理复杂的语音识别任务,但功耗较高,成本较高,值得考虑。

对比分析

TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图10

分析结论:从上面的分析中,我们可以看到每个硬件在不同性能指标上的表现如何。ESP32 适用于低成本、低功耗应用;Arduino Nano 33 BLE Sense 非常适合多传感器融合和低功耗便携式应用;STM32F746G-DISCO 非常适合高性能、复杂任务应用。

结论

在选择适合 TinyML 语音识别项目的硬件平台时,ESP32、Arduino Nano 33 BLE Sense 和 STM32F746G-DISCO 各有其独特的优势和局限性。通过分析它们的实际性能、性能数据和优缺点,您可以更好地了解每个硬件平台的适用性并确定最佳用例。

概括

  • ESP32: ESP32 成本低廉,社区支持广泛,非常适合预算有限的智能家居项目。其内置的 Wi-Fi 和蓝牙功能使其在需要无线通信的应用中表现出色。然而,ESP32 可能缺乏复杂语音识别任务所需的性能,仅适用于简单的应用场景。
  • Arduino Nano 33 BLE Sense:由于其多传感器集成和低功耗设计,该硬件在便携式和可穿戴设备中表现出色。其 BLE 功能也使其适用于低功耗无线通信应用。然而,其有限的处理能力使其主要适用于简单的语音识别和多传感器数据融合任务。
  • STM32F746G-DISCO:STM32F746G -DISCO 处理能力强大,接口丰富,适合复杂、高性能的语音识别任务,稳定性高,音频接口专用,在工业自动化、高要求应用场景中表现优异,但成本和功耗较高,限制了其在一些低功耗应用中的使用。

建议

  • 注重预算的智能家居项目:选择 ESP32。
  • 需要多传感器数据融合的便携式应用:选择 Arduino Nano 33 BLE Sense。
  • 具有高性能需求的工业自动化项目:选择 STM32F746G-DISCO。
    此外,对于不需要复杂定制或需要更快实施的语音识别项目,Gravity:离线语言学习语音识别传感器是理想的选择。该传感器与 Arduino 和 ESP32 等微控制器兼容,提供强大的离线语音识别功能,无需复杂的编码或模型训练。它特别适合教育项目、快速原型设计和需要简单、快速部署的应用程序。
    TinyML 语音识别:ESP32、Arduino、STM32 硬件比较图11

    图:微型离线语音识别传感器设置

未来展望

随着 TinyML 技术的不断发展,更高效、更低功耗的硬件平台将会出现,为语音识别和其他 AI 应用提供更多选择。及时了解技术进步并根据特定项目需求选择最合适的硬件平台将有助于您在 TinyML 项目中取得成功。

我们希望本文提供的分析和建议能为您的硬件选择提供宝贵的指导,并帮助您在语音识别项目中取得最佳效果。未来我们将继续更新其他 TinyML 项目的硬件选择指南,敬请期待。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail