24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
技术专题>
使用 ESP32 制作您自...

技术专题

使用 ESP32 制作您自己的 Alexa


使用 ESP32 制作您自己的 Alexa

人机界面技术 (HMI) 在过去 10-15 年中取得了长足的进步:直到 2000 年代初,嵌入式设备上的彩色屏幕和触摸屏(第一款手持电话,然后被智能手机取代)绝对不是那么-负担得起的加。随着处理性能的提高、成本的降低以及新通信技术的出现,已经创建了能够将用户想要的内容转换为命令的设备。

直到几年前,能够连接到云并允许通过使用语音命令远程控制物联网设备的设备还是纯科幻小说。迄今为止,智能传感器和智能音频设备可以轻松地为您的语音控制的个人助理创建硬件。

语音助手:系统概述

数字语音辅助系统是一种能够执行以下步骤的电子设备:

捕捉语音信息

将语音消息转换为音频流

通过复杂的算法处理音频流,将其解释为唯一的命令

将命令与操作相关联

播放音频反馈信息

这一切的背后,是一整套的软硬件技术。

1 显示了语音助手的框图。

1:语音助手框图

与任何其他通信通道一样,该通道还涉及原始信号、采集和转换系统、编码系统、处理系统、解码系统和输出信号发射系统。

在语音辅助系统的情况下,源信号是语音消息,它是一种机械波,通过我们的声带调制并作为振动通过空气(通信方式)传播。振动由充当信号传感器的麦克风获取。然后,对信号进行调理和编码以进行处理。此时,编码的音频流可以在本地(通过微控制器或微处理器)进行操作,也可以通过云上的语音识别算法和 AI 以更有效的方式远程发送以进行处理。因此,处理输出将是提供给致动系统的命令。

至于音频反馈,路径相似但相反:流被解码并发送到放大器,放大器将通过扬声器再现音频。

系统组件

从头开始设计语音辅助系统是一项复杂的任务。直到几十年前,只有具有出色音频设计技能的工程师团队才可行。如今,我们很幸运能够利用一系列硬件和软件组件,这无疑使任务变得更简单。

该项目最关键的部分之一是音频采集和再现部分,这需要出色的应用领域知识以及模拟电子技能。为了简化任务,我们可以使用数字传感器,它集成了必要的模拟组件并传输已经数字编码的数据。

至于输入部分,我们可以使用全向麦克风INMP441,它采用MEMS技术(Micro Electro-Mechanical Systems)进行转换,并实现了I2S数字接口进行数据交换。这样可以避免信号调节问题,并且与处理单元的接口不受噪声影响。此外,要处理的信号已经是数字格式。

至于音频输出级,我们可以使用MAX98357A,一个2通道3W D类放大器,还配备了I2S接口。与输入级类似,硬件设计极为简化:放大器通过 I2S 接口接收输入端的数字信号,对音频样本进行解码,并在芯片的 L R 端将其再现为电压,这两个端简单连接到扬声器。

此时,您需要选择的最后一个设备是微控制器,它必须能够处理(或发送到云)来自麦克风的音频流,并发送音频流以供放大器再现。最适合此用途的 MCU 当然是乐鑫的 ESP32模块(最好是 WROVER 模块,配备 8MB RAM 和高达 16MB 的闪存)。由于其高连接性(BLE WiFi)和高性能以及极低的价格,该模块是智能家居应用的正确选择。它还具有两个独立的 I2S 接口,非常适合该项目的目的。

2 显示了该项目中使用的三个主要组件。

2MAX98357A(左)、ESP32-WROVER(中)、INMP441(右)

I2S 通信总线

I2S 接口协议是该项目的一个关键点,因为它使硬件和软件都变得简单,使设计人员和开发人员免于与模拟采集和再现相关的一系列问题。

I2S 代表 Inter-IC Sound,它是用于连接数字音频设备的串行接口的电气标准。它在音频应用中用于在集成电路之间传输 PCM 音频样本,就像我们的例子(MCU 和麦克风/放大器)。I2S创建于1986年,是飞利浦半导体(现恩智浦半导体)的产品。

I2S 总线是同步的,因为它从数据线提供不同的时钟信号,这比异步设备更容易接收,在异步设备中,通信系统直接从数据流中获取时钟。它还在同一条数据线上提供最多两个多路复用通道(右通道和左通道)。

I2S至少包括以下三行:

时钟线(BCLK):用于标记位时间并允许连接设备之间的同步

字选择(WS)或左右时钟(LRCLK)线:用于复用左声道(WS低)和右声道(WS高)。因此,它表示为占空比为 50% 的方波

数据线:用于传输PCM样本,根据WS的状态进行复用;数据以 2 的补码编码

时钟切换频率 (f ck ) 不能任意选择,而是根据输入信号的采样频率 (f s )、通道数 (n ch ) 和单个样本的位数 (n bit),由此˚F CK turnsout

f ck = f s *n*n ch

例如,要传输 2 8kHz 采样数据流,其中每个采样有 12 位,我们需要设置

f ck = 8000 * 12 * 2 = 192000 /秒。

3 显示了总线时序图的示例。

3I2S 总线时序图

电气连接和软件片段

4 显示了系统三个主要组件之间的连接。连接非常容易理解,因为在麦克风/放大器和 MCU 之间连接时钟信号、字同步和数据线就足够了。所有模拟调节、滤波和放大都集成到数字设备中。

4:数字元件接线

最后,图 5 显示了在 ESP32 ESP-IDF 环境中正确使用 I2S 总线的结构配置。该配置是指以 8kHz 的频率对输入信号进行采样,每单通道采样 16 位,作为输入和输出(因为

有一个麦克风,并且有一个单声道输出)。

5I2S 总线配置示例

一个项目,一千种可能

该项目是任何需要音频输入、放大输出以及处理和通信系统的设备的起点:类似的平台可以在大量应用中实现,例如智能家居助手、音频播放器、环境警报系统、婴儿监视器等。

请输入搜索关键字

确定