Julius 4.2
libsent/src/hmminfo/cdset.c

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

#include <sent/stddefs.h>
#include <sent/htk_param.h>
#include <sent/htk_hmm.h>

ソースコードを見る。

#define CD_STATE_SET_STEP   10
static void cdset_init (HTK_HMM_INFO *hmminfo)
 Initialize total pseudo HMM information in the given HMM definition data.
static CD_Setcdset_new ()
 Allocate a CD_Set data for a new pseudo phone set.
CD_Setcdset_lookup (HTK_HMM_INFO *hmminfo, char *cdstr)
 Look up for a pseudo phone with the name, and return the content.
CD_Setlcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname)
 Look up for a pseudo phone by the "left - center" name of the given phone name.
CD_Setrcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname)
 Look up for a pseudo phone by the "center + right" name of the given phone name.
static void put_cdset (void *ptr)
 Output text information of a pseudo phone to stdout.
void put_all_cdinfo (HTK_HMM_INFO *hmminfo)
 Output all pseudo phone set information to stdout.
boolean regist_cdset (APATNODE **root, HTK_HMM_Data *d, char *cdname, BMALLOC_BASE **mroot)
 Register a physical HMM as a member of a pseudo phone set.
boolean make_cdset (HTK_HMM_INFO *hmminfo)
 Construct the whole pseudo HMM information, and also add them to the logical Triphone tree.
static void callback_free_lcdset_content (void *arg)
 callback for aptree function to free the content of pseudo phone set.
void free_cdset (APATNODE **root, BMALLOC_BASE **mroot)
 Remove all the registered category-indexed pseudo state sets.

説明

Pseudo HMM セットの作成と管理

"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リストファイルのどちらかで 明示的に指定されていれば,そちらが優先されます.

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

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