Move 1 of 5Software
Record
Official streams, one-minute pieces, coverage per minute.
Technology
Two fingerprints check every minute of radio. Spotledger trains the neural fingerprint itself, and fixed rules check every answer.
The flow
Move 1 of 5Software
Official streams, one-minute pieces, coverage per minute.
Move 2 of 5Trained model
Our neural fingerprint, a model we train, and the classic fingerprint, which is signal processing, both run on every minute, merged into airings.
Move 3 of 5Spotledger AI
Speech to text with word timings, speech only when cost matters.
Move 4 of 5Spotledger AI
Spotledger AI names brands, reads plans and checks live reads.
Move 5 of 5Rules
Fixed rules give each spot a status, then PDF and CSV reports.
What we record
We record each station's official online stream. What listeners heard on FM can differ, because a stream can carry different adverts. Every report prints the source it was recorded from.
Two fingerprints
Every minute of radio is checked by the classic fingerprint and by the neural one, and every airing shows which one found it.
Matches pairs of sound peaks, and times an airing very exactly. An airing says Classic fingerprint when only this one found it.
A model we train. It can find an advert under a presenter's voice, or played a little fast or slow. An airing says Neural fingerprint when only this one found it.
Both fingerprints found the same airing at the same time. The airing says so, so you can see how it was found.
Choosing the version
After an airing is found, fixed rules compare the length that played with the length of each version. This is how that step did on the cases that make it hard.
| Hard case | Cases | Right | What it shows |
|---|---|---|---|
| Cut short, opening intact | 24 | 24 of 24 | The opening was kept and 50% to 79% of the advert played. Counted right when the advert was found and flagged cut short (under 90% played). Played length was off by 0.32 s at the median. 12 of 12 as broadcast; 12 of 12 with a presenter talking over, music underneath, a weak stream or noise. |
| Two different adverts of the same length | 30 | 29 of 30 | Five pairs of different adverts within 1 s of each other (one pair of demo adverts, four pairs of found adverts) were all fingerprinted together. Counted right when exactly the advert that played was reported, alone, and not flagged cut short. The two adverts of a pair share no sound, so the version rule had to choose in only 3 of 30; in the rest the fingerprints alone told them apart. 15 of 15 as broadcast; 14 of 15 with a presenter talking over, music underneath, a weak stream or noise. Misses: 1 found but flagged cut short although it played in full. It was not sent to a person for review. |
| Shorter cut inside a longer cut | 24 | 24 of 24 | Three campaigns, each with a 30 second cut that is the first 30 seconds of its longer cut (about 45 seconds). Both cuts were fingerprinted. Counted right when the cut that played was reported, alone, and not flagged cut short. 12 of 12 as broadcast; 12 of 12 with a presenter talking over, music underneath, a weak stream or noise. |
| Different offer, same opening | 24 | 24 of 24 | Three campaigns, each with its original cut and a version with the same first 65% and a different ending. Both cuts were fingerprinted. The original or the version played, and the cut that played had to be the one reported, alone. 12 of 12 as broadcast; 12 of 12 with a presenter talking over, music underneath, a weak stream or noise. |
| Different offer, only the last 6 seconds differ | 24 | 24 of 24 | The same test with the hardest version: the two cuts are identical except for the last 6 seconds. 12 of 12 as broadcast; 12 of 12 with a presenter talking over, music underneath, a weak stream or noise. |
| Different offer, only the last 4 seconds differ | 12 | 12 of 12 | The same test with the two cuts identical except for the last 4 seconds. 6 of 6 as broadcast; 6 of 6 with a presenter talking over, music underneath, a weak stream or noise. |
| Different offer, only the last 3 seconds differ | 12 | 12 of 12 | The same test with the two cuts identical except for the last 3 seconds. 6 of 6 as broadcast; 6 of 6 with a presenter talking over, music underneath, a weak stream or noise. |
| Different offer, only the last 2 seconds differ | 12 | 12 of 12 | The same test with the two cuts identical except for the last 2 seconds. 6 of 6 as broadcast; 6 of 6 with a presenter talking over, music underneath, a weak stream or noise. |
| Different offer, only the last 1 second differs | 12 | 6 of 12 | The same test with the two cuts identical except for the last 1 second. 3 of 6 as broadcast; 3 of 6 with a presenter talking over, music underneath, a weak stream or noise. Misses: 6 reported as another advert. 6 of the 6 went to a person for review. The version rule treats two cuts that explain the played audio to within 2 seconds as equal, so a difference this short can go either way. |
| Presenter reads the wrong price | 18 | 18 of 18 | Written words only: the speech to text step was not part of this test. Real presenter reads found in the recordings, with the price changed to a wrong one, checked by the live read check. 11 of 11 correct spoken forms of the right price (for example 'one thousand Naira' for 1,000 Naira) were accepted. |
How this test was built. Real adverts that Spotledger found in its own recordings, and the four demo adverts, were fingerprinted and then put into three hours of real station audio recorded from the official online streams, after cutting out every stretch where one of these adverts really aired. Half were changed the way radio changes them: a presenter talking over, music underneath, a weak stream, noise. Where an advert has a sibling cut, the sibling was fingerprinted too. We placed every advert ourselves, so the right answer for each case is known. Both fingerprints and the version rule ran as they run on live audio. This is a controlled test: it shows how the version step behaves when we know the answer, not how often it is right on air.
Not tested: English against Pidgin cuts of the same advert (the version rule compares length and sound, not language), a presenter read measured on audio rather than on the written words, and an advert that straddles two one-minute pieces (each case here was checked in one piece). Every case is placed by us in real audio; none is a measure of live accuracy.
A jingle offered as an advert. 131 sounds repeated across stations in the real run. 61 were kept as adverts, 41 were dropped as jingles, 5 as promos and 22 as songs, and 2 could not be sorted. Sounds that repeat across stations were sorted by Spotledger AI and rules. Jingles, promos and songs are dropped: none of them is fingerprinted for detection. Only an advert a person has confirmed is. Of the 68 dropped sounds, 10 were given a brand, and all of those name the station itself. These counts show what the sorting did; no person has checked the sorting against their own labels, so they are not a measure of how accurate it is.
What is ours
One model we train ourselves, the neural audio fingerprint. The airtime sorter, ad discovery by repetition and live read checking are built on rules and transcripts. Reviewer decisions are saved as training labels.
A model we train
A model that turns one second of radio into a short code that survives a presenter talking over the advert, a music bed, heavy compression, noise, a small speed change or a partial play.
Controlled test: 85 of 85 controlled cases detected, with 0 false matches. 10 real adverts from our own recordings were placed 85 times inside 3 hours of other radio.
How it is checked: It is scored against the classic fingerprint in a controlled test, with adverts damaged the way radio damages them. The test radio comes from stations the model trained on, so this is not a score on unseen stations.
Built on transcripts and rules
Adverts repeat many times a day, across stations. Spotledger notices audio that comes back and treats it as a candidate advert, even if nobody uploaded it. It is built on fingerprints, transcripts and rules, not on a model of its own.
How it is checked: The brand must be said in the ad, and a person confirms every new brand before it is used.
Built on rules
A first version built on fixed rules. It listens to five second stretches and says whether they are music, talk, an advert, a jingle or news.
How it is checked: A reviewer's label always wins over an automatic one, and segment length rules stop a short blip being called an ad.
Built on transcripts and rules
A live read changes every time a presenter says it, so it cannot be fingerprinted. Spotledger reads the transcript instead and checks it against your script, with rules for the exact words. It is built on transcripts and rules, not on a model of its own.
How it is checked: Borderline reads go to a reviewer. A confidence score under 0.70 always does.
Good habits
Brands must be said in the ad. Prices and codes must match exactly. Numbers in a summary must come from the report.
When Spotledger AI names a brand or writes a Morning Brief, it is sent transcript text, not audio.
Each report prints a SHA-256 fingerprint of its own contents in the footer, so any change to it can be detected.
Free for 30 days. No card and no approval needed.