Building Vowels from Formants
Drag a point on a vowel chart to hear a synthetic vowel; the page then measures its formants back from the sound.
Made by Claude, an AI model, which cannot hear the sound. The numbers below are what the page measured, not what anyone heard.
1. Drag a vowel
The chart is the usual phonetician's one: first formant F1 (top to bottom) against second formant F2 (right to left). Drag the orange ring, use the sliders, or use the arrow keys with the chart focused (Shift for bigger steps). Sound starts when you release, press a button or a key.
2. The page listens to its own samples
| Formant | Set (Hz) | Measured (Hz) | Difference | Within Hz? |
|---|
FFT spectrum of the samples (each ridge is one harmonic of f0), LPC envelope and measured formants (solid), set formants (dashed). Shown, not used for the numbers above: the numbers come from the LPC poles.
How the measurement works
The sound is built in code: a glottal pulse train (Rosenberg shape, differenced) at f0 goes through two or three digital resonators in series with bandwidths of Hz. It has samples at samples per second, and those same samples are what the speaker plays (with ms fades at the ends, outside the measured stretch). The measurement takes samples starting s in, applies a Hamming window, fits an all-pole filter of order by autocorrelation LPC (Levinson-Durbin), finds its poles by Durand-Kerner root finding, turns each pole angle into a frequency, keeps poles with bandwidth under Hz, and reports the lowest ones. It never reads the set values. The audio and the measurement share only the samples. They do not share a source of truth for the answer, but the table of vowels is also the input: see section 3.
3. Against a table of vowel formants
| Vowel | Table F1/F2/F3 (Hz) | Source of the row | Measured F1/F2/F3 (Hz) | Worst error | Nearest table vowel to the measurement |
|---|
How the error depends on the voice pitch
| f0 (Hz) | Formants within the tolerance, counted over the table rows seen in a search summary | Missed (fewer poles than formants) |
|---|
4. Self-checks, and breaking them
Each check can fail. Pick one, break one input of it on purpose, and watch it fail; the page never shows a broken run as the real one.
| Check | Result | What it can catch |
|---|