2003年12月11日

[julius-u:00154] Re: トレリスの各単語内の各”音素”の開始・終了時間

> 認識結果に対して音素単位のマッチング区間を得たいのであれば,
> "-walign", "-palign", "-salign" のオプションはどうでしょうか?
> それぞれ,認識終了後に,認識結果の単語列に対して
> 単語・音素・HMM状態の単位で入力音声に対して再アラインメントを行う
> オプションです.

すいません、説明不足でした。
今現在、Juliusを改造しており、
2nd-pathにおいて、トレリスの各単語内の各音素開始・終了時間を求めたい状況なの
です。

そこで、systemコマンドで、Julianの-palignオプションでアライメントを行なうと
いうのを試してみたのですが、
トレリスの単語数が多く、一つ一つの単語に対してJulianのアライメントを実行して
いては、
あまりにも時間がかかってしまう、という難点を抱えている訳です。

そこで、わざわざJulianのアライメントを実行せずに、
phoneme_align関数を用いてアライメントを行なえばよいか、と思っていろいろ試し
てみたのですが
うまくいきませんでした。
例えば、Juliusの-palignオプションで

=== phoneme alignment begin ===
id: from to n_score applied HMMs (logical[physical] or {pseudo})
------------------------------------------------------------
0: 0 40 -21.117990 silB
1: 41 43 -29.798075 d

(中略)

30: 300 303 -25.749268 d
31: 304 316 -22.555815 a
32: 317 321 -28.343164 i

(中略)

59: 537 574 -20.942383 silE
re-computed AM score: -14201.486328
=== phoneme alignment end ===

というアライメント結果がでる音声ファイルに対して、

あらかじめ
HTK_Param *my_param; 
と宣言しておいて
”第(d a i)”に当たる単語に対して、
300フレームから321フレームまでのMFCCデータ(HTK_Param構造体のveclean変数)
を、my_param->veclean[0]〜[21]にコピーして
my_param->samplenum = 22、my_param->veclen = 25として
phoneme_align(”第”の単語IDのアドレス, 1, my_param);
としてみたところ

=== phoneme alignment begin ===
id: from to n_score applied HMMs (logical[physical] or {pseudo})
------------------------------------------------------------
0: 0 15 -25.471724 d
1: 16 18 -28.123056 a
2: 19 21 -28.393616 i
re-computed AM score: -577.097595
=== phoneme alignment end ===

という結果がでてきたのです。
”単語ID”と”それに相当するMFCC”のみを基に計算しているとすれば、

0: 0 3 -25.749268 d
1: 4 16 -22.555815 a
2: 17 21 -28.343164 i

という結果が出てくるのかと予想していたのですが、なぜ上のような結果がでるので
しょうか?
phoneme_alignではどういうことを行なっているのでしょうか?

長々しくなってしまって済みません。
以上、よろしくお願いします。


#############################################
村上隆夫
murakami@xxxxx
#############################################

投稿者 xml-rpc : 2003年12月11日 14:55
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/3790
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。