PocketSphinx  5prealpha
ngram_search.h File Reference

N-Gram based multi-pass search ("FBS") More...

#include <sphinxbase/cmd_ln.h>
#include <sphinxbase/logmath.h>
#include <sphinxbase/ngram_model.h>
#include <sphinxbase/listelem_alloc.h>
#include <sphinxbase/err.h>
#include "pocketsphinx_internal.h"
#include "hmm.h"

Go to the source code of this file.

Data Structures

struct  chan_s
 Lexical tree node data type. More...
 
struct  root_chan_s
 Lexical tree node data type for the first phone (root) of each dynamic HMM tree structure. More...
 
struct  bptbl_s
 Back pointer table (forward pass lattice; actually a tree) More...
 
struct  bptbl_seg_s
 Segmentation "iterator" for backpointer table results. More...
 
struct  lastphn_cand_s
 
struct  last_ltrans_t
 
struct  cand_sf_t
 
struct  bestbp_rc_s
 
struct  ngram_search_stats_s
 Various statistics for profiling. More...
 
struct  ngram_search_s
 N-Gram search module structure. More...
 

Macros

#define CAND_SF_ALLOCSIZE   32
 
#define NO_BP   -1
 

Typedefs

typedef struct chan_s chan_t
 Lexical tree node data type. More...
 
typedef struct root_chan_s root_chan_t
 Lexical tree node data type for the first phone (root) of each dynamic HMM tree structure. More...
 
typedef struct bptbl_s bptbl_t
 Back pointer table (forward pass lattice; actually a tree)
 
typedef struct bptbl_seg_s bptbl_seg_t
 Segmentation "iterator" for backpointer table results.
 
typedef struct lastphn_cand_s lastphn_cand_t
 
typedef struct bestbp_rc_s bestbp_rc_t
 
typedef struct ngram_search_stats_s ngram_search_stats_t
 Various statistics for profiling.
 
typedef struct ngram_search_s ngram_search_t
 

Functions

ps_search_tngram_search_init (const char *name, ngram_model_t *lm, cmd_ln_t *config, acmod_t *acmod, dict_t *dict, dict2pid_t *d2p)
 Initialize the N-Gram search module.
 
void ngram_search_free (ps_search_t *ngs)
 Finalize the N-Gram search module.
 
int ngram_search_mark_bptable (ngram_search_t *ngs, int frame_idx)
 Record the current frame's index in the backpointer table. More...
 
void ngram_search_save_bp (ngram_search_t *ngs, int frame_idx, int32 w, int32 score, int32 path, int32 rc)
 Enter a word in the backpointer table.
 
void ngram_search_alloc_all_rc (ngram_search_t *ngs, int32 w)
 Allocate last phone channels for all possible right contexts for word w.
 
void ngram_search_free_all_rc (ngram_search_t *ngs, int32 w)
 Allocate last phone channels for all possible right contexts for word w.
 
int ngram_search_find_exit (ngram_search_t *ngs, int frame_idx, int32 *out_best_score)
 Find the best word exit for the current frame in the backpointer table. More...
 
char const * ngram_search_bp_hyp (ngram_search_t *ngs, int bpidx)
 Backtrace from a given backpointer index to obtain a word hypothesis. More...
 
void ngram_compute_seg_scores (ngram_search_t *ngs, float32 lwf)
 Compute language and acoustic scores for backpointer table entries.
 
ps_lattice_tngram_search_lattice (ps_search_t *search)
 Construct a word lattice from the current hypothesis.
 
int32 ngram_search_exit_score (ngram_search_t *ngs, bptbl_t *pbe, int rcphone)
 Get the exit score for a backpointer entry with a given right context.
 
void ngram_search_set_lm (ngram_model_t *lm)
 Sets the global language model. More...
 

Detailed Description

N-Gram based multi-pass search ("FBS")

Definition in file ngram_search.h.

Typedef Documentation

typedef struct chan_s chan_t

Lexical tree node data type.

Not the first HMM for words, which multiplex HMMs based on different left contexts. This structure is used both in the dynamic HMM tree structure and in the per-word last-phone right context fanout.

typedef struct root_chan_s root_chan_t

Lexical tree node data type for the first phone (root) of each dynamic HMM tree structure.

Each state may have a different parent static HMM. Most fields are similar to those in chan_t.

Function Documentation

char const* ngram_search_bp_hyp ( ngram_search_t ngs,
int  bpidx 
)

Backtrace from a given backpointer index to obtain a word hypothesis.

Returns
a read-only string with the best hypothesis.

Definition at line 550 of file ngram_search.c.

References bptbl_s::bp, dict_real_word(), ps_search_s::hyp_str, and bptbl_s::wid.

int ngram_search_find_exit ( ngram_search_t ngs,
int  frame_idx,
int32 *  out_best_score 
)

Find the best word exit for the current frame in the backpointer table.

Returns
the backpointer index of the best word exit.

Definition at line 506 of file ngram_search.c.

References BETTER_THAN, ngram_search_s::n_frame, bptbl_s::score, bptbl_s::wid, and WORST_SCORE.

int ngram_search_mark_bptable ( ngram_search_t ngs,
int  frame_idx 
)

Record the current frame's index in the backpointer table.

Returns
the current backpointer index.

Definition at line 329 of file ngram_search.c.

References ngram_search_s::frm_wordlist, and ngram_search_s::n_frame_alloc.

Referenced by ngram_fwdflat_finish(), ngram_fwdflat_search(), ngram_fwdtree_finish(), and ngram_fwdtree_search().

void ngram_search_set_lm ( ngram_model_t *  lm)

Sets the global language model.

Sets the language model to use if nothing was passed in configuration

Definition at line 1403 of file ngram_search.c.