next up previous contents index
Next: *AT i j prob itemList(t) Up: 13.6 HHEd Previous: 13.6 HHEd

13.6.1 Function

  HHED is a script driven editor for manipulating sets of HMM definitions. Its basic operation is to load in a set of HMMs, apply a sequence of edit operations and then output the transformed set. HHED is mainly used for applying tyings across selected HMM parameters. It also has facilities for cloning HMMs, clustering states and editing HMM structures.

Many HHED commands operate on sets of similar items selected from the set of currently loaded HMMs. For example, it is possible to define a set of all final states of all vowel models, or all mean vectors of all mixture components within the model X, etc. Sets such as these are defined by item lists using the syntax rules given below. In all commands, all of the items in the set defined by an item list must be of the same type where the possible types are

 
		  s 		 - state             		 t 		 - transition matrix

p - pdf w - stream weights

m - mixture component d - duration parameters

u - mean vector x - transform matrix

v - variance vector i - inverse covariance matrix

h - HMM definition

Most of the above correspond directly to the tie points shown in Fig 7.8. There is just one exception. The type ``p'' corresponds to a pdf (ie a sum of Gaussian mixtures). Pdf's cannot be tied, however, they can be named in a Tie (TI) command (see below) in which case, the effect is to join all of the contained mixture components into one pool of mixtures and then all of the mixtures in the pool are shared across all pdf's. This allows conventional tied-mixture or semi-continuous HMM systems to be constructed.

The syntax rules for item lists are as follows. An item list consists of a comma separated list of item sets.

 
		     itemList		  = 		 ``{'' itemSet { ``,'' itemSet } ``}''

Each itemSet consists of the name of one or more HMMs (or a pattern representing a set of HMMs) followed by a specification which represents a set of paths down the parameter hierarchy each terminating at one of the required parameter items.

 
		      itemSet 		  = 		 hmmName . [``transP'' | ``state'' state ]

hmmName = ident | identList

identList = ``('' ident { ``,'' ident } ``)''

ident = < char | metachar >

metachar = ``?'' | `` tex2html_wrap_inline22238 ''

A hmmName consists of a single ident or a comma separated list of ident's. The following examples are all valid hmmName's:

         aa  three  model001  (aa,iy,ah,uh)  (one,two,three)
In addition, an ident can contain the metacharacter ``?'' which matches any single character and the metacharacter `` tex2html_wrap_inline22240 '' which matches a string of zero or more characters. For example, the item list
         {*-aa+*.transP}
would represent the set of transition matrices of all loaded triphone variations of aa.

Items within states require the state indices to be specified

 
		      state 		  = 		 index [``.'' stateComp ]

index = ``['' intRange { ``,'' intRange } ``]''

intRange = integer [ ``-'' integer ]

For example, the item list
         {*.state[1,3-5,9]}}
represents the set of all states 1, 3 to 5 inclusive and 9 of all currently loaded HMMs. Items within states include durational parameters, stream weights, pdf's and all items within mixtures
 
		   stateComp 		  = 		 ``dur'' | ``weights'' | [ `` stream'' index ]
        ``.'' ``mix'' [ mix ]

For example,
         {(aa,ah,ax).state[2].dur}
denotes the set of durational parameter vectors from state 2 of the HMMs aa, ah and ax. Similarly,
         {*.state[2-4].weights}
denotes the set of stream weights for states 2 to 4 of all currently loaded HMMs. The specification of pdf's may optionally include a list of the relevant streams, if omitted, stream 1 is assumed. For example,
         {three.state[3].mix}
and
         {three.state[3].stream[1].mix}
both denote a list of the single pdf belonging to stream 1 of state 3 of the HMM three.

Within a pdf, the possible item types are mixture components, mean vectors, and the various possible forms of covariance parameters

 
		   mix 		  = 		  index [ ``.'' ( ``mean'' | ``cov'' ) ]

For example,
         {*.state[2].mix[1-3]}
denotes the set of mixture components 1 to 3 from state 2 of all currently loaded HMMs and
         {(one,two).state[4].stream[3].mix[1].mean}
denotes the set of mean vectors from mixture component 1, stream 3, state 4 of the HMMs one and two. When cov is specified, the type of the covariance item referred to is determined from the CovKind of the loaded models. Thus, for diagonal covariance models, the item list
         {*.state[2-4].mix[1].cov}
would denote the set of variance vectors for mixture 1, states 2 to 4 of all loaded HMMs.

Note finally, that it is not an error to specify non-existent models, states, mixtures, etc. All item list specifications are regarded as patterns which are matched against the currently loaded set of models. All and only those items which match are included in the set. However, both a null result and a set of items of mixed type do result in errors.

All HHED commands consist of a 2 character command name followed by zero or more arguments. In the following descriptions, item lists are shown as itemList(c) where the character c denotes the type of item expected by that command. If this type indicator is missing then the command works for all item types.

The HHED commands are as follows




next up previous contents index
Next: *AT i j prob itemList(t) Up: 13.6 HHEd Previous: 13.6 HHEd

ECRL HTK_V2.1: email [email protected]