Windowsでjulius-simpleを実行してみる
julius-4.1.2/julius-simpleをmakeするだけなのにはまったので、メモ。
コンパイル
$ make
するだけなのだが、通らないので(記事書いた現在)、cvsから最新版を取ってくると通った。
cf. http://julius.sourceforge.jp/forum/viewtopic.php?f=14&t=155
実行する
言語モデルが存在しないので、Juliusディクテーション実行キットより、fast.jconfファイルとmodelディレクトリをjulius-simpleのディレクトリに入れる。
modelディレクトリの位置を変える場合はfast.jconf中にあるmodelの相対位置を書き換える必要がある。
$ julius-simple.exe -C fast.jconf
これで実行される。
cf. http://d.hatena.ne.jp/ksotomi/20080905/p1 (Julius自体をMacで試している例)
文字化け対策
juliusと異なり、-charconvオプションが実装されていないので自分で組み込む。もし、julius使う場合のcharconvの引数の値はjulius-4.1.2/julius/charconv_win32.cの80行目ぐらいにずらずら書いてある。ソース見ればわかるように小文字じゃないと通らないので注意。
リンク先にあるように、
#include "libjcode/jlib.h" char outstr[1024]; char *StrToSJIS(char *instr) { toStringSJIS(instr, outstr, sizeof(outstr)); return(outstr); }
をjulius-simple.cに書けば、
#if 0 for(i=0;i<seqnum;i++) printf(" %s", winfo->woutput[seq[i]]); /* 変更前 */ #else for(i=0;i<seqnum;i++) printf(" %s", StrToSJIS(winfo->woutput[seq[i]])); /* 変更後 */ #endif
とStrToSJIS関数が使えるようになる。変換する必要があるのはこのwinfo->woutput[seq[i]]とwinfo->wname[seq[i]]だけだと思われる。他、必要があれば、どんどん変更すればよい。
この際、Makefileを
$(CC) $(CFLAGS) $(CPPFLAGS) -o julius-simple julius-simple.c $(LDFLAGS) ↓ $(CC) $(CFLAGS) $(CPPFLAGS) -o julius-simple julius-simple.c libjcode/libjcode.o libjcode/detect.o $(LDFLAGS)
とリンクしてやら無いといけないので注意する。もっと綺麗に書けそうな気がするが仕方ない。
cf. http://julius.sourceforge.jp/forum/viewtopic.php?f=14&t=24