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

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

?? outprob.c

?? about sound recognition.i want to downlod
?? C
字號:
/** * @file   outprob.c * @author Akinobu LEE * @date   Fri Feb 18 18:45:21 2005 *  * <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> *  * $Revision: 1.5 $ *  *//* * Copyright (c) 1991-2006 Kawahara Lab., Kyoto University * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology * Copyright (c) 2005-2006 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/gprune.h>#include "globalvars.h"/* cache */static int statenum;		///< Local work area that holds total number of HMM states in the %HMM definition datastatic LOGPROB **outprob_cache = NULL; ///< State-level cache [t][stateid]static int allocframenum;	///< Allocated frames of the cachestatic int allocblock;		///< Allocation block size per allocateion of the cachestatic BMALLOC_BASE *croot;	///< Root alloc pointer to state outprob cachestatic LOGPROB *last_cache;	///< Local work are to hold cache list of current time#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. *  * @return TRUE on success, FALSE on failure. */booleanoutprob_cache_init(){  statenum = OP_hmminfo->totalstatenum;  outprob_cache = NULL;  allocframenum = 0;  allocblock = OUTPROB_CACHE_PERIOD;  OP_time = -1;  croot = NULL;  return TRUE;}/**  * Prepare cache for the next input, by clearing the existing cache. *  *  * @return TRUE on success, FALSE on failure. */booleanoutprob_cache_prepare(){  int s,t;  /* clear already allocated area */  for (t = 0; t < allocframenum; t++) {    for (s = 0; s < statenum; s++) {      outprob_cache[t][s] = LOG_UNDEF;    }  }    return TRUE;}/**  * Expand the cache to time axis if needed. *  * @param reqframe [in] required frame length */static voidoutprob_cache_extend(int reqframe){  int newnum;  int size;  int t, s;  LOGPROB *tmpp;  /* if enough length are already allocated, return immediately */  if (reqframe < allocframenum) return;  /* allocate per certain period */  newnum = reqframe + 1;  if (newnum < allocframenum + allocblock) newnum = allocframenum + allocblock;  size = (newnum - allocframenum) * statenum;    /* allocate */  if (outprob_cache == NULL) {    outprob_cache = (LOGPROB **)mymalloc(sizeof(LOGPROB *) * newnum);  } else {    outprob_cache = (LOGPROB **)myrealloc(outprob_cache, sizeof(LOGPROB *) * newnum);  }  tmpp = (LOGPROB *)mybmalloc2(sizeof(LOGPROB) * size, &croot);  /* clear the new part */  for(t = allocframenum; t < newnum; t++) {    outprob_cache[t] = &(tmpp[(t - allocframenum) * statenum]);    for (s = 0; s < statenum; s++) {      outprob_cache[t][s] = LOG_UNDEF;    }  }  /*j_printf("outprob cache: %d->%d\n", allocframenum, newnum);*/  allocframenum = newnum;}/** * Free work area for cache. *  */voidoutprob_cache_free(){  if (croot != NULL) mybfree2(&croot);  if (outprob_cache != NULL) free(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. *  * @return output log probability. */LOGPROBoutprob_state(     int t,			/* time frame */     HTK_HMM_State *stateinfo,	/* state info */     HTK_Param *param)		/* parameter */{  LOGPROB outp;    /* set global values for outprob functions to access them */  OP_state = stateinfo;  OP_state_id = stateinfo->id;  OP_param = param;  if (OP_time != t) {    OP_last_time = OP_time;    OP_time = t;    OP_vec = param->parvec[t];    OP_veclen = param->veclen;    outprob_cache_extend(t);	/* extend cache if needed */    last_cache = outprob_cache[t]; /* reduce 2-d array access */  }    /* consult cache */  if ((outp = last_cache[OP_state_id]) == LOG_UNDEF) {    outp = last_cache[OP_state_id] = calc_outprob_state();  }  return(outp);}static LOGPROB *maxprobs;	///< Work area that holds N-best state scores for pseudo state setstatic int maxn;		///< Allocated length of above/**  * Initialize work area for outprob_cd_nbest(). *  * @param num [in] number of top states to be calculated. */voidoutprob_cd_nbest_init(int num){  maxprobs = (LOGPROB *)mymalloc(sizeof(LOGPROB) * num);  maxn = num;}/** * Free work area for outprob_cd_nbest(). *  */voidoutprob_cd_nbest_free(){  free(maxprobs);}  /**  * Return average of N-beat outprob for pseudo state set. *  * @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(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(t, lset->s[i], param);    /*printf("\t\t%d:%f\n", i, prob);*/    if (prob <= LOG_ZERO) continue;    if (n == 0 || prob <= maxprobs[n-1]) {      if (n == maxn) continue;      maxprobs[n] = prob;      n++;    } else {      for(k=0; k<n; k++) {	if (prob > maxprobs[k]) {	  memmove(&(maxprobs[k+1]), &(maxprobs[k]),		  sizeof(LOGPROB) * (n - k - ( (n == maxn) ? 1 : 0)));	  maxprobs[k] = prob;	  break;	}      }      if (n < maxn) n++;    }  }  prob = 0.0;  for(i=0;i<n;i++) {    /*printf("\t\t\t- %d: %f\n", i, maxprobs[i]);*/    prob += maxprobs[i];  }  return(prob/(float)n);}  /**  * Return maximum outprob of the pseudo state set. *  * @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(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(t, lset->s[i], param);    if (maxprob < prob) maxprob = prob;  }  return(maxprob);}/**  * Return average outprob of the pseudo state set. *  * @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(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(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 t [in] input frame * @param lset [in] pseudo state set * @param param [in] input parameter data *  * @return the computed log output probability. */LOGPROBoutprob_cd(int t, CD_State_Set *lset, HTK_Param *param){  LOGPROB ret;  /* select computation method */  switch(OP_hmminfo->cdset_method) {  case IWCD_AVG:    ret = outprob_cd_avg(t, lset, param);    break;  case IWCD_MAX:    ret = outprob_cd_max(t, lset, param);    break;  case IWCD_NBEST:    ret = outprob_cd_nbest(t, lset, param);    break;  default:    j_error("unknown cdhmm method!\n");    ret = 0;    break;  }  return(ret);}  /**  * Top function to compute the output probability of a HMM state. *  * @param t [in] input frame * @param hmmstate [in] HMM state * @param param [in] input parameter data *  * @return the computed log output probability. */LOGPROBoutprob(int t, HMM_STATE *hmmstate, HTK_Param *param){  if (hmmstate->is_pseudo_state) {    return(outprob_cd(t, hmmstate->out.cdset, param));  } else {    return(outprob_state(t, hmmstate->out.state, param));  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文在线资源观看网站视频免费不卡| 国产日韩欧美一区二区三区综合| 欧美视频你懂的| 精品1区2区在线观看| 亚洲乱码中文字幕综合| 精久久久久久久久久久| 在线观看日韩高清av| 国产清纯美女被跳蛋高潮一区二区久久w | 一本一本久久a久久精品综合麻豆| 在线不卡免费av| 亚洲欧美日韩在线不卡| 成人国产免费视频| 欧美精品一区二区三区蜜臀| 亚洲国产欧美日韩另类综合 | 中文天堂在线一区| 日本va欧美va精品| 欧美丝袜自拍制服另类| 亚洲欧美另类久久久精品| 高清在线观看日韩| 久久久久久亚洲综合| 久久精品99久久久| 欧美xxx久久| 美女尤物国产一区| 欧美一级二级三级蜜桃| 日韩电影在线免费观看| 欧美视频一区二区在线观看| 亚洲激情第一区| 99国产精品久久久久久久久久| 国产视频亚洲色图| 国产成人久久精品77777最新版本| 日韩欧美二区三区| 狠狠色综合色综合网络| 性感美女久久精品| 欧美在线免费观看视频| 亚洲一区二区三区三| av福利精品导航| 韩国精品免费视频| 丰满岳乱妇一区二区三区| 日韩欧美国产小视频| 奇米888四色在线精品| 日韩三级免费观看| 国产剧情一区二区| 国产精品传媒视频| 91福利社在线观看| 日韩主播视频在线| 精品免费一区二区三区| 激情综合网av| 国产精品美女久久久久aⅴ| a4yy欧美一区二区三区| 洋洋成人永久网站入口| 日韩一区二区电影在线| 国产精品一二三四区| 亚洲天堂a在线| 欧美午夜理伦三级在线观看| 天天色天天操综合| 久久综合色之久久综合| www.性欧美| 一个色在线综合| 欧美一区二区高清| 国产91对白在线观看九色| 免费观看在线色综合| 久久久久久久久久久黄色| 99re这里只有精品6| 日韩国产精品91| 国产精品久久久久久久久免费丝袜| 91久久精品一区二区三区| 日本亚洲电影天堂| 中文av一区二区| 欧美日韩亚洲不卡| 成人性生交大片免费看在线播放 | 国产日韩欧美麻豆| 91视视频在线直接观看在线看网页在线看| 日韩精品一区第一页| 久久视频一区二区| 精品视频免费看| 国产盗摄视频一区二区三区| 亚洲国产成人91porn| 国产人成一区二区三区影院| 欧美三级三级三级| 成人久久久精品乱码一区二区三区| 亚洲成av人**亚洲成av**| 国产精品天干天干在观线| 日本免费新一区视频| 国产大片一区二区| 亚洲一区二区三区精品在线| 精品精品欲导航| 在线观看亚洲a| 成人黄色在线看| 麻豆成人免费电影| 亚洲不卡在线观看| 国产精品久久看| 久久久久久久久久久久电影| 91麻豆精品91久久久久久清纯 | 久久伊99综合婷婷久久伊| 欧美日韩一区二区三区高清| 91免费视频大全| 国产91清纯白嫩初高中在线观看| 欧美a一区二区| 亚洲成人免费av| 亚洲黄色小说网站| 亚洲色欲色欲www在线观看| 国产日韩欧美a| 日本一区二区免费在线 | 美腿丝袜亚洲综合| 欧美日韩在线免费视频| 欧美性淫爽ww久久久久无| 成人精品一区二区三区中文字幕| 日韩精品1区2区3区| 亚洲一区二区三区四区五区黄| 亚洲欧美怡红院| 一色屋精品亚洲香蕉网站| 日本一区二区三区高清不卡| 国产欧美日本一区二区三区| 久久日韩粉嫩一区二区三区| 精品福利二区三区| 国产天堂亚洲国产碰碰| 中文字幕欧美国产| 国产精品私房写真福利视频| 中文字幕二三区不卡| 亚洲欧洲精品一区二区三区| 亚洲色图色小说| 亚洲综合久久久| 性做久久久久久久久| 琪琪久久久久日韩精品| 精品一区二区三区免费视频| 国产一区二区三区蝌蚪| 激情综合色综合久久综合| 日韩专区在线视频| 日本不卡免费在线视频| 夜夜揉揉日日人人青青一国产精品| 亚洲色图丝袜美腿| 亚洲一区二区精品久久av| 琪琪久久久久日韩精品| 国产美女在线观看一区| 播五月开心婷婷综合| 色婷婷综合在线| 7777精品伊人久久久大香线蕉经典版下载| 欧美一区二区国产| 国产日韩欧美不卡在线| 亚洲自拍欧美精品| 蜜桃视频免费观看一区| 国产成人精品免费看| 欧美午夜精品一区| 久久亚区不卡日本| 亚洲黄色小说网站| 极品少妇xxxx偷拍精品少妇| 99久久免费精品| 欧美夫妻性生活| 国产女主播视频一区二区| 亚洲小说欧美激情另类| 国产主播一区二区三区| 91蜜桃免费观看视频| 欧美一级二级三级乱码| 一区二区三区在线视频观看| 五月婷婷久久丁香| 国产精品久久久久久久蜜臀| 亚洲国产aⅴ天堂久久| 国产一区二区三区av电影 | 欧美一区二区三区在线电影| 国产日韩欧美麻豆| 亚洲国产视频在线| 丁香婷婷综合色啪| 91精品国产欧美日韩| 一区精品在线播放| 国产一区二区在线免费观看| 精品视频在线看| 国产精品久久久久久久久搜平片| 日韩激情一区二区| 色哟哟欧美精品| 国产精品三级视频| 日韩激情中文字幕| 欧美三级午夜理伦三级中视频| 欧美激情一区二区三区四区| 日韩电影在线免费看| 欧美视频一区二区三区| 一区在线观看视频| 福利视频网站一区二区三区| 日韩欧美美女一区二区三区| 亚洲午夜一区二区| 91视频国产观看| 国产精品免费视频观看| 国产麻豆精品一区二区| 欧美日本一区二区三区四区| 亚洲精品免费一二三区| 成人小视频免费观看| 久久久三级国产网站| 国产在线播放一区| 日韩欧美一区二区三区在线| 日本不卡一二三区黄网| 4438亚洲最大| 青青草国产成人99久久| 7878成人国产在线观看| 午夜av一区二区| 欧美理论电影在线| 天堂一区二区在线| 91麻豆精品国产| 久久超级碰视频| 久久久久久免费网| 丁香网亚洲国际| 亚洲欧美一区二区三区国产精品|