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