Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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;
}
Пример #4
0
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;
}
Пример #5
0
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;
}