### 19.4 CART durations ¶

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.