ms_gauden.h File Reference
(Sphinx 3.0 specific) Gaussian density module.
More...
#include <s3types.h>
#include <logmath.h>
#include "vector.h"
Go to the source code of this file.
Classes |
struct | gauden_t |
| Multivariate gaussian mixture density parameters. More...
|
struct | gauden_dist_t |
| Structure to store distance (density) values for a given input observation wrt density values in some given codebook. More...
|
Functions |
gauden_t * | gauden_init (const char *meanfile, const char *varfile, float32 varfloor, int32 precompute, logmath_t *logmath) |
void | gauden_free (gauden_t *g) |
int32 | gauden_mean_reload (gauden_t *g, const char *meanfile) |
int32 | gauden_dist (gauden_t *g, s3mgauid_t mgau, int32 n_top, vector_t *obs, gauden_dist_t **out_dist) |
int32 | gauden_dist_norm (gauden_t *g, int32 n_top, gauden_dist_t ***dist, uint8 *active) |
void | gauden_dump (const gauden_t *g) |
void | gauden_dump_ind (const gauden_t *g, int senidx) |
Detailed Description
(Sphinx 3.0 specific) Gaussian density module.
Gaussian density distribution implementation. There are two major difference bettwen ms_gauden and cont_mgau. One is the fact that ms_gauden only take cares of the Gaussian computation part where cont_mgau actually take care of senone computation as well. The other is the fact that ms_gauden is a multi-stream implementation of GMM computation.
Function Documentation
Compute gaussian density values for the given input observation vector wrt the specified mixture gaussian codebook (which may consist of several feature streams). Density values are left UNnormalized.
- Returns:
- 0 if successful, -1 otherwise.
- Parameters:
-
| g | In: handle to entire ensemble of codebooks |
| mgau | In: codebook for which density values to be evaluated (g->{mean,var}[mgau]) |
| n_top | In: #top densities to be evaluated |
| obs | In: Observation vector; obs[f] = for feature f |
| out_dist | Out: n_top best codewords and density values, in worsening order, for each feature stream. out_dist[f][i] = i-th best density for feature f. Caller must allocate memory for this output |
Normalize density values (previously computed by gauden_dist). Two cases: If (g->n_mgau == 1), normalize such that the sum of the n_top codeword scores for each feature in dist sums to 1 (in prob domain). Otherwise, normalize by dividing the density value (subtracting, in logprob domain) for each codeword by the best one.
- Returns:
- scaling applied to every senone score as a result of the normalization.
- Parameters:
-
| g | In: handle to all collection of codebooks |
| n_top | In: #density values computed per feature |
| dist | In/Out: n_top density indices and values for each feature. On return, density values are normalized. |
| active | In: active[gid] is non-0 iff codebook gid is active. If NULL, all codebooks active |
Dump the definitionn of Gaussian distribution.
- Parameters:
-
| g | In: Gaussian distribution g |
void gauden_dump_ind |
( |
const gauden_t * |
g, |
|
|
int |
senidx | |
|
) |
| | |
Dump the definition of Gaussian distribution of a particular index to the standard output stream
- Parameters:
-
| g | In: Gaussian distribution g |
| senidx | In: The senone index of the Gaussian |
Release memory allocated by gauden_init. In: The gauden_t to free
gauden_t* gauden_init |
( |
const char * |
meanfile, |
|
|
const char * |
varfile, |
|
|
float32 |
varfloor, |
|
|
int32 |
precompute, |
|
|
logmath_t * |
logmath | |
|
) |
| | |
Read mixture gaussian codebooks from the given files. Allocate memory space needed for them. Apply the specified variance floor value. Return value: ptr to the model created; NULL if error. (See Sphinx3 model file-format documentation.)
- Parameters:
-
| meanfile | Input: File containing means of mixture gaussians |
| varfile | Input: File containing variances of mixture gaussians |
| varfloor | Input: Floor value to be applied to variances |
| precompute | Input: Whether we should precompute |
int32 gauden_mean_reload |
( |
gauden_t * |
g, |
|
|
const char * |
meanfile | |
|
) |
| | |
Reload mixture Gaussian means from the given file. The means must have already been loaded at least once (using gauden_init).
- Returns:
- 0 if successful, -1 otherwise.
- Parameters:
-
| g | In/Out: g->mean to be reloaded |
| meanfile | In: File to reload means from |