29 Mar 2013 danstowell   » (Journeyer)

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.

Syndicated 2013-03-18 12:25:26 (Updated 2013-03-18 12:28:10) from Dan Stowell

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!