libTLK  1.3.1
Functions
Multiplication of mixture components
Algorithms

Functions

 tL_mixtcompmult_free (tLMixtCompMult *mcmu)
 Frees memory.
 tL_mixtcompmult_new (tLAModel *amodel, tLMixCounts *mcounts, char **err)
 Gets a tLMixtCompMult.
 tL_mu_mixture_components (tLMixtCompMult *mcmu, unsigned int c, unsigned int q, unsigned int newI)
 Multiplies mixture components.
 tL_mu_tmixture_components (tLMixtCompMult *mcmu, unsigned int newI, const char *name, char **err)
 Multiplies the mixture components of a TiedState model.
 tL_mu_tmixture_components_state (tLMixtCompMult *mcmu, const char *state, unsigned int newI)
 Multiplies the mixture components of a tied state.

Function Documentation

tL_mixtcompmult_free ( tLMixtCompMult *  mcmu)

Frees memory.

Frees the memory allocated for the mixture component multiplier.

Parameters:
mcmuThe mixture component multiplier.
tL_mixtcompmult_new ( tLAModel amodel,
tLMixCounts mcounts,
char **  err 
)

Gets a tLMixtCompMult.

This function creates a mixture component multiplier for a given acoustic model. Currently supported types are: Bernoulli mixtures and DGaussian mixtures.

Parameters:
amodelThe acoustic model to modify.
mcountsThe mixture coefficient counts of the model, or NULL. If the counts are provided, then the 'min_occ' parameter is used as stop criterion, guarantying a minimum occupancy in each mixture component.
errPointer to string variable. If not NULL, an error message is allocated in the variable in case of error.
Returns:
The mixture component multiplier, or NULL in case of error.
tL_mu_mixture_components ( tLMixtCompMult *  mcmu,
unsigned int  c,
unsigned int  q,
unsigned int  newI 
)

Multiplies mixture components.

This function multiplies the mixture components of the specified state. New components are created until reaching the desired number, or minimum occupancy value is reached (if mixture coefficient counts are provided). If the desired number is less than the current number of components, then nothing happens. Each new component is created by removing the component with the highest mixture coefficient (or count) and adding two new components which are perturbations of the removed component with half of the mixture coefficient probability. If mixture counts are provided, then they are also updated. Bernoulli mixture components are perturbed as $\vec{p}\pm\vec{0.05}$. DGaussian mixture components are perturbed as $\vec{\mu}\pm 0.2*\sqrt{\sigma^2}$. If newI is 0, then mixture coefficients are ignored and all mixture components of the specified state are split (if the minimum occupancy allows for it).

Parameters:
mcmuThe mixture component multiplier.
cHMM to be modified.
qState to be modified.
newIThe desired number of mixture components.
tL_mu_tmixture_components ( tLMixtCompMult *  mcmu,
unsigned int  newI,
const char *  name,
char **  err 
)

Multiplies the mixture components of a TiedState model.

This function multiplies all the mixture components of the related TiedStates-Mixture model. If the name of a tied state is specified then only the mixture components of that state are multiplied. Components are multiplied as in tL_mu_mixture_components.

Parameters:
mcmuThe mixture component multiplier.
newIThe desired number of mixture components in each state.
nameThe name of the tied state for which mixture components are to be multiplied, or NULL to multiply all mixture components.
errPointer to string variable. If not NULL, an error message is allocated in the variable in case of error.
Returns:
-1 in case of error, 0 otherwise.
tL_mu_tmixture_components_state ( tLMixtCompMult *  mcmu,
const char *  state,
unsigned int  newI 
)

Multiplies the mixture components of a tied state.

This function multiplies the mixture components of the specified tied state. Components are multiplied as in tL_mu_mixture_components.

Parameters:
mcmuThe mixture component multiplier.
stateName of the tied state.
newIThe desired number of mixture components.
 All Data Structures Variables