› Forums › Speech Synthesis › Festival › Pruning
- This topic has 4 replies, 2 voices, and was last updated 8 years, 5 months ago by Simon.
-
AuthorPosts
-
-
February 25, 2016 at 21:42 #2651
As we all know from our recent adventures with HTK, amount of pruning can have a profound effect on the outcome of a viterbi search, and there is generally a tradeoff between time and quality of results. Presumably a similar tradeoff is happening in festival during candidate search. Is that correct? If so, is this a parameter we can explore?
-
February 26, 2016 at 08:19 #2653
Yes, there is some pruning of the candidates before search commences, then more pruning during the Viterbi search.
Some of the relevant functions within Festival are as follows:
festival> (du_voice.set_tc_rescoring_beam currentMultiSynVoice 0.5) festival> (du_voice.set_tc_rescoring_weight currentMultiSynVoice 3.0) festival> (du_voice.set_ob_pruning_beam currentMultiSynVoice 0.3) festival> (du_voice.set_pruning_beam currentMultiSynVoice 0.3)
which you execute after loading a multisyn voice. Note that you use them literally as above, with the “currentMultiSynVoice” argument exactly as written (i.e., don’t replace that with the name of your voice).
See the full list of functions – look for those that start “du_” (which means “diphone unit”)
As you make the beam sizes smaller, the speech will gradually get worse. For very small numbers in some cases, you may prevent any sequence being found, and get the error message “No best candidate sequence found”.
-
March 1, 2016 at 20:59 #2670
From our testing, it appears that du_voice.set_pruning_beam goes from 0 (most pruning – so much that ‘no best candidates found’) to 1 (least pruning – higher values than 1 had no effect). Is that correct? Can you tell us what the default value is for this setting? (Is it the numbers you posted above?) Can we query Festival for this value? We tried unsuccessfully to find more documentation/explanation of these functions in the manual.
Can you explain what the ‘observation beam pruning’ is, and how is it different from the regular ‘beam pruning’?
-
March 2, 2016 at 17:38 #2686
Correct – the value is a beam width (wider = less pruning) and takes values between 0 and 1. The default values are set in the file …/festival/lib/multisyn/multisyn.scm
I’ve added more information on pruning to the exercise.
-
March 12, 2016 at 22:40 #2778
I’ve also added more information on changing the relative weight between the target cost and the join cost.
-
-
AuthorPosts
- You must be logged in to reply to this topic.