How mbamotria/aideskassistant works
This is an ESP32 voice-assistant firmware: a button-triggered recording is saved locally, transcribed by Deepgram, answered by OpenAI, shown on the OLED, and spoken using Google TTS. The single implementation file also handles time and weather display, SD storage, and FreeRTOS task dispatch. The README documents these capabilities; the source excerpts are partial, so uncertain internal wiring is omitted.
Main entry points: main.cpp Transcription Task
Components 16
Voice Interaction
- Main Loop
src/main.cpp - Recording Task
src/main.cpp - Transcription Task
src/main.cpp - TTS Task
src/main.cpp
AI Services
- Deepgram STT
- OpenAI Chat
- Google TTS
Audio and Storage
- SD Card
- I2S Microphone
- I2S Speaker
Display and Status
- OLED Display
- Weather API
- NTP Server
- Display and Status
src/main.cpp
Other components
- User
- Trigger Button
Connections 19
- User → Trigger Button: presses
- Trigger Button → Main Loop: signals
- Main Loop → Recording Task: dispatches
- Recording Task → I2S Microphone: captures audio
- Recording Task → SD Card: writes WAV
- Recording Task → Transcription Task: dispatches
- Transcription Task → SD Card: reads WAV
- Transcription Task → Deepgram STT: uploads audio
- Transcription Task → OpenAI Chat: sends transcript
- Transcription Task → Display and Status: updates response
- Transcription Task → TTS Task: dispatches
- TTS Task → Google TTS: requests speech
- TTS Task → SD Card: writes audio
- TTS Task → SD Card: reads audio
- TTS Task → I2S Speaker: plays audio
- Main Loop → Display and Status: updates status
- Main Loop → Weather API: fetches weather
- Main Loop → NTP Server: syncs time
- Display and Status → OLED Display: renders