Hear the short replies, and read the other kind of callsign
Two things, both found by measuring rather than by reading the code. The voice-activity filter inside the recogniser is off. It was costing words: across a night of land-mobile captures it dropped 5-15% of what the same model finds without it -- 491 against 507, 339 against 384, 263 against 310 -- because a single-word over between two transmissions looks to a VAD exactly like the noise it exists to remove, and on a scanner those short replies are the ones worth having. Turning it off has a cost, and the cost is that Whisper hands back "You" for five seconds of hiss as confidently as it hands back a sentence. So the whole capture is now asked once whether anything in it rises above its own noise. Digital silence measures 0.0 dB of contrast and hiss at any level 0.7, while the quietest real capture of that night measures 8.9 and most measure 10-27; the bar sits at 3, an order of magnitude clear of both. It can veto a capture but never trim one, which is the whole difference between it and the filter it replaces. The second thing: callsigns like WQVF960 were being missed entirely. The shape being matched was the amateur one -- prefix, district digit, suffix -- and everything else the FCC licenses is written the other way round, the letters first and then the digits. On the GMRS and business channels that is most of what is said: nine callsigns across five transcripts of one evening went by unrecognised, and now do not. The shape is written as the three allocations that exist rather than as "letters then digits", which claims KN95, WD40 and KC135. Its letters are checked against the word list even when they arrive as a single token, which the amateur shape does not need -- no English word has a digit in the middle of it, but "west 120" and "word 100" fit this one exactly. Lookups now fall back to hamdb.org when callook has nothing. Not a spare copy: callook holds United States amateur licences only, so DL1ABC and VE3ABC are INVALID there and resolve perfectly well from the other. And a GMRS callsign is not looked up at all -- every database reachable without an account is an amateur register, so reporting WQVF960 as "unlisted" would blame the callsign for the absence of a source. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016PsWPTweCT6pwxKngvVxcg
This commit is contained in:
parent
0f378c4d6c
commit
8a789e57e1
14 changed files with 679 additions and 74 deletions
58
README.md
58
README.md
|
|
@ -1198,6 +1198,23 @@ downloaded once.
|
|||
since on a short noisy clip automatic detection often guesses wrong and
|
||||
returns nonsense in another language.
|
||||
|
||||
**No voice-activity filter runs inside the recogniser.** It used to, and it
|
||||
cost words: measured across a night of land-mobile captures it dropped 5–15%
|
||||
of what the same model finds without it — 491 words against 507, 339 against
|
||||
384, 263 against 310 — because a single-word over between two transmissions
|
||||
looks to a VAD exactly like the noise it is there to remove. On a scanner
|
||||
those short replies are the ones worth having.
|
||||
|
||||
What replaces it is a single question asked of the whole capture: does
|
||||
anything in it rise above its own noise? Nothing does in digital silence
|
||||
(0.0 dB of contrast) or in hiss at any level (0.7 dB), while the quietest
|
||||
real capture of that night gives 8.9 dB and most give 10–27. Below 3 dB the
|
||||
clip is refused before a recogniser sees it — which matters, because with no
|
||||
filter at all Whisper hands back *"You"* for five seconds of hiss as
|
||||
confidently as it hands back a sentence. The check can only veto a capture
|
||||
entirely, never trim one, so the short over in the middle of a quiet channel
|
||||
survives.
|
||||
|
||||
Existing recordings can be transcribed after the fact:
|
||||
|
||||
```bash
|
||||
|
|
@ -1418,11 +1435,26 @@ are one callsign, and all of them read back correctly:
|
|||
| `wiskey one alfa whisky` | spelled the way it sounded |
|
||||
| `whiskey one alpha, uh, whiskey` | said with a hesitation in the middle |
|
||||
| `W1AW-4`, `W1AW/B`, `DL/W1AW` | a suffix, which is not part of the callsign |
|
||||
| `WRUC 242`, `7-3-W-F-K-L-2-0-4` | a GMRS or business callsign, said the same ways |
|
||||
|
||||
A word is only taken apart when it is phonetic *all the way through*, which is
|
||||
what keeps this away from English: "kilometre" begins with a phonetic word and
|
||||
"victorious" contains one, and neither can be consumed to the end.
|
||||
|
||||
**Two shapes, not one.** An amateur callsign is a prefix, a district digit and
|
||||
a suffix — `W1AW`, `KU0W`, `2E0ABC`. Everything else the FCC licenses is
|
||||
called the other way round, letters first and then the digits: `WQVF960` is a
|
||||
GMRS licence, `WXG204` an old Part 90 one. On 462 and 464 MHz those are most
|
||||
of what is said, and reading only the amateur shape found none of them — nine
|
||||
callsigns across five transcripts of one evening's GMRS traffic went by
|
||||
unrecognised.
|
||||
|
||||
The shape is written as the three allocations that exist rather than as
|
||||
"letters then digits", which would claim `KN95`, `WD40` and `KC135`. The
|
||||
length matters for a second reason: `"7-3-W-F-K-L-2-0-4. 0-4-W-R-C-U"` is a
|
||||
real transcript of someone spelling a callsign out, and a looser pattern read
|
||||
the `0` that began the next one as part of this one.
|
||||
|
||||
Callsigns arrive from three directions and all three end up in the same list
|
||||
and on the same map: **spoken and transcribed, sent in Morse, or carried in
|
||||
the header of an APRS packet.** Neither of the last two involves a speech
|
||||
|
|
@ -1446,17 +1478,29 @@ saunterbrowse --callsigns # everyone who identified themselves, and where
|
|||
saunterbrowse --no-lookup # find them, but contact nothing
|
||||
```
|
||||
|
||||
Lookups use the FCC's own licence data via [callook.info](https://callook.info),
|
||||
which needs no account or key. The callsign is the only thing sent; results are
|
||||
cached in `~/.cache/bandsaunter/callsigns.json`, so the same net is looked up
|
||||
once however many nights you record it, and a lookup never delays the display —
|
||||
the entry reads `looking up…` and fills itself in.
|
||||
Lookups use the FCC's own licence data via [callook.info](https://callook.info)
|
||||
and fall back to [hamdb.org](https://hamdb.org), both of which need an account
|
||||
or a key from nobody. The callsign is the only thing sent; results are cached
|
||||
in `~/.cache/bandsaunter/callsigns.json`, so the same net is looked up once
|
||||
however many nights you record it, and a lookup never delays the display — the
|
||||
entry reads `looking up…` and fills itself in.
|
||||
|
||||
The second source is not a spare copy of the first. callook holds United
|
||||
States amateur licences and nothing else, so `DL1ABC` and `VE3ABC` come back
|
||||
`INVALID` from it and resolve perfectly well from the other; and when one
|
||||
service is down or rate-limiting, the other usually is not. It is asked only
|
||||
when the first has nothing, and which one answered is recorded.
|
||||
|
||||
**A GMRS or business callsign is not looked up at all**, and says so rather
|
||||
than saying "unlisted". Every database reachable without an account is an
|
||||
amateur register, and `WQVF960` was never in one — reporting it as missing
|
||||
would blame the callsign for the absence of a source. It is still recognised,
|
||||
still listed, and still described as what it is.
|
||||
|
||||
`--no-lookup` contacts nothing. Callsigns are still found and still described
|
||||
from their own structure: the prefix is allocated by the ITU and the digit is
|
||||
the US licensing district, so `VE3ABC` is Canada and `N7XYZ` is US district 7
|
||||
with no database at all. Outside the US that structural description is all
|
||||
there is — callook.info holds US licences only.
|
||||
with no database at all.
|
||||
|
||||
US amateur licence records are public by law and include the licensee's
|
||||
address; that is what is shown.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue