|
void | spr_cwr_node_seq_print (SprStream *dest, const char *lm, const SprCwrNodeSeq *node_seq, const char *rm, const SprCwrSearchSpace *search_space) |
| Print the given node sequence in textual format. More...
|
|
void | spr_cwr_sent_print (SprStream *dest, const SprCwrWordHist *word_hist, const SprCwrSearchSpace *search_space) |
|
int | spr_cwr_tokens_check (const SprCwrSearchSpace *search_space, SprCwrHashP2X *ctoken_htbl, SprCwrHashP2X *whist_htbl) |
| Check the token lists for errors and inconsistencies. More...
|
|
int | spr_cwr_search_space_check (const SprCwrSearchSpace *search_space) |
| Check the search space for errors and inconsistencies. More...
|
|
int | spr_cwr_search_info_reset (SprCwrSearchSpace *search_space, int spkr_id) |
|
void | spr_cwr_gauss_limit (SprCwrSearchSpace *search_space) |
|
void | spr_cwr_search_info_compact (SprCwrSearchSpace *search_space) |
|
void | spr_cwr_search_space_parts_print (SprStream *dest, const char *lm, int parts_mask, const char *rm) |
|
int | spr_cwr_search_space_modify (SprCwrSearchSpace *search_space, unsigned int action,...) |
|
SprCwrSearchSpace * | spr_cwr_search_space_free (SprCwrSearchSpace *search_space, SprMsgId *routine) |
|
SprCwrSearchSpace * | spr_cwr_search_space_new (void) |
|
SprCwrToken * | spr_iwr_best_word (int top_n, SprCwrSearchSpace *search_space) |
|
SprCwrToken * | spr_cwr_best_sent (SprCwrSearchSpace *search_space) |
|
SprCwrToken * | spr_cwr_find_best_token (SprCwrCToken **Best_ctoken, SprCwrSearchSpace *search_space) |
|
int | spr_cwr_data_process (SprStream *dfptr, int nfr, SprSspDesc *ssp_des, SprCwrSearchSpace *search_space) |
|
Search routines for Large Vocabulary Continuous Speech Recognition.
- Nomenclature
- state
- An HMM-state.
- phone
- The basic acoustical units used to model the words, e.g. phonemes, context dependent phonemes or phoneme classes.
- token
- A running hypothesis, named so in accordance to the token passing paradigm (see phd. thesis Odell). Note that the algorithm used here combines tokens into a collective token, and that tokens are conditioned.
- Search strategy
- The search is performed with the tokens as basic structure to expand and recombine. First, the states to be evaluated are marked and evaluated. Next, the token scores are adjusted to accommodate for the new observation, but no transitions are taken. In a second pass, the word internal transitions are followed (expanded), pruned and recombined when necessary. Finally the token list is pruned again (with an updated maximum score) to keep the number of hypotheses low (margin w.r.t. the best token and a maximum on the number of running tokens). At the start of the next frame, all inter word transitions are performed, using the pruning threshold of the previous frame.
- Word scores
-
The observation score:
-
The duration score:
-
The language model score: The score is a log. prob. that is upgraded by a fixed factor and a constant (word penalty start).
- Date
- Sep 1995
- Author
- Kris Demuynck
- Bug:
- If the FULL_DEBUG flag is set during compilation (-DFULL_DEBUG), some extra debug mesages and tests are added. These tests result in a serious overhead.
- Revision History:
- 26/11/96 - KD
- Converted the nomencalture (word hyp -> token) + the use of collective tokens.
- 02/12/97 - KD
- Adapted for state based lexica + removed the non markov duration possibilities.
- 05/09/98 - KD
- Added the continuous recognition mode
- 15/09/98 - KD
- Added the word lattices
- 25/08/02 - KD
- Added more LM-forwarding methods + changed modify_search_space() for faster loading
- 10/08/04 - KD
- Improved word lattice algorithm
- 20/08/04 - KD
- Defined sub-structures in the monolithic 'SearchSpace' structure for easier reusability of structures/code in derivated search engines