PocketSphinx 5prealpha
fsg_search_internal.h
1/* -*- c-basic-offset:4; indent-tabs-mode: nil -*- */
2/* ====================================================================
3 * Copyright (c) 1999-2004 Carnegie Mellon University. All rights
4 * reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the
16 * distribution.
17 *
18 *
19 * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND
20 * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
23 * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 *
31 * ====================================================================
32 *
33 */
34
35/*
36 * fsg_search_internal.h -- Search structures for FSG decoding.
37 */
38
39
40#ifndef __S2_FSG_SEARCH_H__
41#define __S2_FSG_SEARCH_H__
42
43
44/* SphinxBase headers. */
45#include <sphinxbase/glist.h>
46#include <sphinxbase/cmd_ln.h>
47#include <sphinxbase/fsg_model.h>
48
49/* Local headers. */
51#include "hmm.h"
52#include "fsg_history.h"
53#include "fsg_lextree.h"
54
64
68typedef struct fsg_search_s {
69 ps_search_t base;
70
73 fsg_model_t *fsg;
78 glist_t pnode_active;
81 int32 beam_orig;
82 int32 pbeam_orig;
83 int32 wbeam_orig;
84 float32 beam_factor;
87 int32 beam, pbeam, wbeam;
88 int32 lw, pip, wip;
91 uint8 final;
92 uint8 bestpath;
94 float32 ascale;
96 int32 bestscore;
99 int32 ascr, lscr;
104 ptmr_t perf;
105 int32 n_tot_frame;
106
108
109/* Access macros */
110#define fsg_search_frame(s) ((s)->frame)
111
115ps_search_t *fsg_search_init(const char *name,
116 fsg_model_t *fsg,
117 cmd_ln_t *config,
118 acmod_t *acmod,
119 dict_t *dict,
120 dict2pid_t *d2p);
121
125void fsg_search_free(ps_search_t *search);
126
130int fsg_search_reinit(ps_search_t *fsgs, dict_t *dict, dict2pid_t *d2p);
131
136int fsg_search_start(ps_search_t *search);
137
141int fsg_search_step(ps_search_t *search, int frame_idx);
142
146int fsg_search_finish(ps_search_t *search);
147
151char const *fsg_search_hyp(ps_search_t *search, int32 *out_score);
152
153#endif
Implementation of HMM base structure.
int32 frame_idx_t
Type for frame index values.
Definition hmm.h:64
Internal implementation of PocketSphinx decoder.
Acoustic model structure.
Definition acmod.h:148
Building composite triphone (as well as word internal triphones) with the dictionary.
Definition dict2pid.h:84
a structure for a dictionary.
Definition dict.h:76
Definition fsg_history.h:95
Collection of lextrees for an FSG.
Implementation of FSG search (and "FSG set") structure.
int32 beam_orig
Global pruning threshold.
int32 bpidx_start
First history entry index this frame.
glist_t pnode_active
Those active in this frame.
float32 ascale
Acoustic score scale for posterior probabilities.
int32 bestscore
For beam pruning.
int32 n_sen_eval
Total senones evaluated this utt.
int32 lscr
Total acoustic and lm score for utt.
hmm_context_t * hmmctx
HMM context.
int32 pbeam_orig
Pruning threshold for phone transition.
int32 n_hmm_eval
Total HMMs evaluated this utt.
int32 wbeam_orig
Pruning threshold for word exit.
float32 beam_factor
Dynamic/adaptive factor (<=1) applied to above beams to determine actual effective beams.
glist_t pnode_active_next
Those activated for the next frame.
fsg_model_t * fsg
FSG model.
uint8 bestpath
Whether to run bestpath search and confidence annotation at end.
struct fsg_history_s * history
For storing the Viterbi search history.
struct fsg_lextree_s * lextree
Lextree structure for the currently active FSG.
frame_idx_t frame
Current frame.
ptmr_t perf
Performance counter.
int32 wip
Language weights.
int32 wbeam
Effective beams after applying beam_factor.
Segmentation "iterator" for FSG history.
int16 cur
Current position in hist.
ps_seg_t base
Base structure.
int16 n_hist
Number of history entries.
fsg_hist_entry_t ** hist
Sequence of history entries.
Shared information between a set of HMMs.
Base structure for search module.
Base structure for hypothesis segmentation iterator.