📄 recog.h
字号:
boolean global_modified; /** * LM User function entry point * */ LMFunc lmfunc; /** * pointer to next * */ struct __process_lm__ *next;} PROCESS_LM;/** * instance for a decoding, i.e. set of LM, AM and parameters * */typedef struct __recogprocess__ { /** * TRUE is this instance is alive, or FALSE when temporary disabled. * */ boolean live; /** * 1 if this instance should be made alive in the next recognition, * -1 if should become dead in the next recognition, * or 0 to leave unchanged. * */ short active; /** * search configuration data * */ JCONF_SEARCH *config; /** * acoustic model instance to use * */ PROCESS_AM *am; /** * language model instance to use * */ PROCESS_LM *lm; /** * Language model type: one of LM_UNDEF, LM_NGRAM, LM_DFA * */ int lmtype; /** * Variation type of language model: one of LM_NGRAM, LM_DFA_GRAMMAR, * LM_DFA_WORD * */ int lmvar; /** * Whether handle phone context dependency (local copy from jconf) */ boolean ccd_flag; /** * Word-conjunction HMM as tree lexicon */ WCHMM_INFO *wchmm; /** * Actual beam width of 1st pass (will be set on startup) */ int trellis_beam_width; /** * Word trellis index generated at the 1st pass */ BACKTRELLIS *backtrellis; /** * Work area for the first pass */ FSBeam pass1; /** * Work area for second pass * */ StackDecode pass2; /** * Word sequence of best hypothesis on 1st pass */ WORD_ID pass1_wseq[MAXSEQNUM]; /** * Number of words in @a pass1_wseq */ int pass1_wnum; /** * Score of @a pass1_wseq */ LOGPROB pass1_score; /** * Last maximum word hypothesis on the begin point for short-pause segmentation */ WORD_ID sp_break_last_word; /** * Last (not transparent) context word for LM for short-pause segmentation */ WORD_ID sp_break_last_nword; /** * Allow override of last context word from result of 2nd pass for short-pause segmentation */ boolean sp_break_last_nword_allow_override; /** * Search start word on 2nd pass for short-pause segmentation */ WORD_ID sp_break_2_begin_word; /** * Search end word on 2nd pass for short-pause segmentation */ WORD_ID sp_break_2_end_word; /** * Input length in frames */ int peseqlen; /** * GraphOut: total number of words in the generated graph */ int graph_totalwordnum; /** * Recognition results * */ Output result; /** * graphout: will be set from value from jconf->graph.enabled * */ boolean graphout; /** * Temporal matrix work area to hold the order relations between words * for confusion network construction. * */ char *order_matrix; /** * Number of words to be expressed in the order matrix for confusion network * construction. * */ int order_matrix_count;#ifdef DETERMINE int determine_count; LOGPROB determine_maxnodescore; boolean determined; LOGPROB determine_last_wid; boolean have_determine;#endif /** * TRUE if has something to output at CALLBACK_RESULT_PASS1_INTERIM. * */ boolean have_interim; /** * User-defined data hook. JuliusLib does not concern about its content. * */ void *hook; /** * Pointer to next instance * */ struct __recogprocess__ *next;} RecogProcess;/** * Top level instance for the whole recognition process * */typedef struct __Recog__ { /*******************************************/ /** * User-specified configuration parameters * */ Jconf *jconf; /*******************************************/ /** * A/D-in buffers * */ ADIn *adin; /** * Work area for the realtime processing of first pass */ RealBeam real; /** * Linked list of MFCC calculation/reading instances * */ MFCCCalc *mfcclist; /** * Linked list of acoustic model instances * */ PROCESS_AM *amlist; /** * Linked list of language model instances * */ PROCESS_LM *lmlist; /** * Linked list of recognition process instances * */ RecogProcess *process_list; /** * TRUE when engine is processing a segment (for short-pause segmentation) * */ boolean process_segment; /*******************************************/ /* inputs */ /** * Input speech data */ SP16 *speech; /** * Allocate length of speech * */ int speechalloclen; /** * Input length in samples */ int speechlen; /** * Input length in frames */ int peseqlen; /*******************************************/ /** * GMM definitions * */ HTK_HMM_INFO *gmm; /** * Pointer to MFCC instance for GMM * */ MFCCCalc *gmmmfcc; /** * Work area for GMM calculation * */ GMMCalc *gc; /*******************************************/ /* misc. */ /** * Status flag indicating whether the recognition is alive or not. If * TRUE, the process is currently activated, either monitoring an * audio input or recognizing the current input. If FALSE, the recognition * is now disabled until some activation command has been arrived from * client. While disabled, all the inputs are ignored. * * If set to FALSE in the program, Julius/Julian will stop after * the current recognition ends, and enter the disabled status. * */ boolean process_active; /** * If set to TRUE, Julius/Julian stops recognition immediately, terminating * the currenct recognition process, and enter into disabled status. * */ boolean process_want_terminate; /** * If set to TRUE, Julius/Julian stops recognition softly. If it is * performing recognition of the 1st pass, it immediately segments the * current input, process the 2nd pass, and output the result. Then it * enters the disabled status. * */ boolean process_want_reload; /** * When to refresh the global lexicon if received while recognition for * DFA * */ short gram_switch_input_method; /** * TRUE if audio stream is now open and engine is either listening * audio stream or recognizing a speech. FALSE on startup or when * in pause specified by a module command. * */ boolean process_online; /** * Function pointer to parameter vector computation for realtime 1st pass. * default: RealTimeMFCC() in realtime-1stpass.c * */ boolean (*calc_vector)(MFCCCalc *, SP16 *, int); /** * TRUE when recognition triggered and some recognition started, * FALSE if engine terminated with no input. * */ boolean triggered; /** * Callback entry point * */ void (*callback_function[SIZEOF_CALLBACK_ID][MAX_CALLBACK_HOOK])(); /** * Callback user data * */ void *callback_user_data[SIZEOF_CALLBACK_ID][MAX_CALLBACK_HOOK]; /** * Numbers of callbacks registered * */ int callback_function_num[SIZEOF_CALLBACK_ID]; /** * Callback function code list * */ int callback_list_code[MAX_CALLBACK_HOOK*SIZEOF_CALLBACK_ID]; /** * Callback function location list * */ int callback_list_loc[MAX_CALLBACK_HOOK*SIZEOF_CALLBACK_ID]; /** * Number of callbacks * */ int callback_num; /*******************************************/ /** * User-defined data hook. JuliusLib does not concern about its content. * */ void *hook;} Recog;#endif /* __J_RECOG_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -