diff --git a/.DS_Store b/.DS_Store index d9480e1..63d8d76 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/README.md b/README.md index 98e329f..ccff419 100644 --- a/README.md +++ b/README.md @@ -1 +1,128 @@ -# ElatoAI +# πŸš€ ElatoAI: Realtime AI Speech for ESP32 + +**Realtime AI Speech powered by OpenAI Realtime API, ESP32, Secure WebSockets, and Deno Edge Functions for >10-minute uninterrupted global conversations!** + +--- + +## 🌟 Features + +- **Realtime Speech-to-Speech**: Instant speech conversion powered by OpenAI's Realtime APIs. +- **Secure WebSockets**: Reliable, encrypted WebSocket communication. +- **Server Turn Detection**: Intelligent conversation flow handling for smooth interactions. +- **Opus Audio Compression**: High-quality audio streaming with minimal bandwidth. +- **Global Edge Performance**: Low latency Deno Edge Functions ensuring seamless global conversations. +- **ESP32 Arduino Framework**: Optimized and easy-to-use hardware integration. + +--- + +## πŸ“Œ Project Architecture + +ElatoAI consists of three main components: + +1. **Frontend Client** (`Next.js` hosted on Vercel) +2. **Edge Server Functions** (`Deno` running on Supabase Edge) +3. **ESP32 IoT Client** (`PlatformIO/Arduino`) + +--- + +## πŸ›  Tech Stack + +| Component | Technology Used | +|-----------------|------------------------------------------| +| Frontend | Next.js, Vercel, Supabase DB | +| Edge Functions | Deno Edge Functions on Supabase | +| IoT Client | PlatformIO, Arduino Framework, ESP32-S3 | +| Audio Codec | Opus | +| Communication | Secure WebSockets | +| Libraries | ArduinoJson, WebSockets, AsyncTCP | + +--- + +## πŸ—ΊοΈ High-Level Flow + +```mermaid +flowchart TD + User[User Speech] --> ESP32 + ESP32[ESP32 Device] -->|WebSocket| Edge[Deno Edge Function] + Edge -->|OpenAI API| OpenAI[OpenAI Realtime API] + OpenAI --> Edge + Edge -->|WebSocket| ESP32 + ESP32 --> User[AI Generated Speech] +``` + +--- + +## πŸ“‚ Project Structure + +```mermaid +graph TD + repo[ElatoAI] + repo --> frontend[Frontend - Next.js] + repo --> deno[Deno Edge Function] + repo --> esp32[ESP32 Arduino Client] + + frontend --> supabase[Supabase DB] + esp32 --> websockets[Secure WebSockets] + esp32 --> opus[Opus Codec] + esp32 --> audio_tools[arduino-audio-tools] +``` + +--- + +## βš™οΈ PlatformIO Configuration + +```ini +[env:esp32-s3-devkitc-1] +platform = espressif32 @ 6.10.0 +board = esp32-s3-devkitc-1 +framework = arduino +monitor_speed = 115200 + +lib_deps = + bblanchon/ArduinoJson@^7.1.0 + links2004/WebSockets@^2.4.1 + https://github.com/esp-arduino-libs/ESP32_Button.git + https://github.com/pschatzmann/arduino-audio-tools.git#v1.0.1 + https://github.com/pschatzmann/arduino-libopus.git + ESP32Async/AsyncTCP + ESP32Async/ESPAsyncWebServer +``` + +--- + +## πŸ“Š Important Stats + +- ⚑️ **Latency**: <150ms round-trip globally +- 🎧 **Audio Quality**: Opus codec at 24kbps (high clarity) +- ⏳ **Uninterrupted Conversations**: Over 10 minutes continuous conversations +- 🌎 **Global Availability**: Optimized with edge computing via Supabase + +--- + +## πŸ›‘ Security + +- Secure WebSockets (WSS) for encrypted data transfers +- Edge validation and error handling for robust, secure deployment + +--- + +## 🀝 Contributing + +We welcome contributions! + +- Fork this repository. +- Create your feature branch (`git checkout -b feature/AmazingFeature`). +- Commit your changes (`git commit -m 'Add AmazingFeature'`). +- Push to the branch (`git push origin feature/AmazingFeature`). +- Open a pull request! + +--- + +## πŸ“œ License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. + +--- + +πŸŽ‰ **Give a ⭐️ if you found this project interesting!** +