#include <julius.h>
Include dependency graph for search_bestfirst_v1.c:
Go to the source code of this file.
Functions | |
void | free_node_exec (NODE *node) |
void | free_node (NODE *node) |
void | clear_stocker () |
NODE * | cpy_node (NODE *dst, NODE *src) |
NODE * | newnode () |
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) |
Variables | |
static NODE * | stocker_root = NULL |
< Define if want triphone debug messages Node stocker for recycle | |
static LOGPROB * | wordtrellis [2] |
Buffer to compute viterbi path of a word. | |
static int | tn |
Temporal pointer to current buffer. | |
static int | tl |
Temporal pointer to previous buffer. | |
static LOGPROB * | g |
Buffer to hold source viterbi scores. | |
static HMM_Logical ** | phmmseq |
Phoneme sequence to be computed. | |
static int | phmmlen_max |
Maximum length of phmmseq. |
The cross-word triphone will be computed not at word expansion time, but at later pop up for rapid decoding. This is called "backscan" altgorithm. These functions are enabled when PASS2_STRICT_IWCD is UNDEFINED in config.h. If defined, "nextscan" functions in search_bestfirst_v2.c are used instead.
Here we use "delayed cross-word context handling" method for connection of next word and last word of the hypothesis for speeding up decoding:
This method avoid computing full context-dependency handling for all generated hypothesis in next_word(), and only re-compute it after primising ones are popped from stack later. This speeds up decoding. But since the context dependency is not considered in the total hypothesis score (computed in next_word()).
The actual implimentation:
Note that the actual implementation becomes a little more complicated to handle 1-phoneme words...
Definition in file search_bestfirst_v1.c.
void free_node_exec | ( | NODE * | node | ) |
Free a hypothesis node actually.
node | [in] hypothesis node |
Definition at line 140 of file search_bestfirst_v1.c.
Referenced by clear_stocker().
void free_node | ( | NODE * | node | ) |
Stock an unused hypothesis node for recycle.
node | [in] hypothesis node |
Definition at line 169 of file search_bestfirst_v1.c.
Referenced by free_all_nodes(), put_all_in_stack(), put_to_stack(), result_reorder_and_output(), and wchmm_fbs().
void clear_stocker | ( | ) |
Clear the node stocker for recycle.
Definition at line 199 of file search_bestfirst_v1.c.
Copy the content of node to another.
dst | [out] target hypothesis | |
src | [in] source hypothesis |
Definition at line 238 of file search_bestfirst_v1.c.
Referenced by last_next_word().
NODE* newnode | ( | ) |
Allocate a new hypothesis node. If the node stocker is not empty, the one in the stocker is re-used. Otherwise, allocate as new.
Definition at line 314 of file search_bestfirst_v1.c.
Referenced by wchmm_fbs().
void malloc_wordtrellis | ( | ) |
Allocate work area for trellis computation of a word.
Definition at line 418 of file search_bestfirst_v1.c.
Referenced by wchmm_fbs().
void free_wordtrellis | ( | ) |
Free the work area for trellis computation of a word.
Definition at line 456 of file search_bestfirst_v1.c.
Compute the forward viterbi for the last word to update forward scores and ready for word connection.
now | [i/o] hypothesis | |
param | [in] input parameter vectors |
Definition at line 555 of file search_bestfirst_v1.c.
void next_word | ( | NODE * | now, | |
NODE * | new, | |||
NEXTWORD * | nword, | |||
HTK_Param * | param, | |||
BACKTRELLIS * | backtrellis | |||
) |
Connect a new word to generate a next hypothesis. The optimal connection point and new sentence score of the new hypothesis will be estimated by looking up the corresponding words on word trellis.
now | [in] source hypothesis | |
new | [out] pointer to save the newly generated hypothesis | |
nword | [in] next word to be connected | |
param | [in] input parameter vector | |
backtrellis | [in] word trellis |
Definition at line 1353 of file search_bestfirst_v1.c.
void start_word | ( | NODE * | new, | |
NEXTWORD * | nword, | |||
HTK_Param * | param, | |||
BACKTRELLIS * | backtrellis | |||
) |
Generate an initial hypothesis from given word.
new | [out] pointer to save the newly generated hypothesis | |
nword | [in] words of the first candidates | |
param | [in] input parameter vector | |
backtrellis | [in] word trellis |
Definition at line 1587 of file search_bestfirst_v1.c.
Referenced by wchmm_fbs().
Hypothesis termination: set the final sentence scores of hypothesis that has already reached to the end.
now | [in] hypothesis that has already reached to the end | |
new | [out] pointer to save the final sentence information | |
param | [in] input parameter vectors |
Definition at line 1674 of file search_bestfirst_v1.c.