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

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

?? gms.c

?? julius version 4.12.about sound recognition.
?? C
字號:
/** * @file   gms.c *  * <JA> * @brief  Gaussian Mixture Selection による覺輪銻刨紛換 * * 悸劉數恕についてはソ〖ス柒のコメントをご枉くださいˉ * </JA> *  * <EN> * @brief  Calculate state probability with Gaussian Mixture Selection * * See the comments in the source for details about implementation. * </EN> *  * @author Akinobu LEE * @date   Thu Feb 17 14:52:18 2005 * * $Revision: 1.2 $ *  *//* * 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 *//*  Implementation of Gaussian Mixture Selection (old doc...)    It is called from gs_calc_selected_mixture_and_cache_{safe,heu,beam} in  the first pass for each frame.  It calculates all GS HMM outprob for  given input frame and get the N-best GS HMM states. Then,       for the selected (N-best) states:           calculate the corresponding codebook,           and set fallback_score[t][book] to LOG_ZERO.       else:           set fallback_score[t][book] to the GS HMM outprob.  Later, when calculating state outprobs, the fallback_score[t][book]  is consulted and,       if fallback_score[t][book] == LOG_ZERO:           it means it has been selected, so calculate the outprob with           the corresponding codebook and its weights.       else:           it means it was pruned, so use the fallback_score[t][book]           as its outprob.             For triphone, GS HMMs should be assigned to each state.  So the fallback_score[][] is kept according to the GS state ID,  and corresponding GS HMM state id for each triphone state id should be  kept beforehand.  GS HMM Calculation:       for the selected (N-best) GS HMM states:           set fallback_score[t][gs_stateid] to LOG_ZERO.       else:           set fallback_score[t][gs_stateid] to the GS HMM outprob.  triphone HMM probabilities are assigned as:       if fallback_score[t][state2gs[tri_stateid]] == LOG_ZERO:           it has been selected, so calculate the original outprob.       else:           as it was pruned, re-use the fallback_score[t][stateid]           as its outprob.*/#include <sent/stddefs.h>#include <sent/htk_hmm.h>#include <sent/htk_param.h>#include <sent/hmm.h>#include <sent/hmm_calc.h>#undef NORMALIZE_GS_SCORE	/* normalize score (ad-hoc) */  /* GS HMMs must be defined at STATE level using "~s NAME" macro,     where NAMES are like "i:4m", "s2m", etc. *//**  * Register all state defs in GS HMM to GS_SET. *  * @param wrk [i/o] HMM computation work area *  */static voidbuild_gsset(HMMWork *wrk){  HTK_HMM_State *st;  /* allocate */  wrk->gsset = (GS_SET *)mymalloc(sizeof(GS_SET) * wrk->OP_gshmm->totalstatenum);  wrk->gsset_num = wrk->OP_gshmm->totalstatenum;  /* make ID */  for(st = wrk->OP_gshmm->ststart; st; st=st->next) {    wrk->gsset[st->id].state = st;  }}/** * Free gsset. *  * @param wrk [i/o] HMM computation work area *  */static voidfree_gsset(HMMWork *wrk){  free(wrk->gsset);}/**  * Build the correspondence from GS states to triphone states. *  * @param wrk [i/o] HMM computation work area *  * @return TRUE on success, FALSE on failure. */static booleanbuild_state2gs(HMMWork *wrk){  HTK_HMM_Data *dt;  HTK_HMM_State *st, *cr;  int i;  char gstr[MAX_HMMNAME_LEN], cbuf[MAX_HMMNAME_LEN];  boolean ok_p = TRUE;  /* initialize */  wrk->state2gs = (int *)mymalloc(sizeof(int) * wrk->OP_hmminfo->totalstatenum);  for(i=0;i<wrk->OP_hmminfo->totalstatenum;i++) wrk->state2gs[i] = -1;  /* parse through all HMM macro to register their state */  for(dt = wrk->OP_hmminfo->start; dt; dt=dt->next) {    if (strlen(dt->name) >= MAX_HMMNAME_LEN - 2) {      jlog("Error: gms: too long hmm name (>%d): \"%s\"\n",	   MAX_HMMNAME_LEN-3, dt->name);      jlog("Error: gms: change value of MAX_HMMNAME_LEN\n");      ok_p = FALSE;      continue;    }    for(i=1;i<dt->state_num-1;i++) { /* for all state */      st = dt->s[i];      /* skip if already assigned */      if (wrk->state2gs[st->id] != -1) continue;      /* set corresponding gshmm name */      sprintf(gstr, "%s%dm", center_name(dt->name, cbuf), i + 1);      /* look up the state in OP_gshmm */      if ((cr = state_lookup(wrk->OP_gshmm, gstr)) == NULL) {	jlog("Error: gms: GS HMM \"%s\" not defined\n", gstr);	ok_p = FALSE;	continue;      }      /* store its ID */      wrk->state2gs[st->id] = cr->id;    }  }#ifdef PARANOIA  {    HTK_HMM_State *st;    for(st=wrk->OP_hmminfo->ststart; st; st=st->next) {      printf("%s -> %s\n", (st->name == NULL) ? "(NULL)" : st->name,	     (wrk->gsset[wrk->state2gs[st->id]].state)->name);    }  }#endif  return ok_p;}/** * free state2gs. *  * @param wrk [i/o] HMM computation work area *  */static voidfree_state2gs(HMMWork *wrk){  free(wrk->state2gs);}/* sort to find N-best states */#define SD(A) idx[A-1]	///< Index macro for heap sort#define SCOPY(D,S) D = S	///< Element copy macro for heap sort#define SVAL(A) (fs[idx[A-1]]) ///< Element evaluation macro for heap sort#define STVAL (fs[s]) ///< Element current value macro for heap sort/**  * Heap sort of @a gsindex to determine which model gets N best likelihoods. *  * @param wrk [i/o] HMM computation work area * */static voidsort_gsindex_upward(HMMWork *wrk){  int n,root,child,parent;  int s;  int *idx;  LOGPROB *fs;  int neednum, totalnum;  idx = wrk->gsindex;  fs = wrk->t_fs;  neednum = wrk->my_nbest;  totalnum = wrk->gsset_num;  for (root = totalnum/2; root >= 1; root--) {    SCOPY(s, SD(root));    parent = root;    while ((child = parent * 2) <= totalnum) {      if (child < totalnum && SVAL(child) < SVAL(child+1)) {	child++;      }      if (STVAL >= SVAL(child)) {	break;      }      SCOPY(SD(parent), SD(child));      parent = child;    }    SCOPY(SD(parent), s);  }  n = totalnum;  while ( n > totalnum - neednum) {    SCOPY(s, SD(n));    SCOPY(SD(n), SD(1));    n--;    parent = 1;    while ((child = parent * 2) <= n) {      if (child < n && SVAL(child) < SVAL(child+1)) {	child++;      }      if (STVAL >= SVAL(child)) {	break;      }      SCOPY(SD(parent), SD(child));      parent = child;    }    SCOPY(SD(parent), s);  }}/**  * Calculate all GS state scores and select the best ones. *  * @param wrk [i/o] HMM computation work area *  */static voiddo_gms(HMMWork *wrk){  int i;    /* compute all gshmm scores (in gs_score.c) */  compute_gs_scores(wrk);  /* sort and select */  sort_gsindex_upward(wrk);  for(i=wrk->gsset_num - wrk->my_nbest;i<wrk->gsset_num;i++) {    /* set scores of selected states to LOG_ZERO */    wrk->t_fs[wrk->gsindex[i]] = LOG_ZERO;  }  /* power e -> 10 */#ifdef NORMALIZE_GS_SCORE  /* normalize other fallback scores (rate of max) */  for(i=0;i<wrk->gsset_num;i++) {    if (wrk->t_fs[i] != LOG_ZERO) {      wrk->t_fs[i] *= 0.975;    }  }#endif}  /**  * Initialize the GMS related functions and data. *  * @param wrk [i/o] HMM computation work area *  * @return TRUE on success, FALSE on failure. */booleangms_init(HMMWork *wrk){  int i;    /* Check gshmm type */  if (wrk->OP_gshmm->is_triphone) {    jlog("Error: gms: GS HMM should be a monophone model\n");    return FALSE;  }  if (wrk->OP_gshmm->is_tied_mixture) {    jlog("Error: gms: GS HMM should not be a tied mixture model\n");    return FALSE;  }  /* Register all GS HMM states in GS_SET */  build_gsset(wrk);  /* Make correspondence of all triphone states to GS HMM states */  if (build_state2gs(wrk) == FALSE) {    jlog("Error: gms: failed in assigning GS HMM state for each state\n");    return FALSE;  }  jlog("Stat: gms: GS HMMs are mapped to HMM states\n");  /* prepare index buffer for heap sort */  wrk->gsindex = (int *)mymalloc(sizeof(int) * wrk->gsset_num);  for(i=0;i<wrk->gsset_num;i++) wrk->gsindex[i] = i;  /* init cache status */  wrk->fallback_score = NULL;  wrk->gms_is_selected = NULL;  wrk->gms_allocframenum = -1;  /* initialize gms_gprune functions */  gms_gprune_init(wrk);    return TRUE;}/**  * Setup GMS parameters for next input. *  * @param wrk [i/o] HMM computation work area * @param framenum [in] length of next input in frames *  * @return TRUE on success, FALSE on failure. */booleangms_prepare(HMMWork *wrk, int framenum){  LOGPROB *tmp;  int t;  /* allocate cache */  if (wrk->gms_allocframenum < framenum) {    if (wrk->fallback_score != NULL) {      free(wrk->fallback_score[0]);      free(wrk->fallback_score);      free(wrk->gms_is_selected);    }    wrk->fallback_score = (LOGPROB **)mymalloc(sizeof(LOGPROB *) * framenum);    tmp = (LOGPROB *)mymalloc(sizeof(LOGPROB) * wrk->gsset_num * framenum);    for(t=0;t<framenum;t++) {      wrk->fallback_score[t] = &(tmp[wrk->gsset_num * t]);    }    wrk->gms_is_selected = (boolean *)mymalloc(sizeof(boolean) * framenum);    wrk->gms_allocframenum = framenum;  }  /* clear */  for(t=0;t<framenum;t++) wrk->gms_is_selected[t] = FALSE;  /* prepare gms_gprune functions */  gms_gprune_prepare(wrk);    return TRUE;}/** * Free GMS related work areas. *  * @param wrk [i/o] HMM computation work area *  */voidgms_free(HMMWork *wrk){  free_gsset(wrk);  free_state2gs(wrk);  free(wrk->gsindex);  if (wrk->fallback_score != NULL) {    free(wrk->fallback_score[0]);    free(wrk->fallback_score);    free(wrk->gms_is_selected);  }  gms_gprune_free(wrk);}/**  * Get %HMM State probability of current state with Gaussiam Mixture Selection. * * If the GMS %HMM score of the corresponding basephone is below the * N-best, the triphone score will not be computed, and the score of * the GMS %HMM will be returned instead as a fallback score. * Else, the precise triphone will be computed and returned. *  * @param wrk [i/o] HMM computation work area *  * @return the state output probability score in log10. */LOGPROBgms_state(HMMWork *wrk){  LOGPROB gsprob;  if (wrk->OP_last_time != wrk->OP_time) { /* different frame */    /* set current buffer */    wrk->t_fs = wrk->fallback_score[wrk->OP_time];    /* select state if not yet */    if (!wrk->gms_is_selected[wrk->OP_time]) {      do_gms(wrk);      wrk->gms_is_selected[wrk->OP_time] = TRUE;    }  }  if ((gsprob = wrk->t_fs[wrk->state2gs[wrk->OP_state_id]]) != LOG_ZERO) {    /* un-selected: return the fallback value */    return(gsprob);  }  /* selected: calculate the real outprob of the state */  return((*(wrk->calc_outprob))(wrk));}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久不卡网国产精品一区| 欧美天堂一区二区三区| 日韩不卡一区二区三区| 午夜精品福利一区二区三区蜜桃| 亚洲欧美另类在线| 中文字幕中文字幕一区二区| 国产农村妇女精品| 精品国产乱码久久久久久图片| www国产成人免费观看视频 深夜成人网| 欧美一区日韩一区| 欧美国产欧美综合| 亚洲色图欧美偷拍| 蜜臀av性久久久久蜜臀aⅴ| 国产一区二区三区高清播放| 9色porny自拍视频一区二区| 欧美性受极品xxxx喷水| 久久久www免费人成精品| 亚洲丝袜自拍清纯另类| 男女性色大片免费观看一区二区 | 蜜桃视频一区二区三区 | 欧美tk—视频vk| 亚洲美女区一区| 国产制服丝袜一区| 欧美日韩一区二区三区四区五区| 精品国偷自产国产一区| 亚洲综合色网站| 91视频www| 国产精品网站在线观看| 午夜精品福利视频网站| 99久久精品国产导航| 久久蜜臀精品av| 亚洲品质自拍视频网站| 国模冰冰炮一区二区| 色婷婷av一区二区三区gif| 国产精品三级久久久久三级| 精品一区二区三区影院在线午夜 | 国产精品色在线观看| 国内精品视频一区二区三区八戒| 日韩女优av电影| 国产精品小仙女| 综合电影一区二区三区| 91丨九色丨尤物| 国产精品国产三级国产aⅴ无密码| 青椒成人免费视频| 国产丝袜在线精品| 色综合久久中文综合久久97| 亚洲综合免费观看高清完整版 | 亚洲6080在线| 精品国产一二三| 成人黄色在线看| 亚洲国产日产av| 精品少妇一区二区三区日产乱码| 国产主播一区二区三区| 亚洲欧美一区二区不卡| 日韩欧美精品三级| av一区二区三区四区| 亚洲国产精品嫩草影院| 欧美精品一二三区| 国内成人自拍视频| 秋霞影院一区二区| 欧美韩日一区二区三区| 欧美精品亚洲二区| 国产露脸91国语对白| 亚洲男女一区二区三区| 在线免费观看日本欧美| 久久99国产精品尤物| 国产精品国产自产拍在线| 日韩一卡二卡三卡四卡| av一本久道久久综合久久鬼色| 日本欧美一区二区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 中文字幕一区二区三区在线观看| 91成人免费在线| 国产最新精品精品你懂的| 亚洲综合成人在线视频| 国产视频一区二区在线观看| 欧美乱妇20p| 91麻豆成人久久精品二区三区| 激情综合色播五月| 亚洲欧洲色图综合| 亚洲欧洲日韩在线| 久久久久国产免费免费| 欧美伦理影视网| 成人av资源站| 丝袜脚交一区二区| 欧美国产精品v| 国产性色一区二区| 2021久久国产精品不只是精品| 欧美日本韩国一区| zzijzzij亚洲日本少妇熟睡| 风间由美性色一区二区三区| 国产精品456露脸| 国产精品影音先锋| 国产在线看一区| 国产综合色产在线精品| 粉嫩av一区二区三区| 不卡视频免费播放| 国产精品自拍网站| 国产一区二区在线观看视频| 久久国产精品免费| 国内精品免费**视频| 99在线精品免费| 91丝袜呻吟高潮美腿白嫩在线观看| 99久免费精品视频在线观看 | 精品久久久久久综合日本欧美| 日韩精品在线一区| 国产精品久久久久影院| 亚洲精品老司机| 久久精品国产亚洲高清剧情介绍 | 91黄色激情网站| 日韩一本二本av| 亚洲视频一区二区在线观看| 亚洲欧美在线另类| 蜜桃一区二区三区在线| a美女胸又www黄视频久久| 91精品国产欧美一区二区| 国产精品久久午夜夜伦鲁鲁| 青青草国产成人av片免费| 成人激情图片网| 久久久精品免费网站| 久久97超碰色| 在线综合+亚洲+欧美中文字幕| 亚洲国产精品v| 国产综合色产在线精品| 欧美日韩国产经典色站一区二区三区| 精品日产卡一卡二卡麻豆| 亚洲综合男人的天堂| 国产一区二区三区日韩| 精品免费一区二区三区| 日本中文一区二区三区| 欧美日韩专区在线| 亚洲国产一区二区在线播放| 在线视频欧美精品| 国产精品久久久久久久久晋中| 国产一区二区三区黄视频| 日韩欧美中文字幕精品| 五月婷婷久久丁香| 色88888久久久久久影院野外| 亚洲丝袜精品丝袜在线| 91精品1区2区| 青青草97国产精品免费观看无弹窗版| 在线不卡a资源高清| 一区二区三区四区国产精品| 欧美综合视频在线观看| 亚洲第四色夜色| 日韩一二三四区| 粉嫩aⅴ一区二区三区四区五区| 中文字幕欧美激情一区| 9i看片成人免费高清| 日韩精品一区第一页| 美腿丝袜亚洲一区| 99久久er热在这里只有精品15 | 日本成人在线网站| 日韩午夜在线观看| av影院午夜一区| 日本午夜精品一区二区三区电影| 国产无遮挡一区二区三区毛片日本 | 久久九九影视网| 91香蕉视频污| 国产成人免费在线观看不卡| 亚洲视频在线一区观看| 精品欧美一区二区三区精品久久| 香蕉av福利精品导航| 精品欧美乱码久久久久久1区2区| 成人av电影观看| 免费看欧美女人艹b| 亚洲第一狼人社区| 综合激情成人伊人| 国产亚洲综合性久久久影院| 日韩限制级电影在线观看| 日本高清不卡在线观看| 国产福利不卡视频| 奇米影视7777精品一区二区| 亚洲在线一区二区三区| 久久女同互慰一区二区三区| 日韩精品影音先锋| 69堂成人精品免费视频| 欧美亚洲精品一区| 色婷婷综合久久久中文一区二区 | 丁香婷婷综合色啪| 99久久久无码国产精品| 成人免费视频一区| 成人午夜电影小说| 国产成人在线视频网址| 国产91丝袜在线播放九色| 成人黄动漫网站免费app| 波多野结衣欧美| av综合在线播放| 欧美优质美女网站| 91麻豆精品国产自产在线观看一区| 日韩精品中文字幕在线一区| 久久综合久久综合久久| 国产日韩精品一区二区三区| 亚洲国产成人自拍| 亚洲成人av中文| 狠狠色狠狠色综合| 国产成人免费视频网站| 色婷婷av一区二区三区之一色屋| 在线精品视频一区二区三四| 精品国产凹凸成av人网站|