ElatoAI 让你在 ESP32 上运行由 100 多种语音 AI 模型驱动的实时语音系统,并通过安全 WebSocket 与边缘函数实现全球范围内 20 分钟以上的不间断对话。
📱 应用设计
通过 ElatoAI Web 应用,你可以直接在手机上控制自己的 ESP32 AI 设备。

🌟 完整功能列表
- 实时语音转语音:由 OpenAI Realtime API、Gemini Live API、xAI Grok Voice Agent API、Eleven Labs Conversational AI Agents 和 Hume AI EVI4 驱动的即时语音转换。
- 创建自定义 AI 智能体:创建具有不同人格和声音的 AI 智能体。
- 可自定义语音:从多种声音和人格配置中进行选择。
- 安全 WebSocket:可靠且加密的 WebSocket 通信。
- 服务端 VAD 轮次检测:智能对话轮次处理,让交互更自然。
- Opus 音频压缩:以极低带宽实现高质量音频流传输。
- 全球边缘性能:低延迟的 Deno Edge Functions 确保全球范围内的顺畅对话。
- ESP32 Arduino 框架:经过优化且易于集成的硬件方案。
- 对话历史:查看历史对话记录。
- 设备管理与认证:注册并管理你的设备。
- 用户认证:安全的用户身份认证与授权。
- 通过 WebRTC 和 WebSocket 对话:在 NextJS Web 应用中用 WebRTC 与 AI 对话,在 ESP32 上通过 WebSocket 对话。
- 音量控制:通过 NextJS Web 应用控制 ESP32 扬声器音量。
- 实时转录:对话实时转录结果存储在 Supabase 数据库中。
- OTA 更新:支持 ESP32 固件空中更新。
- 通过 captive portal 管理 Wi-Fi:直接在 ESP32 设备上连接 Wi-Fi 或热点。
- 恢复出厂设置:通过 NextJS Web 应用对 ESP32 设备执行恢复出厂设置。
- 按钮和触摸支持:可以通过按钮或触摸传感器控制 ESP32 设备。
- 无需 PSRAM:设备无需 PSRAM 即可运行语音转语音 AI。
- Web 客户端 OAuth:让用户管理自己的 AI 角色和设备。
- 音高控制:在 NextJS Web 应用中调整 AI 声音音高,做出更卡通化的声音。
- 工具调用:从 ESP32 设备调用边缘函数中的工具和函数,构建完整的语音 AI 智能体。
- 轻触唤醒:轻触触摸板即可从休眠中唤醒。
- 部署到 Cloudflare:借助 Cloudflare Voice Agents 和 Durable Objects 连接任意 LLM、TTS、STT 服务。
项目架构
ElatoAI 由三个主要组件组成:
- 前端客户端(部署在 Vercel 上的
Next.js)- 用于创建并与 AI 智能体对话,并将其“发送”到你的 ESP32 设备 - 边缘服务函数(
Deno Edge或Cloudflare Workers)- 用于处理来自 ESP32 设备的 WebSocket 连接以及对模型提供商 API 的调用 - ESP32 IoT 客户端(
PlatformIO/Arduino)- 接收来自边缘服务函数的 WebSocket 连接,并通过 Deno 边缘服务器或 Cloudflare Durable Objects 把音频发送给模型提供商
📊 关键指标
- 延迟:全球往返延迟小于 2 秒
- 音频质量:12kbps Opus 编码(高清晰度)+ 24kHz 采样率
- 不间断对话:全球范围内最长可达 20 分钟连续对话
- 全球可用性:通过边缘计算优化
🛡 安全性
- 使用安全 WebSocket(WSS)进行加密数据传输
- 可选:使用 256 位 AES 加密 API Key
- 使用 Supabase DB 进行安全认证
- 所有表均采用 Postgres RLS
🚫 限制
- 连接边缘服务器时有 3-4 秒冷启动时间
- 已测试最长连续对话约为 17 分钟
- 超过 wall clock time 后边缘服务器会停止
- ESP32 上尚未支持语音打断检测
Github:https://github.com/akdeb/ElatoAI