Getting better transcripts
Radio audio is hard for speech recognition: short transmissions, static, squelch tails, unit numbers and local street names. Here's what makes the biggest difference, in order.
1. Load your area's vocabulary
Admin → Vocabulary → Import → Sample packs in the web page. A pack teaches the speech engine your words (units, places, codes) and fixes common mishearings in every new transcript. Every plan includes the regional packs.
For Suffolk County, NY, import all three:
| Pack | What's in it |
|---|---|
| Suffolk County, NY | Hamlets, roads, hospitals and agencies. |
| Suffolk County, NY: fire, EMS and police terms | Fireground and EMS terms, SCPD precincts, and fixes like "fire calm" → FireCom. |
| Suffolk County, NY: signals and unit identifiers | Signals 1–100 (Signal 21 arrived, Signal 4 under control, Signal 35 working fire…), AMPDS levels, divisions, coordinators, SCPD units, and "high quarter" → Headquarters. |
After importing, review the list: remove codes your department doesn't use and add your own apparatus (Engine 5-15-1, Car 710…) as Unit entries. Only about 600 characters of hints reach the speech engine, so the weight decides which ones go first.
2. Turn on your region's detection rules
Admin → Detection rules. Regional rules ship switched off. In Suffolk, turn on the Suffolk signal rules to put Signal 21 (on scene), Signal 4 (under control), Signal 35 (working fire), Signal 3 (additional help), Signal 1 (emergency traffic) and Signal 100 (evacuate) on the incident timeline. Spoken numbers are understood ("signal twenty one", "three sixty", "seven ten").
3. Name your agency
FiregroundScribe Manager → Agency. The agency name starts the hint sent to the speech engine ("Suffolk County Police radio traffic."), which works better than a generic one.
4. Feed it clean audio
One talkgroup or channel per source is better than a scanner that mixes many: clips are cleaner and incidents group correctly. See Connecting radio audio.
5. A bigger model, or an online service
Manager → Settings → Speech-to-text.
- The default model is small.en. large-v3-turbo is clearly more accurate if the PC is fast enough (if transmissions pile up as "queued", it isn't: use a smaller model or turn off beam search).
- OpenAI-compatible with the model
gpt-4o-transcribeis the most accurate on noisy radio, at about $0.36 per hour of actual talk. The audio leaves the building: check that's allowed.
Is it keeping up? The live feed shows a notice when transcription is more than two minutes behind, with how many transmissions are waiting and when it will have caught up; System status and the Manager's dashboard show the same figures. To keep the accurate model most of the time and still catch up after a busy incident, set Catch up when transcription is this many minutes behind (e.g. 5) and a Faster model for catching up (e.g. base.en): the faster model runs only until the queue is cleared, then the normal one comes back by itself.
6. Correct, and it learns
Fix a transcript on its card: when people make the same correction twice, it becomes an automatic correction (Admin → Vocabulary → Suggestions).
What FiregroundScribe already does
Audio is cleaned up (voice band, hiss, volume) before transcription; only the parts with speech are transcribed (voice detection); phrases models invent from static ("Thank you.", a line repeated to fill the clip) are removed from what you see. The engine's exact output is kept as the raw transcript.