[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-akdeb--ElatoAI":3,"tool-akdeb--ElatoAI":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":78,"owner_website":82,"owner_url":83,"languages":84,"stars":113,"forks":114,"last_commit_at":115,"license":116,"difficulty_score":117,"env_os":118,"env_gpu":119,"env_ram":120,"env_deps":121,"category_tags":134,"github_topics":135,"view_count":23,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":152,"updated_at":153,"faqs":154,"releases":184},3591,"akdeb\u002FElatoAI","ElatoAI","Realtime Voice AI Agents with OpenAI Realtime, Gemini, Grok, Eleven Labs on Arduino ESP32 with >15 minutes uninterrupted conversations globally for AI Toys, AI Companions, AI Devices and more","ElatoAI 是一款让微型硬件“开口说话”的开源解决方案，旨在将顶尖的实时语音 AI 能力带入 Arduino ESP32 等低成本嵌入式设备。它成功解决了在资源受限的边缘设备上实现长时、低延迟双向语音交互的难题，支持全球范围内超过 15 分钟的不间断流畅对话。\n\n无论是想制作智能玩具、AI 陪伴机器人，还是开发新型语音交互设备的开发者与硬件爱好者，都能通过 ElatoAI 快速落地创意。用户无需深厚的底层通信知识，即可利用 OpenAI Realtime、Gemini Live、Grok、Eleven Labs 及 Hume AI 等前沿大模型，轻松定制拥有不同性格和音色的智能体。\n\n其核心技术亮点在于结合了安全 WebSocket 加密传输与 Deno Edge Functions（边缘函数），不仅保障了通信的稳定性与安全性，还大幅降低了云端延迟。此外，ElatoAI 提供了完善的 DIY 硬件设计参考与手机控制端应用，并最新支持了在本地运行 Qwen、Mistral 等大模型的方案，让离线隐私保护成为可能。这让创造具备自然语音交互能力的智能设备变得前所未有的简单高效。","\u003Cdiv align=\"center\">\n\n  \u003Ca href=\"https:\u002F\u002Felatoai.com\">\u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets\u002Fdarkelato.png\">\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_d6d6c4a96a4d.png\">\n    \u003Cimg alt=\"elato logo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_d6d6c4a96a4d.png\" height=\"70\" style=\"max-width: 100%;\">\n  \u003C\u002Fpicture>\u003C\u002Fa>\n  \n\u003Cdiv style=\"display:flex; flex-direction:row; align-items:center; flex-wrap:wrap; justify-content:center;\">\n  \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fcookbook.openai.com\u002Fexamples\u002Fvoice_solutions\u002Frunning_realtime_api_speech_on_esp32_arduino_edge_runtime_elatoai\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_be680ca500bc.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa>  \n  \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fwww.elatoai.com\u002Fdocs\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_75460699f4f1.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa>\n  \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fdiscord.gg\u002FKJWxDPBRUj\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_0d4daff89629.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa>\n\u003C!-- \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Felatoai.com\u002Fhome\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_725ce089d781.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa> -->\n      \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fwww.kickstarter.com\u002Fprojects\u002Felatoai\u002Felato-make-toys-talk-with-ai-voices\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_6a0e46145bcc.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa>\n \u003C!-- \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fwww.elatoai.com\u002Fproducts\u002Fai-devkit\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_4c13caaf1d0b.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa> -->\n\u003C\u002Fdiv>\n\u003Ca href=\"https:\u002F\u002Fwww.kickstarter.com\u002Fprojects\u002Felatoai\u002Felato-make-toys-talk-with-ai-voices\" target=\"_blank\">\n \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_6a20b516fbf5.png\" alt=\"Elato Logo\" width=\"100%\">\n\u003C\u002Fa>\n\n\u003Cbr \u002F>\n\u003C\u002Fdiv>\n\n## News\n- **2026-03-14:** Elato just launched Local AI Toys.🎉🎉🎉  And it's Pi Day! Your ESP32 devices can now support local AI models and voice generation with frontier Local LLMs and TTS models like Qwen, Mistral, and more with MLX. Check it out [here](https:\u002F\u002Fwww.github.com\u002Fakdeb\u002Flocal-ai-toys). \n\n# 👾 ElatoAI: Realtime Voice AI Models on Arduino ESP32\n\nRealtime AI Speech powered by SoTA AI voice models on ESP32, with Secure WebSockets & Deno Edge Functions for >15-minute uninterrupted conversations globally. We currently support OpenAI Realtime API, Gemini Live API, xAI Grok Voice Agents API, Eleven Labs Conversational AI Agents, and Hume AI EVI-4.\n\n- [🚀 Quick Start](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Fquickstart)\n- [Build with PlatformIO](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Fplatformio)\n- [Build on Arduino IDE](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Farduino)\n- [Deploy globally](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Fblog\u002Fdeploying-globally)\n- [🤖🤖🤖 Deploy multiple devices](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Fblog\u002Fmultiple-devices)\n\n## 📽️ Demo Video\n\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=o1eIAwVll5I\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_73ef91177fa1.png\" alt=\"ElatoAI Demo Video\" width=\"100%\" style=\"border-radius:10px\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\nVideo links: [OpenAI Demo](https:\u002F\u002Fyoutu.be\u002Fo1eIAwVll5I) | [Gemini Demo](https:\u002F\u002Fyoutu.be\u002F_zUBue3pfVI) | [Eleven Labs Demo](https:\u002F\u002Fyoutu.be\u002F7LKTIuEW-hg) | [Hume AI EVI-4 Demo](https:\u002F\u002Fyoutu.be\u002FGtann5pdV0I)\n\n## 👷‍♀️ DIY Hardware Design\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_3586484c7993.png\" alt=\"Hardware Setup\" width=\"100%\">\n\n## 📱 App Design\n\nControl your ESP32 AI device from your phone with the ElatoAI webapp.\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_67ae2377911f.png\" alt=\"App Screenshots\" width=\"100%\">\n\n\n## ⭐️ Key Voice AI Features\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_32013b0ea95d.png\" alt=\"App Screenshots\" width=\"100%\">\n\n## 🌟 Full feature list\n\n1. **Realtime Speech-to-Speech**: Instant speech conversion powered by OpenAI's Realtime API, Gemini's Live API, xAI's Grok Voice Agent API, Eleven Labs Conversational AI Agents and Hume AI EVI4.\n2. **Create Custom AI Agents**: Create custom agents with different personalities and voices.\n3. **Customizable Voices**: Choose from a variety of voices and personalities.\n4. **Secure WebSockets**: Reliable, encrypted WebSocket communication.\n5. **Server VAD Turn Detection**: Intelligent conversation flow handling for smooth interactions.\n6. **Opus Audio Compression**: High-quality audio streaming with minimal bandwidth.\n7. **Global Edge Performance**: Low latency Deno Edge Functions ensuring seamless global conversations.\n8. **ESP32 Arduino Framework**: Optimized and easy-to-use hardware integration.\n9. **Conversation History**: View your conversation history.\n10. **Device Management and Authentication**: Register and manage your devices.\n11. **User Authentication**: Secure user authentication and authorization.\n12. **Conversations with WebRTC and Websockets**: Talk to your AI with WebRTC on the NextJS webapp and with websockets on the ESP32.\n13. **Volume Control**: Control the volume of the ESP32 speaker from the NextJS webapp.\n14. **Realtime Transcripts**: The realtime transcripts of your conversations are stored in the Supabase DB.\n15. **OTA Updates**: Over the Air Updates for the ESP32 firmware.\n16. **Wifi Management with captive portal**: Connect to your Wifi network or Hotspot from the ESP32 device.\n17. **Factory Reset**: Factory reset the ESP32 device from the NextJS webapp.\n18. **Button and Touch Support**: Use the button OR touch sensor to control the ESP32 device.\n19. **No PSRAM Required**: The ESP32 device does not require PSRAM to run the speech to speech AI.\n20. **OAuth for Web client**: OAuth for your users to manage their AI characters and devices.\n21. **Pitch Factor**: Control the pitch of the AI's voice from the NextJS webapp to create cartoon-like voices.\n22. **Tool calling**: Call tools and functions from the ESP32 device to the Deno Edge Functions for a complete voice AI agent.\n23. **Tap to turn on**: Tap the touchpad to turn it on from sleep.\n\n\n## Project Architecture\n\nElatoAI consists of three main components:\n\n1. **Frontend Client** (`Next.js` hosted on Vercel) - to create and talk to your AI agents and 'send' it to your ESP32 device\n2. **Edge Server Functions** (`Deno` running on Deno\u002FSupabase Edge) - to handle the websocket connections from the ESP32 device and the LLM Provider API calls\n3. **ESP32 IoT Client** (`PlatformIO\u002FArduino`) - to receive the websocket connections from the Edge Server Functions and send audio to the LLM Provider via the Deno edge server.\n\n\n## 🛠 Tech Stack\n\n| Component       | Technology Used                          |\n|-----------------|------------------------------------------|\n| Frontend        | Next.js, Vercel            |\n| Backend         | Supabase DB  |\n| Edge Functions  | Deno Edge Functions on Deno\u002FSupabase          |\n| IoT Client      | PlatformIO, Arduino Framework, ESP32-S3  |\n| Audio Codec     | Opus                                     |\n| Communication   | Secure WebSockets                        |\n| Libraries       | [ArduinoJson](https:\u002F\u002Fgithub.com\u002Fbblanchon\u002FArduinoJson), [WebSockets](https:\u002F\u002Fgithub.com\u002FLinks2004\u002FarduinoWebSockets), [AsyncWebServer](https:\u002F\u002Fgithub.com\u002FESP32Async\u002FESPAsyncWebServer), [ESP32_Button](https:\u002F\u002Fgithub.com\u002Fesp-arduino-libs\u002FESP32_Button), [Arduino Audio Tools](https:\u002F\u002Fgithub.com\u002Fpschatzmann\u002Farduino-audio-tools), [ArduinoLibOpus](https:\u002F\u002Fgithub.com\u002Fpschatzmann\u002Farduino-libopus)        |\n\n## High-Level Flowchart\n\n```mermaid\nflowchart TD\n  subgraph UserLayer\n    UserInput[User Speech Input]\n    UserOutput[AI Generated Speech Output]\n  end\n  \n  UserInput --> ESP32\n  ESP32[ESP32 Device] -->|WebSocket| Edge[Deno Edge Function]\n  Edge -->|OpenAI API| OpenAI[OpenAI Realtime API]\n  Edge -->|Gemini API| Gemini[Gemini Live API]\n  Edge -->|xAI API| xAI[xAI Grok Voice Agent API]\n  Edge -->|ElevenLabs API| ElevenLabs[ElevenLabs AI Agents]\n  Edge -->|Hume API| Hume[Hume AI EVI4]\n  OpenAI --> Edge\n  Gemini --> Edge\n  xAI --> Edge\n  ElevenLabs --> Edge\n  Hume --> Edge\n  Edge -->|WebSocket| ESP32\n  ESP32 --> UserOutput\n```\n\n\n## Project Structure\n\n```mermaid\ngraph TD\n  repo[ElatoAI]\n  repo --> frontend[Frontend Vercel NextJS]\n  repo --> deno[Deno Edge Function]\n  repo --> esp32[ESP32 Arduino Client]\n  deno --> supabase[Supabase DB]\n\n  frontend --> supabase\n  esp32 --> websockets[Secure WebSockets]\n  esp32 --> opus[Opus Codec]\n  esp32 --> audio_tools[arduino-audio-tools]\n  esp32 --> libopus[arduino-libopus]\n  esp32 --> ESPAsyncWebServer[ESPAsyncWebServer]\n```\n\n## 📊 Important Stats\n\n- **Latency**: \u003C2s round-trip globally\n- **Audio Quality**: Opus codec at 12kbps (high clarity) 24kHz sampling rate\n- **Uninterrupted Conversations**: Up to 15 minutes continuous conversations globally\n- **Global Availability**: Optimized with edge computing\n\n## 🛡 Security\n\n- Secure WebSockets (WSS) for encrypted data transfers\n- Optional: API Key encryption with 256-bit AES\n- Supabase DB for secure authentication\n- Postgres RLS for all tables\n\n## 🚫 Limitations\n- 3-4s Cold start time while connecting to edge server\n- Tested with up to 17 minutes of uninterrupted conversations\n- Edge server stops when wall clock time is exceeded\n- No speech interruption detection on ESP32\n\n## 🙌 Contributing\n\nWe value your contributions! Here are some ideas:\n1. Speech Interruption on ESP32 (works with OpenAI)\n2. ~~Adding Arduino IDE support~~\n3. ~~Add Hume API client for emotion detection~~\n4. Add MCP support on Deno Edge\n5. ~~Plug in Eleven Labs API for voice generation~~\n6. Add Azure OpenAI Support (easy pickens) - in review\n7. Add Cartesia Support\n8. Add Amazon Nova Support\n9. Add Deepgram\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n**Check out our hardware offerings at [ElatoAI Products](https:\u002F\u002Fwww.elatoai.com\u002F). If you find this project interesting or useful, support us by starring this project on GitHub. ⭐**\n","\u003Cdiv align=\"center\">\n\n  \u003Ca href=\"https:\u002F\u002Felatoai.com\">\u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets\u002Fdarkelato.png\">\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_d6d6c4a96a4d.png\">\n    \u003Cimg alt=\"elato logo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_d6d6c4a96a4d.png\" height=\"70\" style=\"max-width: 100%;\">\n  \u003C\u002Fpicture>\u003C\u002Fa>\n  \n\u003Cdiv style=\"display:flex; flex-direction:row; align-items:center; flex-wrap:wrap; justify-content:center;\">\n  \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fcookbook.openai.com\u002Fexamples\u002Fvoice_solutions\u002Frunning_realtime_api_speech_on_esp32_arduino_edge_runtime_elatoai\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_be680ca500bc.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa>  \n  \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fwww.elatoai.com\u002Fdocs\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_75460699f4f1.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa>\n  \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fdiscord.gg\u002FKJWxDPBRUj\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_0d4daff89629.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa>\n\u003C!-- \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Felatoai.com\u002Fhome\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_725ce089d781.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa> -->\n      \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fwww.kickstarter.com\u002Fprojects\u002Felatoai\u002Felato-make-toys-talk-with-ai-voices\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_6a0e46145bcc.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa>\n \u003C!-- \u003Ca style=\"display:inline-flex;\" href=\"https:\u002F\u002Fwww.elatoai.com\u002Fproducts\u002Fai-devkit\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_4c13caaf1d0b.png\" height=\"42\" style=\"width: auto;\">\u003C\u002Fa> -->\n\u003C\u002Fdiv>\n\u003Ca href=\"https:\u002F\u002Fwww.kickstarter.com\u002Fprojects\u002Felatoai\u002Felato-make-toys-talk-with-ai-voices\" target=\"_blank\">\n \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_6a20b516fbf5.png\" alt=\"Elato Logo\" width=\"100%\">\n\u003C\u002Fa>\n\n\u003Cbr \u002F>\n\u003C\u002Fdiv>\n\n## 新闻\n- **2026年3月14日：** Elato 刚刚推出了本地 AI 玩具。🎉🎉🎉 同时也是圆周率日！现在，您的 ESP32 设备可以通过 MLX 框架，支持前沿的本地 LLM 和 TTS 模型（如通义千问、Mistral 等），实现本地 AI 模型和语音生成。请在此处查看：[https:\u002F\u002Fwww.github.com\u002Fakdeb\u002Flocal-ai-toys](https:\u002F\u002Fwww.github.com\u002Fakdeb\u002Flocal-ai-toys)。\n\n# 👾 ElatoAI：在 Arduino ESP32 上运行的实时语音 AI 模型\n\n基于 SoTA 语音模型的实时 AI 语音技术，运行于 ESP32 上，并结合安全的 WebSockets 和 Deno 边缘函数，可在全球范围内实现超过 15 分钟的不间断对话。我们目前支持 OpenAI 实时 API、Gemini Live API、xAI Grok Voice Agents API、Eleven Labs 对话式 AI 助手以及 Hume AI EVI-4。\n\n- [🚀 快速入门](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Fquickstart)\n- [使用 PlatformIO 构建](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Fplatformio)\n- [使用 Arduino IDE 构建](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Farduino)\n- [全球部署](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Fblog\u002Fdeploying-globally)\n- [🤖🤖🤖 部署多台设备](https:\u002F\u002Fwww.elatoai.com\u002Fdocs\u002Fblog\u002Fmultiple-devices)\n\n## 📽️ 演示视频\n\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=o1eIAwVll5I\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_73ef91177fa1.png\" alt=\"ElatoAI 演示视频\" width=\"100%\" style=\"border-radius:10px\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n视频链接：[OpenAI 演示](https:\u002F\u002Fyoutu.be\u002Fo1eIAwVll5I) | [Gemini 演示](https:\u002F\u002Fyoutu.be\u002F_zUBue3pfVI) | [Eleven Labs 演示](https:\u002F\u002Fyoutu.be\u002F7LKTIuEW-hg) | [Hume AI EVI-4 演示](https:\u002F\u002Fyoutu.be\u002FGtann5pdV0I)\n\n## 👷‍♀️ DIY 硬件设计\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_3586484c7993.png\" alt=\"硬件设置\" width=\"100%\">\n\n## 📱 应用程序设计\n\n通过 ElatoAI 的 Web 应用程序，您可以从手机上控制您的 ESP32 AI 设备。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_67ae2377911f.png\" alt=\"应用截图\" width=\"100%\">\n\n\n## ⭐️ 核心语音 AI 特性\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_readme_32013b0ea95d.png\" alt=\"应用截图\" width=\"100%\">\n\n## 🌟 完整功能列表\n\n1. **实时语音到语音转换**：由 OpenAI 实时 API、Gemini Live API、xAI Grok Voice Agent API、Eleven Labs 对话式 AI 助手以及 Hume AI EVI4 提供支持的即时语音转换。\n2. **创建自定义 AI 助手**：创建具有不同个性与声音的自定义助手。\n3. **可定制的声音**：从多种声音和个性中进行选择。\n4. **安全的 WebSockets**：可靠且加密的 WebSocket 通信。\n5. **服务器端 VAD 转换检测**：智能处理对话流程，确保流畅互动。\n6. **Opus 音频压缩**：以最小带宽实现高质量音频流。\n7. **全球边缘性能**：低延迟的 Deno 边缘函数，确保全球范围内的无缝对话。\n8. **ESP32 Arduino 框架**：优化且易于使用的硬件集成。\n9. **对话历史记录**：查看您的对话历史。\n10. **设备管理和认证**：注册并管理您的设备。\n11. **用户认证**：安全的用户身份验证与授权。\n12. **WebRTC 和 WebSockets 对话**：您可以在 NextJS Web 应用程序上通过 WebRTC 与 AI 对话，也可以通过 ESP32 上的 WebSockets 进行交流。\n13. **音量控制**：可通过 NextJS Web 应用程序控制 ESP32 扬声器的音量。\n14. **实时转录**：您的对话实时转录将存储在 Supabase 数据库中。\n15. **OTA 更新**：为 ESP32 固件提供无线更新。\n16. **带有 captive portal 的 Wi‑Fi 管理**：您可以通过 ESP32 设备连接到 Wi‑Fi 网络或热点。\n17. **恢复出厂设置**：可通过 NextJS Web 应用程序将 ESP32 设备恢复为出厂设置。\n18. **按钮与触摸支持**：使用按钮或触摸传感器来控制 ESP32 设备。\n19. **无需 PSRAM**：ESP32 设备运行语音到语音 AI 时不需要 PSRAM。\n20. **面向 Web 客户端的 OAuth**：允许您的用户管理他们的 AI 角色和设备。\n21. **音高因子**：可通过 NextJS Web 应用程序控制 AI 的音高，从而创造出卡通般的声音。\n22. **工具调用**：从 ESP32 设备向 Deno 边缘函数调用工具和功能，构建完整的语音 AI 助手。\n23. **轻点唤醒**：轻触触摸板即可将其从睡眠状态唤醒。\n\n\n## 项目架构\n\nElatoAI 由三个主要组件组成：\n\n1. **前端客户端**（由 Vercel 托管的 Next.js）——用于创建并与您的 AI 助手对话，并将其“发送”至您的 ESP32 设备。\n2. **边缘服务器函数**（在 Deno\u002FSupabase Edge 上运行的 Deno）——用于处理来自 ESP32 设备的 WebSocket 连接以及与 LLM 提供商的 API 调用。\n3. **ESP32 物联网客户端**（PlatformIO\u002FArduino）——用于接收来自边缘服务器函数的 WebSocket 连接，并通过 Deno 边缘服务器将音频发送至 LLM 提供商。\n\n## 🛠 技术栈\n\n| 组件       | 使用的技术                          |\n|-----------------|------------------------------------------|\n| 前端        | Next.js, Vercel            |\n| 后端         | Supabase DB  |\n| 边缘函数  | Deno\u002FSupabase 上的 Deno 边缘函数          |\n| IoT 客户端      | PlatformIO、Arduino 框架、ESP32-S3  |\n| 音频编解码器     | Opus                                     |\n| 通信   | 安全 WebSockets                        |\n| 库       | [ArduinoJson](https:\u002F\u002Fgithub.com\u002Fbblanchon\u002FArduinoJson)、[WebSockets](https:\u002F\u002Fgithub.com\u002FLinks2004\u002FarduinoWebSockets)、[AsyncWebServer](https:\u002F\u002Fgithub.com\u002FESP32Async\u002FESPAsyncWebServer)、[ESP32_Button](https:\u002F\u002Fgithub.com\u002Fesp-arduino-libs\u002FESP32_Button)、[Arduino Audio Tools](https:\u002F\u002Fgithub.com\u002Fpschatzmann\u002Farduino-audio-tools)、[ArduinoLibOpus](https:\u002F\u002Fgithub.com\u002Fpschatzmann\u002Farduino-libopus)        |\n\n## 高级流程图\n\n```mermaid\nflowchart TD\n  subgraph 用户层\n    UserInput[用户语音输入]\n    UserOutput[AI生成的语音输出]\n  end\n  \n  UserInput --> ESP32\n  ESP32[ESP32 设备] -->|WebSocket| Edge[Deno 边缘函数]\n  Edge -->|OpenAI API| OpenAI[OpenAI 实时 API]\n  Edge -->|Gemini API| Gemini[Gemini Live API]\n  Edge -->|xAI API| xAI[xAI Grok Voice Agent API]\n  Edge -->|ElevenLabs API| ElevenLabs[ElevenLabs AI 代理]\n  Edge -->|Hume API| Hume[Hume AI EVI4]\n  OpenAI --> Edge\n  Gemini --> Edge\n  xAI --> Edge\n  ElevenLabs --> Edge\n  Hume --> Edge\n  Edge -->|WebSocket| ESP32\n  ESP32 --> UserOutput\n```\n\n\n## 项目结构\n\n```mermaid\ngraph TD\n  repo[ElatoAI]\n  repo --> frontend[前端 Vercel NextJS]\n  repo --> deno[Deno 边缘函数]\n  repo --> esp32[ESP32 Arduino 客户端]\n  deno --> supabase[Supabase 数据库]\n\n  frontend --> supabase\n  esp32 --> websockets[安全 WebSockets]\n  esp32 --> opus[Opus 编解码器]\n  esp32 --> audio_tools[arduino-audio-tools]\n  esp32 --> libopus[arduino-libopus]\n  esp32 --> ESPAsyncWebServer[ESPAsyncWebServer]\n```\n\n## 📊 重要统计数据\n\n- **延迟**: 全球范围内往返小于2秒\n- **音频质量**: Opus 编解码器，12kbps（高清晰度），采样率24kHz\n- **不间断对话**: 全球范围内最长可达15分钟连续对话\n- **全球可用性**: 通过边缘计算优化\n\n## 🛡 安全性\n\n- 使用安全 WebSockets (WSS) 进行加密数据传输\n- 可选：使用256位AES对API密钥进行加密\n- 使用 Supabase 数据库进行安全认证\n- 所有表均采用 Postgres RLS\n\n## 🚫 局限性\n- 连接到边缘服务器时存在3-4秒的冷启动时间\n- 已测试最长可支持17分钟的不间断对话\n- 当超过设定的时钟时间时，边缘服务器会停止运行\n- ESP32上无法检测语音打断\n\n## 🙌 贡献\n我们非常重视您的贡献！以下是一些想法：\n1. 在ESP32上实现语音打断功能（与OpenAI配合）\n2. ~~添加对Arduino IDE的支持~~\n3. ~~添加Hume API客户端以实现情绪检测~~\n4. 在Deno边缘中添加MCP支持\n5. ~~接入Eleven Labs API用于语音生成~~\n6. 添加Azure OpenAI支持（相对容易） - 正在审核中\n7. 添加Cartesia支持\n8. 添加Amazon Nova支持\n9. 添加Deepgram支持\n\n## 许可证\n本项目采用 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。\n\n**欢迎查看我们的硬件产品：[ElatoAI Products](https:\u002F\u002Fwww.elatoai.com\u002F)。如果您觉得这个项目有趣或有用，请在 GitHub 上为该项目点赞支持。⭐**","# ElatoAI 快速上手指南\n\nElatoAI 是一个基于 ESP32 的实时语音 AI 项目，支持连接 OpenAI、Gemini、xAI (Grok)、ElevenLabs 和 Hume AI 等主流大模型，实现低延迟的语音对话功能。本项目采用 Deno Edge Functions 处理 WebSocket 连接，无需 PSRAM 即可运行。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Windows, macOS 或 Linux\n- **硬件设备**: ESP32 开发板（推荐 ESP32-S3，无需 PSRAM）\n- **外设**: 麦克风模块、扬声器\u002F音频放大器、按钮或触摸传感器（可选）\n\n### 前置依赖\n请选择以下任一开发环境进行安装：\n\n**方案 A：PlatformIO (推荐)**\n- Visual Studio Code\n- PlatformIO IDE 插件\n\n**方案 B：Arduino IDE**\n- Arduino IDE (最新版本)\n- ESP32 板级支持包 (Board Manager)\n- 以下库文件（需在库管理器中安装）：\n  - `ArduinoJson` by Benoit Blanchon\n  - `arduinoWebSockets` by Markus Sattler\n  - `ESPAsyncWebServer` (ESP32Async 版本)\n  - `ESP32_Button`\n  - `arduino-audio-tools` by Pschatzmann\n  - `arduino-libopus` by Pschatzmann\n\n### 云端服务准备\n在编译固件前，你需要准备以下云端资源（项目架构依赖）：\n1. **Supabase 项目**: 用于数据库存储和用户认证。\n2. **Deno Deploy \u002F Edge Functions**: 用于部署后端 WebSocket 中转服务。\n3. **大模型 API Key**: OpenAI, Google Gemini, xAI, ElevenLabs 或 Hume AI 的密钥。\n4. **前端部署 (可选)**: 将 Next.js 前端部署到 Vercel 以管理设备和对话。\n\n> **注意**: 具体的云端部署代码位于仓库的 `frontend` 和 `deno` 目录中，请先参考官方文档完成服务端部署，获取必要的配置参数（如 WebSocket URL、API Keys 等）。\n\n## 安装步骤\n\n以下以 **PlatformIO** 为例展示安装与编译流程（Arduino IDE 步骤类似，只需打开对应的 `.ino` 文件）。\n\n### 1. 克隆项目\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fakdeb\u002FElatoAI.git\ncd ElatoAI\n```\n\n### 2. 配置项目\n进入 `esp32` 目录，根据你部署的后端服务修改配置文件。通常需要在 `src` 目录下找到配置头文件（如 `config.h` 或通过 PlatformIO 的 `platformio.ini` 定义构建标志），填入以下信息：\n- WebSocket 服务器地址 (Deno Edge Function URL)\n- 默认的大模型 Provider 及 API Key (或在 Web 端动态配置)\n- WiFi 凭证（或通过 Captive Portal 配网）\n\n*注：具体配置变量名请参考 `esp32\u002Fsrc\u002Fmain.cpp` 或项目文档中的配置章节。*\n\n### 3. 编译与烧录\n确保 ESP32 设备通过 USB 连接电脑，然后在 VS Code 底部状态栏点击 PlatformIO 的箭头图标，或运行以下命令：\n\n```bash\n# 进入 esp32 项目目录\ncd esp32\n\n# 编译并上传固件 (替换 \u003Cyour_port> 为实际端口，如 \u002Fdev\u002FttyUSB0 或 COM3)\npio run --target upload --upload-port \u003Cyour_port>\n```\n\n如果使用 **Arduino IDE**：\n1. 打开 `esp32\u002Fsrc\u002Fmain.cpp` (或对应的主程序文件)。\n2. 选择正确的开发板型号 (`Tools` -> `Board` -> `ESP32 Arduino` -> `Your Board`)。\n3. 选择端口 (`Tools` -> `Port`)。\n4. 点击“上传”按钮。\n\n## 基本使用\n\n### 1. 设备启动与配网\n- 给 ESP32 上电。\n- 如果是首次使用，设备将启动 **Captive Portal**（热点配网模式）。\n- 手机或电脑连接名为 `ElatoAI-Setup` (或类似名称) 的 WiFi 热点。\n- 浏览器会自动弹出配置页面（若未弹出，访问 `192.168.4.1`）。\n- 输入你的家庭 WiFi 账号和密码，保存后设备将重启并连接互联网。\n\n### 2. 通过 Web 端控制\n- 访问你部署的 Next.js 前端应用地址。\n- 登录\u002F注册账号（基于 Supabase 认证）。\n- 在仪表盘中新建一个 **AI Agent**，选择声音角色和大模型提供商（如 OpenAI Realtime API）。\n- 确保 ESP32 设备已在线，它会自动连接到边缘服务器并等待指令。\n\n### 3. 开始对话\n- **触发方式**: \n  - 按下连接的物理按钮。\n  - 或者触摸触摸传感器（如果硬件支持 \"Tap to turn on\"）。\n- **交互**: 对着麦克风说话，ESP32 会通过 WebSocket 将音频流（Opus 编码）发送至边缘服务器，经大模型处理后，实时返回语音流并在扬声器播放。\n- **状态监控**: 你可以在 Web 端查看实时转录文本、调整音量、改变音调 (Pitch) 或查看历史对话记录。\n\n### 4. 高级功能\n- **OTA 升级**: 通过 Web 端推送新的固件版本，ESP32 将自动通过空中下载更新。\n- **多设备管理**: 同一账号可绑定多个 ESP32 设备，分别部署在不同房间。\n- **工具调用 (Tool Calling)**: 在边缘函数中配置自定义工具，让语音助手能执行特定逻辑。\n\n---\n*更多详细架构说明、硬件设计图及自定义 Agent 教程，请访问 [ElatoAI 官方文档](https:\u002F\u002Fwww.elatoai.com\u002Fdocs)。*","一位创客开发者正试图为儿童教育市场打造一款能进行自然对话的智能陪伴玩偶，希望将其部署在低成本的 ESP32 硬件上。\n\n### 没有 ElatoAI 时\n- **对话延迟高且易中断**：传统方案在 ESP32 上难以维持稳定的长连接，导致孩子说话后需等待数秒才有回应，且对话往往在几分钟内因超时断开，体验支离破碎。\n- **开发门槛极高**：开发者需要手动整合语音识别、大模型推理和语音合成多个独立服务，并自行解决 WebSocket 加密与边缘函数部署难题，耗时数周仍难调通。\n- **声音机械缺乏情感**：受限于本地算力或廉价 TTS 接口，玩偶的声音单调生硬，无法根据语境调整语气，难以吸引儿童注意力。\n- **全球部署困难**：缺乏统一的边缘运行时支持，设备在不同网络环境下连接不稳定，难以实现全球化量产部署。\n\n### 使用 ElatoAI 后\n- **流畅超长对话**：依托 ElatoAI 优化的实时架构，玩偶基于 OpenAI Realtime 或 Gemini Live API，可实现超过 15 分钟无中断的低延迟双向语音交互，反应如真人般迅速。\n- **一站式快速落地**：通过 ElatoAI 提供的 Arduino 库和 Deno 边缘函数模板，开发者只需少量代码即可集成多种顶尖模型，将原本数周的联调工作缩短至几天。\n- **拟人化情感语音**：直接调用 Eleven Labs 或 Hume AI 等前沿模型，玩偶能拥有多种个性化音色，并根据对话内容展现丰富的情感起伏，极大提升用户粘性。\n- **稳定全球互联**：利用 ElatoAI 内置的安全 WebSocket 和全球边缘节点，设备无论身处何地都能保持加密稳定连接，轻松支撑大规模量产设备的并发需求。\n\nElatoAI 让低成本硬件瞬间具备顶尖的实时语音交互能力，彻底打破了智能玩具开发的性能与成本壁垒。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fakdeb_ElatoAI_d7475d53.png","akdeb","Deb","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fakdeb_d0f044d1.png",null,"@asana @coursera","San Francisco, CA","deb2@illinois.edu","www.elatoai.com","https:\u002F\u002Fgithub.com\u002Fakdeb",[85,89,93,97,101,105,109],{"name":86,"color":87,"percentage":88},"TypeScript","#3178c6",67.1,{"name":90,"color":91,"percentage":92},"C++","#f34b7d",17.2,{"name":94,"color":95,"percentage":96},"JavaScript","#f1e05a",8.3,{"name":98,"color":99,"percentage":100},"PLpgSQL","#336790",3.5,{"name":102,"color":103,"percentage":104},"C","#555555",3.2,{"name":106,"color":107,"percentage":108},"Dockerfile","#384d54",0.4,{"name":110,"color":111,"percentage":112},"CSS","#663399",0.3,1455,168,"2026-04-05T03:48:52","NOASSERTION",4,"未说明","不需要 GPU","ESP32 设备无需 PSRAM 即可运行",{"notes":122,"python":118,"dependencies":123},"该项目主要是一个基于 ESP32-S3 微控制器的物联网 (IoT) 解决方案，而非传统的本地大模型推理软件。核心硬件为 ESP32-S3，无需额外显存或高性能 CPU。开发环境支持 PlatformIO 和 Arduino IDE。后端服务依赖 Deno Edge Functions 和 Supabase 数据库，前端基于 Next.js 部署在 Vercel。音频处理使用 Opus 编码，通信采用安全 WebSocket (WSS)。项目支持连接 OpenAI、Gemini、xAI 等云端 API，部分功能提及支持通过 MLX 运行本地模型（需参考关联的 local-ai-toys 项目），但本仓库核心侧重于边缘设备与云端的实时语音交互架构。",[124,125,126,127,128,129,130,131,132,133],"PlatformIO","Arduino Framework","Next.js","Deno","Supabase","ArduinoJson","arduinoWebSockets","ESPAsyncWebServer","arduino-audio-tools","arduino-libopus",[13,55,53,15,14],[136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151],"ai","arduino","deno","esp32","hardware","openai","realtime","realtime-api","speech-to-speech","supabase","websocket","gemini","agents","elevenlabs","humeai","grok","2026-03-27T02:49:30.150509","2026-04-06T08:17:48.774260",[155,160,165,170,175,180],{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},16601,"遇到 'nvs_get_str len fail: auth_token NOT_FOUND' 错误导致设备崩溃怎么办？","该错误通常是因为 OpenAI API Key 过期或未正确配置导致的。请检查您的 API Key 是否有效，并在固件或配置文件中重新输入正确的 Key。有用户确认更换有效的 API Key 后解决了此问题。","https:\u002F\u002Fgithub.com\u002Fakdeb\u002FElatoAI\u002Fissues\u002F2",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},16602,"如何在 M5 Atom Echo 或其他非官方开发板上运行该项目？","M5 Atom Echo 使用了不同的麦克风和扬声器引脚，需要修改固件中的引脚配置。具体步骤是编辑 `firmware-arduino\u002Fsrc\u002FConfig.cpp` 文件（第 64-71 行），将引脚定义更改为 Atom Echo 的规格：\nMIC: CLK -> G33, DATA -> G23\nSPEAKER: SADTA -> G22, BCLK -> G19, LRCK -> G33\n修改后需重新编译并烧录固件。","https:\u002F\u002Fgithub.com\u002Fakdeb\u002FElatoAI\u002Fissues\u002F1",{"id":166,"question_zh":167,"answer_zh":168,"source_url":169},16603,"是否支持 Azure OpenAI Realtime API 以优化成本？","目前可以通过修改服务器端代码来尝试支持 Azure。请在 `server-deno\u002Frealtime\u002Fapi.js` 文件（第 76 行附近）将连接 URL 更改为 Azure 的端点格式，例如：`wss:\u002F\u002Fmy-project.openai.azure.com\u002Fopenai\u002Frealtime?api-version=2024-10-01-preview&deployment=my-realtime-deployment`。注意：根据维护者测试，Azure 的 Token 单价可能比直接使用 OpenAI 更贵，建议先核实最新定价。","https:\u002F\u002Fgithub.com\u002Fakdeb\u002FElatoAI\u002Fissues\u002F3",{"id":171,"question_zh":172,"answer_zh":173,"source_url":174},16604,"设备启动时问候语太长且无法打断，如何自定义或缩短初始消息？","默认的初始消息是硬编码在服务器端的。若要修改（例如改为简单的\"Hello\"或禁用长问候），需要修改服务器代码中的 `createFirstMessage` 函数。该函数位于 `server-deno\u002Fsupabase.ts` 文件（约第 205 行）。修改此处逻辑后重启 Deno 服务器即可生效。","https:\u002F\u002Fgithub.com\u002Fakdeb\u002FElatoAI\u002Fissues\u002F4",{"id":176,"question_zh":177,"answer_zh":178,"source_url":179},16605,"ESP32-S3 在接收欢迎音频后立即崩溃且调试音频文件为空，可能的原因是什么？","这通常表明音频数据流未正确生成或写入，导致设备尝试播放空流时崩溃。虽然该具体问题因缺乏复现步骤暂时关闭，但排查方向应包括：1. 确认 Wi-Fi 连接稳定性；2. 验证 OpenAI API Key 权限；3. 检查麦克风硬件连接是否符合原理图（特别是 MIC 和 Speaker 引脚）；4. 确保服务端能正常生成音频数据而非返回空包。","https:\u002F\u002Fgithub.com\u002Fakdeb\u002FElatoAI\u002Fissues\u002F12",{"id":181,"question_zh":182,"answer_zh":183,"source_url":164},16606,"该项目是否计划支持除 OpenAI 以外的其他 LLM 模型以避免厂商锁定？","项目目前的架构通过 Deno 中继服务器来避免部分锁定。代码中已有 switch-case 结构用于处理不同服务（见 `server-deno\u002Fmain.ts` 第 59-81 行）。虽然主要聚焦于 OpenAI Realtime API，但架构上允许扩展。对于需要更低成本方案的用户，也可以参考 Pipecat 等项目，它们支持 WebRTC 和更多模型组合（如 Claude + Kokoro-TTS），但 ElatoAI 目前专注于在 Arduino 环境下运行全双工语音模型。",[]]