[Julius Web page]
[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[julius-u:00163] HMnetの認識でcoredump


東北大の大河です。

julius 3.4-multipathを使ってHMnetモデルで認識を行う際にcoredumpしてしまうこ
とがあったので,少し調べました。
その結果,
「triphoneのうち,(a-r+aとi-r+aのような)コンテキストが異なる同じ音素も
すべて同じトポロジーである」
ことを想定していて,そうではないHMnetなどの複雑なモデルでは
落ちてしまうことがあるとの結論に至りました。

内容をもう少し細かく書きますと,
SSS Freeに基づくHMnetを学習しまして,
各状態を~sマクロで表現し
あるコンテキストが通りうるパスをすべて
マルチパスで表現しています。
その結果,コンテキストの中心音素が同じでも
2状態しかない音素や数十状態あるモデルが出来ます。

これらの音素が,単語の先頭などに来ると,
outprob_style.c:194
if ((ohmm = get_left_context_HMM(rset->hmm,
(winfo->wseq[last_wid][winfo->wlen[last_wid]-1])->name, hmminfo)) != NULL) {
      rhmm = ohmm;
    } else {
     /* if triphone not found, try to use the bi-phone itself */
      rhmm = rset->hmm;
で前の単語の単語間triphoneを作成しようとします。
でこの実験の場合得られたohmmとbiphoneのrset->hmmは
全く状態数の違うモデルになります。

ところがこの後の
outprob_style.c:226
rset->cache.state   = rhmm->body.defined->s[rset->state_loc];
でbiphoneの状態番号rset->state_locを使ってtriphoneを呼び出し
何もない場合は,outprob_stateを呼び出した段階で落ちると
言う流れになっているようです。

仕様なのがバグなのか判断できないのですが,確認ください。

-- 
====================================================
 大 河  雄 一 OHKAWA Yuichi (kuri@xxxxxxxxxxxxxxx)
 東北大学 大学院 教育情報学研究部・教育部
 Research and Education Divisions,
 Graduate School of Educational Informatics,
 Tohoku University, 980-8576 Sendai, JAPAN.
====================================================

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: