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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品粉嫩aⅴ一区二区三区四区| 国产原创一区二区三区| 精品久久久网站| 爽好多水快深点欧美视频| 538在线一区二区精品国产| 蜜臀av性久久久久蜜臀aⅴ| 精品国产乱码久久久久久闺蜜| 狠狠色丁香九九婷婷综合五月| 久久久久久久性| 日本久久精品电影| 日本视频在线一区| 国产精品全国免费观看高清| 日本久久精品电影| 久久99热99| 亚洲乱码国产乱码精品精可以看| 欧美精品在欧美一区二区少妇| 国内精品伊人久久久久av影院| 日本一二三四高清不卡| 欧美日韩精品专区| 国产一区二区美女诱惑| 亚洲精品高清视频在线观看| 欧美一卡二卡在线| 99视频精品免费视频| 奇米影视一区二区三区小说| 亚洲人成小说网站色在线| 欧美一级夜夜爽| 在线国产亚洲欧美| 久久er精品视频| 视频在线观看一区| 国产99精品在线观看| 亚洲电影一级黄| 国产欧美久久久精品影院| 欧美精品久久久久久久多人混战| 丁香六月久久综合狠狠色| 日韩国产欧美在线播放| 亚洲综合清纯丝袜自拍| 一区二区三区成人| 精品久久国产97色综合| 国产精品1024久久| 奇米精品一区二区三区在线观看 | 国产精品一级片在线观看| 亚洲国产一区二区三区| 亚洲女厕所小便bbb| 99re这里只有精品6| 国产a精品视频| 国产成人精品亚洲日本在线桃色 | 国产精品久久久久久久久动漫| 日韩欧美一区二区三区在线| 91超碰这里只有精品国产| 欧美丝袜自拍制服另类| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 一本到高清视频免费精品| 成人动漫av在线| 99久久99久久免费精品蜜臀| 成人动漫一区二区三区| 成人免费视频视频在线观看免费| 国产河南妇女毛片精品久久久 | 亚洲国产成人午夜在线一区 | 色av综合在线| 欧美日韩视频在线观看一区二区三区 | 亚洲一区在线观看网站| 一区二区三区四区亚洲| 天堂成人免费av电影一区| 国内精品久久久久影院薰衣草| 欧美aaaaa成人免费观看视频| 蜜桃视频一区二区三区| 国内精品国产成人国产三级粉色| 国产在线精品视频| 波多野结衣中文字幕一区| 成人av免费在线| 色欲综合视频天天天| 欧美午夜不卡在线观看免费| 在线不卡免费av| 国产精品视频一二三区| 亚洲一卡二卡三卡四卡五卡| 亚洲午夜av在线| 国产一区二区毛片| 在线影院国内精品| 久久久久久久性| 日韩一区二区视频| 欧美精品自拍偷拍动漫精品| 欧美成人video| 亚洲欧美激情视频在线观看一区二区三区 | 99久久精品国产导航| 91精品国产综合久久久蜜臀粉嫩| 久久一日本道色综合| 亚洲午夜在线电影| 国产成人无遮挡在线视频| 色乱码一区二区三区88| 国产女人aaa级久久久级| 日韩va欧美va亚洲va久久| av一区二区三区黑人| 精品国产伦理网| 日本伊人色综合网| 一本到不卡免费一区二区| 亚洲国产精品激情在线观看| 另类小说一区二区三区| 欧美日韩国产综合一区二区| 亚洲欧美中日韩| 不卡大黄网站免费看| 精品国产a毛片| 免费高清视频精品| 在线成人免费观看| 天天操天天综合网| 欧美日韩高清一区二区三区| 亚洲自拍偷拍图区| 欧美在线小视频| 亚洲精品免费在线观看| 99久久国产综合精品麻豆| 欧美国产在线观看| 大胆欧美人体老妇| 国产精品乱码妇女bbbb| 成人动漫视频在线| 1024亚洲合集| 欧美偷拍一区二区| 天天影视涩香欲综合网| 91精品国产色综合久久久蜜香臀| 亚洲不卡av一区二区三区| 欧美精品九九99久久| 免费成人av资源网| 久久午夜羞羞影院免费观看| 久久精品噜噜噜成人88aⅴ| 欧美精品一区二区高清在线观看| 麻豆国产精品777777在线| 亚洲精品一区二区三区影院| 国产成人av影院| 亚洲欧洲中文日韩久久av乱码| 欧美色精品在线视频| 免费av网站大全久久| 国产亚洲欧美在线| 一本大道久久a久久综合婷婷| 一区二区久久久久| 欧美日韩精品综合在线| 亚洲色图第一区| 欧美精品在线一区二区三区| 激情欧美一区二区| 亚洲免费在线观看视频| 在线电影国产精品| 99免费精品视频| 麻豆国产欧美日韩综合精品二区| 国产精品女同互慰在线看| 欧美三级午夜理伦三级中视频| 国产资源在线一区| 亚洲综合一区在线| 久久久久久毛片| 69堂亚洲精品首页| 99久久伊人久久99| 韩国一区二区三区| 亚洲国产一二三| 亚洲日本va午夜在线电影| 欧美不卡激情三级在线观看| 日本丶国产丶欧美色综合| 青青草97国产精品免费观看无弹窗版 | 麻豆精品视频在线| 午夜私人影院久久久久| 亚洲欧洲无码一区二区三区| 欧美xxx久久| 欧美一级视频精品观看| 欧美性淫爽ww久久久久无| 成人国产在线观看| 国产精品香蕉一区二区三区| 免费黄网站欧美| 男女男精品视频| 日本成人超碰在线观看| 午夜欧美电影在线观看| 亚洲自拍偷拍网站| 亚洲chinese男男1069| 亚洲午夜影视影院在线观看| 亚洲精品国产a| 一区二区三区资源| 亚洲精品成人少妇| 亚洲资源在线观看| 亚洲bt欧美bt精品777| 五月婷婷综合网| 日韩电影在线一区| 久久se精品一区精品二区| 精品亚洲国产成人av制服丝袜 | 成人激情文学综合网| 成人av网址在线| 在线欧美小视频| 在线电影国产精品| 久久蜜桃av一区二区天堂| 国产人久久人人人人爽| 日韩理论片中文av| 亚洲第一福利视频在线| 麻豆91在线播放免费| 国产91丝袜在线观看| 色婷婷狠狠综合| 欧美一区二区三区电影| 久久综合国产精品| 国产精品久久久久精k8| 婷婷久久综合九色综合绿巨人| 麻豆精品国产91久久久久久| 国产成人精品免费网站| 日韩精品久久久久久| 国产伦精品一区二区三区免费| 不卡视频一二三| 欧美日本国产一区| 日本一区二区成人在线| 午夜精品久久久久久久久久久|