const char* ps_get_kws(ps_decoder_t *ps, const char* name) { ps_search_t *search = ps_find_search(ps, name); if (search && strcmp(PS_SEARCH_TYPE_KWS, ps_search_type(search))) return NULL; return search ? kws_search_get_keyphrases(search) : NULL; }
fsg_model_t * ps_get_fsg(ps_decoder_t *ps, const char *name) { ps_search_t *search = ps_find_search(ps, name); if (search && strcmp(PS_SEARCH_TYPE_FSG, ps_search_type(search))) return NULL; return search ? ((fsg_search_t *) search)->fsg : NULL; }
ngram_model_t * ps_get_lm(ps_decoder_t *ps, const char *name) { ps_search_t *search = ps_find_search(ps, name); if (search && strcmp(PS_SEARCH_TYPE_NGRAM, ps_search_type(search))) return NULL; return search ? ((ngram_search_t *) search)->lmset : NULL; }
int ps_set_search(ps_decoder_t *ps, const char *name) { ps_search_t *search = ps_find_search(ps, name); if (search) ps->search = search; /* Set pl window depending on the search */ if (!strcmp(PS_SEARCH_NGRAM, ps_search_name(search))) { ps->pl_window = cmd_ln_int32_r(ps->config, "-pl_window"); } else { ps->pl_window = 0; } return search ? 0 : -1; }
fsg_set_t * ps_update_fsgset(ps_decoder_t *ps) { ps_search_t *search; /* Look for FSG search. */ search = ps_find_search(ps, "fsg"); if (search == NULL) { /* Initialize FSG search. */ search = fsg_search_init(ps->config, ps->acmod, ps->dict, ps->d2p); search->pls = ps->phone_loop; ps->searches = glist_add_ptr(ps->searches, search); } else { /* Tell FSG search to update its view of the world. */ if (ps_search_reinit(search, ps->dict, ps->d2p) < 0) return NULL; } ps->search = search; return (fsg_set_t *)search; }
int ps_set_search(ps_decoder_t *ps, const char *name) { ps_search_t *search; if (ps->acmod->state != ACMOD_ENDED && ps->acmod->state != ACMOD_IDLE) { E_ERROR("Cannot change search while decoding, end utterance first\n"); return -1; } if (!(search = ps_find_search(ps, name))) { return -1; } ps->search = search; /* Set pl window depending on the search */ if (!strcmp(PS_SEARCH_TYPE_NGRAM, ps_search_type(search))) { ps->pl_window = cmd_ln_int32_r(ps->config, "-pl_window"); } else { ps->pl_window = 0; } return 0; }