使用 Arduino Nano ESP32设计一个语音助手
扫描二维码
随时随地手机看文章
几天前,一个简单的想法突然浮现在我的脑海中:如果我们能拥有一种真正的口袋式语音助手会怎样呢?这种助手能够即时回答我们的问题,无需掏出手机、解锁手机、打开应用程序,然后进行输入或点击操作。
我们每个人都拥有智能手机,但在专门的设备上与语音助手进行交互的感觉却大不相同。这种交互感觉更加直接、更加自然——仿佛是在与一台真正能倾听的微型机器交流。这个想法一直萦绕在我心头,于是我决定将其转化为一个切实可行的项目。
其结果是一个基于 Arduino Nano ESP32 构建的紧凑型语音助手。您通过麦克风提出问题,答案会直接显示在一块小型 OLED 显示屏上。没有手机屏幕。没有干扰。只有一个按钮、您的声音和回应。
我所使用的组件
•OLED 显示屏 0.96 英寸(I²C 接口)× 1 个
•1 个 Arduino Nano ESP32 芯片
•触摸式按钮 1 个
•MAX4466 麦克风 1 个
我是如何构建它的
您所说的话语通过 MAX4466 麦克风模块采集,再由专门的语音转文本模型(即 Whisper)转换为文本,然后发送至人工智能文本生成模型以生成简洁的回答。而 ESP32 则负责处理 Wi-Fi、数据处理以及显示控制。
两个按钮使操作变得十分简便——一个用于记录您的问题,另一个用于在 OLED 屏幕上滚动查看更长的回答。该显示屏还能很好地处理长问题,因此即便屏幕较小,也不会让人感到局促。
该项目令人兴奋之处在于其灵活性。它使用了 Hugging Face 的 API,这意味着您无需受限于单一的人工智能模型。您可以进行试验、更换模型,并选择最适合您需求的文本生成型人工智能。同样的理念可以发展成为学习助手、技术帮手,甚至是一个用于实验和演示的便携式人工智能伙伴。
我还为选择模式添加了一个“乒乓球游戏”选项,通过该选项您可以选择是使用两个按钮来玩乒乓球游戏,还是使用人工智能助手。乒乓球游戏的难度会根据您的得分逐渐增加。
终止开关 还有一个“终止开关”选项,按下后会将您带回模式选择页面。此功能用于退出人工智能模式或贪吃蛇模式。
信息页面 还有一个信息页面,位于物联网中心动画之后。该页面介绍了按钮的各项功能、特性以及使用方法,以便于进行控制操作。
针式连接器
Arduino Nano 与 ESP32 的连接方式
电源与地线
•3.3 伏 → OLED 电源电压
•3.3 伏 → MAX4466 的 VCC 电压
•GND → OLED GND
•GND → MAX4466 的 GND 端口
•GND → 两个按钮中的一侧(公共接地线)
•GND → 两个按钮中的一侧(公共接地线)
OLED 显示屏(SSD1306 - I²C)
•SCK/SCL → A5(纳秒级 ESP32)
•SCK/SCL → A5(纳米版ESP32)
MAX4466 麦克风模块
•OUT → A7(纳米版 ESP32)
按钮(2 个按钮)---
按钮 1(录制按钮)
•一个引脚 → D8(纳米版 ESP32)
•其他引脚 → 地线
按钮 2(滚动按钮)
•一个引脚 → D6(纳米版 ESP32)
•其他引脚 → 地线
如何构建它
为了方便起见,我可以为您提供一个预先编译好的、定制化的二进制文件,您可以通过任何 ESP32 闪存工具(如 ESP TOOL)将其上传。
另外,如果您愿意的话,还可以使用 Arduino 实验室中的 Micropython 版本来上传附带的代码,其操作方式相同。
这个项目并非是要取代您的手机。而是旨在探索一种全新的与智能设备互动的方式——一种具有触感、专注且由您亲手打造的方式。
代码
本文编译自hackster.io





