The AnimationClick on the image to see the animation.
The DataThe data underlying the animation consists of 928 tokens of /ay/ drawn from an interview with a 60 year old Philadelphian. The data was transcribed by an undergraduate supported by an NSF grant. It is coincidental that I was also the interviewer. A forced alignment of the transcript to the audio was performed using the Penn Phonetics Forced Aligner (P2FA). I extracted formant measurements at 6 millisecond intervals from every stressed /ay/ using Praat. I coded contextual information based on a syllabification of CMU dictionary transcriptions.
One super-long token of /ay/ was excluded because it was extremely poorly tracked, possibly due to a misalignment.
The AnalysisI rescaled the time variable to between 0 and 1 for all tokens. I then fit a smoothing spline anova model for F1 and F2 in R using ssanova() from the gss package with the following formulas
- F1 ~ Voice*log(Duration)*Time
- F2 ~ Voice*log(Duration)*Time
The Animation (again)The "velocity" of the "gesture" is represented in two ways:
- The larger the point, the slower the velocity.
- The bluer the point, the slower the velocity.
- Size: Size represents velocity relative to vowels of any duration. Two points of the same size in a short vowel and a long vowel represent the same velocity
- Color: Color represents velocity relative to vowels of the same duration. So, a very blue point means "short for a vowel of this duration." Points with the same color from vowels of different durations do not necessarily represent the same velocity.
The x and y axes are negative logged hertz values, and are constrained so that an inch of plot space corresponds to the same amount of negative logged formant space for both x and y.
I generated 100 frames representing a smooth transition from the minimum duration to the maximum duration. At some point, voiceless context /ay/ disappears. This is because no pre-voiceless /ay/s were longer than 0.240 seconds.
Each frame was generated using the ggplot2 library in R, then saved to a .png. Then, I used png2swf from swftools to sew the .png's together into a flash animation running at 15 frames per second.