[Julius-cvs 406] CVS update: julius4/julius-simple

Back to archive index

sumom****@users***** sumom****@users*****
2009年 4月 11日 (土) 20:51:20 JST


Index: julius4/julius-simple/julius-simple.c
diff -u julius4/julius-simple/julius-simple.c:1.2 julius4/julius-simple/julius-simple.c:1.3
--- julius4/julius-simple/julius-simple.c:1.2	Wed Feb 11 16:30:45 2009
+++ julius4/julius-simple/julius-simple.c	Sat Apr 11 20:51:20 2009
@@ -23,7 +23,7 @@
  * @author Akinobu Lee
  * @date   Tue Dec 11 14:40:04 2007
  * 
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
  * 
  */
 
@@ -93,6 +93,8 @@
   int n;
   Sentence *s;
   RecogProcess *r;
+  HMM_Logical *p;
+  SentenceAlign *align;
 
   /* all recognition results are stored at each recognition process
      instance */
@@ -170,21 +172,26 @@
       }
       
       /* output alignment result if exist */
-      if (s->align.filled) {
-	HMM_Logical *p;
-	int i;
-	
+      for (align = s->align; align; align = align->next) {
 	printf("=== begin forced alignment ===\n");
+	switch(align->unittype) {
+	case PER_WORD:
+	  printf("-- word alignment --\n"); break;
+	case PER_PHONEME:
+	  printf("-- phoneme alignment --\n"); break;
+	case PER_STATE:
+	  printf("-- state alignment --\n"); break;
+	}
 	printf(" id: from  to    n_score    unit\n");
 	printf(" ----------------------------------------\n");
-	for(i=0;i<s->align.num;i++) {
-	  printf("[%4d %4d]  %f  ", s->align.begin_frame[i], s->align.end_frame[i], s->align.avgscore[i]);
-	  switch(s->align.unittype) {
+	for(i=0;i<align->num;i++) {
+	  printf("[%4d %4d]  %f  ", align->begin_frame[i], align->end_frame[i], align->avgscore[i]);
+	  switch(align->unittype) {
 	  case PER_WORD:
-	    printf("%s\t[%s]\n", winfo->wname[s->align.w[i]], winfo->woutput[s->align.w[i]]);
+	    printf("%s\t[%s]\n", winfo->wname[align->w[i]], winfo->woutput[align->w[i]]);
 	    break;
 	  case PER_PHONEME:
-	    p = s->align.ph[i];
+	    p = align->ph[i];
 	    if (p->is_pseudo) {
 	      printf("{%s}\n", p->name);
 	    } else if (strmatch(p->name, p->body.defined->name)) {
@@ -194,7 +201,7 @@
 	    }
 	    break;
 	  case PER_STATE:
-	    p = s->align.ph[i];
+	    p = align->ph[i];
 	    if (p->is_pseudo) {
 	      printf("{%s}", p->name);
 	    } else if (strmatch(p->name, p->body.defined->name)) {
@@ -203,20 +210,20 @@
 	      printf("%s[%s]", p->name, p->body.defined->name);
 	    }
 	    if (r->am->hmminfo->multipath) {
-	      if (s->align.is_iwsp[i]) {
-		printf(" #%d (sp)\n", s->align.loc[i]);
+	      if (align->is_iwsp[i]) {
+		printf(" #%d (sp)\n", align->loc[i]);
 	      } else {
-		printf(" #%d\n", s->align.loc[i]);
+		printf(" #%d\n", align->loc[i]);
 	      }
 	    } else {
-	      printf(" #%d\n", s->align.loc[i]);
+	      printf(" #%d\n", align->loc[i]);
 	    }
 	    break;
 	  }
 	}
 	
-	printf("re-computed AM score: %f\n", s->align.allscore);
-	
+	printf("re-computed AM score: %f\n", align->allscore);
+
 	printf("=== end forced alignment ===\n");
       }
     }



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