[Subject Prev][Subject Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hts-users:00328] Re: about modifying voice's characteristic


Hi,

The F0 values for each state are calculated in mlpg.c's pd2speech function:

f0 = gp->F0_STD * exp(lf0pst->par[lf0frame++][0]) + gp->F0_MEAN;

I haven't checked lately, but I guess that HTS has now been integrated
into Festival's C++ code.
Thus the best way to modify F0 (in the Festival framework)
is to pass some data structure (like Utterance or Segment) down
to pdf2speech(). And then after the final f0 calculation:

 f0 = gp->F0_STD * exp(lf0pst->par[lf0frame++][0]) + gp->F0_MEAN;

one might do something like (assuming current_segment has been made
available):

 f0 += current_segment->local_f0_change;

However, the proper way to model stress is to add appropriate
stuff to your label files.
Manually modifying f0/duration/volume is typically a bad idea...
(This is why most formant synthesizers sound far less than pleasing.)

regards,
  Nicholas

> Hi
>
> I want to modifying voice's characteristic through modifying the f0.
>
> for example:
>
> if I want  to stress   some   phonemes,
> I must find the position of the phonemes in the f0s' sequence.
>
>
> In  the   " HTS + festival " demo , hts_engine  can do that,
> but it modify the whole sentence's f0s.
>
> certainly we can modify the engine to modify  some  phonemes' f0s through
> their durations.
>
>
> But I found that
> in the "HTS - demo ", it generate the "mcep" and "pit" file to generate
> speech,
> so I want to modify the "pit"  file by hand  to change
> voice's   characteristic.
>
> I see the "pit" file  is generated by "HMGenS" which is modified .
> I think that modifying the "HTS-1.1.1_for_HTK-3.2.1.patch" can do that ,
> and maybe it is similar to modifying the hts_engine.
>
>
>
> I want to kown  that is there  any other ways to open the "pit" file and
> modify the values in it.
>
>
> thank you very much, and
> Best regards
>



References
[hts-users:00327] about modifying voice's characteristic, lei liu