すべての認識処理のトップレベルのインスタンスです。
型 | メンバ | |
---|---|---|
Jconf* | jconf | ユーザー指定の設定パラメータ |
RecogProcess* | process_list | 認識過程のインスタンスへのポインタ |
PROCESS_AM* | amlist | 音響モデルの連結リスト |
PROCESS_LM* | lmlist | 言語モデルの連結リスト |
MFCCCalc* | mfcclist | MFCCのリストへのポインタ |
ADIn* | adin | A/D入力の作業領域 |
SP16* | speech | 入力音声データ |
int | speechlen | サンプル単位での入力長
全体の秒数は、 |
int | peseqlen | フレーム単位での入力長 (用途不明)
実際の値は |
HTK_HMM_INFO* | gmm | GMM定義 |
MFCCCalc* | gmmmfcc | GMM用のMFCCインスタンスへのポインタ |
int | speechalloclen | メモリ割り当てに用いられる大きさ。speechlenを超えるように、MAX_SPEECH_ALLOC_STEPの倍数で決定される |
boolean | process_active | 認識処理が動作中ならばtrue。これをfalseに設定すると、現在の認識処理が終了した後にJuliusも停止する |
boolean | process_want_terminate | trueに設定すると、認識処理をただちに終了し無効な状態となる |
boolean | process_want_reload | trueに設定すると、第1パスの処理をただちに区切って終了し、第2パスを処理し結果を出力した上で、無効な状態となる |
boolean | process_segment | セグメントを処理しているとき、true |
int | current_segment_end | デコードしているセグメントの終了フレーム位置 |
boolean | triggered |
設定パラメータ (.jconf設定ファイルの内容) へアクセスできます。
型 | メンバ | |
---|---|---|
int | input.type | 入力ソースタイプ
|
int | input.speech_input | 入力ソース
|
int | input.device | 入力デバイス
|
int | input.plugin_source | プラグインが使用されているならば、選択されているプラグインのID |
long | input.sfreq | サンプリング周波数 (-smpFreq) |
long | input.period | 100ns単位のサンプリング周期 (-smpPeriod)
これは、 |
int | input.framesize | サンプル単位でのウィンドウサイズ (HTKのWINDOWSIZE同等)
初期値はam_root->analysis.para.framesize |
int | input.frameshift | 1フレームのサンプル数
1フレームの秒数は、
ならば、0.01[秒/フレーム]となる。 初期値はamnow->analysis.para.frameshift |
char* | input.inputlist_filename | 入力ファイル リストのファイル名 (-filelist) |
boolean | decodeopt.realtime_flag | trueならば、On-the-fly Decodingを有効にする
既定では、入力ソースがSP_ADINNETのとき有効 |
boolean | decodeopt.segment | ショートポーズセグメンテーションが有効ならば、true
successive.enabledがtrueである認識器があるとき、trueとなる m_chkparam.c |
int | detect.head_margin_msec | 音声区間の開始部のマージン (-headmargin)
値は |
int | detect.tail_margin_msec | 音声区間の終了部のマージン (-tailmargin) |
int | detect.zero_cross_num | 1sec単位の零交差数のしきい値 (-zc) |
int | detect.silence_cut | レベルと零交差による入力検知を行うかどうか
|
boolean | preprocess.strip_zero_sample | ゼロの振幅が連続するサンプルを除去するならば、true (-nostrip)
(値が0または-32767のサンプルがWINDOWLENで定義されている個数 (既定で16) 以上連続したならば、除去される。無音カット) |
boolean | preprocess.use_zmean | DC成分を除去するならば、true
|
char* | reject.gmm_filename | (-gmm) |
int | reject.gmm_gprune_num | (-gmmnum) |
char* | reject.gmm_reject_cmn_string | (-gmmreject) |
int | reject.rejectshortlen | 入力を拒絶する長さの、最小のしきい値 [ミリ秒] (-rejectshort) |
int | reject.rejectlonglen | 入力を拒絶する長さの、最大のしきい値 [ミリ秒] (-rejectlong) |
JCONF_LM* | lm_root | 言語モデル (N-gram/DFA)、辞書、それと関連パラメータ |
JCONF_LM* | lmnow | 現在の、言語モデル |
JCONF_AM* | am_root | 音響モデル (HMM、HMMList)、それと関連パラメータ |
JCONF_AM* | amnow | 現在の、音響モデル |
JCONF_SEARCH* | search_root | 検索パラメータ (LM、AMから独立)、アノテーション、出力パラメータ |
JCONF_SEARCH* | searchnow | 現在の、検索パラメータ |
認識過程を取得できます。
型 | メンバ | |
---|---|---|
RecogProcess | next | 次のインスタンス |
boolean | live | インスタンスが有効ならば、true |
short | active |
|
boolean | have_interim | CALLBACK_RESULT_PASS1_INTERIMで出力するものがあるならば、true |
Output | result | 認識結果 |
int | peseqlen | フレーム長 |
FSBeam | pass1 | 第1パスの作業領域 |
WORD_ID[] | pass1_wseq | 第1パスの最尤仮説の単語シーケンス |
int | pass1_wnum | 第1パスの最尤仮説の単語数 |
StackDecode | pass2 | 第2パスの作業領域 |
PROCESS_AM* | am | 使用している音響モデル (Acoustic model) |
PROCESS_LM* | lm | 使用している言語モデル (Language model) |
int | lmtype | 言語モデル型。以下のいずれか
|
JCONF_SEARCH* | config | 検索構成データ |
BACKTRELLIS* | backtrellis | 第1パスで生成された、単語トレリスインデックス |
boolean | sp_break_last_nword_allow_override | 第2パスの結果から最後の文脈語の上書きを認めるならば、true |
WORD_ID | sp_break_last_nword | 最後の文脈語
(ショートポーズセグメンテーションにおける、入力区間の開始位置) |
認識結果を得られます。ただし詳細な情報を得るには、言語モデルの情報も必要です。
型 | メンバ | |
---|---|---|
int | status | 状態
|
int | num_frame | 認識部分のフレーム数 |
int | length_msec | 認識部分の長さ [msec] |
Sentence* | sent | 認識結果の文のリスト |
int | sentnum | 文の数 |
Sentence | pass1 | 第1パスの認識結果 |
結果の文の情報を得られます。
型 | メンバ | |
---|---|---|
WORD_ID (unsigned short) |
word | 単語IDのシーケンス |
int | word_num | 文の単語の数 |
LOGPROB (float) |
score_lm | 言語モデルの尤度 (Likelihood) trace_backptr()で求められる |
LOGPROB (float) |
score_am | 音響モデルの尤度 (Likelihood) |
LOGPROB (float) |
score | 言語モデルの尤度 + 音響モデルの尤度 |
LOGPROB (float) |
confidence | 単語の信頼度 (cmscore) |
SentenceAlign* | align |
アラインメントの結果を得られます。
型 | メンバ | |
---|---|---|
int | num | ユニット数 |
short | unittype | アラインメントユニットの型
|
WORD_ID* | w | 単語IDのシーケンス (IDの番号は、言語モデルの単語辞書におけるエントリ番号 (行番号-1) に対応) |
HMM_Logical** | ph | 音シーケンス |
int* | begin_frame | 開始フレームのリスト
2番目のフレームは begin_frame[1] * jconf->input.frameshift で、秒数は begin_frame[1] * jconf->input.frameshift / (float)jconf->input.sfreq で得られる。すべての位置は1番目のフレームの相対位置で、begin_frame[0]はつねに0 |
int* | end_frame | 終了フレームのリスト |
LOGPROB* | avgscore | フレームごとの、平均スコア (正規化されたスコア) |
LOGPROB (float) |
allscore | ビタビアルゴリズム (Viterbi algorithm) により再計算された、音響スコア (音響モデルの尤度) |
第1パスの作業領域
型 | メンバ | |
---|---|---|
TOKEN2* | tlist | すべてのトークンの実体を保持するための領域 |
TOKENID* | tindex | |
int[] | tnum | tlistで使用されているトークンの現在の番号 |
boolean | in_sparea | ショートポーズの領域内にあるならば、true |
int | tmp_sparea_start | 現在のポーズ領域の開始フレーム位置の記録用 |
WORD_ID | tmp_sp_break_last_word | 次のセグメントの最初の単語として、このセグメントの最初の最大単語仮説を保持
(SP_BREAK_RESUME_WORD_BEGINが定義されているときのみ) |
第2パスの作業領域
型 | メンバ | |
---|---|---|
int | genectr | 生成された、仮説の数 |
int | pushctr | スタックへ実際に入れた、仮説の数 |
int | popctr | スタックから出した、仮説の数 |
型 | メンバ | |
---|---|---|
JCONF_AM* | config | |
MFCCCalc* | mfcc | |
HTK_HMM_INFO* | hmminfo | |
HTK_HMM_INFO* | hmm_gs | |
HMMWork | hmmwrk | |
DNNData* | dnn | |
PROCESS_AM* | next |
言語モデル (Language Model : LM) の情報を得られます。
型 | メンバ | |
---|---|---|
JCONF_LM* | config | |
PROCESS_AM* | am | |
int | lmtype | |
int | lmvar | |
WORD_INFO* | winfo | すべての言語モデル型の、主要な単語辞書 |
NGRAM_INFO* | ngram | |
MULTIGRAM* | grammars | |
int | gram_maxid | |
DFA_INFO* | dfa | |
boolean | global_modified | |
LMFunc | lmfunc | |
PROCESS_LM* | next |
語彙の情報を得られます。このメンバを通して、言語モデルの単語辞書の内容を取得できます。
型 | メンバ | 単語ごとの情報 | 取得例 |
---|---|---|---|
char** | woutput | 認識結果として出力される文字列 | winfo->woutput[10] // "Ω" |
char** | wname | 単語名
|
winfo->wname[10] // "Ω+記号" |
unsigned char* | wlen | 音素数 | winfo->wlen[10] // 5 |
HMM_Logical*** | wseq | 音シーケンス | (*winfo->wseq[10])->name // "o+m" |
WORD_ID | head_silwid | 文頭単語の単語ID。JCONF_LM.head_silnameから割り当てられる | |
WORD_ID | tail_silwid | 文末単語の単語ID。JCONF_LM.tail_silnameから割り当てられる |
論理HMMから、物理HMMと疑似HMMの情報を得られます。
型 | メンバ | 取得例 | |
---|---|---|---|
char* | name | 論理HMMの名前 | (*wseq)->name // "o+m" |
HTK_HMM_Data* | body.defined | 物理HMMのポインタ | |
CD_Set* | body.pseudo | 疑似HMMのポインタ |
型 | メンバ | |
---|---|---|
HTK_HMM_Options | opt | グローバル オプション |
型 | メンバ | |
---|---|---|
int | lmtype | 言語モデルの型
|
char* | dictfilename | 単語辞書のファイル名 (-v) |
char* | ngram_filename | N-gramのファイル名 (-d) |
char* | ngram_filename_lr_arpa | LR 2-gramのファイル名 (-nlr) |
char* | ngram_filename_rl_arpa | RL 3-gramのファイル名 (-nrl) |
char* | head_silname | 話の最初にある無音の単語の名前 (-silhead) |
char* | tail_silname | 話の最後にある無音の単語の名前 (-siltail) |
型 | メンバ | |
---|---|---|
char* | hmmfilename | HMM定義のファイル名 (-h) |
char* | mapfilename | HMMListのファイル名 (-hlist) |
boolean | dnn.enabled | |
short | dnn.paramtype | 特徴型 (feature_type) |
char* | dnn.optionstring | (feature_options) |
int | dnn.num_threads | スレッド数 (num_threads)
(OpenMPが有効でなければ機能しない) |
intint | analysis.para.zmeanframe | (-zmeanframe) |
int | analysis.para.frameshift | フレームシフト長 (-fshift) |
int | analysis.para.framesize | ウィンドウサイズ (-fsize) |
検索パラメータ。
型 | メンバ | |
---|---|---|
short | id | 独特のID |
char[] | name | 独特の名前 |
boolean | successive.enabled | ショートポーズセグメンテーションが有効ならば、true (-spsegment) |
boolean | output.progout_flag | 第1パスで認識結果を部分的に出力するならば、true (-progout) |
int | output.progout_interval | 第1パスで認識結果を部分的に出力する間隔 (-progout) |
int | output.output_hypo_maxnum | 出力する文の数 (-output) |
int | pass1.specified_trellis_beam_width | 第1パスのビーム幅 (-b) |
int | pass2.nbest | 第2パスで見つける文の数 (-n) |
boolean | annotate.align_result_word_flag | 単語ごとのViterbiアラインメントを行うならば、true (-walign) |
boolean | annotate.align_result_phoneme_flag | 音素ごとのViterbiアラインメントを行うならば、true (-palign) |
boolean | annotate.align_result_state_flag | 状態ごとのViterbiアラインメントを行うならば、true (-salign) |
boolean | sw.fallback_pass1_flag | 第2パスの検索失敗時に第1パスの結果を利用するならば、true (-fallback1pass)
(これがtrueならば、認識失敗とはならない) |
第1パスで生成された、単語トレリス全体 (バックトレリス)
型 | メンバ | |
---|---|---|
int | framelen | フレーム長 |
int* | num | 各フレームのトレリス単語の数 |
TRELLIS_ATOM*** | rw | 各フレームのトレリス単語のリスト |
TRELLIS_ATOM** | list | |
BMALLOC_BASE* | root |
ベクトル計算用のインスタンス
型 | メンバ | |
---|---|---|
MFCCCalc | next | 次のインスタンスへのポインタ |
HTK_Param | param | 認識されたベクトル列のパラメータ |
int | f | 現在のフレーム位置
(ショートポーズセグメンテーションにより分割されているならば、分割されたインスタンス内での位置) |
boolean | segmented | 現在のインスタンスが分割されているならば、true pass1.c |
int | last_time | 現在のインスタンスが分割されているならば、そこで処理されたフレーム長 |
int | sparea_start | 現在のインスタンスが分割されているならば、次に認識を再開するフレーム位置 |
boolean | segmented_by_input | サンプルの入力用の関数が分割を要求しているならば、true |
入力発話のパラメータ
型 | メンバ | |
---|---|---|
HTK_Param_Header | header | パラメータヘッダー情報 |
unsigned int | samplenum | サンプル数 (header.samplenumと同じ) |
short | veclen | サンプルのベクトル長 |
BMALLOC_BASE* | mroot | 割り当てられたメモリ ブロックへのポインタ |
型 | メンバ | |
---|---|---|
boolean (*F)(int, void*) | ad_standby | デバイスを初期化する関数へのポインタ
|
boolean (*F)(char*) | ad_begin | 取り込むためのオーディオストリームを開く関数へのポインタ |
boolean (*F)() | ad_end | 取り込むためのオーディオストリームを閉じる関数へのポインタ |
boolean (*F)() | ad_resume | 録音の開始、再開する関数へのポインタ |
boolean (*F)() | ad_pause | 録音を一時停止する関数へのポインタ |
boolean (*F)() | ad_terminate | 録音を直ちに停止する関数へのポインタ |
int (*F)(SP16*, int) | ad_read | サンプルを読み込む関数へのポインタ |
char * (*F)() | ad_input_name | 現在の入力ソース名を返す関数へのポインタ |
int | c_length | ゼロクロス用のサイクルバッファの計算された長さ (開始部のマージンの長さに等しい) |
int | c_offset | |
ZEROCROSS | zc | ゼロクロス計算の作業領域 |
SP16* | buffer | 入力サンプルを保持するための一時的なバッファ |
int | bpmax | バッファの最大サイズ |
int | bp | 次のデータを格納するための現在の位置 |
int | current_len | バッファで処理された現在のサンプル数 |
boolean | is_valid_data | トリガされているならば、true |
int | nc | 現在の最後の無音セグメントの数 |
boolean | input_side_segment | ad_readによってセグメンテーションが要求されたならば、true |
boolean | end_of_stream | ストリームの末尾に達しているならば、true |
int | thres | 入力レベルのしきい値 (0~32767) |
int | noise_zerocross | サイクルバッファ内でのゼロクロス数の、計算されたしきい値 |
int | nc_max | 終了部のマージン用のデータ片 (fragment) の、計算された数 |
int | chunk_size | 音声の処理単位 |
boolean | adin_cut_on | 無音の区間ごとに切り出すならば、true
(jconf->detect.silence_cut の値から設定される) |
boolean | silence_cut_default | |
boolean | strip_flag | 無効なゼロサンプルをスキップするならば、true (jconf->preprocess.strip_zero_sample の値から設定される) |
boolean | enable_thread | |
boolean | need_zmean | zmeansourceを処理するならば、true
(jconf->preprocess.use_zmean の値から設定される) |
unsigned int | total_captured_len | 最初からこれまで記録されたサンプルの総数 |
unsigned int | last_trigger_len | 最新の音声領域の長さ (サンプル単位) |
unsigned int | last_trigger_sample | このサンプル内でトリガされた、最新の音声領域の位置 (サンプル単位) |
型 | メンバ | |
---|---|---|
DNNLayer | o | output layer |
DNNLayer* | h | hidden layer |
int | hnum | number of hidden layers |