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

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

?? lmodel.c

?? 隱馬爾科夫模型工具箱
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* ----------------------------------------------------------- *//*                                                             *//*                          ___                                *//*                       |_| | |_/   SPEECH                    *//*                       | | | | \   RECOGNITION               *//*                       =========   SOFTWARE                  */ /*                                                             *//*                                                             *//* ----------------------------------------------------------- *//* developed at:                                               *//*                                                             *//*      Speech Vision and Robotics group                       *//*      Cambridge University Engineering Department            *//*      http://svr-www.eng.cam.ac.uk/                          *//*                                                             *//* main authors: Valtcho Valtchev, Steve Young,                *//*               Julian Odell, Gareth Moore                    *//* ----------------------------------------------------------- *//*         Copyright:                                          *//*                                                             *//*          1994-2002 Cambridge University                     *//*                    Engineering Department                   *//*                                                             *//*   Use of this software is governed by a License Agreement   *//*    ** See the file License for the Conditions of Use  **    *//*    **     This banner notice must not be removed      **    *//*                                                             *//* ----------------------------------------------------------- *//*      File: LModel:    ARPA style LM handling                *//* ----------------------------------------------------------- */char *lmodel_version = "!HVER!LModel:   3.2 [CUED 09/12/02]";char *lmodel_vc_id = "$Id: LModel.c,v 1.1 2002/12/19 16:35:33 ge204 Exp $";#include "HShell.h"     /* HMM ToolKit Modules */#include "HMem.h"#include "HMath.h"#include "HWave.h"#include "HLabel.h"#ifdef ULTRA_LM#include "HDict.h"#endif#include "LWMap.h"#include "LUtil.h"#include "LModel.h"#include "HLM.h"#define T_TOP    0001       /* top level tracing */#define T_LOAD   0002       /* loading of LMs */#define T_SAVE   0004       /* saving of LMs */#define T_MAPS   0010       /* word mappings */#define T_PROB   0020       /* n-gram lookup */static int trace = 0;typedef struct _AccessInfo{   int count;           /* count for access */   int nboff;           /* times computed using the back-off weight */   int nmiss;           /* times not available */   int nhits;           /* times available */   double prob;         /* sum of prob   returned */   double prob2;        /* sum of prob^2 returned */} accessinfo;static ConfParam *cParm[MAXGLOBS];      /* config parameters */static int nParm = 0;static char *nGramName[LM_NSIZE] = {   "NULLGRAM", "UNIGRAM",   "BIGRAM", "TRIGRAM",   "FOURGRAM", "PENTAGRAM",   "HEXAGRAM","SEPTAGRAM","OCTAGRAM",   "NONAGRAM","DECAGRAM","11-GRAM",   "12-GRAM","13-GRAM","14-GRAM","15-GRAM"};static char *dcTypeName[] = {   "Katz",   "Absolute",   "Linear"};static Boolean defIntID = FALSE;        /* Don't use 4-byte IDs */static Boolean htkEsc = FALSE;          /* Don't use HTK quoting and escapes */static Boolean natReadOrder = FALSE;    /* Preserve natural read byte order */static Boolean natWriteOrder = FALSE;   /* Preserve natural write byte order */extern Boolean vaxOrder;                /* True if byteswapping needed to preserve SUNSO */#ifdef ULTRA_LMstatic short   ultraKey[KEY_LENGTH];    /* Key used to identify ultra LMs */#endif/* EXPORT->InitLModel: initialise module */void InitLModel(void){   int i;   Boolean b;   Register(lmodel_version,lmodel_vc_id);   nParm = GetConfig("LMODEL", TRUE, cParm, MAXGLOBS);   if (nParm>0){      if (GetConfInt(cParm,nParm,"TRACE",&i)) trace = i;#ifdef HTK_TRANSCRIBER      if (trace&T_PROB) trace=trace^T_PROB;#endif      if (GetConfBool(cParm,nParm,"RAWMITFORMAT",&b)) htkEsc = !b;      if (GetConfBool(cParm,nParm,"USEINTID",&b)) defIntID = b;      if (GetConfBool(cParm,nParm,"NATURALREADORDER",&b)) natReadOrder = b;      if (GetConfBool(cParm,nParm,"NATURALWRITEORDER",&b)) natWriteOrder = b;   }#ifdef ULTRA_LM   COMPOSE_KEY(ultraKey);#endif}/*----------------------- Input scanner ------------------------*/#define MAXSYMLEN  2048/* GetInLine: read a complete line from source */static char *GetInLine(Source *src,char *buf){   int  i, c;   if ((c = GetCh(src))==EOF)      return NULL;   i = 0;   while (c!='\n' && i<MAXSYMLEN) {      buf[i++] = c;      c = GetCh(src);   }   buf[i] = '\0';   return buf;}/* SyncStr: read input until str found */void SyncStr(Source *src, char *str){   char buf[MAXSYMLEN];   do {      if (GetInLine(src,buf)==NULL)         HError(15450,"SyncStr: EOF searching for %s", str);   } while (strcmp(buf,str)!=0);}/*----------------------- Access statistics ------------------------*/void ResetAccessInfo(BackOffLM *lm){   int i;   NGramInfo *gi;   AccessInfo *ai;   for (gi=lm->gInfo+1,i=1; i<=lm->nSize; i++,gi++) {      if ((ai=gi->aInfo)==NULL)	 HError(15490,"ResetAccessInfo: Access info not present");      ai->count = 0;      ai->nboff = ai->nmiss = ai->nhits = 0;      ai->prob = ai->prob2 = 0.0;   }}/* EXPORT->AttachAccessInfo: attach and initialise access info */void AttachAccessInfo(BackOffLM *lm){   int i;   NGramInfo *gi;   for (gi=lm->gInfo+1,i=1; i<=lm->nSize; i++,gi++) {      if (gi->aInfo!=NULL)	 HError(15490,"AttachAccessInfo: Access info already present");      gi->aInfo = (AccessInfo *) New(lm->heap,sizeof(AccessInfo));   }   ResetAccessInfo(lm);}/* ShowStats: print back-off statistics */static void ShowStats(FILE *f, AccessInfo *acs, char *lmstr){   int count;   float f1, f2, f3;   double a, b, avg, stdev;   count = (acs->count>0) ? acs->count : 1;   a = acs->prob  / (double) count;   b = acs->prob2 / (double) count;   avg = a; stdev = sqrt(b - a*a);   f1 = 100.0 * (float) acs->nhits / (float) count;   f2 = 100.0 * (float) acs->nboff / (float) count;   f3 = 100.0 * (float) acs->nmiss / (float) count;   fprintf(f,"%10s %10d %5.1f%% %5.1f%% %5.1f%% %8.2f %8.2f\n",	   lmstr, acs->count, f1, f2, f3, avg, stdev);}/* EXPORT -> PrintTotalAccessStats: print access statistics */void PrintTotalAccessStats(FILE *f,BackOffLM *lm){   int i;   NGramInfo *gi;   static char *lmstr[] = {      "nullgram", "unigram", "bigram", "trigram", "fourgram", "pentagram",      "hexagram", "septagram", "octagram", "nonagram", "decagram"   };   static int max_text = 10; /* size of lmstr[] array */   char tmpstr[10];   fprintf(f,"%10s %10s %6s %6s %6s %8s %8s\n", "Lang model",	  "requested", "exact", "backed", "n/a", "mean", "stdev");   for (gi=lm->gInfo+2,i=2; i<=lm->nSize; i++, gi++)      ShowStats(f,gi->aInfo, i<=max_text?lmstr[i]:(sprintf(tmpstr, "%d", i), tmpstr));}/*----------------------- float compression ----------------------*/#define MIN_PROB -8.0#ifdef LM_COMPACTstatic UShort Prob2Shrt(float f){   if (f < MIN_PROB)      return USHRT_MAX;   return (f / MIN_PROB * (float) (USHRT_MAX-1));}static float Shrt2Prob(UShort s){   if (s == USHRT_MAX)      return LZERO;   return ((float) s / (float) (USHRT_MAX-1)) * MIN_PROB;}#endif/*-------------------------- LM access ----------------------------*//* EXPORT-> CmpSE: qsort comparison for short LM entries */int CmpSE(const void *p1, const void *p2){   if (((SMEntry *)p1)->ndx < ((SMEntry *)p2)->ndx)      return -1;   if (((SMEntry *)p1)->ndx > ((SMEntry *)p2)->ndx)      return +1;   return 0;}/* EXPORT-> CmpFE: qsort comparison for full LM entries */int CmpFE(const void *p1, const void *p2){   if (((FLEntry *)p1)->ndx < ((FLEntry *)p2)->ndx)      return -1;   if (((FLEntry *)p1)->ndx > ((FLEntry *)p2)->ndx)      return +1;   return 0;}/* EXPORT-> FindSE: find SEntry in a sorted list */SMEntry *FindSE(SMEntry *sptr, int lo, int hi, LM_Id key){   int cen;   LM_Id cmp;   if (sptr==NULL)      return NULL;   hi--;   if ((key < sptr[lo].ndx) || (key > sptr[hi].ndx))      return NULL;   do {      cen = (lo + hi) / 2;      cmp = sptr[cen].ndx;      if (key == cmp)	 return sptr+cen;      if (key > cmp)	 lo = cen+1;      else	 hi = cen-1;   } while (lo <= hi);   return NULL;}/* EXPORT-> FindFE: find FEntry in a sorted list */FLEntry *FindFE(FLEntry *fptr, int lo, int hi, LM_Id key){   int cen;   LM_Id cmp;   if (fptr==NULL)      return NULL;   hi--;   if ((key < fptr[lo].ndx) || (key > fptr[hi].ndx))      return NULL;   do {      cen = (lo + hi) / 2;      cmp = fptr[cen].ndx;      if (key == cmp)	 return fptr+cen;      if (key > cmp)	 lo = cen+1;      else	 hi = cen-1;   } while (lo <= hi);   return NULL;}/* FindSE1: find bigram entry in a sorted list, also return index */static SMEntry *FindSE1(SMEntry *sptr, int lo, int hi, LM_Id key, int *fcen){   int cen;   LM_Id cmp;   hi--;   if ((key < sptr[lo].ndx) || (key > sptr[hi].ndx))      return NULL;   do {      cen = (lo + hi) / 2;      cmp = sptr[cen].ndx;      if (key == cmp) {	 *fcen = cen; return sptr+cen;      }      if (key > cmp)	 lo = cen+1;      else	 hi = cen-1;   } while (lo <= hi);   return NULL;}/* -------------------- Ultra format I/O ---------------------- */#ifdef ULTRA_LMstatic CNEntry *qs_cneBuf;      /* global table of read CNEntry *//* FRead: fread spec function for Source src */static size_t FRead(void *ptr, size_t size, size_t nitems, Source *src){   int nr,i;   unsigned char *c;   nr = fread(ptr,size,nitems,src->f);#ifdef HTK_CRYPT   if (src->crypt!=NULL) {      for (c=ptr,i=0; i<size*nr; i++,c++)	 *c = DecryptChar(src->crypt,*c);   }#endif   src->chcount+=nr*size;   return nr;}#ifdef LMPROB_SHORT/*   The following compress/decompress LOG10 float to/from short.*/#define PROB_LOG_TO_SHORT(prob) \  ((int) (-prob/0.0002+0.5) > 65534 ? 65535 : (int) (-prob/0.0002+0.5))#define PROB_SHORT_TO_LOG(prob) \  (prob<=65534 ? -prob*0.0002 : LZERO)#define BOWT_LOG_TO_SHORT(bowt) \   ((floor(bowt/0.0002+0.5)>32766)?32767:\    (floor(bowt/0.0002+0.5)<-32767)?-32768:\    (int)(floor(bowt/0.0002+0.5)))#define BOWT_SHORT_TO_LOG(bowt) \   (bowt*0.0002)#else#define PROB_LOG_TO_SHORT(prob) (prob)#define PROB_SHORT_TO_LOG(prob) (prob)#define BOWT_LOG_TO_SHORT(bowt) (bowt)#define BOWT_SHORT_TO_LOG(bowt) (bowt)#endif#define CNE2FE(cndx,fe) {  \   CNEntry *cne = cneBuf + cndx; \   fe->nse  = cne->nse;  \   fe->sea  = smeTab[cndx]; \   fe->ndx  = cne->word[0]; \   bowt = BOWT_SHORT_TO_LOG(cne->bowt); \   fe->bowt = (ptype==LMP_FLOAT) ? LOG10_TO_FLT(bowt) : bowt*scale; \}#define INIT_CNE(cne) { \   int  i;         \   cne.nse = 0;    \   cne.bowt = 0.0; \   for (i=0; i<NSIZE-1; i++) cne.word[i]=0;   \}static int nep_cmp(const void *v1,const void *v2){   CNEntry *n1,*n2;   int res,i;   res = 0;   n1=qs_cneBuf + *((int *)v1);   n2=qs_cneBuf + *((int *)v2);   for(i=NSIZE-2;i>=0;i--)      if (n1->word[i]!=n2->word[i]) {	 res=(n1->word[i]-n2->word[i]);	 break;      }   return(res);}static void LoadUltraNGrams(Source *src, BackOffLM *lm){   float prob,bowt,scale;   Boolean newCTX;   LMProbType ptype;   int context[NSIZE+1];   int i,j,idx,cneCnt,seCnt;   SEntry se;   int *cneTab;   CNEntry *cne,*cneBuf;   FLEntry *cfe,*feBuf,*parent;   SMEntry *sme,*smeBuf,**smeTab;   Boolean mustSwap = (vaxOrder && !natReadOrder);   SyncStr(src,"\\N-grams:");   scale = lm->gScale*LN10;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩无一区二区| 日韩成人一级片| 免费在线观看视频一区| 成人av资源站| 精品第一国产综合精品aⅴ| 亚洲人妖av一区二区| 精彩视频一区二区| 欧美精品一二三四| 国产精品久久久久桃色tv| 国内精品视频666| 欧美一区二区三区小说| 一区二区三区 在线观看视频| 国产乱码精品1区2区3区| 欧美一级理论片| 亚洲一级不卡视频| 色老综合老女人久久久| 欧美极品xxx| 国产福利精品一区二区| 精品成人一区二区三区| 麻豆精品久久久| 91麻豆精品国产91久久久久久久久| 亚洲精品视频免费观看| 国产成人精品免费视频网站| 国产肉丝袜一区二区| 国产精品一区二区久久不卡| 欧美精品一区二区三区蜜臀| 国内精品写真在线观看| 久久综合一区二区| 国产原创一区二区三区| 精品久久久久久最新网址| 久久精品国产网站| 精品国产免费一区二区三区香蕉 | 亚洲国产精品久久人人爱| 99久久伊人网影院| 亚洲欧洲av色图| 一本一道久久a久久精品| 日韩伦理av电影| 91国产免费看| 亚洲成国产人片在线观看| 7777女厕盗摄久久久| 日韩不卡手机在线v区| 精品国产污网站| 国产91富婆露脸刺激对白| 国产精品久久久久aaaa樱花| 99精品视频免费在线观看| 亚洲美女在线一区| 欧美日韩激情一区二区三区| 日本v片在线高清不卡在线观看| 日韩一区二区三区电影| 国产精品一二三四| 成人欧美一区二区三区小说| 欧美亚一区二区| 日韩二区三区四区| 久久久另类综合| 99在线精品视频| 偷拍与自拍一区| 国产性色一区二区| 91成人在线观看喷潮| 视频在线在亚洲| 国产欧美日韩另类一区| 欧美在线观看一区| 国产一区二区三区在线观看精品| 国产精品久久久久一区 | 成人国产精品免费网站| 一区二区三区中文在线| 日韩色在线观看| av午夜一区麻豆| 久久99精品视频| 一区二区三区免费网站| 精品国免费一区二区三区| 成人网页在线观看| 首页综合国产亚洲丝袜| 自拍偷拍欧美精品| 日韩欧美第一区| 在线日韩一区二区| 国产精品一区二区免费不卡 | 91麻豆精品国产自产在线观看一区| 国产精品一二三| 日韩精品一二三| 亚洲欧洲性图库| 欧美成人三级电影在线| 91国偷自产一区二区开放时间 | 精品在线播放午夜| 一个色在线综合| 亚洲国产精品精华液2区45| 3d成人动漫网站| 色综合天天综合狠狠| 国产乱码精品一区二区三| 午夜国产精品影院在线观看| 亚洲女同ⅹxx女同tv| 久久精品欧美一区二区三区麻豆| 欧美一区日韩一区| 在线免费观看日本欧美| av一本久道久久综合久久鬼色| 精品一区二区三区免费| 欧美96一区二区免费视频| 亚洲精品国产第一综合99久久| 中文字幕av一区二区三区高| 26uuu国产一区二区三区| 91精品国产乱码| 欧美疯狂性受xxxxx喷水图片| 93久久精品日日躁夜夜躁欧美| 国产成人午夜视频| 国内精品写真在线观看| 国产真实乱偷精品视频免| 日韩av午夜在线观看| 午夜成人免费视频| 亚洲一区二区三区在线看| 一区二区三区在线视频免费| 成人欧美一区二区三区黑人麻豆| 国产精品盗摄一区二区三区| 欧美国产激情一区二区三区蜜月| 欧美精品一区二区三| 欧美精品一区二区三区久久久| 欧美成人在线直播| 欧美mv日韩mv| 欧美极品另类videosde| 国产精品伦理在线| **网站欧美大片在线观看| 椎名由奈av一区二区三区| 亚洲精品国产a久久久久久| 亚洲综合视频在线| 日韩av网站免费在线| 九一九一国产精品| 国产精品影音先锋| 成人精品一区二区三区四区| 色婷婷香蕉在线一区二区| 在线观看av一区二区| 欧美一区二区三区人| 欧美精品一区二区在线播放| 国产精品三级av| 亚洲伦在线观看| 丝袜美腿成人在线| 国产一区二区三区精品欧美日韩一区二区三区| 国产黄色精品视频| 色94色欧美sute亚洲线路二| 欧美日韩国产综合一区二区 | 狠狠色丁香久久婷婷综合丁香| 国产丶欧美丶日本不卡视频| 色呦呦一区二区三区| 91超碰这里只有精品国产| 精品国产乱码久久久久久久久| 国产精品青草综合久久久久99| 一区二区三区不卡在线观看| 日韩经典一区二区| 成人精品一区二区三区中文字幕| 欧美色综合久久| 国产午夜精品福利| 午夜精品成人在线视频| 国产成人亚洲精品青草天美| 欧美日韩精品综合在线| 久久精品一区二区| 日韩中文字幕亚洲一区二区va在线| 激情综合色播激情啊| 欧美一a一片一级一片| 久久久国产精品麻豆| 三级久久三级久久久| 成人在线视频首页| 日韩三区在线观看| 亚洲少妇中出一区| 国产一区不卡精品| 精品污污网站免费看| 欧美国产日本视频| 久久不见久久见免费视频1| 91黄视频在线| 中文字幕色av一区二区三区| 麻豆精品久久久| 欧美日韩一区在线观看| 国产精品系列在线| 久久99精品久久久久久动态图| 日本久久一区二区三区| 亚洲国产精品精华液2区45| 老司机精品视频线观看86| 欧美视频完全免费看| 亚洲免费在线电影| 国产精品影视在线观看| 日韩欧美aaaaaa| 青娱乐精品视频在线| 精品视频在线免费看| 一区二区久久久久| 色综合色综合色综合| 久久久美女毛片| 国产在线不卡一区| 欧美tk—视频vk| 免费成人在线视频观看| 欧美放荡的少妇| 午夜精品一区二区三区电影天堂| 91无套直看片红桃| 中文字幕人成不卡一区| 成人av在线影院| 亚洲欧美怡红院| 一本色道a无线码一区v| 亚洲欧美日韩成人高清在线一区| 成人免费视频国产在线观看| 国产区在线观看成人精品| 丰满岳乱妇一区二区三区| 中文无字幕一区二区三区| 成人免费视频播放| 亚洲视频 欧洲视频| 在线看日本不卡|