SPRAAK
|
Quick selection of gaussians for SC_HMMs. More...
Enumerations | |
enum | { SPR_FROG_BMP, SPR_FROG_16, SPR_FROG_32, SPR_FROG_COMPACT, SPR_FROG_FAST_MVG, SPR_FROG_GS, SPR_FROG_NO_GS } |
Different flags for the FRoG-system. More... | |
Functions | |
void | spr_frog_sel_bmp_compress (SprHmmUchar4 *restrict sel, int nmvgs) |
void | spr_frog_sel_bmp_uncompress (SprHmmUchar4 *restrict sel, int nmvgs) |
SprHmmRmgInfo * | spr_frog_rmg_free (SprHmmRmgInfo *info) |
Deallocates all memory allocated to the rmg_info. More... | |
int | spr_frog_rmg_sel_sum (const SprHmmRmgInfo *info, const SprHmmUchar4 *sel) |
Count the number of ones in the selection array. More... | |
SprHmmRmgInfo * | spr_frog_rmg_change (SprHmmRmgInfo *info, double margin, double sigma) |
SprHmmUchar * | spr_frog_rmg_select_ (const SprHmmRmgInfo *info, const float *x, const SprHmmUchar *sel_in, SprHmmUchar *restrict sel_out) |
void | spr_frog_rmg_multi_select (SprHmmMvgs *const *mvgs, int nmix, const float *dptr) |
int | spr_frog_rmg_stats_alloc (SprHmmRmgInfo *info) |
int | spr_frog_rmg_stats_read (SprHmmRmgInfo *info, char *fname) |
int | spr_frog_rmg_stats_write (char *fname, SprHmmRmgInfo *info) |
Dump the rmg stats to disk. More... | |
SprHmmUchar4 * | spr_frog_rmg_stats_select (SprHmmRmgInfo *info, float *x, SprHmmUchar4 *sel_out) |
int | spr_frog_rmg_stats_cnt (const SprHmmRmgInfo *info, int trunc_val, float *max_red_loss, float *est_red_loss) |
SprHmmRmgInfo * | spr_frog_rmg_stats_reduce (SprHmmRmgInfo *info, int trunc_val) |
int | spr_frog_rmg_write (const char *rmg_fname, SprAcmod *gset, SprHmmMvgs **mvgs, int nmix) |
SprHmmRmgInfo * | spr_frog_rmg_bmp_compress (SprHmmRmgInfo *info, int effort) |
SprHmmRmgInfo * | spr_frog_rmg_init (SprAcmod *gset, SprHmmMvgs *mvgs, int imix, const char *rmg_flags) |
Initialise the rmg_info. More... | |
void | spr_frog_rmgs_init (SprHmmMvgs **mvgs, int nmix, const char *rmg_flags) |
void | spr_frog_rmg_reduc (SprHmmRmgInfo *info, const SprHmmUchar *sel) |
Quick selection of gaussians for SC_HMMs.
Removes gaussian's in the select list (byte array with a flag for each gaussian, a gaussian is evaluated if its corresponding flag is set). The removal rate is controled with two parameters: <log2_nr_div> and <margin> Each axis is divided in 2^<log2_nr_div> divisions. The initialisation routine determines for each gaussian and for each cel whether the gaussian has to be evaluated or not. The special storage of the information (a binary tree) results in a very fast removal algorithm.
To determine whether a gaussian has to be evaluate or not, two approaches are uses:
Following can be specified to control the FRoG system:
[RMG_flags] | ||
---|---|---|
no(NULL) | ||
Don't use the FRoG system. | ||
compact(NULL) | ||
Do some extra compression (up to 50%) of the FRoG-info, at the cost of a slower evaluation (e.g. 30%). | ||
new(NULL) | ||
Use the gaussian counts and an improved estimation of the reduction factor. | ||
f:<String:val>(NULL) | ||
Load precompiled FRoG information from the given <file>. | ||
n<I32:val>(9) | ||
Specify the number of subdivisions per axis. The given number is the log2() of the number of subdivisions. | ||
m<F32:val>(-1) | ||
Specify the margin for the 1st approach. | ||
r<F32:val>(-1) | ||
Specify a requested reduction factor. The 'm' and 's' options can be used to specify start values. By default, only the 1st approach is used, with a start margin of 0.01. | ||
s<F32:val>(-1) | ||
Specify the range (times sigma) for the 2nd approach. | ||
bmp=<I32:val>(-1) | ||
Do bitmap compression of the FRoG information with a certain optimization level. A substantial amount of computation time is needed for any non zero optimization level. The memory requirements are comparable to that of the compact option (somewhat larger for <lvl>=0, and somewhat smaller otherwise). This compression makes the evaluation faster, especially when a non zero optimization level is specified. | ||
bmp | ||
Do bitmap compression using the default optimzation level. | ||
<F32:val> | ||
Specify the target reduction factor (identical to r<nr>). |
All gaussians may be removed (indicating a very odd observation).
The method does not combine information over the different axes, so an odd value in one direction will remove the gaussian, despite perfect matches in all other directions.
The average probability is detemined based on the gaussians solely, requiring good estimated gaussians (enough traindata and a decent training).