项目概述
ElatoAI是一个创新的实时语音AI交互系统,它结合了ESP32微控制器、OpenAI实时API和安全WebSocket技术,实现了超过10分钟不间断的全球对话体验。这个开源项目特别适合物联网开发者和AI爱好者,通过硬件与云端AI的无缝集成,创造出具有个性的语音交互设备。
核心技术组成
1. 硬件层设计
系统采用ESP32-S3开发板作为硬件核心,其特色包括:
- 
内置WiFi/蓝牙双模通信  - 
支持Opus音频编解码(24kbps高质量传输)  - 
无需PSRAM即可运行语音AI  - 
通过PlatformIO进行固件开发  
硬件设计图展示了精心设计的PCB布局:

2. 软件架构
系统采用三层架构设计:
前端界面(Next.js实现):
- 
用户管理界面  - 
AI角色创建工具  - 
设备控制面板  - 
实时对话记录查看  
边缘计算层(Deno实现):
- 
处理WebSocket连接  - 
管理OpenAI API调用  - 
音频流中转处理  - 
用户认证授权  
嵌入式固件(Arduino框架):
- 
音频采集与播放  - 
WiFi连接管理  - 
物理按键/触摸控制  - 
OTA固件更新  
核心功能特点
- 
实时语音对话:采用OpenAI最新实时API,实现端到端延迟<1秒  - 
多角色管理:可创建不同性格、音色的AI角色  - 
安全通信:全程使用WSS加密传输  - 
全球低延迟:通过Deno边缘计算实现优化  - 
便捷控制:支持网页端音量调节、设备复位等功能  - 
对话历史:所有对话记录自动保存至Supabase数据库  
手机端控制界面示例:

开发环境搭建指南
基础环境准备
- 
Supabase本地服务  
brew install supabase/tap/supabasesupabase start
- 
前端开发环境  
cd frontend-nextjsnpm installcp .env.example .env.localnpm run dev
- 
Deno边缘服务器  
cd server-denocp .env.example .envdeno run -A --env-file=.env main.ts
ESP32设备配置
- 
修改 Config.cpp中的服务器地址 - 
通过PlatformIO上传固件  - 
使用设备创建的 ELATO-DEVICE热点配置WiFi 
关键技术实现细节
音频处理流程
- 
ESP32采集用户语音  - 
通过Opus编码压缩音频  - 
经WebSocket传输至边缘服务器  - 
调用OpenAI语音API获取响应  - 
返回音频流至设备播放  
flowchart TDUser[用户语音] --> ESP32ESP32 -->|WebSocket| Edge[边缘服务器]Edge -->|API调用| OpenAIOpenAI --> EdgeEdge -->|WebSocket| ESP32ESP32 --> AI[AI语音响应]
多设备管理方案
- 
通过MAC地址注册设备  - 
用户账户与设备绑定  - 
Supabase实现设备认证  - 
网页端集中管理所有设备  
性能优化策略
- 
音频压缩:采用Opus编码,仅需24kbps带宽  - 
边缘计算:Deno服务器全球部署降低延迟  - 
连接保持:WebSocket长连接避免重复握手  - 
硬件优化:ESP32专用音频处理库提升效率  
实际应用场景
- 
智能家居助手:语音控制家庭设备  - 
教育机器人:互动式学习伙伴  - 
客服系统:24小时语音服务  - 
医疗辅助:患者陪伴与提醒  - 
零售导购:智能产品推荐  
开发注意事项
- 
网络要求:所有设备需在同一局域网测试  - 
API限制:注意OpenAI的调用频率限制  - 
安全设置:务必配置Supabase行级安全(RLS)  - 
硬件兼容:确认使用ESP32-S3开发板  
项目扩展方向
- 
增加语音打断检测功能  - 
支持更多硬件平台  - 
集成本地语音唤醒词  - 
开发移动端原生应用  - 
增加多语言支持  
学习资源
结语
ElatoAI项目展示了边缘计算与嵌入式设备的完美结合,为开发者提供了一个完整的实时语音AI解决方案。通过这个开源项目,开发者可以快速构建自己的智能语音设备,同时学习到现代物联网系统的最新开发模式。
项目采用MIT开源协议,欢迎开发者贡献代码,共同推进嵌入式AI技术的发展。
“
提示:开发过程中遇到技术问题,可以加入Discord社区交流讨论

