亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? outprob.c

?? julius version 4.12.about sound recognition.
?? C
字號:
/** * @file   outprob.c *  * <JA> * @brief  不讀銻刨紛換の悸乖および覺輪レベルキャッシュ * * %HMM の覺輪の叫蝸澄唯∈灤眶銻刨∷を紛換しますˉ覺輪の房∈帽胳瑣眉の * pseudo %HMM set かどうか∷にしたがっていくつか年盜されていますが· * 鏈て布疤の outprob_state() を鈣びますˉoutprob_state() は * 澀妥な攫鼠を OP_ で幌まる絡拌恃眶に呈羌し·calc_outprob_state() を鈣び * 叫しますˉcalc_outprob_state() は簇眶のポインタであり·悸攣は tied-mixture * モデルの眷圭 calc_tied_mix(), それ笆嘲の眷圭は calc_mix() となりますˉ * ∈GMS を蝗脫する眷圭は gms_state()∷になりますˉ * * 覺輪レベルの不讀銻刨キャッシュが乖なわれますˉキャッシュは 覺輪 x * 掐蝸フレ〖ムで呈羌され·澀妥な墓さにしたがって凱墓されますˉこのキャッシュは * 媽2パスの紛換でも脫いるため·鏈箕粗に畔って淡峽されていますˉ * * なお tied-mixture の眷圭はコ〖ドブックレベルでのキャッシュも票箕に * 乖なわれますˉこれについては calc_tied_mix.c をご枉布さいˉ * </JA> *  * <EN> * @brief  Computation of acoustic likelihood in %HMM state, with state-level cache * * This file defines functions to compute output log probability of  * %HMM state.  Several functions are defined for each state type (whether * it is on word edge and a part of pseudo HMM), and all of them calls * outprob_state() to get the log probability of a %HMM state.  The * outprob_state() will set the needed values to the global variables * that begins with "OP_", and call calc_outprob_state().  The * calc_outprob_state() is actually a function pointer, and the entity is * either calc_tied_mix() for tied-mixture model and calc_mix() for others. * (If you use GMS, the entity will be gms_state() instead.) * * The state scores will be cached here. * The 2-dimension cache array of state and * input frame are used to store the computed scores.  They will be expanded * when needed.  Thus the scores will be cached for all input frame because * they will also be used in the 2nd pass of recognition process. * * When using a tied-mixture model, codebook-level cache will be also done * in addition to this state-level cache.  See calc_tied_mix.c for details. * </EN> *  * @author Akinobu LEE * @date   Fri Feb 18 18:45:21 2005 * * $Revision: 1.3 $ *  *//* * Copyright (c) 1991-2007 Kawahara Lab., Kyoto University * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology * Copyright (c) 2005-2007 Julius project team, Nagoya Institute of Technology * All rights reserved */#include <sent/stddefs.h>#include <sent/speech.h>#include <sent/htk_hmm.h>#include <sent/htk_param.h>#include <sent/hmm.h>#include <sent/hmm_calc.h>#define LOG_UNDEF (LOG_ZERO - 1) ///< Value to be used as the initial cache value/**  * Initialize the cache data, should be called once on startup. *  * @param wrk [i/o] HMM computation work area *  * @return TRUE on success, FALSE on failure. */booleanoutprob_cache_init(HMMWork *wrk){  wrk->statenum = wrk->OP_hmminfo->totalstatenum;  wrk->outprob_cache = NULL;  wrk->outprob_allocframenum = 0;  wrk->OP_time = -1;  wrk->croot = NULL;  return TRUE;}/**  * Prepare cache for the next input, by clearing the existing cache. *  * @param wrk [i/o] HMM computation work area *  * @return TRUE on success, FALSE on failure. */booleanoutprob_cache_prepare(HMMWork *wrk){  int s,t;  /* clear already allocated area */  for (t = 0; t < wrk->outprob_allocframenum; t++) {    for (s = 0; s < wrk->statenum; s++) {      wrk->outprob_cache[t][s] = LOG_UNDEF;    }  }    return TRUE;}/**  * Expand the cache to time axis if needed. *  * @param wrk [i/o] HMM computation work area * @param reqframe [in] required frame length */static voidoutprob_cache_extend(HMMWork *wrk, int reqframe){  int newnum;  int size;  int t, s;  LOGPROB *tmpp;  /* if enough length are already allocated, return immediately */  if (reqframe < wrk->outprob_allocframenum) return;  /* allocate per certain period */  newnum = reqframe + 1;  if (newnum < wrk->outprob_allocframenum + OUTPROB_CACHE_PERIOD) newnum = wrk->outprob_allocframenum + OUTPROB_CACHE_PERIOD;  size = (newnum - wrk->outprob_allocframenum) * wrk->statenum;    /* allocate */  if (wrk->outprob_cache == NULL) {    wrk->outprob_cache = (LOGPROB **)mymalloc(sizeof(LOGPROB *) * newnum);  } else {    wrk->outprob_cache = (LOGPROB **)myrealloc(wrk->outprob_cache, sizeof(LOGPROB *) * newnum);  }  tmpp = (LOGPROB *)mybmalloc2(sizeof(LOGPROB) * size, &(wrk->croot));  /* clear the new part */  for(t = wrk->outprob_allocframenum; t < newnum; t++) {    wrk->outprob_cache[t] = &(tmpp[(t - wrk->outprob_allocframenum) * wrk->statenum]);    for (s = 0; s < wrk->statenum; s++) {      wrk->outprob_cache[t][s] = LOG_UNDEF;    }  }  /*jlog("outprob cache: %d->%d\n", outprob_allocframenum, newnum);*/  wrk->outprob_allocframenum = newnum;}/** * Free work area for cache. *  * @param wrk [i/o] HMM computation work area *  */voidoutprob_cache_free(HMMWork *wrk){  if (wrk->croot != NULL) mybfree2(&(wrk->croot));  if (wrk->outprob_cache != NULL) free(wrk->outprob_cache);}/**  * @brief  Compute output probability of a state. * * Set the needed values to the global variables * that begins with "OP_", and call calc_outprob_state().  The * calc_outprob_state() is actually a function pointer, and the entity is * either calc_tied_mix() for tied-mixture model and calc_mix() for others. * (If you use GMS, the entity will be gms_state() instead.) * * The state-level cache is also consulted here. * * @param wrk [i/o] HMM computation work area * @param t [in] time frame * @param stateinfo [in] state information to compute the output probability * @param param [in] input parameter vectors *  * @return output log probability. */LOGPROBoutprob_state(HMMWork *wrk, int t, HTK_HMM_State *stateinfo, HTK_Param *param){  LOGPROB outp;  int sid;  int i, d;  sid = stateinfo->id;    /* set global values for outprob functions to access them */  wrk->OP_state = stateinfo;  wrk->OP_state_id = sid;  wrk->OP_param = param;  if (wrk->OP_time != t) {    wrk->OP_last_time = wrk->OP_time;    wrk->OP_time = t;    for(d=0,i=0;i<wrk->OP_nstream;i++) {      wrk->OP_vec_stream[i] = &(param->parvec[t][d]);      d += wrk->OP_veclen_stream[i];    }    outprob_cache_extend(wrk, t);	/* extend cache if needed */    wrk->last_cache = wrk->outprob_cache[t]; /* reduce 2-d array access */  }    /* consult cache */  if ((outp = wrk->last_cache[sid]) == LOG_UNDEF) {    outp = wrk->last_cache[sid] = (*(wrk->calc_outprob_state))(wrk);  }  return(outp);}/**  * Initialize work area for outprob_cd_nbest(). *  * @param wrk [i/o] HMM computation work area * @param num [in] number of top states to be calculated. */voidoutprob_cd_nbest_init(HMMWork *wrk, int num){  wrk->cd_nbest_maxprobs = (LOGPROB *)mymalloc(sizeof(LOGPROB) * num);  wrk->cd_nbest_maxn = num;}/** * Free work area for outprob_cd_nbest(). *  * @param wrk [i/o] HMM computation work area *  */voidoutprob_cd_nbest_free(HMMWork *wrk){  free(wrk->cd_nbest_maxprobs);}  /**  * Return average of N-beat outprob for pseudo state set. *  * @param wrk [i/o] HMM computation work area * @param t [in] input frame * @param lset [in] pseudo state set * @param param [in] input parameter data *  * @return outprob log probability, average of top N states in @a lset. */static LOGPROBoutprob_cd_nbest(HMMWork *wrk, int t, CD_State_Set *lset, HTK_Param *param){  LOGPROB prob;  int i, k, n;  n = 0;  for(i=0;i<lset->num;i++) {    prob = outprob_state(wrk, t, lset->s[i], param);    /*jlog("\t\t%d:%f\n", i, prob);*/    if (prob <= LOG_ZERO) continue;    if (n == 0 || prob <= wrk->cd_nbest_maxprobs[n-1]) {      if (n == wrk->cd_nbest_maxn) continue;      wrk->cd_nbest_maxprobs[n] = prob;      n++;    } else {      for(k=0; k<n; k++) {	if (prob > wrk->cd_nbest_maxprobs[k]) {	  memmove(&(wrk->cd_nbest_maxprobs[k+1]), &(wrk->cd_nbest_maxprobs[k]),		  sizeof(LOGPROB) * (n - k - ( (n == wrk->cd_nbest_maxn) ? 1 : 0)));	  wrk->cd_nbest_maxprobs[k] = prob;	  break;	}      }      if (n < wrk->cd_nbest_maxn) n++;    }  }  prob = 0.0;  for(i=0;i<n;i++) {    /*jlog("\t\t\t- %d: %f\n", i, wrk->cd_nbest_maxprobs[i]);*/    prob += wrk->cd_nbest_maxprobs[i];  }  return(prob/(float)n);}  /**  * Return maximum outprob of the pseudo state set. *  * @param wrk [i/o] HMM computation work area * @param t [in] input frame * @param lset [in] pseudo state set * @param param [in] input parameter data *  * @return maximum output log probability among states in @a lset. */static LOGPROBoutprob_cd_max(HMMWork *wrk, int t, CD_State_Set *lset, HTK_Param *param){  LOGPROB maxprob, prob;  int i;  maxprob = LOG_ZERO;  for(i=0;i<lset->num;i++) {    prob = outprob_state(wrk, t, lset->s[i], param);    if (maxprob < prob) maxprob = prob;  }  return(maxprob);}/**  * Return average outprob of the pseudo state set. *  * @param wrk [i/o] HMM computation work area * @param t [in] input frame * @param lset [in] pseudo state set * @param param [in] input parameter data *  * @return average output log probability of states in @a lset. */static LOGPROBoutprob_cd_avg(HMMWork *wrk, int t, CD_State_Set *lset, HTK_Param *param){  LOGPROB sum, p;  int i,j;  sum = 0.0;  j = 0;  for(i=0;i<lset->num;i++) {    p = outprob_state(wrk, t, lset->s[i], param);    if (p > LOG_ZERO) {      sum += p;      j++;    }  }  return(sum/(float)j);}/**  * Compute the log output probability of a pseudo state set. *  * @param wrk [i/o] HMM computation work area * @param t [in] input frame * @param lset [in] pseudo state set * @param param [in] input parameter data *  * @return the computed log output probability. */LOGPROBoutprob_cd(HMMWork *wrk, int t, CD_State_Set *lset, HTK_Param *param){  LOGPROB ret;  /* select computation method */  switch(wrk->OP_hmminfo->cdset_method) {  case IWCD_AVG:    ret = outprob_cd_avg(wrk, t, lset, param);    break;  case IWCD_MAX:    ret = outprob_cd_max(wrk, t, lset, param);    break;  case IWCD_NBEST:    ret = outprob_cd_nbest(wrk, t, lset, param);    break;  }  return(ret);}  /**  * Top function to compute the output probability of a HMM state. * * @param wrk [i/o] HMM computation work area * @param t [in] input frame * @param hmmstate [in] HMM state * @param param [in] input parameter data *  * @return the computed log output probability. */LOGPROBoutprob(HMMWork *wrk, int t, HMM_STATE *hmmstate, HTK_Param *param){  if (hmmstate->is_pseudo_state) {    return(outprob_cd(wrk, t, hmmstate->out.cdset, param));  } else {    return(outprob_state(wrk, t, hmmstate->out.state, param));  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精选视频在线| 亚洲人成在线观看一区二区| 成人美女视频在线看| 亚洲一区二区三区影院| 国产日韩欧美激情| 欧美一区二区三区人| 91视频免费观看| 国产一区二区免费看| 午夜av电影一区| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲欧美在线视频观看| 91精品国产91久久久久久一区二区 | 国产欧美精品区一区二区三区| 色香蕉成人二区免费| 国产成人亚洲综合a∨婷婷 | 亚洲综合在线免费观看| 欧美国产一区二区在线观看| 欧美精选一区二区| 色综合久久久久综合| 成人激情av网| 国产精品1区2区| 精品亚洲国内自在自线福利| 天天影视涩香欲综合网 | 国产精品伦理在线| www国产精品av| 精品国产伦理网| 精品久久五月天| 日韩欧美国产综合一区| 欧美久久久久免费| 欧美日韩一区二区三区四区 | 欧美亚洲国产怡红院影院| 成人在线一区二区三区| 国产一区二区剧情av在线| 麻豆精品视频在线观看| 麻豆精品视频在线| 精品一区二区久久| 国产伦精品一区二区三区视频青涩| 日本系列欧美系列| 青青草伊人久久| 麻豆精品视频在线观看免费| 麻豆精品在线看| 美女mm1313爽爽久久久蜜臀| 美国精品在线观看| 国产在线不卡一区| 国产激情91久久精品导航| 高清在线不卡av| 成人激情小说网站| 91女厕偷拍女厕偷拍高清| 99久久伊人久久99| 一本色道久久综合亚洲aⅴ蜜桃| 色先锋aa成人| 欧美精品1区2区3区| 精品久久人人做人人爽| 亚洲欧美日韩中文字幕一区二区三区 | 99re在线视频这里只有精品| 97精品久久久久中文字幕| 欧亚洲嫩模精品一区三区| 欧美日韩五月天| 日韩午夜在线观看视频| ww久久中文字幕| 中文字幕色av一区二区三区| 亚洲一区二区av电影| 日韩激情中文字幕| 国产乱子伦一区二区三区国色天香| 国产福利不卡视频| 91日韩在线专区| 欧美人动与zoxxxx乱| 精品久久久久久久一区二区蜜臀| 日本一区二区免费在线| 一区二区三区日韩| 久久99热国产| 国产91综合网| 91久久精品一区二区三| 欧美sm极限捆绑bd| 中文字幕一区日韩精品欧美| 亚洲自拍偷拍欧美| 久久精品国产久精国产爱| 成人综合婷婷国产精品久久蜜臀| 在线观看av一区二区| 亚洲精品一区二区三区蜜桃下载 | 国产在线一区观看| 91在线视频播放地址| 欧美酷刑日本凌虐凌虐| 欧美国产综合一区二区| 亚洲电影在线播放| 精品一区二区三区蜜桃| 91蝌蚪国产九色| 日韩三级视频中文字幕| 亚洲视频精选在线| 韩国精品主播一区二区在线观看 | 欧美精品一区二区三区蜜桃| 亚洲日本va午夜在线电影| 蜜桃视频在线一区| 99精品热视频| 精品国产区一区| 夜夜嗨av一区二区三区四季av| 黄页网站大全一区二区| 欧美视频一区在线| 国产精品你懂的| 蜜臀久久久久久久| 91福利视频在线| 久久久久久久久岛国免费| 亚洲成人免费影院| 91污片在线观看| 国产亚洲成aⅴ人片在线观看 | 欧美综合亚洲图片综合区| 久久久久久久久久久久久久久99| 亚洲成人免费电影| 91丨porny丨在线| 久久久国产精品午夜一区ai换脸| 午夜视频在线观看一区二区| 91在线视频18| 日本一区二区三区国色天香 | 国产一区二区精品久久91| 欧美精品一卡两卡| 玉足女爽爽91| 成人aaaa免费全部观看| 国产日韩三级在线| 国产一区在线视频| 欧美大片日本大片免费观看| 亚洲午夜精品在线| 在线观看欧美黄色| 一区二区三区毛片| 色综合天天综合色综合av | 亚洲精品自拍动漫在线| av高清不卡在线| 国产精品视频线看| 国产jizzjizz一区二区| 久久久亚洲欧洲日产国码αv| 蜜臀久久99精品久久久久宅男| 欧美日韩在线亚洲一区蜜芽| 一区二区三区在线视频观看58| 成人黄色777网| 国产精品久久久久三级| 99久久精品免费看| 亚洲视频资源在线| 色综合天天综合狠狠| 亚洲色图第一区| 91在线porny国产在线看| 亚洲欧洲av在线| 91首页免费视频| 亚洲免费av网站| 在线观看日韩国产| 午夜精品久久久久久久蜜桃app | 欧美一区二区三区喷汁尤物| 丝袜美腿一区二区三区| 日韩亚洲欧美一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 日韩精品一区二区三区swag | 一二三区精品福利视频| 欧美性猛片aaaaaaa做受| 性做久久久久久久久| 日韩情涩欧美日韩视频| 精品夜夜嗨av一区二区三区| 亚洲国产精品99久久久久久久久| 不卡的av电影在线观看| 又紧又大又爽精品一区二区| 欧美日本在线观看| 国产在线不卡一区| 亚洲欧美另类在线| 91精品国产综合久久精品图片| 精品在线一区二区三区| 亚洲国产激情av| 欧美视频自拍偷拍| 精品影视av免费| 亚洲国产岛国毛片在线| 精品视频1区2区3区| 国产一区二区三区免费观看| **性色生活片久久毛片| 在线观看91精品国产麻豆| 国产在线不卡一区| 亚洲裸体xxx| 91精品欧美一区二区三区综合在| 国产综合色在线| 亚洲精品免费在线观看| 精品区一区二区| av网站免费线看精品| 免费看欧美女人艹b| 中文字幕一区二区三区在线不卡 | 亚洲精品成人在线| 日韩一区二区视频| 不卡免费追剧大全电视剧网站| 偷拍日韩校园综合在线| 国产精品三级久久久久三级| 7799精品视频| caoporen国产精品视频| 美女一区二区久久| 亚洲精品写真福利| 国产色综合一区| 欧美精品99久久久**| 91在线观看下载| 国产在线精品国自产拍免费| 一区二区视频免费在线观看| 久久综合九色综合97婷婷女人 | 久久先锋影音av鲁色资源网| 在线观看中文字幕不卡| 成人精品gif动图一区| 免费成人结看片| 一二三四社区欧美黄| 中文字幕一区二区三区在线播放|