⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cache_lm.h

📁 WinCE平台上的语音识别程序
💻 H
字号:
/* ==================================================================== * Copyright (c) 1999-2001 Carnegie Mellon University.  All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer.  * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * This work was supported in part by funding from the Defense Advanced  * Research Projects Agency and the National Science Foundation of the  * United States of America, and the CMU Sphinx Speech Consortium. * * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND  * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * ==================================================================== * *//* * cache_lm.h -- Dynamic cache language model based on Roni Rosenfeld's work. */#ifndef _CACHE_LM_H_#define _CACHE_LM_H_/* * Bigram cache entry.  Pointed to by a parent unigram cache entry (see below). */typedef struct clm_bg_s {    int32 w2;			/* dictionary wid */    int32 count;		/* #times this bigram seen */    struct clm_bg_s *next;	/* Next bigram entry for parent unigram */} clm_bg_t;/*  * Unigram cache entry.  count can be different from sum_w2count because count is * accumulated only for words below a given unigram probability, but sum_w2count is * accumulated for all bigrams observed. */typedef struct {    int32 count;		/* #times this word seen (only for words below a given				   unigram probability) */    int32 sum_w2count;		/* Sum of counts in w2list (different from count above) */    clm_bg_t *w2list;		/* Successors to this word */} clm_ug_t;typedef struct {    clm_ug_t *clm_ug;		/* clm_ug[w] = cache information for dictionary wid w */    int32 sum_ugcount;		/* Sum (clm_ug[w].count) */    int32 n_word;		/* Size of clm_ug array */    double min_uw;		/* Min, max, and per word unigram cache LM weights.  uw				   starts at min_uw, increases linearly as sum_ugcount				   increases (by per_word_uw), flattens out at max_uw */    double max_uw;    double per_word_uw;    double uw;			/* Currently active unigram cache LM weight */    double bw;			/* Bigram cache LM weight */        int32 uw_ugcount_limit;	/* Unigram count needed to reach max_uw */        int32 ugprob_thresh;	/* (Actually logprob) above which unigrams not cached */    int32 log_uw;		/* LOGPROB(currently effective uw) */    int32 log_bw;		/* LOGPROB(bw) */    int32 log_remwt;		/* LOG(remaining weight) */} cache_lm_t;/* * Interface */cache_lm_t *cache_lm_init (double ug_thresh,			   double min_uw, double max_uw, int32 nword_uwrange,			   double bw);void cache_lm_reset (cache_lm_t *lm);/* Add w (dict basewid) to unigram cache */void cache_lm_add_ug (cache_lm_t *lm, int32 w);/* Add bigram (w1,w2) to bigram cache (w1, w2 are dict base wids) */void cache_lm_add_bg (cache_lm_t *lm, int32 w1, int32 w2);/* * Return cache LM score for the given 2-word sequence.  Also return, in remwt, the * remaining relative language weight to be applied to other LMs (e.g. a static LM). * w1, w2 are dict base wids. * Note that only the RELATIVE language weights (for this LM wrt other LMs) have been * applied by this function.  The overall "language weight" wrt the acoustic score * has not been applied to the returned values.  It must be applied externally. */int32 cache_lm_score (cache_lm_t *lm, int32 w1, int32 w2, int32 *remwt);void cache_lm_dump (cache_lm_t *lm, char *file);void cache_lm_load (cache_lm_t *lm, char *file);#endif /* _CACHE_LM_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -