在裸 ESP32 上构建 AI 语音助手:接入 Whisper、GPT 与 TTS
Alex 是一个完全 DIY 的 AI 语音助手,仅用一块无 PSRAM 的 ESP32-D0WD-V3 开发板配合 INMP441 麦克风、MAX98357A 功放和 SSD1306 OLED,就实现了语音采集、Whisper 转录、GPT 生成回答和 TTS 流式播放的实时闭环。项目把 OLED 动画放在第二个核心的独立 FreeRTOS 任务上,避免每次 1 至 3 秒的 HTTP 调用卡住画面。调试中还解决了 TLS 握手连续内存不足、SSD1306_EXTERNALVCC 供电模式错误和 TTS 语速过快等问题。
TTS API请求中添加了“speed”参数0.85,使语音速度放缓,更符合自然语速。 6. 必须非常靠近麦克风说话 INMP441 麦克风灵敏度较高,但原始样本值在处理时未经过放大,而扬声器路径已预先设置了增益。问题修复:在触发检测和保存/转录音频之前,为每个麦克风样本添加了软件增益(MIC GAIN),从而提升灵敏度,确保正常说话距离下的声音能够可靠采集。 本项目展示的内容 除了最终成果之外,这个构建还涉及多个嵌入式系统的基本原理,这些内容在高级教程中容易被忽略: - 手动配置 I2S 接口,用于录音(麦克风)和流媒体播放(扬声器),包括原始 WAV 头部的构建 - 流式传输 HTTP 响应(分块传输编码),并实时播放音频,而非缓冲整个文件 - 区分堆碎片化与总可用堆空间,明确它们是两个不同的问题 - 双核 FreeRTOS 任务设计,使用户界面在主任务因慢速网络调用而阻塞时仍保持响应 - 系统化的硬件调试方法——逐个隔离变量(线路、软件、电源或元件缺陷),而非猜测 注意:在上传代码之前,请前往“工具”- “分区方案”,并将其更新为下方所示的选项。 本文编译自hackster.io
匹配字段正文




