julius/extern.h

外部関数宣言 [詳細]

#include "search.h"
extern.hのインクルード依存関係図
このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

関数

void bt_init (BACKTRELLIS *bt)
void bt_prepare (BACKTRELLIS *bt)
void bt_store (BACKTRELLIS *bt, TRELLIS_ATOM *aotm)
void bt_relocate_rw (BACKTRELLIS *bt)
void bt_discount_pescore (WCHMM_INFO *wchmm, BACKTRELLIS *bt, HTK_Param *param)
void bt_sort_rw (BACKTRELLIS *bt)
TRELLIS_ATOMbt_binsearch_atom (BACKTRELLIS *bt, int time, WORD_ID wkey)
void make_iwcache_index (WCHMM_INFO *wchmm)
 単語先頭ノードのうちFactoring においてキャッシュが必要なノードの リストを作成する.
void make_successor_list (WCHMM_INFO *wchmm)
void max_successor_cache_init (WCHMM_INFO *wchmm)
void max_successor_cache_free (void)
LOGPROB max_successor_prob (WCHMM_INFO *wchmm, WORD_ID lastword, int node)
 単語内のあるノードについて factoring 値を計算する.
LOGPROBmax_successor_prob_iw (WCHMM_INFO *wchmm, WORD_ID lastword)
 単語間の factoring 値のリストを返す.
void calc_all_unigram_factoring_values (WCHMM_INFO *wchmm)
void get_back_trellis_init (HTK_Param *param, WCHMM_INFO *wchmm, BACKTRELLIS *backtrellis)
 フレーム同期ビーム探索:最初の1フレーム目
boolean get_back_trellis_proceed (int t, HTK_Param *param, WCHMM_INFO *wchmm, BACKTRELLIS *backtrellis)
 フレーム同期ビーム探索:2フレーム目以降
void get_back_trellis_end (HTK_Param *param, WCHMM_INFO *wchmm, BACKTRELLIS *backtrellis)
 フレーム同期ビーム探索:最終フレーム
void get_back_trellis (HTK_Param *param, WCHMM_INFO *wchmm, BACKTRELLIS *backtrellis, LOGPROB *backmax)
 フレーム同期ビーム探索:メイン
LOGPROB finalize_1st_pass (BACKTRELLIS *backtrellis, WORD_INFO *winfo, int len)
 第1パスの終了処理を行う.
void outprob_style_cache_init (WCHMM_INFO *wchmm)
LOGPROB outprob_style (WCHMM_INFO *wchmm, int node, int last_wid, int t, HTK_Param *param)
void error_missing_right_triphone (HMM_Logical *base, char *rc_name)
void error_missing_left_triphone (HMM_Logical *base, char *lc_name)
int ngram_firstwords (NEXTWORD **nw, int peseqlen, int maxnw, WORD_INFO *winfo, BACKTRELLIS *bt)
 初期単語仮説集合を返す.
int ngram_nextwords (NODE *hypo, NEXTWORD **nw, int maxnw, NGRAM_INFO *ngram, WORD_INFO *winfo, BACKTRELLIS *bt)
 次単語仮説集合を返す.
boolean ngram_acceptable (NODE *hypo, WORD_INFO *winfo)
void putsentence (NODE *hypo, int num)
void wchmm_fbs (HTK_Param *param, BACKTRELLIS *backtrellis, LOGPROB backmax, int stacksize, int ncan, int maxhypo, int cate_bgn, int cate_num)
void clear_stocker ()
void free_node (NODE *node)
NODEcpy_node (NODE *dst, NODE *src)
NODEnewnode ()
void malloc_wordtrellis ()
void free_wordtrellis ()
void scan_word (NODE *now, HTK_Param *param)
void next_word (NODE *now, NODE *new, NEXTWORD *nword, HTK_Param *param, BACKTRELLIS *backtrellis)
void start_word (NODE *new, NEXTWORD *nword, HTK_Param *param, BACKTRELLIS *backtrellis)
void last_next_word (NODE *now, NODE *new, HTK_Param *param)
HTK_Paramnew_wav2mfcc (SP16 speech[], int speechlen)
void put_header (FILE *stream)
void put_version (FILE *stream)
void put_compile_defs (FILE *stream)
void put_library_defs (FILE *stream)
WCHMM_INFOwchmm_new ()
void wchmm_free (WCHMM_INFO *w)
void print_wchmm_info (WCHMM_INFO *wchmm)
void build_wchmm2 (WCHMM_INFO *wchmm)
void wchmm_check_interactive (WCHMM_INFO *wchmm)
void check_wchmm (WCHMM_INFO *wchmm)
void RealTimeInit ()
void RealTimePipeLinePrepare ()
int RealTimePipeLine (SP16 *Speech, int len)
 第1パス平行音声認識処理のメイン
int RealTimeResume ()
HTK_ParamRealTimeParam (LOGPROB *backmax)
void RealTimeCMNUpdate (HTK_Param *param)
void RealTimeTerminate ()
void word_align (WORD_ID *words, short wnum, HTK_Param *param)
void phoneme_align (WORD_ID *words, short wnum, HTK_Param *param)
void state_align (WORD_ID *words, short wnum, HTK_Param *param)
void word_rev_align (WORD_ID *revwords, short wnum, HTK_Param *param)
void phoneme_rev_align (WORD_ID *revwords, short wnum, HTK_Param *param)
void state_rev_align (WORD_ID *revwords, short wnum, HTK_Param *param)
void check_specs ()
 指定されたパラメータをチェックする.
void print_setting ()
void print_info ()
int adin_cut_callback_store_buffer (SP16 *now, int len)
 検出区間の音声データをバッファに保存するための adin_go() callback
void opt_terminate ()
void usage ()
void detailed_help ()
char * filepath (char *filename, char *dirname)
 相対パスをフルパスに変換する.
void opt_parse (int argc, char *argv[], char *cwd)
 オプションを解析して対応する値をセットする.
void opt_release ()
void get_dirname (char *path)
 ファイルのパス名からディレクトリ名を抜き出す.
void config_file_parse (char *conffile)
void checkpath (char *filename)
int set_beam_width (WCHMM_INFO *wchmm, int specified)
 第1パスのビーム幅を決定する.
void set_lm_weight ()
void set_lm_weight2 ()
void system_bootup ()
void adin_initialize ()
void final_fusion ()
 全てのモデルを読み込み,認識の準備を行なう.
void setup_result_tty ()
void ttyout_status_recready ()
void ttyout_status_recstart ()
void ttyout_status_recend ()
void ttyout_status_param (HTK_Param *p)
void setup_result_msock ()
void decode_output_selection (char *str)
void msock_status_recready ()
void msock_status_recstart ()
void msock_status_recend ()
void msock_status_param (HTK_Param *p)
void hmm_check (HTK_HMM_INFO *hmminfo, WORD_INFO *winfo)
void record_sample_open ()
void record_sample_write (SP16 *speech, int samplenum)
void record_sample_close ()
void visual_init ()
void visual_show (BACKTRELLIS *bt)
void visual2_init (int maxhypo)
void visual2_popped (NODE *n, int popctr)
void visual2_next_word (NODE *next, NODE *prev, int popctr)
void visual2_best (NODE *now, WORD_INFO *winfo)
void gmm_init (HTK_HMM_INFO *gmm, int prune_num)
void gmm_prepare (HTK_HMM_INFO *gmm)
void gmm_proceed (HTK_HMM_INFO *gmm, HTK_Param *param, int t)
void gmm_end (HTK_HMM_INFO *gmm)
 GMMの計算を終了し,結果を出力する..
void msock_gmm ()
void ttyout_gmm ()
boolean gmm_valid_input ()
void main_recognition_loop ()
 メインの音声認識実行ループ

説明

外部関数宣言

作者:
Akinobu LEE
日付:
Mon Mar 7 23:19:14 2005
Revision
1.10

extern.h で定義されています。


関数

void bt_init ( BACKTRELLIS bt  ) 

単語トレリスを保持する 単語トレリス 構造体を初期化する(起動時に1回だけ実行)

引数:
bt [in] 初期化する 単語トレリス 構造体へのポインタ

backtrellis.c74 行で定義されています。

参照元 final_fusion().

void bt_prepare ( BACKTRELLIS bt  ) 

次回の認識用に 単語トレリス 構造体を準備する (認識開始時ごとに実行).

引数:
bt [in] 対象とする単語トレリス構造体へのポインタ

backtrellis.c96 行で定義されています。

参照元 get_back_trellis_init().

void bt_store ( BACKTRELLIS bt,
TRELLIS_ATOM tatom 
)

第1パスで出現したトレリス単語(単語終端のトレリス情報)を格納する.

ここでは格納だけ行い,第1パス終了後に bt_relocate_rw() で フレーム順に再配置する.

引数:
bt [i/o] トレリス単語を格納するバックトレリス構造体
tatom [in] 出現したトレリス単語へのポインタ

backtrellis.c134 行で定義されています。

参照元 get_back_trellis_end(), と get_back_trellis_proceed().

void bt_relocate_rw ( BACKTRELLIS bt  ) 

第1パス終了後, 格納された単語トレリス情報をフレーム順に再配置する.

引数:
bt [i/o] 単語トレリス構造体

backtrellis.c161 行で定義されています。

参照元 finalize_1st_pass().

void bt_discount_pescore ( WCHMM_INFO wchmm,
BACKTRELLIS bt,
HTK_Param param 
)

第1パス終了後, 第2パスでのトレリス再接続計算のために, 全時間に渡って各トレリス単語の終端の最終状態の出力尤度を再計算し, それを累積から差し引いておく.第2パスでは,仮説接続時には 接続仮説を考慮して接続点の状態の尤度が再計算される.

引数:
wchmm [in] 木構造化辞書
bt [in] 単語トレリス構造体
param [in] 入力パラメータ情報

backtrellis.c307 行で定義されています。

参照元 main_recognition_loop().

void bt_sort_rw ( BACKTRELLIS bt  ) 

bt_relocate_rw() 終了後, 高速アクセスのために バックトレリス構造体内のトレリス単語をフレームごとに 単語IDでソートしておく.

引数:
bt [i/o] 単語トレリス構造体

backtrellis.c382 行で定義されています。

参照元 finalize_1st_pass().

TRELLIS_ATOM* bt_binsearch_atom ( BACKTRELLIS bt,
int  t,
WORD_ID  wkey 
)

単語トレリス内の指定時刻フレーム上に,指定単語の終端があるかどうかを 検索する.

引数:
bt [in] 単語トレリス構造体
t [in] 検索する終端時刻(フレーム)
wkey [in] 検索する単語の単語ID
戻り値:
見つかった場合そのトレリス単語へのポインタ,見つからなければ NULL.

backtrellis.c420 行で定義されています。

参照元 next_word(), と start_word().

void make_iwcache_index ( WCHMM_INFO wchmm  ) 

単語先頭ノードのうちFactoring においてキャッシュが必要なノードの リストを作成する.

1-gram factoring は,枝ノードにおいて直前単語に依存しない固定値 (unigramの最大値)を与える.このため,単語間の factoring 計算において, 木構造化辞書上で複数の単語で共有されている単語先頭ノードについては, その値は直前単語によらず固定値であり,認識時に単語間キャッシュを保持 する必要はない.

この関数では,単語先頭ノードのリストからそのような factoring キャッシュが 不要なノードを除外して,1-gram factoring 時に単語間キャッシュが必要な 単語先頭ノード(=他の単語と共有されていない独立した単語先頭ノード)の リストを作成し,wchmm->start2isolate および wchmm->isolatenum に格納する.

引数:
wchmm [i/o] 木構造化辞書

factoring_sub.c715 行で定義されています。

参照元 build_wchmm2().

void make_successor_list ( WCHMM_INFO wchmm  ) 

木構造化辞書上の全ノードに successor list を構築するメイン関数

引数:
wchmm [i/o] 木構造化辞書

factoring_sub.c360 行で定義されています。

参照元 build_wchmm2().

void max_successor_cache_init ( WCHMM_INFO wchmm  ) 

木構造化辞書用の factoring キャッシュをメモリ割り付けして初期化する. この関数はプログラム開始時に一度だけ呼ばれる.

引数:
wchmm [i/o] 木構造化辞書

factoring_sub.c602 行で定義されています。

参照元 final_fusion().

void max_successor_cache_free ( void   ) 

factoring 用 cache のメモリ領域を全て解放する.

factoring_sub.c665 行で定義されています。

LOGPROB max_successor_prob ( WCHMM_INFO wchmm,
WORD_ID  lastword,
int  node 
)

単語内のあるノードについて factoring 値を計算する.

1-gram factoring で固定factoring値がある場合はその値が即座に返される. 他の場合は,そのノードのサブツリー内の単語の 2-gram確率(の最大値)が 計算される.

単語内 factoring キャッシュが考慮される.すなわち各ノードについて 直前単語が前回アクセスされたときと同じであれば, 前回の値が返され,そうでなければ値を計算し,キャッシュが更新される.

引数:
wchmm [in] 木構造化辞書
lastword [in] 直前単語のID
node [in] ノード番号
戻り値:
言語モデルスコア

factoring_sub.c900 行で定義されています。

参照元 get_back_trellis_proceed(), と init_nodescore().

LOGPROB* max_successor_prob_iw ( WCHMM_INFO wchmm,
WORD_ID  lastword 
)

単語間の factoring 値のリストを返す.

与えられた直前単語に対して,factoring値を計算すべき全ての単語先頭への factoring 値を計算し,そのリストを返す.このfactoring値は 直前単語ごとにリスト単位でキャッシュされる.すなわち,その直前単語が それまでに一度でも直前単語として出現していた場合,そのリストをそのまま 返す.

引数:
wchmm [in] 木構造化辞書
lastword [in] 直前単語
戻り値:
全単語先頭ノードへの factoring スコアのリスト

factoring_sub.c992 行で定義されています。

参照元 get_back_trellis_proceed().

void get_back_trellis_init ( HTK_Param param,
WCHMM_INFO wchmm,
BACKTRELLIS backtrellis 
)

フレーム同期ビーム探索:最初の1フレーム目

ここではビームサーチに用いるノードやトークン,単語トレリス構造体などの 初期化,および最初のフレームの計算を行う.2フレーム目以降は get_back_trellis_proceed() を用いる.

引数:
param [in] 入力ベクトル列情報 (最初の1フレーム目のみ用いられる)
wchmm [in] 木構造化辞書
backtrellis [i/o] 単語トレリス構造体 (この関数内で初期化される)

beam.c1477 行で定義されています。

参照元 get_back_trellis(), RealTimeParam(), と RealTimePipeLine().

boolean get_back_trellis_proceed ( int  t,
HTK_Param param,
WCHMM_INFO wchmm,
BACKTRELLIS backtrellis 
)

フレーム同期ビーム探索:2フレーム目以降

フレーム同期ビーム探索のメイン部分です.与えられた1フレーム分計算を 進め,そのフレーム内に残った単語を単語トレリス構造体の中に保存する. 第1フレームに対しては get_back_trellis_init() を用いる. 詳細は関数内のコメントを参照のこと.

引数:
t [in] 現在のフレーム (このフレームについて計算が進められる)
param [in] 入力ベクトル列構造体 (t 番目のフレームのみ用いられる)
wchmm [in] 木構造化辞書
backtrellis [i/o] 単語トレリス構造体 (t 番目のフレーム上に残った単語が追加される)
戻り値:
TRUE (通常どおり終了) あるいは FALSE (ここで探索を中断する 場合: 逐次デコーディング時にショートポーズ区間を検出したか,ビーム内の アクティブノード数が0になったとき)

beam.c1608 行で定義されています。

参照元 get_back_trellis(), get_back_trellis_end(), RealTimeParam(), と RealTimePipeLine().

void get_back_trellis_end ( HTK_Param param,
WCHMM_INFO wchmm,
BACKTRELLIS backtrellis 
)

フレーム同期ビーム探索:最終フレーム

第1パスのフレーム同期ビーム探索を終了するために, (param->samplenum -1) の最終フレームに対する終了処理を行う.

引数:
param [in] 入力ベクトル列 (param->samplenum の値のみ用いられる)
wchmm [in] 木構造化辞書
backtrellis [i/o] 単語トレリス構造体 (最終フレームの単語候補が格納される)

beam.c2363 行で定義されています。

参照元 get_back_trellis(), RealTimeParam(), と RealTimeTerminate().

void get_back_trellis ( HTK_Param param,
WCHMM_INFO wchmm,
BACKTRELLIS backtrellis,
LOGPROB backmax 
)

フレーム同期ビーム探索:メイン

与えられた入力ベクトル列に対して第1パス(フレーム同期ビーム探索)を 行い,その結果を出力する.また全フレームに渡る単語終端を,第2パス のために単語トレリス構造体に格納する.

この関数は入力ベクトル列があらかじめ得られている場合に用いられる. 第1パスが入力と並列して実行されるオンライン認識の場合, この関数は用いられず,代わりにこのファイルで定義されている各サブ関数が 直接 realtime-1stpass.c 内から呼ばれる.

引数:
param [in] 入力ベクトル列
wchmm [in] 木構造化辞書
backtrellis [out] 単語トレリス情報が書き込まれる構造体へのポインタ
backmax [out] 第1パスの最尤スコア (探索失敗なら LOG_ZERO)

beam.c2656 行で定義されています。

参照元 main_recognition_loop().

LOGPROB finalize_1st_pass ( BACKTRELLIS backtrellis,
WORD_INFO winfo,
int  len 
)

第1パスの終了処理を行う.

この関数は get_back_trellis_end() の直後に呼ばれ,第1パスの終了処理を 行う.生成した単語トレリス構造体の最終的な後処理を行い第2パスで アクセス可能な形に内部を変換する.また, 仮説のバックトレースを行い第1パスのベスト仮説を出力する.

引数:
backtrellis [i/o] 単語トレリス構造体 (後処理が行われる)
winfo [in] 単語辞書
len [in] 第1パスで処理された最終的なフレーム長
戻り値:
第1パスの最尤仮説の累積尤度,あるいは仮説が見つからない場合 は LOG_ZERO.

beam.c2455 行で定義されています。

参照元 get_back_trellis(), RealTimeParam(), と RealTimeTerminate().

void outprob_style_cache_init ( WCHMM_INFO wchmm  ) 

単語先頭のトライフォン変化用キャッシュを初期化

引数:
wchmm [i/o] 木構造化辞書

outprob_style.c99 行で定義されています。

参照元 init_nodescore().

LOGPROB outprob_style ( WCHMM_INFO wchmm,
int  node,
int  last_wid,
int  t,
HTK_Param param 
)

木構造化辞書中のある状態(ノード)について対数出力確率を計算する.

引数:
wchmm [in] 木構造化辞書情報
node [in] ノード番号
last_wid [in] 直前単語(単語先頭のトライフォン計算に用いる)
t [in] 時間フレーム
param [in] 特徴量パラメータ構造体 (t 番目のベクトルについて計算する)
戻り値:
出力確率の対数値を返す.

outprob_style.c354 行で定義されています。

参照元 bt_discount_pescore(), get_back_trellis_proceed(), と init_nodescore().

void error_missing_right_triphone ( HMM_Logical base,
char *  rc_name 
)

指定した右コンテキストを持つトライフォンが 見つからなかった場合にエラーメッセージを出力する関数.

引数:
base [in] ベースのトライフォン
rc_name [in] 右コンテキストの音素名

outprob_style.c513 行で定義されています。

参照元 next_word(), と scan_word().

void error_missing_left_triphone ( HMM_Logical base,
char *  lc_name 
)

指定した左コンテキストを持つトライフォンが 見つからなかった場合にエラーメッセージを出力する関数.

引数:
base [in] ベースのトライフォン
lc_name [in] 左コンテキストの音素名

outprob_style.c538 行で定義されています。

参照元 outprob_style(), と scan_word().

int ngram_firstwords ( NEXTWORD **  nw,
int  peseqlen,
int  maxnw,
WORD_INFO winfo,
BACKTRELLIS bt 
)

初期単語仮説集合を返す.

N-gramベースの探索では,初期仮説は単語末尾の無音単語に固定されている. ただし,ショートポーズセグメンテーション時は,第1パスで最終フレームに終端が 残った単語の中で尤度最大の単語となる.

引数:
nw [out] 次単語候補リスト(得られた初期単語仮説を格納する)
peseqlen [in] 入力フレーム長
maxnw [in] nw に格納できる単語の最大数
winfo [in] 単語情報構造体
bt [in] 単語トレリス構造体
戻り値:
nw に格納された単語候補数を返す.

ngram_decode.c462 行で定義されています。

参照元 wchmm_fbs().

int ngram_nextwords ( NODE hypo,
NEXTWORD **  nw,
int  maxnw,
NGRAM_INFO ngram,
WORD_INFO winfo,
BACKTRELLIS bt 
)

次単語仮説集合を返す.

与えられた部分文仮説から,次に接続しうる単語の集合を返す.実際には, 第1パスの結果であるトレリス単語集合 bt 上で,展開元の部分文仮説の最終単語の (推定された)始端フレーム hypo->estimated_next_t の前後に存在する 単語集合を取出し,それらの N-gram 接続確率を計算して返す. 取り出された次単語仮説は,あらかじめ maxnm の長さだけ 領域が確保されている nw に格納される.

引数:
hypo [in] 展開元の文仮説
nw [out] 次単語候補リストを格納する領域へのポインタ
maxnw [in] nw の最大長
ngram [in] N-gram情報構造体
winfo [in] 辞書情報構造体
bt [in] 単語トレリス構造体
戻り値:
抽出され nw に格納された次単語仮説の数を返す.

ngram_decode.c531 行で定義されています。

参照元 wchmm_fbs().

boolean ngram_acceptable ( NODE hypo,
WORD_INFO winfo 
)

与えられた部分文仮説が,文(すなわち探索終了)として 受理可能であるかどうかを返す.N-gram では文頭に対応する無音単語 (silhead) であれば受理する.

引数:
hypo [in] 部分文仮説
winfo [in] 単語辞書情報
戻り値:
文として受理可能であれば TRUE,不可能なら FALSE を返す.

ngram_decode.c584 行で定義されています。

参照元 wchmm_fbs().

void wchmm_fbs ( HTK_Param param,
BACKTRELLIS backtrellis,
LOGPROB  backmax,
int  stacksize,
int  ncan,
int  maxhypo,
int  cate_bgn,
int  cate_num 
)

第2探索パスであるスタックデコーディングを行うメイン関数

引数:
param [in] 入力パラメータベクトル列
backtrellis [in] 第1パスで得られた単語トレリス
backmax [in] 第1パスで得られた累積仮説スコアの最大値
stacksize [in] 仮説スタックのサイズ
ncan [in] 得るべき文候補数
maxhypo [in] 探索を断念する展開数閾値
cate_bgn [in] 展開対象とすべきカテゴリの開始番号(Juliusでは無視)
cate_num [in] 展開対象とすべきカテゴリの数(Juliusでは無視)

search_bestfirst_main.c1083 行で定義されています。

参照元 main_recognition_loop().

void clear_stocker (  ) 

リサイクル用ノード格納庫を空にする.

search_bestfirst_v1.c199 行で定義されています。

参照元 wchmm_fbs().

void free_node ( NODE node  ) 

仮説ノードの利用を終了してリサイクル用にストックする

引数:
node [in] 仮説ノード

search_bestfirst_v1.c169 行で定義されています。

参照元 free_all_nodes(), put_all_in_stack(), put_to_stack(), result_reorder_and_output(), と wchmm_fbs().

NODE* cpy_node ( NODE dst,
NODE src 
)

仮説をコピーする.

引数:
dst [out] コピー先の仮説
src [in] コピー元の仮説
戻り値:
dst を返す.

search_bestfirst_v1.c238 行で定義されています。

参照元 last_next_word(), と wchmm_fbs().

NODE* newnode (  ) 

新たな仮説ノードを割り付ける.もし格納庫に以前試用されなくなった ノードがある場合はそれを再利用する.なければ新たに割り付ける.

戻り値:
新たに割り付けられた仮説ノードへのポインタを返す.

search_bestfirst_v1.c314 行で定義されています。

参照元 wchmm_fbs().

void malloc_wordtrellis (  ) 

1単語分のトレリス計算用のワークエリアを確保.

search_bestfirst_v1.c418 行で定義されています。

参照元 wchmm_fbs().

void free_wordtrellis (  ) 

1単語分のトレリス計算用のワークエアリアを解放

search_bestfirst_v1.c456 行で定義されています。

参照元 wchmm_fbs().

void scan_word ( NODE now,
HTK_Param param 
)

最後の1単語の前向きトレリスを計算して,文仮説の前向き尤度を更新する.

引数:
now [i/o] 文仮説
param [in] 入力パラメータ列

search_bestfirst_v1.c555 行で定義されています。

参照元 wchmm_fbs().

void next_word ( NODE now,
NODE new,
NEXTWORD nword,
HTK_Param param,
BACKTRELLIS backtrellis 
)

展開元仮説に次単語を接続して新しい仮説を生成する.次単語の単語トレリス上の スコアから最尤接続点を求め,仮説スコアを計算する.

引数:
now [in] 展開元仮説
new [out] 新たに生成された仮説が格納される
nword [in] 接続する次単語の情報
param [in] 入力パラメータ列
backtrellis [in] 単語トレリス

search_bestfirst_v1.c1353 行で定義されています。

参照元 wchmm_fbs().

void start_word ( NODE new,
NEXTWORD nword,
HTK_Param param,
BACKTRELLIS backtrellis 
)

与えられた単語から初期仮説を生成する.

引数:
new [out] 新たに生成された仮説が格納される
nword [in] 初期仮説単語の情報
param [in] 入力パラメータ列
backtrellis [in] 単語トレリス

search_bestfirst_v1.c1587 行で定義されています。

参照元 wchmm_fbs().

void last_next_word ( NODE now,
NODE new,
HTK_Param param 
)

終端処理:終端まで達した文仮説の最終的なスコアをセットする.

引数:
now [in] 終端まで達した仮説
new [out] 最終的な文仮説のスコアを格納する場所へのポインタ
param [in] 入力パラメータ列

search_bestfirst_v1.c1674 行で定義されています。

参照元 wchmm_fbs().

HTK_Param* new_wav2mfcc ( SP16  speech[],
int  speechlen 
)

音声波形データから MFCC パラメータを抽出する.

引数:
speech [in] 音声波形データ
speechlen [in] speech の長さ(単位:サンプル数)
戻り値:
新たに割り付けられ抽出パラメータベクトルが格納されている パラメータ構造体へのポインタを返す.

wav2mfcc.c79 行で定義されています。

参照元 main_recognition_loop().

void put_header ( FILE *  strm  ) 

ヘッダを出力する.

引数:
strm [in] 出力ストリーム

version.c48 行で定義されています。

参照元 detailed_help(), opt_parse(), print_info(), と put_header().

void put_version ( FILE *  strm  ) 

バージョン情報を出力する

引数:
strm [in] 出力ストリーム

version.c65 行で定義されています。

参照元 put_version(), と usage().

void put_compile_defs ( FILE *  strm  ) 

コンパイル時の設定を出力する.

引数:
strm [in] 入力ストリーム

version.c89 行で定義されています。

参照元 detailed_help(), opt_parse(), print_info(), と put_compile_defs().

void put_library_defs ( FILE *  strm  ) 

ライブラリの設定を出力する

引数:
strm [in] 出力ストリーム

version.c255 行で定義されています。

参照元 opt_parse(), と put_library_defs().

WCHMM_INFO* wchmm_new (  ) 

木構造化辞書を新たに割り付ける.

戻り値:
新たにメモリ上に割り付けられた木構造化辞書構造体へのポインタを返す.

wchmm.c70 行で定義されています。

参照元 final_fusion().

void wchmm_free ( WCHMM_INFO w  ) 

木構造化辞書およびその内部の割付メモリを全て解放する.

引数:
w [in] 木構造化辞書

wchmm.c206 行で定義されています。

void print_wchmm_info ( WCHMM_INFO wchmm  ) 

木構造化辞書のサイズなどの情報を標準出力に出力する.

引数:
wchmm [in] 木構造化辞書

wchmm.c1958 行で定義されています。

参照元 print_info().

void build_wchmm2 ( WCHMM_INFO wchmm  ) 

与えられた単語辞書と言語モデルから木構造化辞書を構築する. この関数は bulid_wchmm() と同じ処理を行いますが, 最初に単語を音素列でソートして音素列の似た順に単語を並べるため, より高速に木構造化を行うことができる.とくにオプション指定をしない 限り,Julius/Julianではこちらが用いられる.

引数:
wchmm [i/o] 木構造化辞書

wchmm.c1682 行で定義されています。

参照元 final_fusion().

void wchmm_check_interactive ( WCHMM_INFO wchmm  ) 

木構造化辞書の構造を起動時に対話的にチェックする際のコマンドループ

引数:
wchmm [in] 木構造化辞書

wchmm_check.c313 行で定義されています。

参照元 build_wchmm2(), と check_wchmm().

void check_wchmm ( WCHMM_INFO wchmm  ) 

木構造化辞書内のリンク情報の一貫性をチェックする(内部デバッグ用)

引数:
wchmm [in] 木構造化辞書

wchmm_check.c424 行で定義されています。

参照元 build_wchmm2().

void RealTimeInit (  ) 

第1パス平行認識処理の初期化(起動後1回だけ呼ばれる)

realtime-1stpass.c207 行で定義されています。

参照元 final_fusion().

void RealTimePipeLinePrepare (  ) 

第1パス平行認識処理のデータ準備(認識開始ごとに呼ばれる)

realtime-1stpass.c266 行で定義されています。

参照元 main_recognition_loop().

int RealTimePipeLine ( SP16 Speech,
int  nowlen 
)

第1パス平行音声認識処理のメイン

この関数は, 音声入力ルーチンのコールバックとして,取り込んだ 音声データの断片を引数として呼び出されます.音声入力が開始されると, 取り込んだ音声データは数千サンプルごとに,その都度この関数が呼び出されます. 呼び出しは,音声区間終了か入力ストリームの終了まで続きます.

この関数内では,漸次的な特徴量抽出および第1パスの認識が行われます.

引数:
Speech [in] 音声データへのバッファへのポインタ
nowlen [in] 音声データの長さ
戻り値:
エラー時 -1 を,正常時 0 を返す.また,この入力断片までで, 文章の区切りとして第1パスを終了したいときには 1 を返す.

realtime-1stpass.c351 行で定義されています。

参照元 main_recognition_loop().

HTK_Param* RealTimeParam ( LOGPROB backmax  ) 

第1パス平行認識処理の終了処理を行う.

引数:
backmax [out] 第1パスの最終フレームでの最大尤度を格納する
戻り値:
この入力の特徴パラメータを格納した構造体を返す.

realtime-1stpass.c712 行で定義されています。

参照元 main_recognition_loop().

void RealTimeCMNUpdate ( HTK_Param param  ) 

次回の認識に備えて CMN用にケプストラム平均を更新する.

引数:
param [in] 現在の入力パラメータ

realtime-1stpass.c862 行で定義されています。

参照元 main_recognition_loop().

void RealTimeTerminate (  ) 

第1パス平行認識処理の中断時の終了処理を行う.

realtime-1stpass.c910 行で定義されています。

参照元 main_recognition_loop().

void word_align ( WORD_ID words,
short  wnum,
HTK_Param param 
)

単語ごとの forced alignment を行う.

引数:
words [in] 単語列
wnum [in] words の単語数
param [in] 入力特徴ベクトル列

word_align.c381 行で定義されています。

void phoneme_align ( WORD_ID words,
short  num,
HTK_Param param 
)

音素ごとの forced alignment を行う.

引数:
words [in] 単語列
num [in] words の単語数
param [in] 入力特徴ベクトル列

word_align.c430 行で定義されています。

void state_align ( WORD_ID words,
short  num,
HTK_Param param 
)

HMM状態ごとの forced alignment を行う.

引数:
words [in] 単語列
num [in] words の単語数
param [in] 入力特徴ベクトル列

word_align.c479 行で定義されています。

void word_rev_align ( WORD_ID revwords,
short  wnum,
HTK_Param param 
)

単語ごとの forced alignment を行う(単語が逆順で与えられる場合)

引数:
revwords [in] 単語列(逆順)
wnum [in] revwords の単語数
param [in] 入力特徴ベクトル列

word_align.c403 行で定義されています。

参照元 result_reorder_and_output(), と wchmm_fbs().

void phoneme_rev_align ( WORD_ID revwords,
short  num,
HTK_Param param 
)

音素ごとの forced alignment を行う(単語が逆順で与えられる場合)

引数:
revwords [in] 単語列(逆順)
num [in] revwords の単語数
param [in] 入力特徴ベクトル列

word_align.c452 行で定義されています。

参照元 result_reorder_and_output(), と wchmm_fbs().

void state_rev_align ( WORD_ID revwords,
short  num,
HTK_Param param 
)

HMM状態ごとの forced alignment を行う(単語が逆順で与えられる場合)

引数:
revwords [in] 単語列(逆順)
num [in] revwords の単語数
param [in] 入力特徴ベクトル列

word_align.c501 行で定義されています。

参照元 result_reorder_and_output(), と wchmm_fbs().

void check_specs (  ) 

指定されたパラメータをチェックする.

ファイルの存在チェックやパラメータ指定の整合性,モデルとの対応 などについてチェックを行なう.重要な誤りが見つかった場合エラー終了する.

m_chkparam.c87 行で定義されています。

参照元 main().

void print_setting (  ) 

読み込んだモデルファイル名を出力する.

m_info.c37 行で定義されています。

参照元 print_info().

void print_info (  ) 

全てのシステム情報を出力する.

m_info.c88 行で定義されています。

参照元 main_recognition_loop().

int adin_cut_callback_store_buffer ( SP16 now,
int  len 
)

検出区間の音声データをバッファに保存するための adin_go() callback

この関数は,検出された音声入力を逐次バッファ speech に記録して いきます.バッファ処理モード(=非リアルタイムモード)で認識を行なう ときに用いられます.

引数:
now [in] 検出された音声波形データの断片
len [in] now の長さ(サンプル数)
戻り値:
エラー時 -1 (adin_go は即時中断する),通常時 0 (adin_go は 続行する),区間終了要求時 1 (adin_go は現在の音声区間を閉じる).

main.c103 行で定義されています。

参照元 main_recognition_loop(), と RealTimePipeLine().

void opt_terminate (  ) 

メッセージを出力してエラー終了(オプション指定エラー時用)

m_usage.c37 行で定義されています。

参照元 args_needed_exit(), と opt_parse().

void usage (  ) 

バージョンとメッセージを出力して終了(オプション無し実行時)

m_usage.c53 行で定義されています。

参照元 opt_parse().

void detailed_help (  ) 

バージョン情報,エンジン設定および詳細なオプションのヘルプを表示して終了

m_usage.c72 行で定義されています。

参照元 opt_parse().

char* filepath ( char *  filename,
char *  dirname 
)

相対パスをフルパスに変換する.

ファイルのパス名が相対パスであれば,カレントディレクトリをつけた フルパスに変換して返す.絶対パスであれば,そのまま返す.

引数:
filename [in] ファイルのパス名
dirname [in] カレントディレクトリのパス名
戻り値:
絶対パス名の入った,新たに割り付けられたバッファ

m_options.c51 行で定義されています。

参照元 multigram_add_prefix_filelist(), multigram_add_prefix_list(), と opt_parse().

void opt_parse ( int  argc,
char *  argv[],
char *  cwd 
)

オプションを解析して対応する値をセットする.

引数:
argc [in] argv に含まれる引数の数
argv [in] 引数を表す文字列の配列
cwd [in] カレントディレクトリ文字列

m_options.c109 行で定義されています。

参照元 config_file_parse(), と main().

void opt_release (  ) 

オプション関連のグローバル変数のメモリ領域を解放する.

m_options.c835 行で定義されています。

参照元 m_errexit(), m_exit(), と main().

void get_dirname ( char *  path  ) 

ファイルのパス名からディレクトリ名を抜き出す.

最後の '/' は残される.

引数:
path [i/o] ファイルのパス名(関数内で変更される)

m_jconf.c127 行で定義されています。

参照元 config_file_parse(), と multigram_add_prefix_filelist().

void config_file_parse ( char *  conffile  ) 

jconf 設定ファイルを読み込んで解析し,対応するオプションを設定する.

引数:
conffile [in] jconf ファイルのパス名

m_jconf.c159 行で定義されています。

参照元 opt_parse().

void checkpath ( char *  filename  ) 

ファイルが存在して読み込み可能かチェックする.

引数:
filename [in] ファイルパス名

m_chkparam.c39 行で定義されています。

参照元 check_specs(), multigram_add_prefix_filelist(), と multigram_add_prefix_list().

int set_beam_width ( WCHMM_INFO wchmm,
int  specified 
)

第1パスのビーム幅を決定する.

ユーザが "-b" オプションでビーム幅を指定しなかった場合は, 下記のうち小さい方がビーム幅として採用される.

引数:
wchmm [in] 木構造化辞書
specified [in] ユーザ指定ビーム幅(0: 全探索 -1: 未指定)
戻り値:
採用されたビーム幅.

m_chkparam.c283 行で定義されています。

参照元 final_fusion().

void set_lm_weight (  ) 

第1パスの言語モデルの重みと単語挿入ペナルティのデフォルト値を, 音響モデルの型に従ってセットする.

m_chkparam.c318 行で定義されています。

参照元 configure_param().

void set_lm_weight2 (  ) 

第2パスの言語モデルの重みと単語挿入ペナルティのデフォルト値を, 音響モデルの型に従ってセットする.

m_chkparam.c342 行で定義されています。

参照元 configure_param().

void system_bootup (  ) 

システム起動時に最初に呼ばれる初期化処理.メモリ割り付け関数の初期化 やエラー処理関数の登録などを行なう.

m_bootup.c103 行で定義されています。

参照元 main().

void adin_initialize (  ) 

音声入力デバイスを初期化する.speech_input で選択されているデバイスを 初期化し,サンプリング周波数や音声検出用パラメータをセットする.

m_adin.c39 行で定義されています。

参照元 main_recognition_loop().

void final_fusion (  ) 

全てのモデルを読み込み,認識の準備を行なう.

認識で用いる全てのモデルを読み込んだあと,モデル同士の関連づけや 木構造化辞書の構築, キャッシュの確保を行なう.またいくつかのデフォルトパラメータの決定 や,結果の出力先の設定もおこなう.

m_fusion.c331 行で定義されています。

参照元 main_recognition_loop().

void setup_result_tty (  ) 

モジュール出力を行うよう関数を登録する.

result_tty.c650 行で定義されています。

参照元 select_result_output().

void ttyout_status_recready (  ) 

準備が終了して、認識可能状態(入力待ち状態)に入ったときの出力

result_tty.c579 行で定義されています。

参照元 setup_result_tty().

void ttyout_status_recstart (  ) 

入力の開始を検出したときの出力

result_tty.c597 行で定義されています。

参照元 setup_result_tty().

void ttyout_status_recend (  ) 

入力終了を検出したときの出力

result_tty.c612 行で定義されています。

参照元 setup_result_tty().

void ttyout_status_param ( HTK_Param param  ) 

入力長などの入力パラメータ情報を出力.

引数:
param [in] 入力パラメータ構造体

result_tty.c629 行で定義されています。

参照元 setup_result_tty().

void setup_result_msock (  ) 

モジュール出力を行うよう関数を登録する.

result_msock.c586 行で定義されています。

参照元 select_result_output().

void decode_output_selection ( char *  str  ) 

認識結果としてどういった単語情報を出力するかをセットする。

引数:
str [in] 出力項目指定文字列 ("WLPSCwlps"の一部)

result_msock.c84 行で定義されています。

参照元 opt_parse().

void msock_status_recready (  ) 

準備が終了して、認識可能状態(入力待ち状態)に入ったときの出力

result_msock.c520 行で定義されています。

参照元 setup_result_msock().

void msock_status_recstart (  ) 

入力の開始を検出したときの出力

result_msock.c535 行で定義されています。

参照元 setup_result_msock().

void msock_status_recend (  ) 

入力終了を検出したときの出力

result_msock.c550 行で定義されています。

参照元 setup_result_msock().

void msock_status_param ( HTK_Param param  ) 

入力長などの入力パラメータ情報を出力.

引数:
param [in] 入力パラメータ構造体

result_msock.c567 行で定義されています。

参照元 setup_result_msock().

void hmm_check ( HTK_HMM_INFO hmminfo,
WORD_INFO winfo 
)

コマンドライン上でトライフォンのチェックを行なうモード ("-check triphone").

引数:
hmminfo [in] HMM定義構造体
winfo [in] 単語辞書

hmm_check.c294 行で定義されています。

参照元 initialize_dict(), と multigram_read_file().

void record_sample_open (  ) 

録音のために一時ファイルをオープンする.

record.c146 行で定義されています。

参照元 main_recognition_loop(), と RealTimePipeLinePrepare().

void record_sample_write ( SP16 speech,
int  samplenum 
)

入力音声断片をファイルに追加記録する.

引数:
speech [in] 音声データのバッファ
samplenum [in] 音声データの長さ(サンプル数)

record.c175 行で定義されています。

参照元 adin_cut_callback_store_buffer(), と RealTimePipeLine().

void record_sample_close (  ) 

録音を終了する.録音用の一時ファイルをクローズし、本来の名前にrenameする。

record.c207 行で定義されています。

参照元 main_recognition_loop().

void gmm_init ( HTK_HMM_INFO gmm,
int  gmm_prune_num 
)

GMMの計算のための初期化.起動時に一度だけ呼ばれる.

引数:
gmm [in] GMM定義構造体
gmm_prune_num [in] Gaussian pruning において計算するガウス分布数

gmm.c397 行で定義されています。

参照元 initialize_GMM().

void gmm_prepare ( HTK_HMM_INFO gmm  ) 

GMM計算のための準備を行なう.1入力開始ごとに呼ばれる.

引数:
gmm [in] GMM定義構造体

gmm.c444 行で定義されています。

参照元 get_back_trellis_init().

void gmm_proceed ( HTK_HMM_INFO gmm,
HTK_Param param,
int  t 
)

与えられた入力ベクトル列上のあるフレームについて,全GMMのスコアを計算し, 計算結果を gmm_score に積算する.

引数:
gmm [in] GMM定義構造体
param [in] 入力ベクトル列
t [in] 計算する時刻フレーム

gmm.c477 行で定義されています。

参照元 get_back_trellis_proceed().

void gmm_end ( HTK_HMM_INFO gmm  ) 

GMMの計算を終了し,結果を出力する..

gmm_proceed() によって累積された各フレームごとのスコアから, 最大スコアのGMMを決定する.その事後確率に基づく信頼度を計算し 最終的な結果を result_gmm() によって出力する.

引数:
gmm [in] GMM定義構造体

gmm.c520 行で定義されています。

参照元 finalize_1st_pass().

void msock_gmm (  ) 

GMMの計算結果をモジュールのクライアントに送信する ("-result msock" 用)

gmm.c630 行で定義されています。

参照元 setup_result_msock().

void ttyout_gmm (  ) 

GMMの計算結果を標準出力に出力する.("-result tty" 用)

gmm.c592 行で定義されています。

参照元 setup_result_tty().

boolean gmm_valid_input (  ) 

GMMの識別結果,最後の入力が音声入力として有効であったか 無効であったかを返す.

戻り値:
一位のGMMの名前が gmm_reject_cmn_string 内に無ければ valid として TRUE, あれば invalid として FALSE を返す.

gmm.c570 行で定義されています。

参照元 main_recognition_loop(), と RealTimeCMNUpdate().

void main_recognition_loop (  ) 

メインの音声認識実行ループ

この関数は音声認識を実行するメインループです.最初にシステムの初期化を 行ない,その後イベントループに入ります.イベントループでは音声区間が検出 されると,その音声区間について認識処理の第1パス,第2パスを行ない,結果を 出力します.またモジュールモードの場合は命令コマンドの処理の呼び出しを 行ないます.

Main Recognition Loop

main.c253 行で定義されています。

参照元 main(), と main_module_loop().


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