#include <julius.h>
Include dependency graph for search_bestfirst_v1.c:
Go to the source code of this file.
Functions | |
void | free_node (NODE *node) |
< Define if want triphone debug messages | |
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 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.
|
< Define if want triphone debug messages Free a hypothesis node.
Definition at line 129 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(). |
|
Copy the content of node to another.
Definition at line 166 of file search_bestfirst_v1.c. Referenced by last_next_word(), and wchmm_fbs(). |
|
Allocate a new hypothesis node.
Definition at line 240 of file search_bestfirst_v1.c. Referenced by wchmm_fbs(). |
|
Allocate work area for trellis computation of a word. Definition at line 321 of file search_bestfirst_v1.c. Referenced by wchmm_fbs(). |
|
Free the work area for trellis computation of a word. Definition at line 359 of file search_bestfirst_v1.c. Referenced by wchmm_fbs(). |
|
Compute the forward viterbi for the last word to update forward scores and ready for word connection.
Definition at line 458 of file search_bestfirst_v1.c. Referenced by wchmm_fbs(). |
|
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.
Definition at line 1256 of file search_bestfirst_v1.c. Referenced by wchmm_fbs(). |
|
Generate an initial hypothesis from given word.
Definition at line 1544 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.
Definition at line 1650 of file search_bestfirst_v1.c. Referenced by wchmm_fbs(). |