› Forums › Speech Synthesis › Festival › Join & Target cost
- This topic has 3 replies, 3 voices, and was last updated 4 years, 4 months ago by Simon.
-
AuthorPosts
-
-
August 9, 2018 at 17:39 #9302
I’m trying to turn off the target & join costs for my unit selection voice.
I launch festival, load the voice like so:
festival>(voice_sg_gam_sub_p360_multisyn)
and then run this:
festival> (du_voice.set_target_cost_weight currentMultiSynVoice 0.0)
This however returns ‘nil’ and doesn’t seem to affect the voice at all. What is going wrong? How can I make sure that the target cost is set to 0?
Thank you in advance!
-
August 10, 2018 at 07:33 #9304
In the exercise, the section about the target cost weight describes how to change the target cost weight.
See the notes about pre-selection and pruning – these are probably why you are not hearing any difference. You cannot disable pre-selection (because this ensures the right thing is said!) but you can disable pruning.
To confirm that different candidates are actually being used, you can examine the
Unit
relation of the utterance. It’s possible that the selected units are changing but you cannot hear the small difference this makes.Use the commands described here to examine which candidates are selected:
festival> (set! myutt (SayText "Hello world.")) festival> (utt.relation.print myutt 'Unit)
-
April 2, 2020 at 18:27 #11090
Hello,
I have a similar but more theoretical question regarding the target/join cost weighting. I’ve played around with the settings and calculated the target vs join costs for a couple of different sentences using each of these settings.
I noticed that for every single sentence, the lower the weight of the target cost, the lower both the join and target costs (this doesn’t necessarily make them sound better!).
This doesn’t really make sense to me – surely the target cost should be lowest when its weight is at the higher end of the spectrum (e.g. 1.0, 0.7…), i.e. when higher importance is assigned to it? If there’s something I’m missing, please let me know!
Thanks,
Lucy -
April 5, 2020 at 10:26 #11096
The target and join cost values reported by Festival have already been multiplied by their respective weights.
A low target cost weight will bias the search towards finding good joins (those with lower cost), at the expense of selecting candidates with a poorer match to their target, i.e., candidates with high target cost, noting that the reported target cost has been multiplied by a low target cost weight.
The consequence is that it is only valid to compare absolute values of join and target costs for a fixed setting of the target cost weight (e.g., comparing across different input sentences, or a fixed sentence synthesised with different unit databases). Changing the weight changes the absolute values.
An added complication in inspecting the total join cost across an utterance, as you vary the target cost weight, is that the proportion of zero-cost joins will vary – so you will get sudden ‘jumps’ in the values.
In summary – you are doing the right thing in inspecting values closely for individual sentences, but the absolute values of the costs are not very helpful. Try inspecting the ratio between them instead. If you’re looking for something objective to measure, then the number of zero-cost joins is a good option.
-
-
AuthorPosts
- You must be logged in to reply to this topic.