[Julius-cvs 335] CVS update: julius4/julius

Back to archive index

sumom****@users***** sumom****@users*****
2008年 10月 21日 (火) 02:40:23 JST


Index: julius4/julius/output_module.c
diff -u julius4/julius/output_module.c:1.4 julius4/julius/output_module.c:1.5
--- julius4/julius/output_module.c:1.4	Fri Oct 17 08:43:25 2008
+++ julius4/julius/output_module.c	Tue Oct 21 02:40:23 2008
@@ -12,7 +12,7 @@
  * @author Akinobu Lee
  * @date   Tue Sep 06 14:46:49 2005
  *
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
  * 
  */
 /*
@@ -29,10 +29,6 @@
 extern int module_sd;
 extern boolean separate_score_flag;
 
-
-/// Grammar status to be processed in the next reload timing.
-static char *hookstr[] = {"", "delete", "activate", "deactivate"};
-
 /**********************************************************************/
 /* process online/offline status  */
 
@@ -656,6 +652,7 @@
 send_gram_info(RecogProcess *r)
 {
   MULTIGRAM *m;
+  char buf[1024];
 
   if (r->lmtype == LM_PROB) {
     module_send(module_sd, "<GRAMMAR STATUS=\"ERROR\" REASON=\"NOT A GRAMMAR-BASED LM\"/>\n.\n");
@@ -663,19 +660,34 @@
   }
   module_send(module_sd, "<GRAMINFO>\n");
   for(m=r->lm->grammars;m;m=m->next) {
-    module_send(module_sd, "  #%2d: [%-11s] %4d words",
-		m->id,
-		m->active ? "active" : "inactive",
-		m->winfo->num);
+    buf[0] = '\0';
     if (m->dfa) {
-      module_send(module_sd, ", %3d categories, %4d nodes",
-		  m->dfa->term_num, m->dfa->state_num);
+      snprintf(buf, 1024, ", %3d categories, %4d nodes",
+	       m->dfa->term_num, m->dfa->state_num);
     }
-    if (m->newbie) module_send(module_sd, " (new)");
-    if (m->hook != MULTIGRAM_DEFAULT) {
-      module_send(module_sd, " (next: %s)", hookstr[m->hook]);
+    if (m->newbie) strcat(buf, " (new)");
+    if (m->hook != 0) {
+      strcat(buf, " (next:");
+      if (m->hook & MULTIGRAM_DELETE) {
+	strcat(buf, " delete");
+      }
+      if (m->hook & MULTIGRAM_ACTIVATE) {
+	strcat(buf, " activate");
+      }
+      if (m->hook & MULTIGRAM_DEACTIVATE) {
+	strcat(buf, " deactivate");
+      }
+      if (m->hook & MULTIGRAM_MODIFIED) {
+	strcat(buf, " modified");
+      }
+      strcat(buf, ")");
     }
-    module_send(module_sd, " \"%s\"\n", m->name);
+    module_send(module_sd, "  #%2d: [%-11s] %4d words%s \"%s\"\n",
+		m->id,
+		m->active ? "active" : "inactive",
+		m->winfo->num,
+		buf,
+		m->name);
   }
   if (r->lm->dfa != NULL) {
     module_send(module_sd, "  Global:            %4d words, %3d categories, %4d nodes\n", r->lm->winfo->num, r->lm->dfa->term_num, r->lm->dfa->state_num);
Index: julius4/julius/output_stdout.c
diff -u julius4/julius/output_stdout.c:1.5 julius4/julius/output_stdout.c:1.6
--- julius4/julius/output_stdout.c:1.5	Tue Mar 18 01:58:37 2008
+++ julius4/julius/output_stdout.c	Tue Oct 21 02:40:23 2008
@@ -12,7 +12,7 @@
  * @author Akinobu Lee
  * @date   Tue Sep 06 17:18:46 2005
  *
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
  * 
  */
 /*
@@ -26,9 +26,6 @@
 
 extern boolean separate_score_flag;
 
-/// Grammar status to be processed in the next reload timing.
-static char *hookstr[] = {"", "delete", "activate", "deactivate"};
-
 static boolean have_progout = FALSE;
 
 /* for short pause segmentation and successive decoding */
@@ -1182,6 +1179,7 @@
   MULTIGRAM *m;
   RecogProcess *r;
   boolean multi;
+  char buf[1024];
 
   if (recog->process_list->next != NULL) multi = TRUE;
   else multi = FALSE;
@@ -1189,18 +1187,40 @@
   for(r=recog->process_list;r;r=r->next) {
     if (! r->live) continue;
     if (multi) printf("[#%d %s]\n", r->config->id, r->config->name);
-
+    if (r->lmtype == LM_PROB) {
+      printf("NOT A GRAMMAR-BASED LM\n");
+      continue;
+    }
     printf("[grammars]\n");
     for(m=r->lm->grammars;m;m=m->next) {
-      printf("  #%2d: [%-11s] %4d words, %3d categories, %4d nodes",
-	     m->id,
-	     m->active ? "active" : "inactive",
-	     m->winfo->num, m->dfa->term_num, m->dfa->state_num);
-      if (m->newbie) printf(" (new)");
-      if (m->hook != MULTIGRAM_DEFAULT) {
-	printf(" (next: %s)", hookstr[m->hook]);
+      buf[0] = '\0';
+      if (m->dfa) {
+	snprintf(buf, 1024, ", %3d categories, %4d nodes",
+		 m->dfa->term_num, m->dfa->state_num);
+      }
+      if (m->newbie) strcat(buf, " (new)");
+      if (m->hook != 0) {
+	strcat(buf, " (next:");
+	if (m->hook & MULTIGRAM_DELETE) {
+	  strcat(buf, " delete");
+	}
+	if (m->hook & MULTIGRAM_ACTIVATE) {
+	  strcat(buf, " activate");
+	}
+	if (m->hook & MULTIGRAM_DEACTIVATE) {
+	  strcat(buf, " deactivate");
+	}
+	if (m->hook & MULTIGRAM_MODIFIED) {
+	  strcat(buf, " modified");
+	}
+	strcat(buf, ")");
       }
-      myprintf(" \"%s\"\n", m->name);
+      myprintf("  #%2d: [%-11s] %4d words%s \"%s\"\n",
+	       m->id,
+	       m->active ? "active" : "inactive",
+	       m->winfo->num,
+	       buf,
+	       m->name);
     }
     if (r->lm->dfa != NULL) {
       printf("  Global:            %4d words, %3d categories, %4d nodes\n", r->lm->winfo->num, r->lm->dfa->term_num, r->lm->dfa->state_num);


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