パラメータベクトルの型のチェックと調整 [詳細]
#include <sent/stddefs.h>
#include <sent/htk_param.h>
#include <sent/htk_hmm.h>
関数 | |
static void | init_mark (HTK_Param *param) |
static void | free_mark () |
static void | mark_exclude_vector (int loc, int len) |
static void | exec_exclude_vectors (HTK_Param *new, HTK_Param *src) |
Execute exclusion for a parameter data according to the exclusion marks. | |
int | exec_exclude_one_vector (VECT *vec, int len) |
Execute deletion for one vector according to the exlusion marks. | |
int | guess_basenum (HTK_Param *p, short qualtype) |
boolean | select_param_vmark (HTK_Param *src, short dst_type_arg) |
HTK_Param * | new_select_param_kind (HTK_Param *src, short dst_type_arg) |
HTK_Param * | new_param_check_and_adjust (HTK_HMM_INFO *hmminfo, HTK_Param *param, boolean vflag) |
Top function to adjust parameter. | |
変数 | |
static int * | vmark |
Exclusion marks of input vector. | |
static int | vlen |
Length of above. | |
static int | vnewlen |
Adjusted new length. | |
static short | src_type |
Newly set source type. |
パラメータベクトルの型のチェックと調整
HMMと入力特徴パラメータの型をチェックします.タイプが一致しない場合, 特徴パラメータの一部を削除することで一致するよう調整できるかどうか を試みます.(例:特徴量ファイルが MFCC_E_D_Z (26次元) で与えられた とき,音響モデルが MFCC_E_D_N_Z (25次元) である場合,絶対値パワー項を 差し引くことで調整できます.)
調整アルゴリズムは以下のとおりです.
paramselect.c で定義されています。
static void init_mark | ( | HTK_Param * | param | ) | [static] |
Allocate new area for exclusion marks.
param | [in] input parameter |
paramselect.c の 65 行で定義されています。
参照元 select_param_vmark().
static void free_mark | ( | ) | [static] |
static void mark_exclude_vector | ( | int | loc, | |
int | len | |||
) | [static] |
Put exlusion marks for vector for len elements from loc -th dimension.
loc | [in] beginning dimension to mark | |
len | [in] number of dimension to mark from loc |
paramselect.c の 92 行で定義されています。
参照元 select_param_vmark().
Execute exclusion for a parameter data according to the exclusion marks.
Execute vector element exclusion by copying vector from src to new according to the current exclusion marks. The parameter vector of new will be newly allocated here.
new | [out] new adjusted parameter | |
src | [in] source parameter |
paramselect.c の 129 行で定義されています。
int exec_exclude_one_vector | ( | VECT * | vec, | |
int | len | |||
) |
Execute deletion for one vector according to the exlusion marks.
This can be used to frame-synchronous parameter adjustment.
vec | [I/O] target vector | |
len | [in] length of above |
paramselect.c の 168 行で定義されています。
int guess_basenum | ( | HTK_Param * | p, | |
short | qualtype | |||
) |
Guess the length of the base coefficient according to the total vector length and parameter type.
p | [in] parameter data | |
qualtype | [in] parameter type |
paramselect.c の 195 行で定義されています。
Compare source parameter type and required type in HTK HMM, and set mark.
src | [in] input parameter | |
dst_type_arg | [in] required parameter type |
paramselect.c の 227 行で定義されています。
Extracts needed parameter vector specified in dst_type_arg from src, and returns newly allocated parameter structure.
src | [in] input parameter | |
dst_type_arg | [in] required parameter type |
paramselect.c の 382 行で定義されています。
HTK_Param* new_param_check_and_adjust | ( | HTK_HMM_INFO * | hmminfo, | |
HTK_Param * | param, | |||
boolean | vflag | |||
) |
Top function to adjust parameter.
It compares the types for the given parameter param and HMM definition hmminfo. If type is not the same, adjustment will be tried.
If adjustment is performed, the input param will be freed and the newly allocated adjusted parameter will be returned. Otherwise, the original param will be returned.
hmminfo | [in] HTK HMM definition | |
param | [i/o] input parameter, will be freed if adjustment was performed in this function | |
vflag | [in] if TRUE, output verbose messages |
paramselect.c の 429 行で定義されています。