Checking Repeating Audio Patterns

Subtiv's picture

Hi,

i was wondering if anybody has an idea for the logic regarding the following:

i want to check if the're some repeating pattern in live audio-tracking... For example if somebody says the same word a couple of time this should be recognised. I don't want, ofcourse, that the word is being recognised, but just the fact that there's a repetition going on. Although it might be nice as well if it could recognise a predefined word, but this could be really hard since everyone has a different tone for the same word.

(This should become one part of a touch-based application in which the audio generates some kind of boids which can be controlled by touch the screen || When to "whirls" of boids come together some kind of "planet" arrises, resulting in some kind of galaxy where the whirls float through)

Any idea's?

(I guess that this logic could also be applied for live-vj'ing for example for tracking repeating patterns of songs...)

jrs's picture
Re: Checking Repeating Audio Patterns

You will need to do some spectral processing using an FFT - the kineme audio input already does this for you. For a single tone (ie a sine wave) you can look at each of the "bins" the FFT outputs and look for one that's not changing - this indicates your sine wave is repeating over and over at the same intensity.

This doesn't work for speech, sampled sounds, volume/intensity changes or many other cases though - to get around it you could average the spectral power over a number of different time periods - say 0.2, 0.5 and 1 sec, the times will depend on the types of sounds you want to recognise. The number of "bins" you use for each FFT will also affect accuracy and the types of sounds it can discern.

You then need something like a bayesian neural network to bring all this data together to - not an easy task. You could maybe hack some js or openCL together though that would allow you to work out the ratios between each bin and each time period. If you then average these ratios and find one that's not changing much you could maybe guess as to weather is a repeating sound.