How This Works
🎙️ Step 1: Live Radio Capture
This system monitors live police and emergency dispatch radio channels in real-time. Audio streams are captured from publicly available scanner feeds, including:
- Madison-PD-A1-Dispatch - Primary Madison Police Department dispatch channel
- Madison-PD-A3-Dispatch - Dane County tactical operations
Note: different channels may be added or removed at a later date
🤖 Step 2: AI Transcription
Audio recordings are automatically transcribed using Whisper large-v3-turbo model, which converts speech to text. Important: Radio transcription is approximately 65% accurate due to:
- Background static and radio interference
- Multiple voices talking over each other
- Technical jargon, code numbers, and phonetic alphabet usage
- Fast-paced emergency communications
📝 Step 3: AI Summarization
Raw transcripts are processed by an AI language model that:
- Filters out noise: Removes incoherent or misheard words that don't fit policing context
- Extracts key information: Times, locations, unit identifiers, incident types
- Translates codes: Interprets 10-codes (e.g., 10-50 = traffic crash) and phonetic alphabet
- Organizes chronologically: Groups incidents by time and channel
- Assigns rarity: Categorizes incidents from common (traffic stops) to extreme rare (major emergencies)
🌐 Step 4: Web Display
Summarized incidents are converted to structured JSON, then rendered as the interactive timeline you see on the main page. The system updates continuously as new radio traffic is captured and processed.
⚠️ Important Disclaimers
Accuracy Limitations
This system is fully automated and relies on AI interpretation of imperfect radio transcriptions. Expect errors, omissions, and misinterpretations. Information displayed here should be considered:
- 📊 Informational only - Not suitable for emergency response or critical decision-making
- 🔍 Incomplete - May miss incidents or important details
- ❌ Potentially incorrect - Locations, times, and descriptions may be wrong
- ⏱️ Delayed - Processing takes time; not truly "real-time" (transcript summerization is ran every 5 minutes and the site updates it's html evrey 15 minutes)
🔓 Public Information
All radio communications monitored by this system are publicly available scanner feeds. This site does not intercept private or encrypted communications. Scanner monitoring is legal under federal and Wisconsin state law.
🚫 Not for Emergency Use
If you are experiencing an emergency, call 911. Do not rely on this website for emergency information or situational awareness during active incidents.
🎨 Understanding the Display
Rarity Badges
Incidents are categorized by how commonly they occur:
- COMMON Routine traffic stops, welfare checks, minor calls
- UNCOMMON Suspicious activity, vehicle pursuits, minor crashes
- RARE Major crashes, serious incidents, multi-unit responses
- VERY RARE Officer assistance calls, armed subjects, significant emergencies
- EXTREME RARE Active shooters, officer down, major disasters
Activity Types
Each incident is tagged with a type:
- TRAFFIC Stops, crashes, violations, vehicle-related
- MEDICAL EMS calls, injuries, medical emergencies
- ALARM Burglar alarms, panic buttons, security alerts
- DISTURBANCE Fights, domestic disputes, noise complaints
- SUSPICIOUS Suspicious persons/vehicles, prowlers, investigations
- GENERAL Everything else, administrative, miscellaneous
Channel Tags
Each incident shows which radio channel it originated from (e.g., 📻 Madison-PD-A1-Dispatch). Hover or tap on any incident to see full details including channel, time, and description.
🛠️ Technical Stack
- Audio Transcription: Faster-Whisper (large-v3-turbo model)
- AI Summarization: OpenAI API / Various local Ollama models(I change it up depending on the day, Open AI API tokens are not cheap...)
- Backend: Python (watchdog, file monitoring, processing pipeline)
- Frontend: HTML, CSS, JavaScript (static site)
- Hosting: Cloudflare Tunnel
👨💻 About the Developer
This project was developed by TuxMan as an experiment in automated police scanner monitoring and AI processing. The system is open-source and continuously evolving.
Contact: [email protected]
GitHub: TuxMan531