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