Two very similar methods of duration prediction by CART tree
are supported. The first, used when parameter Duration_Method
is Tree
simply predicts durations directly for each segment.
The tree is set in the variable duration_cart_tree
.
The second, which seems to give better results, is used when parameter
Duration_Method
is Tree_ZScores
. In this second model the
tree predicts zscores (number of standard deviations from the mean)
rather than duration directly. (This follows campbell91, but we
don't deal in syllable durations here.) This method requires means and
standard deviations for each phone. The variable
duration_cart_tree
should contain the zscore prediction tree and
the variable duration_ph_info
should contain a list of phone,
mean duration, and standard deviation for each phone in the phoneset.
An example tree trained from 460 sentences spoken by Gordon is in lib/gswdurtreeZ. Phone means and standard deviations are in lib/gsw_durs.scm.
After prediction the segmental duration is calculated by the simple formula
duration = mean + (zscore * standard deviation)
For some other duration models that affect an inherent duration by
some factor this method has been used. If the tree predicts factors
rather than zscores and the duration_ph_info
entries
are phone, 0.0, inherent duration. The above formula will generate the
desired result. Klatt and Klatt-like rules can be implemented in the
this way without adding a new method.