The implementation uses (Gobl 2017). Also from that paper is this diagram:
NOTE: The LF-model has two implicit equations that need to be solved due to the continuity constraint for visual=True
to help in the process.
The five time-domain parameters (denoted collectively by @Doval2006 p. 5
):
-
$E_e$ : maximum amplitude of the excitation (i.e. $U_g'(t)$) $T_0$ -
$T_e$ : instant of maximum excitation (GCI) -
$T_p$ : instant of the maximum of$U_g(t)$ -
$T_a$ : time constant of the return phase (see picture above)
Alternative definitions for the last three parameters are (Fant1995, The LF model revisited):
$R_k = (T_e-T_p)/T_p$ $R_g = T_0/(2T_p)$ -
$F_a=1/(2πT_a)$ (as an alternative to$R_a=T_a/T_0$ )
This conversion is implemented in the conv_R_param()
function in LF.py
.
Typical values for male vowels are
Typical values for female vowels are
These are implemented in gen_param()
in LF.py
.
LF.py
implements the model and helper routines.
The two notebooks show use cases. Good luck!