Other things on this site...

Evolutionary sound
Listen to Flat Four Internet Radio
Learn about
The Molecules of HIV
Make Oddmusic!
Make oddmusic!

Pulling bird sounds out of the fog

I'm on a research visit to Rémi Gribonval's research group at INRIA (Rennes, France). So far it's been great, and maybe I'll tell you more later, but first I just want to blog a little signal-processing achievement for today.

Together with Bob Sturm and Boris Mailhé I've been working on improvements to MPTK, the C++ toolkit for sparse decomposition of signals. I've spent quite a lot of time on making a nice Python wrapper (yay) and also on code refactoring (hmm), but today I have actually done some signal processing:

Below you can see a little spectrogram of a chiffchaff singing:


Time is along the x-axis, frequency the y-axis. (The audio is from Xeno Canto: #XC25760.)

Now, in my previous research work I developed a way of tracking those chirrups, but it relied on a rather simplistic first step of detecting individual sounds. What I've been able to do, finally today, is use Matching Pursuit instead, thanks to MPTK (with the "anywave" feature which I think I have just fixed). Potentially, this has some advantages in detecting birdsong syllables cleanly.

So my first test today is to take a simple "template" for a syllable:


And use this as a one-atom dictionary in matching pursuit applied to the above spectrogram. The result is a set of "detections" which I can use for various purposes, such as, for example, reconstructing a cleaned-up spectrogram:


Looks pretty good eh? There's one false-positive in the above, and one or two false-negatives, but the basic principle is looking good. This should be useful.

| science | Permalink