libsent/src/hmminfo/cdset.c

Pseudo HMM セットの作成と管理. [詳細]

#include <sent/stddefs.h>
#include <sent/htk_param.h>
#include <sent/htk_hmm.h>
cdset.cのインクルード依存関係図

ソースコードを見る。

#define CD_STATE_SET_STEP   10
static void cdset_init (HTK_HMM_INFO *hmminfo)
static CD_Setcdset_new ()
CD_Setcdset_lookup (HTK_HMM_INFO *hmminfo, char *cdstr)
CD_Setlcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname)
CD_Setrcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname)
static void put_cdset (void *ptr)
void put_all_cdinfo (HTK_HMM_INFO *hmminfo)
boolean regist_cdset (APATNODE **root, HTK_HMM_Data *d, char *cdname)
boolean remove_cdset (HTK_HMM_INFO *hmminfo, char *cdname)
boolean make_cdset (HTK_HMM_INFO *hmminfo)
static void callback_free_lcdset_content (void *arg)
void free_cdset (APATNODE **root)

説明

Pseudo HMM セットの作成と管理.

作者:
Akinobu LEE
日付:
Tue Feb 15 17:58:54 2005

"Pseudo %HMM" は,与えられた音響モデルやHMMリストで定義されていない バイフォンやモノフォンについて,それを共通コンテキストとする トライフォン集合で代替するもので,主に第1パスの単語間トライフォン 計算に用いられます.

Julius は HMM 定義ファイルおよびHMMリストを読み込んだあと, まず全ての許され得るモノフォンおよびバイフォンのリストを生成します. そしてれぞれについて,それを共通のコンテキストとする トライフォンのリストを作成し,そのリスト中のトライフォンの各状態を マージしたもの (CD_State_Set) を要素とする構造体 CD_Set を HTKのHMM定義とは別に新たに生成します.

例えば,"a-k" という名前の pseudo HMM は,"a-k+e", "a-k+b" などの トライフォン状態の集合体となります.また "k" というモノフォンの pseudo HMM は,ベース音素が "k" である全てのトライフォンの状態の集合となります. この生成された pseudo HMM は全て HTK_HMM_INFO 内の cdset_info に 保存されます.

さらに,HMM論理名から実体を探すインデックス木 (logical_root) に, この pseudo HMM のリストが追加されます.これにより,HMM定義ファイル およびHMMリストファイルのどちらにも定義されていないバイフォンや モノフォンについては,この pseudo HMM が代用されるようになります. バイフォンやモノフォンが HMM 定義ファイルや HMMリストファイルのどちらかで 明示的に指定されていれば,そちらが優先されます.

Revision
1.5

cdset.c で定義されています。


Juliusに対してTue Sep 22 00:15:11 2009に生成されました。  doxygen 1.6.0