Pocket-sized AI meeting recorder you can build yourself. Live transcription, comprehensive summaries, unlimited duration, and chat with your meetings — all on a XIAO ESP32-S3.
A standalone meeting recorder built on the Seeed XIAO ESP32-S3 Sense. Press one button, talk freely, and walk away with an accurate transcript, an AI-generated multi-section summary, and the ability to chat with the meeting after it ends. No phone required. No subscription required. Just hardware, WiFi, and a microSD card.
Every word from every speaker is transcribed in real time by ElevenLabs Scribe — handles multiple voices, accents, and technical terms. Accurate text appears chunk by chunk while the meeting is still in progress.
GPT-4o-mini generates a rolling summary during the meeting and a polished multi-section final report the moment you press stop. Overview, Key Discussion Points, Decisions Made, Action Items, and Names + Dates + Numbers — ready before you even leave the room.
A built-in map-reduce summarisation pipeline handles meetings of any length. The transcript is streamed off SD in 25 KB segments, each summarised separately, then merged into one polished summary. A 4-hour conference is summarised as accurately as a 5-minute test — without ever running out of RAM.
A button on every past-meeting card re-runs the full summary pipeline against the saved transcript. Recover meetings whose original summary call failed, or upgrade older meetings after prompt improvements — no need to record again.
Ask anything about a current or past meeting and get instant grounded answers, with conversation memory for natural follow-ups. Find decisions, list action items, or summarise in three bullets — without scrolling a single transcript.
Standalone hardware with a one-touch record button and a smart WiFi setup wizard. First boot launches a hotspot for configuration; once your home WiFi is saved, the device is reachable at http://meetingrecorder.local from any phone or laptop on the same network — your devices stay on home WiFi, internet keeps working.
Modern dark-themed web interface that works on phones, tablets, and laptops — no app to install. Live transcript, live summary, meeting history, and AI chat, all behind one mobile-friendly URL.
Every meeting saved locally to a microSD card — full WAV audio, transcripts, and summaries — yours to keep. Download from the dashboard or pop the card into any computer; no cloud storage subscription required.
Bluetooth fully disabled, WiFi modem sleep enabled, dynamic CPU clock (80 MHz idle / 240 MHz active), and a slow heartbeat LED blink during recording — adds up to ~50 mA of continuous savings. A 1000 mAh LiPo runs the device for days of idle time and several full meetings per charge.
Two-step confirmation in Settings wipes every meeting, every credential, and reboots into setup mode. Great for handing the device to a friend or starting fresh.
| Component | Notes |
|---|---|
| Seeed XIAO ESP32-S3 Sense | Built-in PDM microphone on the Sense expansion board |
| microSD card (FAT32) | Any size; meetings auto-archive here |
| Push-button | Wired between D1 (GPIO 1) and GND for one-touch record |
| USB-C power | Or a Li-Po battery on BAT+/BAT- pads for portable use |
Pin assignments live in src/core/globals.h.
- Install Arduino IDE 2.x and the ESP32 board package (board: XIAO_ESP32S3).
- Clone this repo and open
MeetingRecorder.inoin the IDE. - Upload. No Library Manager step — the JSON parser is bundled as
Shubh'Jsoninside the sketch. - First boot: the device creates a WiFi hotspot called
MeetingRecorder(passwordrecorder123). Connect from your phone, open http://192.168.4.1/setup, and enter:- Your home WiFi SSID + password
- An ElevenLabs API key (for speech-to-text)
- An OpenAI API key (for summaries)
- After save: the device switches to your home WiFi and the AP shuts down. Open http://meetingrecorder.local from any device on the same network.
- Press the button or hit Start in the dashboard. That's it.
Full setup, troubleshooting, and architecture notes in docs/README.md.
- docs/README.md — full setup, build & flash, features, web API, troubleshooting
- docs/ARCHITECTURE.md — runtime architecture, FreeRTOS task layout, map-reduce summarisation flow, SD storage map
- docs/FILES.md — file-by-file source reference
- docs/MeetingRecorder_Features.pdf — printable feature sheet
This sketch is zero-install — no Library Manager step required.
- Shubh'Json (in
ShubhJson/+src/json/) — bundled JSON parser, branded for this project. Derived from the MIT-licensed ArduinoJson by Benoit BLANCHON; original LICENSE preserved indocs/ShubhJson_LICENSE.txtas required.
| Used | Available | |
|---|---|---|
| Flash | ~1.30 MB | 3.34 MB (39%) |
| RAM | ~42 KB | 320 KB (12%) |
Plenty of headroom for OTA updates, speaker diarisation, multi-language transcripts, and more.
- Project, hardware integration, and Shubh'Json bundling by Shubh Jaiswal
- YouTube showcase and tutorials on techiesms
- JSON parser internals: ArduinoJson by Benoit BLANCHON (MIT)
- Speech-to-text: ElevenLabs Scribe
- Summarisation & chat: OpenAI GPT-4o-mini