back to list

SWIPE algorithm for F0 estimation

🔗Mike Battaglia <battaglia01@...>

3/27/2011 1:58:41 AM

I couldn't find any record of this having ever been posted here:

http://psysound.wikidot.com/system:swipe-pitch-estimation

SWIPE is an algorithm that attempts to, very roughly speaking,
identify the incoming signal as the sum of sawtooth waves. It then
proceeds to pick "the strongest one" and say that's the F0 for the
signal. This is the same notion that we've been throwing around for
ages over at tuning-math, with a few twists, some better, some worse.
It has apparently outperformed a whole range of both time-domain and
other frequency-domain algorithms in various tests, one of which is a
square-difference algorithm not too different from what Tartini is
doing. There is also an algorithm called SWIPE' (SWIPE-prime) that is
probably even more accurate than necessary.

I highly suggest that anyone interested read this dissertation, which
doesn't have all that much math and does a fantastic job at explaining
all of this better than I can in very clear English. If we can
implement some variant of this, perhaps with parabolic waves instead
of sawtooth waves, and instead of picking "the strongest F0" compute
an entropy, I think we'll be able to get a reasonable correlate for HE
that can apply to any incoming signal.

-Mike