📄 hhed.tex
字号:
Duplicates a set of HMMs. This command is used to replicate aset of HMMs whilst allowing control over which structures willbe shared between them.The first parameter controls duplication of tied structures. Anymacros whose type appears in string \texttt{s} are duplicatedwith new names and only used in the duplicate model set. The remainingshared structures are common through all the model sets (original andduplicates).The second parameter defines the number of times the currentHMM set should be duplicated with the remaining \texttt{n} parametersproviding suffices to make the original macro identifiers uniquein each duplicated HMM set.For instance the following script could be used to duplicatea set of tied state models to produce gender dependent oneswith tied variances.\begin{verbatim} MM "v_" { (*).state[2-4].mix[1-2].cov } DP "v" 2 ":m" ":f" \end{verbatim}The \texttt{MM} command converts all variances into macros(with each macro referring to only one variance).The \texttt{DP} command then duplicates the current HMM set twice.Each of the duplicate sets will share the tied variances withthe original set but will have new mixture means, weights andstate macros. The new macro names will be constructed byappending the id \texttt{":m"} or \texttt{":f"} to the original macro name whilst the model names have the id appended afterthe base phone name (so \texttt{ax-b+d} becomes \texttt{ax-b:m+d} or\texttt{ax-b:f+d}.\subsubsection*{\tt FA varscale}Computes an average within state variance vector for a given HMM set,using statistics generated by \htool{HERest} (see {\tt LS} for loadingstats). The average variance vector is scaled and stored in the HMMset, any variance floor vectors present are replaced. Subsequently,the variance floor is applied to all variances in the model set. Thiscan be inhibited by setting \texttt{APPLYVFLOOR} to \texttt{FALSE}.\subsubsection*{\tt FC}Converts all covariances in the modelset to full. This commandtakes an HMM set with diagonal covariances and creates fullcovariances which are initialised with the variances of the diagonalsystem. The tying structure of the original system is kept intact.\subsubsection*{\tt FV file} Loads one variance floor macro per stream from file. The filecontaining the variance floor macros can, for example, be generated by\htool{HCompV}. Any variance floor vectors present in the model setare replaced. Secondly the variance floor is applied to all variances.This can be inhibited but setting \texttt{APPLYVFLOOR} to\texttt{FALSE}.\subsubsection*{\tt HK hsetkind}Converts model set from one kind to another. Although hsetkind cantake the value PLAINHS, SHAREDHS, TIEDHS or DISCRETEHS, the HK command ismost likely to be used when building tied-mixture systems (hsetkind=TIEDHS).\subsubsection*{\tt JO size minw}Set the size and minimum mixture weight for subsequentTie (\texttt{TI}) commands applied to pdf's. The value of \texttt{size} sets the total number ofmixtures in the tied mixture set ({\it codebook}) and \texttt{minw}sets a floor on the mixture weights as a multiple of \texttt{MINMIX}.This command only applies to tying item lists of type ``p''(see the Tie \texttt{ TI} command below).\subsubsection*{\tt LS statsfile}This command is used to read in the \htool{HERest} statistics file (see the \htool{HERest} \texttt{-s} option) stored in \texttt{statsfile}. Thesestatistics are needed for certain clustering operations.The statistics file contains the occupation count for every HMM state. \subsubsection*{\tt LT treesfile}This command reads in the decision trees stored in \texttt{treesfile}.The trees file will consist of a set of questions defining contextsthat may appear in the subsequent trees. The trees are used toidentify either the state or the model that should be used ina particular context. The file would normally be produced by\texttt{ST} after tree based clustering has been performed.\subsubsection*{\tt MD nmix itemlist}Decrease the number of mixture components in each pdf in the\texttt{itemList} to \texttt{m}. This employs a stepwise greedymerging strategy. For a given set of mixture components the pair withminimal merging cost is found and merged. This is repeated until only\texttt{m} mixture components are left. Any defunct mixture components(i.e. components with a weight below \texttt{MINMIX}) are deletedprior to this process.Note that after application of this command a pdf in {\tt itemlist}may consist of fewer, but not more than \texttt{m} mixture components.As an example, the command\begin{verbatim} MD 6 {*-aa+*.state[3].mix}\end{verbatim}would decrease the number of mixture components in state 3 of alltriphones of \texttt{aa} to 6.\subsubsection*{\tt MM macro itemList}This command makes each item (I=1..N) in \texttt{itemList} into a macro with name \texttt{nameI} and a usage of one. This commandcan prevent unnecessary duplication of structures when HMMsare cloned or duplicated.\subsubsection*{\tt MT triList newTriList}Make a set of triphones by merging the currently loaded set ofbiphones. This is a very specialised command. All currentlyloaded HMMs must have 3 emitting states and be either leftor right context-dependent biphones. The list of HMMs storedin \texttt{triList} should contain one or more triphones. Foreach triphone in \texttt{triList} of the form \texttt{X-Y+Z}, theremust be currently loaded biphones \texttt{X-Y} and \texttt{Y+Z}.A new triphone \texttt{X-Y+Z} is then synthesised by first cloning\texttt{Y+Z} and then replacing the state information for theinitial emitting state by the state information for the initialemitting state of \texttt{X-Y}. Note that the underlying physicalnames of the biphones used to create the triphones are recordedso that where possible, triphones generated from tied biphonesare also tied. On completion, the new list of triphones includingaliases is written to the file \texttt{newTriList}.\subsubsection*{\tt MU m itemList(p)}Increase the number of non-defunct mixture componentsin each pdf in the \texttt{itemList} to \texttt{m} (when \texttt{m} is just a number) or by \texttt{m} (when \texttt{m} is a number preceeded by a \texttt{+} sign. A defunct mixtureis one for which the weight has fallen below \texttt{MINMIX}. This commandworks in two steps. Firstly, the weight of each mixturein each pdf is checked. If any defunct mixtures are discovered, then each is successively replaced by a non-defunctmixture component until either the required total number of non-defunctmixtures is reached or there are no defunct mixtures left.This replacement works by first deleting the defunct mixtureand then finding the mixture with the largest weight and splittingit.The split operation is as follows. The weight of the mixturecomponent is first halved and then the mixture is cloned. Thetwo identical mean vectors are then perturbed by adding $0.2$standard deviations to one and subtracting the same amountfrom the other.In the second step, the mixture component with the largestweight is split as above. This is repeated until the requirednumber of mixture components are obtained.Whenever, a mixture is split, a count is incremented for that mixtureso that splitting occurs evenly across the mixtures. Furthermore,a mixture whose {\it gconst} value falls more than four standarddeviations below the mean is not split.As an example, the command\begin{verbatim} MU 6 {*-aa+*.state[3].mix}\end{verbatim}would increase the number of mixture components in state 3of all triphones of \texttt{aa} to 6.\subsubsection*{\tt NC N macro itemList(s)}N-cluster the states listed in the \texttt{itemList} and tie each cluster \texttt{i} as macro \texttt{macroi}where \texttt{i} is 1,2,3,\ldots,\texttt{N}.The set of states in the \texttt{itemList} are divided into \texttt{N}clusters using the following furthest neighbour hierarchicalcluster algorithm:\begin{verbatim} create 1 cluster for each state; n = number of clusters; while (n>N) { find i and j for which g(i,j) is minimum; merge clusters i and j; }\end{verbatim}Here \texttt{g(i,j)} is the inter-group distance betweenclusters \texttt{i} and \texttt{j} defined as the maximumdistance between any state in cluster \texttt{i} and any statein cluster \texttt{j}. The calculation of the inter-statedistance depends on the type of HMMs involved. Singlemixture Gaussians use\begin{equation} d(i,j) = \frac{1}{S} \sum_{s=1}^S \left[ \frac{1}{V_s} \sum_{k=1}^{V_s} \frac{(\bm{\mu}_{isk} - \bm{\mu}_{jsk})^2}{ \bm{\sigma}_{isk}\bm{\sigma}_{jsk}} \right]^{\frac{1}{2}}\end{equation}where $V_s$ is the dimensionality of stream $s$. Fully tiedmixture systems (ie \texttt{TIEDHS}) use\begin{equation} d(i,j) = \frac{1}{S} \sum_{s=1}^S \left[ \frac{1}{M_s} \sum_{m=1}^{M_s} (c_{ism} - c_{jsm})^2 \right]^{\frac{1}{2}}\end{equation}and all others use\begin{equation} d(i,j) = - \frac{1}{S} \sum_{s=1}^S \frac{1}{M_s} \sum_{m=1}^{M_s} \log[b_{js}(\bm{\mu}_{ism})] + \log[b_{is}(\bm{\mu}_{jsm})]\end{equation}where $b_{js}(\bm{x})$ is as defined in equation~\ref{e:cdpdf} forthe continuous case and equation~\ref{e:ddpdf} for the discrete case. The actualtying of the states in each cluster is performed exactly as forthe Tie (\texttt{TI}) command below. The macro for the \texttt{i}'thtied cluster is called \texttt{macroi}.\subsubsection*{\tt PS nstates power [numiters] }This command sets the number of Gaussians in each HMM stateproportional to a power of the number of frames available for training it. Thenumber of frames is obtained from a ``stats'' file output by \htool{HERest},which is loaded by the \texttt{LS} command. Typical usage might be:\begin{verbatim} LS <statsfile> PS 16 0.2 \end{verbatim}in order to acheive an average of 16 Gaussians per state with a powerof 0.2. It is always advisable when increasing the number of Gaussians in states toincrease the number by small increments and re-estimate HMMs using\htool{HERest} once or more in between. It may be difficult to avoid alarge increase in number of Gaussians in particular states when moving froma HMM set with a constant number of Gaussians per state to one controlledby a power law. Therefore the PS command has a facility for increasingthe number of Gaussians gradually where the target is larger than theinitial number of Gaussians, so that HERest can be run in between. In thisexample, one could use the \htool{HHEd} command \texttt{PS}~16~0.2~3, run\htool{HERest}, use the command \texttt{PS}~16~0.2~2, run \htool{HERest},and then run \texttt{PS}~16~0.2~1 before the final re-estimation with\htool{HERest}. The last argument is the number of iterations remaining.A fairly similar effect could be obtained by increasing the power linearlyfrom zero.\subsubsection*{\tt QS name itemList(h)}Define a question \texttt{name} which is true for all the models in\texttt{itemList}. These questions can subsequently be used as part of the decision tree based clustering procedure (see \texttt{TB}command below).\subsubsection*{\tt RC N identifier [itemlist]}This command is used to grow a regression class tree for adaptationpurposes. A regression class tree is grown with\texttt{N} terminal or leaf nodes, using the centroid splitting algorithmwith a Euclidean distance measure to cluster the model set's mixturecomponents. Hence each leaf node specifies a particular mixturecomponent cluster. The regression class tree is saved with the macroidentifier \texttt{identifier\_N}. Each Gaussian component is also
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -