auggiesofta notebook

Radio

trunk-recorder gives you a folder of audio files. I wanted to know what was in them.

trunk-reporter

an org on github · discord

If you record your local police and fire radio with trunk-recorder, this turns the pile of recordings into a website you run yourself. Calls show up as they happen, each one written out as text, with a search box over all of it.

Who said "structure fire" on fire dispatch last Tuesday? Type it in. The public demo follows a statewide system in Ohio and holds over two million calls.

A dark dashboard with a grid of recent radio calls, each with a channel name, a play button and a line of transcript.
calls as they come in, each with its transcript
  • Runs on your own computer with no cloud account, even on a Raspberry Pi 5
  • Works with the trunk-recorder you already have. If you upload to OpenMHz or rdio-scanner, keep doing that; this takes the same uploads
  • Keeps everything, for as long as your disk allows
 your antenna
      │
 trunk-recorder   # records the calls, as before
      │
 tr-engine        # keeps them and writes them out
      │
 tr-dashboard     # the part you look at

 imbe-asr         # optional: transcription at home,
                  # built for radio
one command brings up the lot

Start here: the live demo, the all-in-one setup for running your own, or the Discord if it doesn't work.

in use by other people, which is new for me. Still before version 1.0. Quiet since late september.

tr-engine

go · github

The part that keeps everything. Install it once and forget it's there.

  • Every call gets written out as text, by a paid service if you have one or by the free model below if you'd rather not pay anyone
  • Learns the system as it listens: which radios use which channel, and when they come and go
  • It also learns what units call themselves on air. If a radio keeps saying "Medic 12, on scene", it suggests naming that radio Medic 12, and you click approve
A web page ranking the radios that talk most on one channel, with a ring diagram of who talks to whom.
who talks most on one channel, and who they talk to

recent

  1. 2026-09-24 release v0.10.0-beta.2
  2. 2026-09-24 release v0.10.0-beta.1
  3. 2026-09-23 feat suggest unit alpha tags from transcriptions
  4. 2026-09-23 feat keep recorder-reported and OTA unit aliases

tr-dashboard

react · github · live demo

The part you look at. Live calls on one screen, the search box on the next.

  • Click a call to play it and follow the words as they're spoken
  • Search everything ever said, or narrow it down by channel, radio or date
  • Pages for each channel with its busiest hours, the radios that use it most and the words that come up most
  • Set an alert on a word or a channel and get a notification when it comes up. Works on a phone

imbe-asr

python · github · hugging face

Free transcription at home, built for radio rather than for podcasts.

Digital police radio doesn't actually send sound. It sends a compressed description of the voice, and the scanner rebuilds the sound from that. The usual way to transcribe it is to rebuild the sound first and hand it to a general speech model. This model skips that step and reads the description directly, so nothing gets lost on the way.

# the usual way
 radio ─▶ compressed voice
       ─▶ rebuild the sound
       ─▶ guess the words

# this way
 radio ─▶ compressed voice
       ─▶ guess the words
no sound is ever made
  • Fast enough for a whole radio system: a 10-second call takes a few thousandths of a second on a gaming graphics card, and under a second on a Raspberry Pi 5
  • Honest caveat: real dispatch audio is hard, and it still gets about one word in five wrong
  • If you'd rather do it the ordinary way, there's also a regular speech model trained on real radio calls on Hugging Face

published march 2026. A proper hand-checked test set is still the open job.