I meet following question about how to correspond the gauden_t in Sphinx, Can you tell me the relationship between state_t.cb with g->mean, I found there are some problem in gauden.cpp . When I run log_full_densities, program dead because g->mean[mgau]=0x00000000, I think the reason is mgau is too large or it is wrong code.
The case is Input words is “FINISH”, and state_seq[0].cb =17534, and mean is n_mgau = 315, n_feat = 4, n_density = 1, vlen is 12 total size of mean in gauden_t is =15120. Can you help me analysis it ?
int gauden_compute_log(float64 **den, /* density array for a mixture Gaussian */
uint32 **den_idx, /* density index array for n_top < n_density eval */
vector_t *obs, /* observation vector for some time */
gauden_t *g, /* Gaussian density structure */
uint32 mgau) /* id of the mixture Gau. to evaluate */
{
…
if (g->n_top == g->n_density)
{
for (j = 0; j < g->n_feat; j++)
{
log_full_densities(den[j],den_idx[j],g->n_density,g->veclen[j],obs[j],
g->mean[mgau][j],g->var[mgau][j],g->norm[mgau][j]);
}
}
else
{
assert(g->n_top < g->n_density);
Dear Sir,
I meet following question about how to correspond the gauden_t in Sphinx, Can you tell me the relationship between state_t.cb with g->mean, I found there are some problem in gauden.cpp . When I run log_full_densities, program dead because g->mean[mgau]=0x00000000, I think the reason is mgau is too large or it is wrong code.
The case is Input words is “FINISH”, and state_seq[0].cb =17534, and mean is n_mgau = 315, n_feat = 4, n_density = 1, vlen is 12 total size of mean in gauden_t is =15120. Can you help me analysis it ?
int gauden_compute_log(float64 **den, /* density array for a mixture Gaussian */
uint32 **den_idx, /* density index array for n_top < n_density eval */
vector_t *obs, /* observation vector for some time */
gauden_t *g, /* Gaussian density structure */
uint32 mgau) /* id of the mixture Gau. to evaluate */
{
…
if (g->n_top == g->n_density)
{
for (j = 0; j < g->n_feat; j++)
{
log_full_densities(den[j],den_idx[j],g->n_density,g->veclen[j],obs[j],
g->mean[mgau][j],g->var[mgau][j],g->norm[mgau][j]);
}
}
else
{
assert(g->n_top < g->n_density);
for (j = 0; j < g->n_feat; j++)
{
log_topn_densities(den[j],den_idx[j],g->n_top,g->n_density,g->veclen[j],
obs[j],g->mean[mgau][j],g->var[mgau][j],g->norm[mgau][j]);
}
}
…
return S3_SUCCESS;
}
you said n_density = 1...
check it again..i think it may be 256 by default..