MLK day: Pitch range
Language Log 2017-01-19
In honor of MLK day, I've replicated something that Corey Miller did for a term paper in an introductory phonetics course in the early 1990s. The point of the exercise is that any given speaker can exhibit a wide variety of different pitch ranges. 25 years ago this was a somewhat complicated business, involving digitization of tape recordings, use of expensive high-end computer workstations and so on. Today the whole process from start to end took me less than half an hour, leaving out the time required to write this post. I've put links to the relevant scripts at the end of the post — six lines of shell commands and a dozen lines of R.
We're comparing Dr. King's famous "I have a dream" speech from August of 1963, and a slightly less famous reading of the "Letter from Birmingham Jail" from April of 1963. Both are available on Youtube, and so it's easy to download them and extract the audio. And it's just as easy to calculate fundamental-frequency estimates and create a graph of the range of pitches employed, here presented as percentiles of f0 values from the 10th to the 90th percentile:
And a table of the values:
10% 20% 30% 40% 50% 60% 70% 80% 90%D 212 246 264 278 289 300 311 324 341B 95 99 103 106 110 113 117 122 130
The reason for looking at things in terms of percentiles rather than in terms of maximum and minimum values is that pitch-trackers commonly scatter a few estimates at one or two octaves above or below what we should probably consider the true value. (In fact, the whole idea of "fundamental frequency" in speech is an abstraction that can lead to all sorts of other troubles if we take it too seriously, but never mind that for now…)
Here's the same data plotted in semitones:
And the table of values:
10% 20% 30% 40% 50% 60% 70% 80% 90%D 13.9 16.5 17.7 18.6 19.3 19.9 20.5 21.2 22.1B 0.1 0.8 1.4 2.0 2.5 3.0 3.6 4.3 5.4
Note that the difference between MLK's pitch range in these two different situations is greater than the typical difference between male and female voices in a given setting — see "Biology, Sex, Culture, and Pitch", 8/16/2013.
The two recordings:
The (Unix shell) commands for getting the audio and doing the pitch tracking (MLKprocess.sh):
getyoutube https://www.youtube.com/watch?v=3vDWWy4CMhE DreamSpeechgetyoutube https://www.youtube.com/watch?v=knFojb020bY BirminghamJailsox --norm DreamSpeech.mp3 DreamSpeech.wav remix 1 rate 16000get_f0a -i DreamSpeech.wav -m 80 -x 500 -f .005 >DreamSpeech.af0sox --norm BirminghamJail.mp3 BirminghamJail.wav remix 1 rate 16000get_f0a -i BirminghamJail.wav -m 80 -x 500 -f .005 >BirminghamJail.af0
The command "getyoutube" is another simple shell script, linked here. The source code for the command "get_f0a" is here.
And the R script for generating the graphs is here.