Phoneme inventory for the formant TTS (sound.speech).
~40 English phonemes in ARPAbet notation, each carrying the acoustic targets the Klatt-style synthesizer (sound.speech.klatt) renders: formant frequencies and bandwidths, inherent durations, source amplitudes (voicing / aspiration / frication), parallel-branch frication spectra, stop closure/burst/aspiration timing, and the boundary-dominance rank + transition time that shape formant movement between neighbours. Values seeded from the published Klatt (1980) tables and classic male reference formants; they are TUNING DATA, expected to be adjusted by ear (tests/sound/manual/speak.lua is the audition harness).
Schema per phoneme (missing fields take the per-type defaults below):
type "vowel"|"diph"|"stop"|"affr"|"fric"|"nasal"|"liquid"|"glide"|"asp"|"sil"
f {F1,F2,F3} formant targets, Hz (consonants: loci the transitions aim at)
fe {F1,F2,F3} diphthong END targets (diphthongs only)
bw {B1,B2,B3} bandwidths, Hz
dur inherent duration, ms (stressed); unstressed = dur * 0.65
av voicing amplitude 0..1
ah aspiration amplitude 0..1
af frication amplitude 0..1
fa {a2,a3,a4,a5,a6,ab} parallel frication spectrum amps
(a2..a3 ride the live F2/F3; a4..a6 fixed high resonators; ab = bypass)
fnz nasal-zero frequency, Hz (nasals; pole is fixed at 280)
stop {closure=ms, burst=ms, asp=ms} stop-gap timing (stops/affricates)
burst fa-style spectrum for the release burst (stops)
rank boundary dominance (higher rank fixes the formant value at a boundary)
trans formant transition time at this phoneme's boundaries, ms
| Name | Signature |
|---|---|
| is_vocalic | is_vocalic(name) -> vocalic |
is_vocalic(
name) ->vocalic
Check if a phoneme is a vowel or diphthong