Hello in hts_engine, you can edit the function HTS_Vocoder_synthesize() in lib/HTS_vocoder.c and replace the line: p = v->rate / exp(lf0); with p = 110; This should overwrite any pitch value generated from the model (for voiced frames) with 110Hz. However this means recompiling hts_engine every time you want to change the value. Note that in most recent versions of hts_engine, there are also the lines p = v->rate / MIN_F0; p = v->rate / MAX_F0; to be replaced with p = 110; To avoid recompiling every time, you could also modify the code of hts_engine.c so that the constant pitch value is passed as an argument of the executable (i.e. in the command line and it would end up in the "argv" of main()) and propagate it to the vocoder (adding a specific variable to the struct _HTS_Vocoder). This way you could do "hts_engine ... -c 110" (for instance, assuming that "-c" is the parameter name for your constant pitch value) and synthesize with constant pitch at 110Hz. Hope it helps, Alexis ps: a bit of self-advertisment (sorry for that): in MAGE (our realtime library based on hts_engine 1.06 ), you can set the pitch value at runtime to whatever value (constant or variable) you want while the speech is produced. However I'm not sure how much it corresponds to your use case (for instance we use limited phonemic context, though you can configure it to use the complete one). On 11/03/15 20:09, Erica Cooper wrote:
|