Monday, February 11, 2008

Public Service Announcement:

Dear every linguist with access to Praat and a need for fundamental frequency readings:

Do not, for the love of everything you hold dear, use the pitch tracker for this purpose! You will get results like, for a brief example, the following*:

(Click for larger version.)

Do you see the problem? If not, try looking again:

I'm pretty sure my f0 did not, in fact, sharply drop to 0Hz and, just as sharply, return to 166Hz. And, though I'd like to think that I had superhuman laryngeal muscles, I'm pretty sure this dramatic, nigh-instantaneous change is physiologically improbable. This is but one of the myriad ways that the Praat pitch tracker will fail spectacularly to give you adequate results. "All right, Aislin," you may be thinking, "I understand that Praat's pitch tracker is epic fail. But how else am I to get my sweet, succulent f0 data?" Well, fear not! Calculating f0 your own self is dead easy, and I'm going to gently guide you.**

For those with less of an acoustic background, here's the short version of how it works: when your vocal folds vibrate, they create a complex periodic sound wave, the sum of all the harmonics. The fundamental frequency is the same as the first harmonic (h1), and all the harmonics are multiples of the fundamental. This means that the distance between any two harmonics is also equal to the fundamental. Because of this, the quickest and easiest way to calculate f0 involves measuring the harmonics.

To see the harmonics, we're going to use narrowband spectral data. Narrowband gives you worse time resolution, but better frequency resolution, so you can make out the individual harmonics better. Under Spectrogram settings, you can set the window length to 0.03s, and that should do. It'll look something like this:

Notice how you can immediately see that the pitch tracker's display contradicts the spectral data. For this reason, if you must use a pitch tracker display, it's best to show it over a narrowband spectrogram to demonstrate that it's not doing anything heinous.

Now that you've got a narrowband spectrogram, you need to take a slice of it using the Spectrogram menu. You'll see evenly-spaced bumps, each of which is a harmonic. If you see one right at the left edge, though, be careful! That's most likely an artifact of an imperfect mic. If you measure the space between that first bump and the next, you'll find that it's shorter than the spaces between the rest. Also, adult female speakers like myself generally have an f0 of around 200Hz, so the fact that this bump's peak occurs at ~30Hz is a big tipoff.

You want to pick a higher harmonic, maybe h10, and look at the smallest possible chunk of the spectrum that shows you this harmonic. Both of these cut down on measurement error, making your reading as accurate as possible! Place your cursor at the very tippy-top of your selected harmonic, and Praat will tell you what the frequency is. Once you have the value of your whateverth harmonic, divide it by whatever to get the h1. (i.e., divide the value for h10 by 10, h11 by 11, h9 by 9...) Remember that h1 equals the f0, so you are done. In summation:

Anyone who wants to use your data down the line will thank you.

*This represents two tokens of myself saying 'high'.
**If your training has included much acoustic phonetics, you're probably rolling your eyes right now. Sorry, but my recent experiences with tonal data tell me this PSA is desperately needed.


meagan louie said...

Ah, I remember my LING 316, where we were shown a PRAAT analysis of white noise, and it somehow managed to pick up a pitch...

Anonymous said...

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my site, it is about the CresceNet, I hope you enjoy. The address is . A hug.

Gustavo Lacerda said...

ik <3 Praat.

I remember using it as a biofeedback tool, to try to become more aware of my intonation. It's kind of hard to see why it became such a standard, though, since all it's doing is a Fourier transform. (I guess I'm unaware of the advanced features)

And yay for Brazilian blog spam.