您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ E_INFO函数代码示例

51自学网 2021-06-01 20:36:51
  C++
这篇教程C++ E_INFO函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中E_INFO函数的典型用法代码示例。如果您正苦于以下问题:C++ E_INFO函数的具体用法?C++ E_INFO怎么用?C++ E_INFO使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了E_INFO函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: kb_init

//.........这里部分代码省略.........      lm_lmwid2dictwid(lm, lm_finishwid(lm)) = BAD_S3WID;      for (w = dict_startwid(dict); IS_S3WID(w); w = dict_nextalt(dict, w))	kbcore->dict2lmwid[w] = BAD_S3LMWID;      for (w = dict_finishwid(dict); IS_S3WID(w); w = dict_nextalt(dict, w))	kbcore->dict2lmwid[w] = BAD_S3LMWID;    }    sil = mdef_silphone (kbcore_mdef (kbcore));    if (NOT_S3CIPID(sil))	E_FATAL("Silence phone '%s' not in mdef/n", S3_SILENCE_CIPHONE);            kb->sen_active = (int32 *) ckd_calloc (mdef_n_sen(mdef), sizeof(int32));    kb->rec_sen_active = (int32 *) ckd_calloc (mdef_n_sen(mdef), sizeof(int32));    kb->ssid_active = (int32 *) ckd_calloc (mdef_n_sseq(mdef), sizeof(int32));    kb->comssid_active = (int32 *) ckd_calloc (dict2pid_n_comsseq(d2p), sizeof(int32));        /* Build set of all possible left contexts */    lc = (s3cipid_t *) ckd_calloc (mdef_n_ciphone(mdef) + 1, sizeof(s3cipid_t));    lc_active = bitvec_alloc (mdef_n_ciphone (mdef));    for (w = 0; w < dict_size (dict); w++) {	ci = dict_pron (dict, w, dict_pronlen(dict, w) - 1);	if (! mdef_is_fillerphone (mdef, (int)ci))	    bitvec_set (lc_active, ci);    }    ci = mdef_silphone(mdef);    bitvec_set (lc_active, ci);    for (ci = 0, n_lc = 0; ci < mdef_n_ciphone(mdef); ci++) {	if (bitvec_is_set (lc_active, ci))	    lc[n_lc++] = ci;    }    lc[n_lc] = BAD_S3CIPID;    E_INFO("Building lextrees/n");    /* Get the number of lexical tree*/    kb->n_lextree = cmd_ln_int32 ("-Nlextree");    if (kb->n_lextree < 1) {	E_ERROR("No. of ugtrees specified: %d; will instantiate 1 ugtree/n", 								kb->n_lextree);	kb->n_lextree = 1;    }    /* ARCHAN: This code was rearranged in s3.4 implementation of dynamic LM */    /* Build active word list */    wp = (wordprob_t *) ckd_calloc (dict_size(dict), sizeof(wordprob_t));    if(lmset){      kb->ugtreeMulti = (lextree_t **) ckd_calloc (kbcore_nlm(kbcore)*kb->n_lextree, sizeof(lextree_t *));      /* Just allocate pointers*/      kb->ugtree = (lextree_t **) ckd_calloc (kb->n_lextree, sizeof(lextree_t *));      for(i=0;i<kbcore_nlm(kbcore);i++){	E_INFO("Creating Unigram Table for lm %d name %s/n",i,lmset[i].name);	n=0;	for(j=0;j<dict_size(dict);j++){ /*try to be very careful again */	  wp[j].wid=-1;	  wp[j].prob=-1;	}	n = lm_ug_wordprob (lmset[i].lm, dict,MAX_NEG_INT32, wp);	E_INFO("Size of word table after unigram + words in class: %d./n",n);	if (n < 1)	  E_FATAL("%d active words in %s/n", n,lmset[i].name);	n = wid_wordprob2alt(dict,wp,n);	E_INFO("Size of word table after adding alternative prons: %d./n",n);	if (cmd_ln_int32("-treeugprob") == 0) {
开发者ID:wdebeaum,项目名称:cabot,代码行数:67,


示例2: mk_tree_comp

dtree_t *mk_tree_comp(float32 ****mixw,/* ADDITION FOR CONTINUOUS_TREES, 18 May 98 */             float32 ****means,              float32 ****vars,              uint32  *veclen,/* END ADDITIONS FOR CONTINUOUS_TREES */	     uint32 n_model,	     uint32 n_state,	     uint32 n_stream,	     uint32 n_density,	     float32 *stwt,		     uint32 *id,	     uint32 n_id,	     quest_t *all_q,	     uint32 n_all_q,	     pset_t *pset,	     uint32 n_base_phone,	     	     uint32 **dfeat,	     uint32 n_dfeat,	     uint32  split_min,	     uint32  split_max,	     float32 split_thr,	     uint32  split_min_comp,	     uint32  split_max_comp,	     float32 split_thr_comp,	     float32 mwfloor){    dtree_t *comp_tree;    dtree_node_t *root, *b_n;    uint32 i;    comp_tree = ckd_calloc(1, sizeof(dtree_t));    comp_tree->node = ckd_calloc(2*split_max_comp+1, sizeof(dtree_node_t));    comp_tree->n_node = 0;    comp_tree->node[0].node_id = 0;    comp_tree->n_node = 1;        root = &comp_tree->node[0];/* MODIFICATION FOR CONTINUOUS_TREES 18 May 98, pass means and var along with mixw */    mk_node(root, 0,	    id, n_id,	    mixw, means, vars, veclen,            n_model, n_state, n_stream, n_density, stwt, mwfloor);/* END MODIFICATION FOR CONTINUOUS_TREES *//* MODIFICATION FOR CONTINUOUS_TREES 18 May 98, pass means and var along with mixw */    root->q = (void *)mk_comp_quest(&root->wt_ent_dec,				    mixw, means, vars, veclen,                                     n_model, n_state, n_stream, n_density, stwt,				    id, n_id,				    all_q, n_all_q, pset, n_base_phone,				    dfeat, n_dfeat,				    split_min, split_max, split_thr,				    mwfloor);/* END MODIFICATION FOR CONTINUOUS_TREES */        for (i = 0; i < split_max_comp; i++) {	b_n = best_leaf_node(root);	E_INFO("Comp split %u/n", i);	if (b_n == NULL) {	    E_INFO("stop. leaf nodes are specific/n");	    break;	}	if (b_n->wt_ent_dec <= 0) {	    E_INFO("stop. b_n->wt_ent_dec (%.3e) <= 0/n",		   b_n->wt_ent_dec);	    break;	}	if ((i > split_min_comp) &&	    (b_n->wt_ent_dec < split_thr_comp * b_n->wt_ent)) {	    E_INFO("stop. b_n->wt_ent_dec <= split_thr_comp * b_n->wt_ent. %.3e <= %.3e/n",		   b_n->wt_ent_dec, split_thr_comp * b_n->wt_ent);	    break;	}		   /* MODIFICATION FOR CONTINUOUS_TREES 18 May 98, pass means and var along with mixw */	split_node_comp(comp_tree, b_n->node_id,			mixw, means, vars, veclen,                         n_model, n_state, n_stream, n_density, stwt,			all_q, n_all_q, pset, n_base_phone,			dfeat, n_dfeat,			split_min, split_max, split_thr, mwfloor);/* END MODIFICATION FOR CONTINUOUS_TREES */#if 0	printf("Comp Split %u:/n", i);	print_tree_comp(stderr, "*", root, pset, 0);//.........这里部分代码省略.........
开发者ID:10v,项目名称:cmusphinx,代码行数:101,


示例3: ckd_calloc

fillpen_t *fillpen_init (dict_t *dict, char *file, float64 silprob, float64 fillprob,			 float64 lw, float64 wip){    s3wid_t w, bw;    float64 prob;    FILE *fp;    char line[1024], wd[1024];    int32 k;    fillpen_t *_fillpen;        _fillpen = (fillpen_t *) ckd_calloc (1, sizeof(fillpen_t));        _fillpen->dict = dict;    _fillpen->lw = lw;    _fillpen->wip = wip;    if (dict->filler_end >= dict->filler_start)	_fillpen->prob = (int32 *) ckd_calloc (dict->filler_end - dict->filler_start + 1,					       sizeof(int32));    else	_fillpen->prob = NULL;        /* Initialize all words with filler penalty (HACK!! backward compatibility) */    prob = fillprob;    for (w = dict->filler_start; w <= dict->filler_end; w++)	_fillpen->prob[w - dict->filler_start] = (int32) ((logs3(prob) + logs3(wip)) * lw);    /* Overwrite silence penalty (HACK!! backward compatibility) */    w = dict_wordid (dict, S3_SILENCE_WORD);    if (NOT_S3WID(w) || (w < dict->filler_start) || (w > dict->filler_end))	E_FATAL("%s not a filler word in the given dictionary/n", S3_SILENCE_WORD);    prob = silprob;    _fillpen->prob[w - dict->filler_start] = (int32) ((logs3(prob) + logs3(wip)) * lw);        /* Overwrite with filler prob input file, if specified */    if (! file)	return _fillpen;        E_INFO("Reading filler penalty file: %s/n", file);    if ((fp = fopen (file, "r")) == NULL)	E_FATAL("fopen(%s,r) failed/n", file);    while (fgets (line, sizeof(line), fp) != NULL) {	if (line[0] == '#')	/* Skip comment lines */	    continue;		k = sscanf (line, "%s %lf", wd, &prob);	if ((k != 0) && (k != 2))	    E_FATAL("Bad input line: %s/n", line);	w = dict_wordid(dict, wd);	if (NOT_S3WID(w) || (w < dict->filler_start) || (w > dict->filler_end))	    E_FATAL("%s not a filler word in the given dictionary/n", S3_SILENCE_WORD);		_fillpen->prob[w - dict->filler_start] = (int32) ((logs3(prob) + logs3(wip)) * lw);    }    fclose (fp);        /* Replicate fillpen values for alternative pronunciations */    for (w = dict->filler_start; w <= dict->filler_end; w++) {	bw = dict_basewid (dict, w);	if (bw != w)	    _fillpen->prob[w-dict->filler_start] = _fillpen->prob[bw-dict->filler_start];    }        return _fillpen;}
开发者ID:10v,项目名称:cmusphinx,代码行数:64,


示例4: ps_start_utt

intps_start_utt(ps_decoder_t *ps, char const *uttid){    FILE *mfcfh = NULL;    FILE *rawfh = NULL;    int rv;    if (ps->search == NULL) {        E_ERROR("No search module is selected, did you forget to "                "specify a language model or grammar?/n");        return -1;    }    ptmr_reset(&ps->perf);    ptmr_start(&ps->perf);    if (uttid) {        ckd_free(ps->uttid);        ps->uttid = ckd_salloc(uttid);    }    else {        char nuttid[16];        ckd_free(ps->uttid);        sprintf(nuttid, "%09u", ps->uttno);        ps->uttid = ckd_salloc(nuttid);        ++ps->uttno;    }    /* Remove any residual word lattice and hypothesis. */    ps_lattice_free(ps->search->dag);    ps->search->dag = NULL;    ps->search->last_link = NULL;    ps->search->post = 0;    ckd_free(ps->search->hyp_str);    ps->search->hyp_str = NULL;    if ((rv = acmod_start_utt(ps->acmod)) < 0)        return rv;    /* Start logging features and audio if requested. */    if (ps->mfclogdir) {        char *logfn = string_join(ps->mfclogdir, "/",                                  ps->uttid, ".mfc", NULL);        E_INFO("Writing MFCC log file: %s/n", logfn);        if ((mfcfh = fopen(logfn, "wb")) == NULL) {            E_ERROR_SYSTEM("Failed to open MFCC log file %s", logfn);            ckd_free(logfn);            return -1;        }        ckd_free(logfn);        acmod_set_mfcfh(ps->acmod, mfcfh);    }    if (ps->rawlogdir) {        char *logfn = string_join(ps->rawlogdir, "/",                                  ps->uttid, ".raw", NULL);        E_INFO("Writing raw audio log file: %s/n", logfn);        if ((rawfh = fopen(logfn, "wb")) == NULL) {            E_ERROR_SYSTEM("Failed to open raw audio log file %s", logfn);            ckd_free(logfn);            return -1;        }        ckd_free(logfn);        acmod_set_rawfh(ps->acmod, rawfh);    }    /* Start auxiliary phone loop search. */    if (ps->phone_loop)        ps_search_start(ps->phone_loop);    return ps_search_start(ps->search);}
开发者ID:006,项目名称:ios_lab,代码行数:70,


示例5: acmod_init

acmod_t *acmod_init(cmd_ln_t *config, logmath_t *lmath, fe_t *fe, feat_t *fcb){    acmod_t *acmod;    char const *featparams;    acmod = ckd_calloc(1, sizeof(*acmod));    acmod->config = cmd_ln_retain(config);    acmod->lmath = lmath;    acmod->state = ACMOD_IDLE;    /* Look for feat.params in acoustic model dir. */    if ((featparams = cmd_ln_str_r(acmod->config, "-featparams"))) {        if (NULL !=            cmd_ln_parse_file_r(acmod->config, feat_defn, featparams, FALSE))            E_INFO("Parsed model-specific feature parameters from %s/n",                    featparams);    }    /* Initialize feature computation. */    if (fe) {        if (acmod_fe_mismatch(acmod, fe))            goto error_out;        fe_retain(fe);        acmod->fe = fe;    }    else {        /* Initialize a new front end. */        acmod->fe = fe_init_auto_r(config);        if (acmod->fe == NULL)            goto error_out;        if (acmod_fe_mismatch(acmod, acmod->fe))            goto error_out;    }    if (fcb) {        if (acmod_feat_mismatch(acmod, fcb))            goto error_out;        feat_retain(fcb);        acmod->fcb = fcb;    }    else {        /* Initialize a new fcb. */        if (acmod_init_feat(acmod) < 0)            goto error_out;    }    /* Load acoustic model parameters. */    if (acmod_init_am(acmod) < 0)        goto error_out;    /* The MFCC buffer needs to be at least as large as the dynamic     * feature window.  */    acmod->n_mfc_alloc = acmod->fcb->window_size * 2 + 1;    acmod->mfc_buf = (mfcc_t **)        ckd_calloc_2d(acmod->n_mfc_alloc, acmod->fcb->cepsize,                      sizeof(**acmod->mfc_buf));    /* Feature buffer has to be at least as large as MFCC buffer. */    acmod->n_feat_alloc = acmod->n_mfc_alloc + cmd_ln_int32_r(config, "-pl_window");    acmod->feat_buf = feat_array_alloc(acmod->fcb, acmod->n_feat_alloc);    acmod->framepos = ckd_calloc(acmod->n_feat_alloc, sizeof(*acmod->framepos));    acmod->utt_start_frame = 0;    /* Senone computation stuff. */    acmod->senone_scores = ckd_calloc(bin_mdef_n_sen(acmod->mdef),                                                     sizeof(*acmod->senone_scores));    acmod->senone_active_vec = bitvec_alloc(bin_mdef_n_sen(acmod->mdef));    acmod->senone_active = ckd_calloc(bin_mdef_n_sen(acmod->mdef),                                                     sizeof(*acmod->senone_active));    acmod->log_zero = logmath_get_zero(acmod->lmath);    acmod->compallsen = cmd_ln_boolean_r(config, "-compallsen");    return acmod;error_out:    acmod_free(acmod);    return NULL;}
开发者ID:bcb37,项目名称:pocketsphinx.js,代码行数:79,


示例6: E_INFO

kbcore_t *kbcore_init (float64 logbase,		       char *feattype,		       char *cmn,		       char *varnorm,		       char *agc,		       char *mdeffile,		       char *dictfile,		       char *fdictfile,		       char *compsep,		       char *lmfile,		       char *fillpenfile,		       float64 silprob,		       float64 fillprob,		       float64 langwt,		       float64 inspen,		       float64 uw,		       char *meanfile,		       char *varfile,		       float64 varfloor,		       char *mixwfile,		       float64 mixwfloor,		       char *subvqfile,		       char *tmatfile,		       float64 tmatfloor){    kbcore_t *kb;        E_INFO("Initializing core models:/n");        kb = (kbcore_t *) ckd_calloc (1, sizeof(kbcore_t));    kb->fcb = NULL;    kb->mdef = NULL;    kb->dict = NULL;    kb->dict2pid = NULL;    kb->lm = NULL;    kb->fillpen = NULL;    kb->dict2lmwid = NULL;    kb->mgau = NULL;    kb->svq = NULL;    kb->tmat = NULL;        logs3_init (logbase);        if (feattype) {	if ((kb->fcb = feat_init (feattype, cmn, varnorm, agc)) == NULL)	    E_FATAL("feat_init(%s) failed/n", feattype);	if (feat_n_stream(kb->fcb) != 1)	    E_FATAL("#Feature streams(%d) != 1/n", feat_n_stream(kb->fcb));    }        if (mdeffile) {	if ((kb->mdef = mdef_init (mdeffile)) == NULL)	    E_FATAL("mdef_init(%s) failed/n", mdeffile);    }        if (dictfile) {	if (! compsep)	    compsep = "";	else if ((compsep[0] != '/0') && (compsep[1] != '/0')) {	    E_FATAL("Compound word separator(%s) must be empty or single character string/n",		    compsep);	}	if ((kb->dict = dict_init (kb->mdef, dictfile, fdictfile, compsep[0])) == NULL)	    E_FATAL("dict_init(%s,%s,%s) failed/n", dictfile,		    fdictfile ? fdictfile : "", compsep);    }        if (lmfile) {	if ((kb->lm = lm_read (lmfile, langwt, inspen, uw)) == NULL)	    E_FATAL("lm_read(%s, %e, %e, %e) failed/n", lmfile, langwt, inspen, uw);    }        if (fillpenfile || (lmfile && kb->dict)) {	if (! kb->dict)		/* Sic */	    E_FATAL("No dictionary for associating filler penalty file(%s)/n", fillpenfile);		if ((kb->fillpen = fillpen_init (kb->dict, fillpenfile, silprob, fillprob,					 langwt, inspen)) == NULL)	    E_FATAL("fillpen_init(%s) failed/n", fillpenfile);    }        if (meanfile) {	if ((! varfile) || (! mixwfile))	    E_FATAL("Varfile or mixwfile not specified along with meanfile(%s)/n", meanfile);	kb->mgau = mgau_init (meanfile, varfile, varfloor, mixwfile, mixwfloor, TRUE);	if (kb->mgau == NULL)	    E_FATAL("gauden_init(%s, %s, %e) failed/n", meanfile, varfile, varfloor);	if (subvqfile) {	    if ((kb->svq = subvq_init (subvqfile, varfloor, -1, kb->mgau)) == NULL)		E_FATAL("subvq_init (%s, %e, -1) failed/n", subvqfile, varfloor);	}    }        if (tmatfile) {	if ((kb->tmat = tmat_init (tmatfile, tmatfloor)) == NULL)	    E_FATAL("tmat_init (%s, %e) failed/n", tmatfile, tmatfloor);    }        if (kb->dict && kb->lm) {	/* Initialize dict2lmwid *///.........这里部分代码省略.........
开发者ID:10v,项目名称:cmusphinx,代码行数:101,


示例7: ngram_fwdflat_search

intngram_fwdflat_search(ngram_search_t *ngs, int frame_idx){    int16 const *senscr;    int32 nf, i, j;    int32 *nawl;    /* Activate our HMMs for the current frame if need be. */    if (!ps_search_acmod(ngs)->compallsen)        compute_fwdflat_sen_active(ngs, frame_idx);    /* Compute GMM scores for the current frame. */    senscr = acmod_score(ps_search_acmod(ngs), &frame_idx);    ngs->st.n_senone_active_utt += ps_search_acmod(ngs)->n_senone_active;    /* Mark backpointer table for current frame. */    ngram_search_mark_bptable(ngs, frame_idx);    /* If the best score is equal to or worse than WORST_SCORE,     * recognition has failed, don't bother to keep trying. */    if (ngs->best_score == WORST_SCORE || ngs->best_score WORSE_THAN WORST_SCORE)        return 0;    /* Renormalize if necessary */    if (ngs->best_score + (2 * ngs->beam) WORSE_THAN WORST_SCORE) {        E_INFO("Renormalizing Scores at frame %d, best score %d/n",               frame_idx, ngs->best_score);        fwdflat_renormalize_scores(ngs, frame_idx, ngs->best_score);    }    ngs->best_score = WORST_SCORE;    hmm_context_set_senscore(ngs->hmmctx, senscr);    /* Evaluate HMMs */    fwdflat_eval_chan(ngs, frame_idx);    /* Prune HMMs and do phone transitions. */    fwdflat_prune_chan(ngs, frame_idx);    /* Do word transitions. */    fwdflat_word_transition(ngs, frame_idx);    /* Create next active word list */    nf = frame_idx + 1;    nawl = ngs->active_word_list[nf & 0x1];    for (i = 0, j = 0; ngs->fwdflat_wordlist[i] >= 0; i++) {        if (bitvec_is_set(ngs->word_active, ngs->fwdflat_wordlist[i])) {            *(nawl++) = ngs->fwdflat_wordlist[i];            j++;        }    }    for (i = ps_search_start_wid(ngs); i < ps_search_n_words(ngs); i++) {        if (bitvec_is_set(ngs->word_active, i)) {            *(nawl++) = i;            j++;        }    }    if (!ngs->fwdtree)        ++ngs->n_frame;    ngs->n_active_word[nf & 0x1] = j;    /* Return the number of frames processed. */    return 1;}
开发者ID:KuoHugo,项目名称:pocketsphinx-wp-demo,代码行数:61,


示例8: s3_read_mgau

/* Read a Sphinx3 mean or variance file. */static int32s3_read_mgau(s2_semi_mgau_t *s, const char *file_name, float32 ***out_cb){    char tmp;    FILE *fp;    int32 i, blk, n;    int32 n_mgau;    int32 n_feat;    int32 n_density;    int32 *veclen;    int32 byteswap, chksum_present;    char **argname, **argval;    uint32 chksum;    E_INFO("Reading S3 mixture gaussian file '%s'/n", file_name);    if ((fp = fopen(file_name, "rb")) == NULL)        E_FATAL("fopen(%s,rb) failed/n", file_name);    /* Read header, including argument-value info and 32-bit byteorder magic */    if (bio_readhdr(fp, &argname, &argval, &byteswap) < 0)        E_FATAL("bio_readhdr(%s) failed/n", file_name);    /* Parse argument-value list */    chksum_present = 0;    for (i = 0; argname[i]; i++) {        if (strcmp(argname[i], "version") == 0) {            if (strcmp(argval[i], MGAU_PARAM_VERSION) != 0)                E_WARN("Version mismatch(%s): %s, expecting %s/n",                       file_name, argval[i], MGAU_PARAM_VERSION);        }        else if (strcmp(argname[i], "chksum0") == 0) {            chksum_present = 1; /* Ignore the associated value */        }    }    bio_hdrarg_free(argname, argval);    argname = argval = NULL;    chksum = 0;    /* #Codebooks */    if (bio_fread(&n_mgau, sizeof(int32), 1, fp, byteswap, &chksum) != 1)        E_FATAL("fread(%s) (#codebooks) failed/n", file_name);    if (n_mgau != 1) {        E_ERROR("%s: #codebooks (%d) != 1/n", file_name, n_mgau);        fclose(fp);        return -1;    }    /* #Features/codebook */    if (bio_fread(&n_feat, sizeof(int32), 1, fp, byteswap, &chksum) != 1)        E_FATAL("fread(%s) (#features) failed/n", file_name);    if (s->n_feat == 0)        s->n_feat = n_feat;    else if (n_feat != s->n_feat)        E_FATAL("#Features streams(%d) != %d/n", n_feat, s->n_feat);    /* #Gaussian densities/feature in each codebook */    if (bio_fread(&n_density, sizeof(int32), 1, fp,                  byteswap, &chksum) != 1)        E_FATAL("fread(%s) (#density/codebook) failed/n", file_name);    if (s->n_density == 0)        s->n_density = n_density;    else if (n_density != s->n_density)        E_FATAL("%s: Number of densities per feature(%d) != %d/n",                file_name, n_mgau, s->n_density);    /* Vector length of feature stream */    veclen = ckd_calloc(s->n_feat, sizeof(int32));    if (bio_fread(veclen, sizeof(int32), s->n_feat,                  fp, byteswap, &chksum) != s->n_feat)        E_FATAL("fread(%s) (feature vector-length) failed/n", file_name);    for (i = 0, blk = 0; i < s->n_feat; ++i) {        if (s->veclen[i] == 0)            s->veclen[i] = veclen[i];        else if (veclen[i] != s->veclen[i])            E_FATAL("feature stream length %d is inconsistent (%d != %d)/n",                    i, veclen[i], s->veclen[i]);        blk += veclen[i];    }    /* #Floats to follow; for the ENTIRE SET of CODEBOOKS */    if (bio_fread(&n, sizeof(int32), 1, fp, byteswap, &chksum) != 1)        E_FATAL("fread(%s) (total #floats) failed/n", file_name);    if (n != n_mgau * n_density * blk)        E_FATAL            ("%s: #float32s(%d) doesn't match dimensions: %d x %d x %d/n",             file_name, n, n_mgau, n_density, blk);    *out_cb = ckd_calloc(s->n_feat, sizeof(float32 *));    for (i = 0; i < s->n_feat; ++i) {        (*out_cb)[i] =            (float32 *) ckd_calloc(n_density * veclen[i],                                   sizeof(float32));        if (bio_fread            ((*out_cb)[i], sizeof(float32),             n_density * veclen[i], fp,             byteswap, &chksum) != n_density * veclen[i])            E_FATAL("fread(%s, %d) of feat %d failed/n", file_name,//.........这里部分代码省略.........
开发者ID:elliotfiske,项目名称:cmu-lextool,代码行数:101,


示例9: ps_end_utt

intps_end_utt(ps_decoder_t *ps){    int rv, i;    if (ps->acmod->state == ACMOD_ENDED || ps->acmod->state == ACMOD_IDLE) {	E_ERROR("Utterance is not started/n");	return -1;    }    acmod_end_utt(ps->acmod);    /* Search any remaining frames. */    if ((rv = ps_search_forward(ps)) < 0) {        ptmr_stop(&ps->perf);        return rv;    }    /* Finish phone loop search. */    if (ps->phone_loop) {        if ((rv = ps_search_finish(ps->phone_loop)) < 0) {            ptmr_stop(&ps->perf);            return rv;        }    }    /* Search any frames remaining in the lookahead window. */    if (ps->acmod->output_frame >= ps->pl_window) {        for (i = ps->acmod->output_frame - ps->pl_window;             i < ps->acmod->output_frame; ++i)            ps_search_step(ps->search, i);    }    /* Finish main search. */    if ((rv = ps_search_finish(ps->search)) < 0) {        ptmr_stop(&ps->perf);        return rv;    }    ptmr_stop(&ps->perf);    /* Log a backtrace if requested. */    if (cmd_ln_boolean_r(ps->config, "-backtrace")) {        const char* hyp;        ps_seg_t *seg;        int32 score;        hyp = ps_get_hyp(ps, &score);                if (hyp != NULL) {    	    E_INFO("%s (%d)/n", hyp, score);    	    E_INFO_NOFN("%-20s %-5s %-5s %-5s %-10s %-10s %-3s/n",                    "word", "start", "end", "pprob", "ascr", "lscr", "lback");    	    for (seg = ps_seg_iter(ps, &score); seg;        	 seg = ps_seg_next(seg)) {    	        char const *word;        	int sf, ef;        	int32 post, lscr, ascr, lback;        	word = ps_seg_word(seg);        	ps_seg_frames(seg, &sf, &ef);        	post = ps_seg_prob(seg, &ascr, &lscr, &lback);        	E_INFO_NOFN("%-20s %-5d %-5d %-1.3f %-10d %-10d %-3d/n",                    	    word, sf, ef, logmath_exp(ps_get_logmath(ps), post),                    	ascr, lscr, lback);    	    }        }    }    return rv;}
开发者ID:dat2,项目名称:voice-hues,代码行数:65,


示例10: read_sendump

static int32read_sendump(s2_semi_mgau_t *s, mdef_t *mdef, char const *file){    FILE *fp;    char line[1000];    int32 i, n;    int32 do_swap, do_mmap;    size_t filesize, offset;    int n_clust = 256;          /* Number of clusters (if zero, we are just using                                 * 8-bit quantized weights) */    int r = s->n_density;    int c = mdef_n_sen(mdef);    s->n_sen = c;    do_mmap = cmd_ln_boolean_r(s->config, "-mmap");    if ((fp = fopen(file, "rb")) == NULL)        return -1;    E_INFO("Loading senones from dump file %s/n", file);    /* Read title size, title */    fread(&n, sizeof(int32), 1, fp);    /* This is extremely bogus */    do_swap = 0;    if (n < 1 || n > 999) {        SWAP_INT32(&n);        if (n < 1 || n > 999) {            E_FATAL("Title length %x in dump file %s out of range/n", n, file);        }        do_swap = 1;    }    if (fread(line, sizeof(char), n, fp) != n)        E_FATAL("Cannot read title/n");    if (line[n - 1] != '/0')        E_FATAL("Bad title in dump file/n");    E_INFO("%s/n", line);    /* Read header size, header */    fread(&n, 1, sizeof(n), fp);    if (do_swap) SWAP_INT32(&n);    if (fread(line, sizeof(char), n, fp) != n)        E_FATAL("Cannot read header/n");    if (line[n - 1] != '/0')        E_FATAL("Bad header in dump file/n");    /* Read other header strings until string length = 0 */    for (;;) {        fread(&n, 1, sizeof(n), fp);        if (do_swap) SWAP_INT32(&n);        if (n == 0)            break;        if (fread(line, sizeof(char), n, fp) != n)            E_FATAL("Cannot read header/n");        /* Look for a cluster count, if present */        if (!strncmp(line, "cluster_count ", strlen("cluster_count "))) {            n_clust = atoi(line + strlen("cluster_count "));        }    }    /* Read #codewords, #pdfs */    fread(&r, 1, sizeof(r), fp);    if (do_swap) SWAP_INT32(&r);    fread(&c, 1, sizeof(c), fp);    if (do_swap) SWAP_INT32(&c);    E_INFO("Rows: %d, Columns: %d/n", r, c);    if (n_clust) {	E_ERROR ("Dump file is incompatible with PocketSphinx/n");	fclose(fp);	return -1;    }    if (do_mmap) {            E_INFO("Using memory-mapped I/O for senones/n");    }    offset = ftell(fp);    fseek(fp, 0, SEEK_END);    filesize = ftell(fp);    fseek(fp, offset, SEEK_SET);    /* Allocate memory for pdfs (or memory map them) */    if (do_mmap)        s->sendump_mmap = mmio_file_read(file);    /* Otherwise, set up all pointers, etc. */    if (s->sendump_mmap) {        s->mixw = ckd_calloc(s->n_feat, sizeof(*s->mixw));        for (i = 0; i < s->n_feat; i++) {            /* Pointers into the mmap()ed 2d array */	    s->mixw[i] = ckd_calloc(r, sizeof(**s->mixw));        }        for (n = 0; n < s->n_feat; n++) {            for (i = 0; i < r; i++) {                s->mixw[n][i] = ((uint8 *) mmio_file_ptr(s->sendump_mmap)) + offset;                offset += c;            }        }    }    else {        s->mixw = ckd_calloc_3d(s->n_feat, r, c, sizeof(***s->mixw));//.........这里部分代码省略.........
开发者ID:elliotfiske,项目名称:cmu-lextool,代码行数:101,


示例11: read_mixw

static int32read_mixw(s2_semi_mgau_t * s, char const *file_name, double SmoothMin){    char **argname, **argval;    char eofchk;    FILE *fp;    int32 byteswap, chksum_present;    uint32 chksum;    float32 *pdf;    int32 i, f, c, n;    int32 n_sen;    int32 n_feat;    int32 n_comp;    int32 n_err;    E_INFO("Reading mixture weights file '%s'/n", file_name);    if ((fp = fopen(file_name, "rb")) == NULL)        E_FATAL("fopen(%s,rb) failed/n", file_name);    /* Read header, including argument-value info and 32-bit byteorder magic */    if (bio_readhdr(fp, &argname, &argval, &byteswap) < 0)        E_FATAL("bio_readhdr(%s) failed/n", file_name);    /* Parse argument-value list */    chksum_present = 0;    for (i = 0; argname[i]; i++) {        if (strcmp(argname[i], "version") == 0) {            if (strcmp(argval[i], MGAU_MIXW_VERSION) != 0)                E_WARN("Version mismatch(%s): %s, expecting %s/n",                       file_name, argval[i], MGAU_MIXW_VERSION);        }        else if (strcmp(argname[i], "chksum0") == 0) {            chksum_present = 1; /* Ignore the associated value */        }    }    bio_hdrarg_free(argname, argval);    argname = argval = NULL;    chksum = 0;    /* Read #senones, #features, #codewords, arraysize */    if ((bio_fread(&n_sen, sizeof(int32), 1, fp, byteswap, &chksum) != 1)        || (bio_fread(&n_feat, sizeof(int32), 1, fp, byteswap, &chksum) !=            1)        || (bio_fread(&n_comp, sizeof(int32), 1, fp, byteswap, &chksum) !=            1)        || (bio_fread(&n, sizeof(int32), 1, fp, byteswap, &chksum) != 1)) {        E_FATAL("bio_fread(%s) (arraysize) failed/n", file_name);    }    if (n_feat != s->n_feat)        E_FATAL("#Features streams(%d) != %d/n", n_feat, s->n_feat);    if (n != n_sen * n_feat * n_comp) {        E_FATAL            ("%s: #float32s(%d) doesn't match header dimensions: %d x %d x %d/n",             file_name, i, n_sen, n_feat, n_comp);    }    /* n_sen = number of mixture weights per codeword, which is     * fixed at the number of senones since we have only one codebook.     */    s->n_sen = n_sen;    /* Quantized mixture weight arrays. */    s->mixw = ckd_calloc_3d(s->n_feat, s->n_density, n_sen, sizeof(***s->mixw));    /* Temporary structure to read in floats before conversion to (int32) logs3 */    pdf = (float32 *) ckd_calloc(n_comp, sizeof(float32));    /* Read senone probs data, normalize, floor, convert to logs3, truncate to 8 bits */    n_err = 0;    for (i = 0; i < n_sen; i++) {        for (f = 0; f < n_feat; f++) {            if (bio_fread((void *) pdf, sizeof(float32),                          n_comp, fp, byteswap, &chksum) != n_comp) {                E_FATAL("bio_fread(%s) (arraydata) failed/n", file_name);            }            /* Normalize and floor */            if (vector_sum_norm(pdf, n_comp) <= 0.0)                n_err++;            vector_floor(pdf, n_comp, SmoothMin);            vector_sum_norm(pdf, n_comp);            /* Convert to LOG, quantize, and transpose */            for (c = 0; c < n_comp; c++) {                int32 qscr;                qscr = -logmath_log(s->lmath_8b, pdf[c]);                if ((qscr > MAX_NEG_MIXW) || (qscr < 0))                    qscr = MAX_NEG_MIXW;                s->mixw[f][c][i] = qscr;            }        }    }    if (n_err > 0)        E_WARN("Weight normalization failed for %d senones/n", n_err);    ckd_free(pdf);//.........这里部分代码省略.........
开发者ID:elliotfiske,项目名称:cmu-lextool,代码行数:101,


示例12: s2_semi_mgau_init

s2_semi_mgau_t *s2_semi_mgau_init(cmd_ln_t *config, logmath_t *lmath, feat_t *fcb, mdef_t *mdef){    s2_semi_mgau_t *s;    char const *sendump_path;    float32 **fgau;    int i;    s = ckd_calloc(1, sizeof(*s));    s->config = config;    s->lmath = logmath_retain(lmath);    /* Log-add table. */    s->lmath_8b = logmath_init(logmath_get_base(lmath), SENSCR_SHIFT, TRUE);    if (s->lmath_8b == NULL) {        s2_semi_mgau_free(s);        return NULL;    }    /* Ensure that it is only 8 bits wide so that fast_logmath_add() works. */    if (logmath_get_width(s->lmath_8b) != 1) {        E_ERROR("Log base %f is too small to represent add table in 8 bits/n",                logmath_get_base(s->lmath_8b));        s2_semi_mgau_free(s);        return NULL;    }    /* Inherit stream dimensions from acmod, will be checked below. */    s->n_feat = feat_dimension1(fcb);    s->veclen = ckd_calloc(s->n_feat, sizeof(int32));    for (i = 0; i < s->n_feat; ++i)        s->veclen[i] = feat_dimension2(fcb, i);    /* Read means and variances. */    if (s3_read_mgau(s, cmd_ln_str_r(s->config, "-mean"), &fgau) < 0) {        s2_semi_mgau_free(s);        return NULL;    }    s->means = (mfcc_t **)fgau;    if (s3_read_mgau(s, cmd_ln_str_r(s->config, "-var"), &fgau) < 0) {        s2_semi_mgau_free(s);        return NULL;    }    s->vars = (mfcc_t **)fgau;    /* Precompute (and fixed-point-ize) means, variances, and determinants. */    s->dets = (mfcc_t **)ckd_calloc_2d(s->n_feat, s->n_density, sizeof(**s->dets));    s3_precomp(s, s->lmath, cmd_ln_float32_r(s->config, "-varfloor"));    /* Read mixture weights */    if ((sendump_path = cmd_ln_str_r(s->config, "-sendump")))        read_sendump(s, mdef, sendump_path);    else        read_mixw(s, cmd_ln_str_r(s->config, "-mixw"),                  cmd_ln_float32_r(s->config, "-mixwfloor"));    s->ds_ratio = cmd_ln_int32_r(s->config, "-ds");    /* Determine top-N for each feature */    s->topn_beam = ckd_calloc(s->n_feat, sizeof(*s->topn_beam));    s->max_topn = cmd_ln_int32_r(s->config, "-topn");    split_topn(cmd_ln_str_r(s->config, "-topn_beam"), s->topn_beam, s->n_feat);    E_INFO("Maximum top-N: %d ", s->max_topn);    E_INFOCONT("Top-N beams:");    for (i = 0; i < s->n_feat; ++i) {        E_INFOCONT(" %d", s->topn_beam[i]);    }    E_INFOCONT("/n");    /* Top-N scores from recent frames */    s->n_topn_hist = cmd_ln_int32_r(s->config, "-pl_window") + 2;    s->topn_hist = (vqFeature_t ***)        ckd_calloc_3d(s->n_topn_hist, s->n_feat, s->max_topn,                      sizeof(***s->topn_hist));    s->topn_hist_n = ckd_calloc_2d(s->n_topn_hist, s->n_feat,                                   sizeof(**s->topn_hist_n));    for (i = 0; i < s->n_topn_hist; ++i) {        int j;        for (j = 0; j < s->n_feat; ++j) {            int k;            for (k = 0; k < s->max_topn; ++k) {                s->topn_hist[i][j][k].score = WORST_DIST;                s->topn_hist[i][j][k].codeword = k;            }        }    }    return s;}
开发者ID:elliotfiske,项目名称:cmu-lextool,代码行数:87,


示例13: parse_cmd_ln

intparse_cmd_ln(int argc, char *argv[]){    uint32      isHelp;    uint32      isExample;    const char helpstr[] =        "Description: /n/(copied from Eric's comments)/n/ * 	Create a tied-state-to-codebook mapping file for semi-continuous, /n/ *	phone dependent or fully continuous Gaussian density tying.";    const char examplestr[]=        "Example: /n/(By Arthur: Not sure, may be obsolete) /n/mk_ts2cb -moddeffn semi -ts2cbfn ts2cb";    static arg_t defn[] = {        {   "-help",            ARG_BOOLEAN,            "no",            "Shows the usage of the tool"        },        {   "-example",            ARG_BOOLEAN,            "no",            "Shows example of how to use the tool"        },        {   "-ts2cbfn",            ARG_STRING,            NULL,            "A SPHINX-III tied-state-to-cb file name"        },        {   "-moddeffn",            ARG_STRING,            NULL,            "A SPHINX-III model definition file name"        },        {   "-tyingtype",			/* either "semi", "pd", or "cont" */            ARG_STRING,            "semi",            "Output a state parameter def file for fully continuous models"        },        {   "-pclassfn",			/* this switch is reference for -tyingtype pd */            ARG_STRING,            NULL,            "A SPHINX-II phone class file name"        },        {   NULL,            0,            NULL,            NULL        }    };    cmd_ln_parse(defn, argc, argv, TRUE);    isHelp    = cmd_ln_int32("-help");    isExample    = cmd_ln_int32("-example");    if(isHelp) {        printf("%s/n/n",helpstr);    }    if(isExample) {        printf("%s/n/n",examplestr);    }    if(isHelp || isExample) {        E_INFO("User asked for help or example./n");        exit(0);    }    return 0;}
开发者ID:feniks65,项目名称:pjn,代码行数:78,


示例14: live_utt_decode_block

int32 live_utt_decode_block (int16 *samples, int32 nsamples, 			     int32 live_endutt, partialhyp_t **ohyp){    static int32 live_begin_new_utt = 1;    static int32 frmno;    static float32 ***live_feat = NULL;        int32   live_nfr, live_nfeatvec;    int32   nwds =0;    float32 **mfcbuf;    /*    int i,j;*/    /* 2004/08/27 L Galescu <[email
C++ E_NEW函数代码示例
C++ E_FATAL函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。