[Julius-cvs 345] CVS update: julius4/libjulius/src

Back to archive index

sumom****@users***** sumom****@users*****
2008年 11月 14日 (金) 13:12:12 JST


Index: julius4/libjulius/src/beam.c
diff -u julius4/libjulius/src/beam.c:1.9 julius4/libjulius/src/beam.c:1.10
--- julius4/libjulius/src/beam.c:1.9	Fri Oct 17 08:43:25 2008
+++ julius4/libjulius/src/beam.c	Fri Nov 14 13:12:12 2008
@@ -42,7 +42,7 @@
  * @author Akinobu LEE
  * @date   Tue Feb 22 17:00:45 2005
  *
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
  * 
  */
 /*
@@ -657,7 +657,11 @@
       s->score = tmp->backscore;
       s->score_lm = 0.0;
       s->score_am = tmp->backscore;
-      s->gram_id = 0;
+      if (multigram_get_all_num(r->lm) > 0) {
+	s->gram_id = multigram_get_gram_from_wid(s->word[0], r->lm);
+      } else {
+	s->gram_id = 0;
+      }
       s->align.filled = FALSE;
     }
     /* free work area for sort */
@@ -677,7 +681,11 @@
     s->score = best->backscore;
     s->score_lm = 0.0;
     s->score_am = best->backscore;
-    s->gram_id = 0;
+    if (multigram_get_all_num(r->lm) > 0) {
+      s->gram_id = multigram_get_gram_from_wid(s->word[0], r->lm);
+    } else {
+      s->gram_id = 0;
+    }
     s->align.filled = FALSE;
   }
 
Index: julius4/libjulius/src/multi-gram.c
diff -u julius4/libjulius/src/multi-gram.c:1.7 julius4/libjulius/src/multi-gram.c:1.8
--- julius4/libjulius/src/multi-gram.c:1.7	Fri Oct 17 23:49:20 2008
+++ julius4/libjulius/src/multi-gram.c	Fri Nov 14 13:12:12 2008
@@ -47,7 +47,7 @@
  * @author Akinobu Lee
  * @date   Sat Jun 18 23:45:18 2005
  *
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
  * 
  */
 /*
@@ -970,6 +970,44 @@
   return(-1);
 }
 
+/** 
+ * <JA>
+ * 単語IDから属する文法を得る. 
+ * 
+ * @param wid 単語ID
+ * @param lm [i/o] 言語処理インスタンス
+ * 
+ * @return 単語の属する文法のIDを返す. 
+ * </JA>
+ * <EN>
+ * Get which grammar the given word belongs to.
+ * 
+ * @param wid word ID
+ * @param lm [i/o] LM processing instance
+ * 
+ * @return the id of the belonging grammar.
+ * </EN>
+ * @callgraph
+ * @callergraph
+ * @ingroup grammar
+ */
+int
+multigram_get_gram_from_wid(WORD_ID wid, PROCESS_LM *lm)
+{
+  MULTIGRAM *m;
+  int wb, we;
+
+  for(m = lm->grammars; m; m = m->next) {
+    if (m->newbie) continue;
+    wb = m->word_begin;
+    we = wb + m->winfo->num;
+    if (wb <= wid && wid < we) { /* found */
+      return(m->id);
+    }
+  }
+  return(-1);
+}
+
 
 /** 
  * <JA>


Julius-cvs メーリングリストの案内
Back to archive index