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
|
|
@ -1,5 +1,5 @@
|
|||
.\" Generated by packaging/make-man.py -- do not edit by hand.
|
||||
.TH BANDSAUNTER 1 "2026-08-30" "bandsaunter 2026-08-30_01" "User Commands"
|
||||
.TH BANDSAUNTER 1 "2026-09-02" "bandsaunter 2026-09-01_01" "User Commands"
|
||||
.SH NAME
|
||||
bandsaunter \- scan, record and identify radio signals with an RTL-SDR
|
||||
.SH SYNOPSIS
|
||||
|
|
@ -969,7 +969,13 @@ unattended receiver keeps adding to that file night after night rather than
|
|||
starting it over.
|
||||
.PP
|
||||
A capture with nothing recognisable in it produces no file at all, rather
|
||||
than a directory of placeholders.
|
||||
than a directory of placeholders. No voice-activity filter runs inside the
|
||||
recogniser \[em] one throws away the single-word overs between transmissions,
|
||||
which on a scanner are the replies worth having. Instead the whole capture is
|
||||
asked once whether anything in it rises above its own noise, and refused
|
||||
before a recogniser sees it if nothing does. That check can veto a capture
|
||||
but never trim one, so a short reply in the middle of a quiet channel
|
||||
survives it.
|
||||
.PP
|
||||
.BR saunterbrowse (1)
|
||||
reads these back, and lists any callsigns it finds in them with the licence
|
||||
|
|
@ -984,6 +990,11 @@ up, hyphenates them, or drops a hesitation into the middle of the run. So
|
|||
back as the callsigns they are, and "alfa", "juliett" and "whisky" count
|
||||
alongside the official spellings.
|
||||
.PP
|
||||
Two shapes are recognised. An amateur callsign is a prefix, a district digit
|
||||
and a suffix; everything else the FCC licenses is written the other way
|
||||
round, the letters first and then the digits, so WQVF960 and WXG204 are read
|
||||
as the GMRS and business licences they are.
|
||||
.PP
|
||||
Nothing is joined across a slash: a suffix says where the station is, not
|
||||
what it is called, so
|
||||
.I W1AW/B
|
||||
|
|
|
|||
|
|
@ -216,27 +216,42 @@ A suffix is not part of the callsign. Nothing is joined across a slash, so
|
|||
.I W1AW/B
|
||||
is W1AW and not W1AWB, which belongs to nobody.
|
||||
.PP
|
||||
Two shapes are recognised, not one. An amateur callsign is a prefix, a
|
||||
district digit and a suffix \[em] W1AW, KU0W, 2E0ABC. Everything else the FCC
|
||||
licenses is called the other way round, the letters first and then the digits:
|
||||
WQVF960 is a GMRS licence and WXG204 an older Part 90 one. On the GMRS and
|
||||
business channels those are most of what is said.
|
||||
.PP
|
||||
False positives are the thing to avoid: a browser that invents callsigns is
|
||||
worse than one that finds none. So a run of words is only accepted when none
|
||||
of its parts is an ordinary English word \[em] "or 3. Can you open 4" fits the
|
||||
shape once the punctuation is gone, and is not a callsign \[em] while a single
|
||||
token said in one breath is trusted, because W1BOY is a perfectly good
|
||||
callsign.
|
||||
callsign. The GMRS shape is not given that trust: its letters are a run of
|
||||
two to four, which is the length of a short word, so "west 120" fits it
|
||||
exactly and a licence prefix never spells anything.
|
||||
.PP
|
||||
The lookup uses the FCC's own licence data, published at callook.info, which
|
||||
needs no account and no key. The callsign is the only thing sent, results are
|
||||
cached under
|
||||
The lookup uses the FCC's own licence data, published at callook.info, and
|
||||
falls back to hamdb.org; neither needs an account or a key. The second is not
|
||||
a spare copy of the first \[em] callook holds United States amateur licences
|
||||
only, so a German or Canadian callsign is INVALID there and known to the
|
||||
other, and a source that is down takes only itself with it. The callsign is
|
||||
the only thing sent, results are cached under
|
||||
.I ~/.cache/bandsaunter/
|
||||
so the same net is looked up once however many nights it is recorded, and a
|
||||
lookup never delays the display: the entry says "looking up" and fills itself
|
||||
in.
|
||||
.PP
|
||||
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, so reporting it as missing would blame
|
||||
the callsign for the absence of a source.
|
||||
.PP
|
||||
.B \-\-no\-lookup
|
||||
contacts nothing at all. Callsigns are still found, and still described from
|
||||
their own structure \[em] the prefix is allocated by the ITU and the digit is
|
||||
the US licensing district, so a callsign says which country and which region
|
||||
it belongs to without any database. Outside the United States that is all
|
||||
there is; callook.info holds US licences only.
|
||||
it belongs to without any database.
|
||||
.PP
|
||||
.B \-\-callsigns
|
||||
prints every callsign in the directory, who it belongs to, and each frequency
|
||||
|
|
|
|||
|
|
@ -382,7 +382,13 @@ unattended receiver keeps adding to that file night after night rather than
|
|||
starting it over.
|
||||
.PP
|
||||
A capture with nothing recognisable in it produces no file at all, rather
|
||||
than a directory of placeholders.
|
||||
than a directory of placeholders. No voice-activity filter runs inside the
|
||||
recogniser \[em] one throws away the single-word overs between transmissions,
|
||||
which on a scanner are the replies worth having. Instead the whole capture is
|
||||
asked once whether anything in it rises above its own noise, and refused
|
||||
before a recogniser sees it if nothing does. That check can veto a capture
|
||||
but never trim one, so a short reply in the middle of a quiet channel
|
||||
survives it.
|
||||
.PP
|
||||
.BR saunterbrowse (1)
|
||||
reads these back, and lists any callsigns it finds in them with the licence
|
||||
|
|
@ -397,6 +403,11 @@ up, hyphenates them, or drops a hesitation into the middle of the run. So
|
|||
back as the callsigns they are, and "alfa", "juliett" and "whisky" count
|
||||
alongside the official spellings.
|
||||
.PP
|
||||
Two shapes are recognised. An amateur callsign is a prefix, a district digit
|
||||
and a suffix; everything else the FCC licenses is written the other way
|
||||
round, the letters first and then the digits, so WQVF960 and WXG204 are read
|
||||
as the GMRS and business licences they are.
|
||||
.PP
|
||||
Nothing is joined across a slash: a suffix says where the station is, not
|
||||
what it is called, so
|
||||
.I W1AW/B
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
.\" Generated by packaging/make-browse-man.py -- do not edit by hand.
|
||||
.TH SAUNTERBROWSE 1 "2026-08-30" "bandsaunter 2026-08-30_01" "User Commands"
|
||||
.TH SAUNTERBROWSE 1 "2026-09-02" "bandsaunter 2026-09-01_01" "User Commands"
|
||||
.SH NAME
|
||||
saunterbrowse \- read and listen to what a bandsaunter scan collected
|
||||
.SH SYNOPSIS
|
||||
|
|
@ -190,27 +190,42 @@ A suffix is not part of the callsign. Nothing is joined across a slash, so
|
|||
.I W1AW/B
|
||||
is W1AW and not W1AWB, which belongs to nobody.
|
||||
.PP
|
||||
Two shapes are recognised, not one. An amateur callsign is a prefix, a
|
||||
district digit and a suffix \[em] W1AW, KU0W, 2E0ABC. Everything else the FCC
|
||||
licenses is called the other way round, the letters first and then the digits:
|
||||
WQVF960 is a GMRS licence and WXG204 an older Part 90 one. On the GMRS and
|
||||
business channels those are most of what is said.
|
||||
.PP
|
||||
False positives are the thing to avoid: a browser that invents callsigns is
|
||||
worse than one that finds none. So a run of words is only accepted when none
|
||||
of its parts is an ordinary English word \[em] "or 3. Can you open 4" fits the
|
||||
shape once the punctuation is gone, and is not a callsign \[em] while a single
|
||||
token said in one breath is trusted, because W1BOY is a perfectly good
|
||||
callsign.
|
||||
callsign. The GMRS shape is not given that trust: its letters are a run of
|
||||
two to four, which is the length of a short word, so "west 120" fits it
|
||||
exactly and a licence prefix never spells anything.
|
||||
.PP
|
||||
The lookup uses the FCC's own licence data, published at callook.info, which
|
||||
needs no account and no key. The callsign is the only thing sent, results are
|
||||
cached under
|
||||
The lookup uses the FCC's own licence data, published at callook.info, and
|
||||
falls back to hamdb.org; neither needs an account or a key. The second is not
|
||||
a spare copy of the first \[em] callook holds United States amateur licences
|
||||
only, so a German or Canadian callsign is INVALID there and known to the
|
||||
other, and a source that is down takes only itself with it. The callsign is
|
||||
the only thing sent, results are cached under
|
||||
.I ~/.cache/bandsaunter/
|
||||
so the same net is looked up once however many nights it is recorded, and a
|
||||
lookup never delays the display: the entry says "looking up" and fills itself
|
||||
in.
|
||||
.PP
|
||||
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, so reporting it as missing would blame
|
||||
the callsign for the absence of a source.
|
||||
.PP
|
||||
.B \-\-no\-lookup
|
||||
contacts nothing at all. Callsigns are still found, and still described from
|
||||
their own structure \[em] the prefix is allocated by the ITU and the digit is
|
||||
the US licensing district, so a callsign says which country and which region
|
||||
it belongs to without any database. Outside the United States that is all
|
||||
there is; callook.info holds US licences only.
|
||||
it belongs to without any database.
|
||||
.PP
|
||||
.B \-\-callsigns
|
||||
prints every callsign in the directory, who it belongs to, and each frequency
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue