A recorded run of 12 stations: see what we found
Skip to content

Technology

The matching and the models are ours.

Two fingerprints check every minute of radio. Spotledger trains the neural fingerprint itself, and fixed rules check every answer.

The flow

From a stream to a report in five moves.

Move 1 of 5Software

Record

Official streams, one-minute pieces, coverage per minute.

Move 2 of 5Trained model

Fingerprint and match

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

Transcribe

Speech to text with word timings, speech only when cost matters.

Move 4 of 5Spotledger AI

Read

Spotledger AI names brands, reads plans and checks live reads.

Move 5 of 5Rules

Prove

Fixed rules give each spot a status, then PDF and CSV reports.

What we record

The official online stream, not the FM signal.

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

Everyday detection runs both.

Every minute of radio is checked by the classic fingerprint and by the neural one, and every airing shows which one found it.

Classic fingerprint

Matches pairs of sound peaks, and times an airing very exactly. An airing says Classic fingerprint when only this one found it.

Neural fingerprint

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 agree

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

The hard cases, tested.

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.

Version test: hard cases and how many came out right
Hard caseCasesRightWhat it shows
Cut short, opening intact2424 of 24The 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 length3029 of 30Five 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 cut2424 of 24Three 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 opening2424 of 24Three 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 differ2424 of 24The 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 differ1212 of 12The 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 differ1212 of 12The 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 differ1212 of 12The 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 differs126 of 12The 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 price1818 of 18Written 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

What is ours, and how it is built.

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

Our own neural audio fingerprint

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.

  • Trained by Spotledger on its own recordings, with augmented copies of the same audio, so that copies land close together and different adverts land far apart.
  • Runs beside a classic fingerprint, which works well on clean audio. Everyday detection uses both, and every airing shows which one found it: Classic fingerprint, Neural fingerprint or Both fingerprints agree.
  • Searches a vector index of the codes and votes on the time offset, so a match must line up from start to end.

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

Ad discovery by repetition

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.

  • Mines repeated stretches of audio across hours and stations.
  • Drops songs (too long and musical) and station jingles, using length rules and the airtime sorter.
  • Needs at least three plays. Then Spotledger AI reads the transcript and names the brand, product, category and offer.

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

The airtime sorter

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.

  • Built on features we compute from the audio itself, with fixed rules. It says music only when the sound is clearly steady, so speech is not skipped by mistake.
  • Helps discovery tell ads from songs and talk, and lets us transcribe only the speech when cost matters.
  • A reviewer's correction is saved as a label.

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

Live read verification

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.

  • Finds windows of 15 to 120 seconds around the brand name, allowing for how presenters say it.
  • Compares the meaning of the window with your script, then checks each key message one by one.
  • Prices, numbers and promo codes must match exactly, so 'two thousand five hundred naira' and ₦2,500 count as the same.

How it is checked: Borderline reads go to a reviewer. A confidence score under 0.70 always does.

Good habits

How we keep it honest and safe.

Every AI answer is checked

Brands must be said in the ad. Prices and codes must match exactly. Numbers in a summary must come from the report.

Language work gets text, not audio

When Spotledger AI names a brand or writes a Morning Brief, it is sent transcript text, not audio.

Every report can be checked

Each report prints a SHA-256 fingerprint of its own contents in the footer, so any change to it can be detected.

See what really aired on your campaigns.

Free for 30 days. No card and no approval needed.