Releases: MuddyWinds/Readback
Releases · MuddyWinds/Readback
Readback v1.0.0 — first open-source release 🎙️✈️
Readback listens to live ATC audio, transcribes it in real time, and uses AI to flag read-back errors and non-standard phraseology against FAA/ICAO standards. Built for student pilots, enthusiasts, instructors, and safety researchers.
⚠️ Educational tool. Transcriptions may be imperfect and feeds are often one-sided — notes and events are advisory, not authoritative. Not for operational use.
Highlights
- 🎧 Live ingestion — streams any LiveATC (or compatible MP3) feed, chunked with ffmpeg
- 📝 Local STT — faster-whisper on CPU (int8), confidence-gated so noisy audio never reaches the AI; no cloud STT cost
- 🤖 AI phraseology analysis — batched Gemini Flash calls apply the Reasonable Controller Test and HFACS classification
- 🛰️ Context correlation — ADS-B traffic (OpenSky) snapshotted at analysis time, plus METAR, NOTAMs, and SIGMET/AIRMET/PIREP hazards
- ⚡ Live dashboard — React + WebSocket feed of transcripts and observations, with a per-airport map/weather sidebar
- ⚙️ Configurable runtime — feeds, batch interval, transcript cap (
batch_max_items), Whisper model, and alert threshold, all editable in Settings - 🐳 One-command setup —
docker compose upbrings up db + backend + frontend; native and Docker-free paths documented too
Scope
This baseline ships two surfaces — Live Feed and Settings — focused on real-time monitoring and analysis.
Tech stack
Python · FastAPI · SQLAlchemy (async) · PostgreSQL 16 · faster-whisper · Google Gemini Flash · React · TypeScript · Docker Compose
Getting started
See the README. You need a free Gemini API key and either Docker or Node 18+/Python 3.11+/ffmpeg.
Known limitations
- One-sided transcripts (LiveATC captures one radio side); missing read-backs aren't flagged
- VHF transcription is imperfect; low-confidence segments are dropped
- Gemini free-tier daily token limits apply — tune the batch window /
batch_max_itemsif you hit them