Internal soundgen function.
getFormantDispersion(
formants,
method = c("meanDispersion", "regression")[2],
tube = c("closed-open", "open-open")[1],
interceptZero = TRUE,
speedSound = 35400,
plot = FALSE,
checkFormat = TRUE,
output = c("simple", "detailed")[1]
)
formant frequencies in any format recognized by
soundgen
: a vector of formant frequencies like c(550,
1600, 3200)
; a list with multiple values per formant like list(f1 =
c(500, 550), f2 = 1200))
; or a character string like aaui
referring
to default presets for speaker "M1" in soundgen presets
the method of estimating vocal tract length (see details)
the vocal tract is assumed to be a cylindrical tube that is either "closed-open" or "open-open" (same as closed-closed)
if TRUE, forces the regression curve to pass through the origin. This reduces the influence of highly variable lower formants, but we have to commit to a particular model of the vocal tract: closed-open or open-open/closed-closed (method = "regression" only)
speed of sound in warm air, by default 35400 cm/s. Stevens (2000) "Acoustic phonetics", p. 138
if TRUE, plots the regression line whose slope gives formant dispersion (method = "regression" only). Label sizes show the influence of each formant, and the blue line corresponds to each formant being an integer multiple of F1 (as when harmonics are misidentified as formants); the second plot shows how VTL varies depending on the number of formants used
if FALSE, only a list of properly formatted formant frequencies is accepted
"simple" (default) = just the VTL; "detailed" = a list of additional stats (see Value below)
Estimates formant dispersion based on one or more formant frequencies.
soundgen:::getFormantDispersion(
list(f1 = c(570, 750), f2 = NA, f3 = c(2400, 2200, NA)))
Run the code above in your browser using DataLab