static void fwdflat_renormalize_scores(ngram_search_t *ngs, int frame_idx, int32 norm) { root_chan_t *rhmm; chan_t *hmm; int32 i, cf, w, *awl; cf = frame_idx; /* Renormalize individual word channels */ i = ngs->n_active_word[cf & 0x1]; awl = ngs->active_word_list[cf & 0x1]; for (w = *(awl++); i > 0; --i, w = *(awl++)) { rhmm = (root_chan_t *) ngs->word_chan[w]; if (hmm_frame(&rhmm->hmm) == cf) { hmm_normalize(&rhmm->hmm, norm); } for (hmm = rhmm->next; hmm; hmm = hmm->next) { if (hmm_frame(&hmm->hmm) == cf) { hmm_normalize(&hmm->hmm, norm); } } } ngs->renormalized = TRUE; }
static void renormalize_hmms(state_align_search_t *sas, int frame_idx, int32 norm) { int i; for (i = 0; i < sas->n_phones; ++i) hmm_normalize(sas->hmms + i, norm); }
static void renormalize_hmms(phone_loop_search_t *pls, int frame_idx, int32 norm) { phone_loop_renorm_t *rn = ckd_calloc(1, sizeof(*rn)); int i; pls->renorm = glist_add_ptr(pls->renorm, rn); rn->frame_idx = frame_idx; rn->norm = norm; for (i = 0; i < pls->n_phones; ++i) { hmm_normalize((hmm_t *)&pls->phones[i], norm); } }