int ndim = 26;
float eps = 0.2;
string SOURCEKIND = MFCC_0_D;

# "Silence" is defined as a cough, a breath, a lip smack, or quiet.
# This chunk is at least 50ms long (the "+" signs mean that the states
# loop back to themselves, and can therefore be as long as desired).
# Of course, there is nothing that enforces that the states labelled "cough"
# are actually coughs.   It's really just four different kinds of silence.
macro s1 = 3* smack:+:v=quiet3:m=$s$i | 3* quiet3:+:v=vquiet3:m=$s$i ;
macro s2 = 4* breath:+:v=quiet4:m=$s$i | 4* quiet4:+:v=vquiet4:m=$s$i ;
macro silence = s1 s2 s1 ;
# All the "v=", "m=", and "s=" stuff involves sharing of variances,
# means, or entire state definitions.     For instance, all the "cough"
# states share a comon variance.    All the "cough0" states share a
# common mean, so they will be the same whether the "silence" macro
# is an initial silence or a silence within an IWS.

# So, a "S" phoneme can include multiple coughs, breaths, quiet, etc.
# We require two silences so that the total duration is >100ms,
# which is what differentiates an audible pause from a stop.
phone zsil = silence:+ ;
phones zshortsil = s1 | s2;

macro junk = junks:+ ;
phones zjunk = junk;

macro fourstate = 4* xx:+:v=V4$p ;
macro threestate = 3* xx:+:v=V3$p ;
macro threestate_fr = 3* xx:+ ;
macro twostate = 2* xx:+:v=V2$p ;


# phones z_40qu_qu|zt|zv = fourstate | threestate_fr | twostate ;
# phones zq3_3a_qu|zqq = threestate | twostate ;

phones z[a-z0-9_]* = fourstate | threestate | twostate ;
