15

I can't stand listening to conventional radio because I can't stand listening to ads. (The same goes for TV, where commercials are 200% louder than what you are trying to watch.)

Unfortunately, my wife needs to listen to the radio while getting ready in the morning.

I was thinking, we have plugins to block ads in our web browsers, why not for the radio?

Most radio stations offer their content streaming over the web. How would you got about designing an ad-blocker? Can you foresee any gotchas?

UPDATE

A couple points that came up...

What to replace the ads with: silence would be fine.

Identifying Ads: maybe the first time an add plays it wouldn't be recognized, but you would have to signal the software that this is an ad. The ad would be recorded. Would it be possible to process it and extract some kind of unique 'signature' so that the next time it plays it is recognized and muted?

carrier
  • 32,209
  • 23
  • 76
  • 99
  • What kind of programming does she need to listen to? Music. News. Talk. – Les Mar 04 '09 at 19:51
  • I'm reminded of a cell phone service, that for a fee, allows you to call them and they will identify (artist, song, album) of the music you're playing. This was done with audio sampling of any part of the song. – Les Mar 05 '09 at 13:11
  • I don't know, where do you live, but in Poland each radio station does have specific sound indicating start and end of commercial block. The simplest way would be to detect that jingle to silence out the whole block. – Spook Dec 27 '13 at 11:32

12 Answers12

6

I feel the same urging need on the french radio networks. For a computer-based solution, here is my opinion about 3 issues in the process.

1. Recognize when Ad is playing

1.1 A manual [Shut up] button would be useful : press it whenever you hear annoying Ads. It is reliable (though a little late), and the "alert" could be broadcast to a community tool over the internet.

1.2 Receive a "this is an Ad" signal from the internet (regardless if human or software generated).

1.3 Analyze signal, compute signature, and compare with a community database on the internet.

1.4 Analyze signal to find higher loudness than average.

1.5 Analyze signal to find sentences spoken faster than average.

1.6 Analyze signal to find suspicious phrases like "cheap", "dollars only", "amazing", "special offer", etc.

2. Fill the Ad time with some other sound

2.1 For some, silence is indeed perfectly acceptable.

2.2 Tell the player to play your own mp3 playlist during the commercials.

2.3 Tell the player to switch to another favorite radio (preferably one not being playing commercials at the same time.

2.4 If you accept a 60-second delay, the system will leverage the community signals and be able to stop ads from their very first second on.

3. Will the Ad companies get mad?

3.1 Well, take the great AdblockPlus example. It works really fine, and I asked its developper Wladimir Palant in 2008 or so he had got into troubles with Ad lobbies. He replied "No : if Firefox has 20% share and then 20% of Firefox users install Adblock, it makes only 4% of internet users... not enough yet to be a huge concern for them. I never received any kind of pressure attempt from them."

3.2 Dispite this, the Tivo VCR reached it to make US TV content providers pretty mad, because it allowed to skip Ads.

3.3 In the special case of computer-based radio listeners through the internet (only a small % of all radio listeners), I think the software would be able to achieve great reliability and popularity long before any content provider feels threatened : just like AdblockPlus.

Deleplace
  • 6,812
  • 5
  • 28
  • 41
5

For the simplest case, I would simply monitor a moving average of the volume of the stream as it comes in. If the moving average goes above a threshold (that would be tuned), then simply mute the volume (or cut it by 80%).

I did a quick google search, and it seems like this class would help (assuming you're doing it in .net): http://www.codeproject.com/KB/audio-video/SoundViewer.aspx

FryGuy
  • 8,614
  • 3
  • 33
  • 47
4

Gathering a few insights from this page, I built an adblock for streaming radio: http://adblockradio.com

A server does the (rather expensive) computations and delivers a "spamicity" index to the clients, who can mute the sound accordingly.

I works only for a selection of French streams for now. Probably more in the future, in various languages.

abr
  • 41
  • 1
2

I created an open-source ad-blocker for the radio broadcast. It assumes that each commercial block starts and finishes with a specific jingle. I recorded these jingles and then used cross-correlation to detect them in the broadcast stream.

I prepared two versions of my ad-blocker. The first one is a simple GUI application that receives internet stream, mutes the ads and plays the result.

The second one is a ad-blocker meant to be used with a stereo receiver. I run it on Raspberry Pi to silence ads in my home stereo system. For this version I needed a broadcast source for the analysis. I used a cheap DVB-T stick and the rtl_fm app.

Implementation details can be found on my blog.

Tomek Rękawek
  • 9,204
  • 2
  • 27
  • 43
1

I have often wished to have this, but don't have the smarts to do it. My design points would be:

  • Instead of analyzing the incoming stream, you can attack it from the sound card itself. That way, no matter how a commercial or unwanted audio is being played, it can be cut off.
  • Buffer 10-15 seconds while listening. Then when the user says, "This is a commercial," allow him/her to identify in that buffer where it began. Then the app can match outgoing audio to its hit list of commercial sound bites and know when to mute.
    • As the new commercial plays, prompt the user to indicate when it's over. Then the app knows how long to mute.
    • Bonus: Commercial announcers often do many commercials on the same station. Voice quality recognition could allow the app to listen for the announcer's (often annoying) voice and ask "Is this a commercial?", making it even easier to add the commercial to the hit list.
Doug
  • 21
  • 3
1

Given that the streaming happens live one obvious gotcha is what would you fill the time with? Theoretically you could cut out the radio altogether for 30 seconds or so, but that's not a very good solution.

Also, even assuming you can perfectly convert the radio speech to text (in real-time) - a big "if", how would you determine form a stream of text that an ad is about to start?

levik
  • 114,835
  • 27
  • 73
  • 90
  • i don't need to fill the time with anything, silence would be fine by me. although, probably wouldn't be too hard to fill it in with other music. – carrier Mar 05 '09 at 02:45
  • you could even fill it with your own ads! – Hugo Jun 03 '16 at 17:24
1

One thing you have to beware of is that some clients are so smart that they pause the ads if you turn down the volume too much. Spotify does this.

No problem on radio or pure media streams though.

0

Super short answer but would be workable and take time/investment to create:

Crowd source it in a vlc plugin, allow user to hit button and spread range that has ad. If range is reported so many times within a constraint then stop ad recording blah blah condense radio, compare audio hash files to do this. Wham bam u got crowd sourced commercial free radio with an option to just listen to unqiue condensed radio (no reruns). Pretty sure u would have to store condensed radio on client side else it's illegal or something.

0

I think you'd want to sense the volume shift and then have it programmed to mute for 60 seconds, retest the stream at that point and if at same level stay off for 30 more then sample again and if the application senses it is the lower volumed program it unmutes til any change. Some sort of ducking, timed compressor with a threshold above a preset level (set while listening to the program). An acoompanying audio analyzer window or graph that shows the levels in a graphic way would be ideal...

I found this site because I am being driven mad by Heart&Bdy Extrct ads that plague Jeff Rense's nightly program and several other alt news stations. EVERY AD BREAK! If you design some software that can reliably do the job you would likely make some money, but the ad people would get pretty mad I imagine. (I am assuming you meant streaming radio) but I will get in line to buy one if you do develop... better yet, make me your first customer!! I often go missing a few minutes of some show because I forget to unmute after going about something in the room...so much to learn out there...

Steve Czetty
  • 6,147
  • 9
  • 39
  • 48
CRG
  • 1
0

I'm not sure how you would go about doing it, but you could create some sort of audio "filter" that checks every the stream every so often (5-10 seconds).

If the filter fails, it would mean it's an advertisement, so you could turn off or mute the stream for a while.

Think of it like audio regular expressions.

Now come the problems.

As levik said, what do you fill dead time with?

How would you attach your filter to the streamer? If you hooked it up to the speaker feed directly this might work, but what do you do if you want to let audio from something else play, while muting the radio?

How computationally expensive would this be?

This sounds like an interesting project, if you make good progress on it, let us know!

samoz
  • 56,849
  • 55
  • 141
  • 195
0

LabVIEW by National Instruments has a bunch of audio (and vibration) analysis tools. One thought that comes to mind would be to compare the left and right channels. If they differ, then you probably have music. It could still be an ad though. I haven't used their audio tools, nor am I familiar with audio analysis, so you still have some homework to do.

Sometimes you need to abandon a programming approach and do it differently. I listen to music on pandora.com. The ads are visual on the monitor, but never audible. I choose the music type I want to hear and let it play.

Les
  • 1,280
  • 2
  • 9
  • 14
0

About filling the blanks and handling the processing delays

If your wife isn't too obsessed about the timing, your tool could start 30 minutes before she gets up and thus have a buffer of ad-free radio.

srmark
  • 7,942
  • 13
  • 63
  • 74
  • good suggestion... however, one of the reasons she has to listen to it is to help her "keep track of time" while she's getting ready. just quiet during the commercials would be perfectly acceptable. – carrier Mar 05 '09 at 02:44