This system traces musical tracks and advertisements in radio broadcasts.
— Real-time tracking of advertisement and musical track airing;
— Finding out when a track or advertising bit is not fully aired: the beginning or end is cut off, a track is interrupted;
— Collecting statistics about aired advertising bits and tracks – length, air time, block position, number of times aired a day for each radio station, etc.;
— On bases of the assignable data it will be possible to make any reports;
— Actual confirmation (through playback) that advertising bits and tracks are aired at the specified time.
— The accuracy for identifying tracks and advertising bits is 99.4%, while its completeness is 97.7%.
— The lowest accuracy is for short (4-5 seconds) advertising bits.
— The margin of error for determining the beginning of a bit does not exceed 1.5 seconds.
— Patterns are generated 300 times faster than real-time playback, while pattern searches are 10 times faster.
One can break the algorithm down into a few main stages:
A spectrogram is generated based on the audio file. In the radio spectrogram there are not only horizontal strips (fixed-height sounds), but there are also vertical ones (noise across the whole frequency range). Air time can be divided into fragments; there is a pattern for each fragment (where there are certain frequencies from the spectrogram).
Violin spectrogram (playing for 5 seconds). On the horizontal axis – time, on the vertical – frequency. One can see the separate notes and their harmonics.
One can easily select patterns for a full comparison from the indexed patterns. This comparison is performed during the next phase.
Now the pattern which is present in this particular fragment of air time is selected from the previous stage patterns. One can picture the algorithm idea in the following manner (however, in the system a modified algorithm with expanded patterns and higher quality work is used):
When comparing patterns of two different sound fragments, we look for points where they match by frequency and have the same shift in time. At first one should find all the pairs of points which match by frequency and then one should plot a histogram with variations by time between points. That is to say that the height of one column on the histogram is the number of pairs of points with matching frequency and the given difference in time.
There is a clearly noted peak:
The positioning of the peak allows one to understand where there is a shift between tracks.
No peak, less matches:
The correlation between the size of the peak and the other columns allows one to understand whether or not there is a match.
At one point in time there may be two matches for various reasons. The first reason is that two almost identical advertising bits are of the same length and the text differs slightly. Next we pick the advertising bit with the largest match coefficient from these ‘matching’ bits. The second reason is that two advertising bits of varying length have the same beginning, this is when the first advertising bit is some sort of ‘prefix’ for the second one. In this case we take the longer of the two clips because since there was a match this means that the longer version was aired.