Pruning

Festival's Multisyn unit selection engine prunes the candidate lists, and performs more pruning during the search.

Here you can try modifying the various pruning parameters of Festival’s Multisyn unit selection engine, after loading a Multisyn voice. Pruning is used for two reasons: to reduce the amount of computation, and to eliminate the worst candidates. Therefore, pruning will affect both speed and quality and you will want to examine its effect on both. A useful command is time.

Observation pruning

This pruning is performed on the list of candidates before the Viterbi search commences. It discards candidates with target costs greater than the beam width. Making this beam very narrow means that the remaining candidates will all have low target costs, which is good, but that the subsequent Viterbi search will not have much choice and so may not be able to find a sequence with low join costs.

festival> (du_voice.set_ob_pruning_beam currentMultiSynVoice 0.6)

where 0.6 is the beam width (you can vary this between 0 and 1). The default beam width is 0.25.

Beam pruning

This pruning happens within the Viterbi search. Making this beam narrow will make the search less exact and increases the risk that the sequence of units found will not actually be the one with the lowest overall cost.

festival> (du_voice.set_pruning_beam currentMultiSynVoice 0.2)

where 0.2 is the beam width (you can vary this between 0 and 1). The default beam width is 0.25.