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. */
50
#include "
pocketsphinx_internal.h
"
51
#include "
hmm.h
"
52
#include "fsg_history.h"
53
#include "fsg_lextree.h"
54
58
typedef
struct
fsg_seg_s
{
59
ps_seg_t
base
;
60
fsg_hist_entry_t
**
hist
;
61
int16
n_hist
;
62
int16
cur
;
63
}
fsg_seg_t
;
64
68
typedef
struct
fsg_search_s
{
69
ps_search_t
base;
70
71
hmm_context_t
*
hmmctx
;
73
fsg_model_t *
fsg
;
74
struct
fsg_lextree_s
*
lextree
;
76
struct
fsg_history_s
*
history
;
78
glist_t
pnode_active
;
79
glist_t
pnode_active_next
;
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
;
90
frame_idx_t
frame
;
91
uint8
final
;
92
uint8
bestpath
;
94
float32
ascale
;
96
int32
bestscore
;
97
int32
bpidx_start
;
99
int32 ascr,
lscr
;
101
int32
n_hmm_eval
;
102
int32
n_sen_eval
;
104
ptmr_t
perf
;
105
int32 n_tot_frame;
106
107
}
fsg_search_t
;
108
109
/* Access macros */
110
#define fsg_search_frame(s) ((s)->frame)
111
115
ps_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
125
void
fsg_search_free(
ps_search_t
*search);
126
130
int
fsg_search_reinit(
ps_search_t
*fsgs,
dict_t
*dict,
dict2pid_t
*d2p);
131
136
int
fsg_search_start(
ps_search_t
*search);
137
141
int
fsg_search_step(
ps_search_t
*search,
int
frame_idx);
142
146
int
fsg_search_finish(
ps_search_t
*search);
147
151
char
const
*fsg_search_hyp(
ps_search_t
*search, int32 *out_score);
152
153
#endif
fsg_lextree_s
Collection of lextrees for an FSG.
Definition:
fsg_lextree.h:180
frame_idx_t
int32 frame_idx_t
Type for frame index values.
Definition:
hmm.h:64
fsg_search_s::lscr
int32 lscr
Total acoustic and lm score for utt.
Definition:
fsg_search_internal.h:99
fsg_search_s::frame
frame_idx_t frame
Current frame.
Definition:
fsg_search_internal.h:90
fsg_search_s::history
struct fsg_history_s * history
For storing the Viterbi search history.
Definition:
fsg_search_internal.h:76
fsg_search_s::wbeam
int32 wbeam
Effective beams after applying beam_factor.
Definition:
fsg_search_internal.h:87
pocketsphinx_internal.h
fsg_search_s::pnode_active_next
glist_t pnode_active_next
Those activated for the next frame.
Definition:
fsg_search_internal.h:79
ps_search_s
Base structure for search module.
Definition:
pocketsphinx_internal.h:98
ps_seg_s
Base structure for hypothesis segmentation iterator.
Definition:
pocketsphinx_internal.h:178
hmm_context_t
Shared information between a set of HMMs.
fsg_search_s::lextree
struct fsg_lextree_s * lextree
Lextree structure for the currently active FSG.
Definition:
fsg_search_internal.h:74
hmm.h
HMM data structure and operation.
fsg_seg_s::hist
fsg_hist_entry_t ** hist
Sequence of history entries.
Definition:
fsg_search_internal.h:60
fsg_search_s::pnode_active
glist_t pnode_active
Those active in this frame.
Definition:
fsg_search_internal.h:78
fsg_history_s
Definition:
fsg_history.h:143
fsg_hist_entry_s
Definition:
fsg_history.h:95
fsg_search_s::bpidx_start
int32 bpidx_start
First history entry index this frame.
Definition:
fsg_search_internal.h:97
dict2pid_t
Building composite triphone (as well as word internal triphones) with the dictionary.
Definition:
dict2pid.h:84
fsg_search_s::hmmctx
hmm_context_t * hmmctx
HMM context.
Definition:
fsg_search_internal.h:71
fsg_seg_s::base
ps_seg_t base
Base structure.
Definition:
fsg_search_internal.h:59
fsg_search_s::beam_orig
int32 beam_orig
Global pruning threshold.
Definition:
fsg_search_internal.h:81
fsg_search_s::ascale
float32 ascale
Acoustic score scale for posterior probabilities.
Definition:
fsg_search_internal.h:94
fsg_search_s::n_sen_eval
int32 n_sen_eval
Total senones evaluated this utt.
Definition:
fsg_search_internal.h:102
fsg_seg_s::n_hist
int16 n_hist
Number of history entries.
Definition:
fsg_search_internal.h:61
fsg_search_s::pbeam_orig
int32 pbeam_orig
Pruning threshold for phone transition.
Definition:
fsg_search_internal.h:82
fsg_seg_s
Segmentation "iterator" for FSG history.
Definition:
fsg_search_internal.h:58
fsg_search_s::wbeam_orig
int32 wbeam_orig
Pruning threshold for word exit.
Definition:
fsg_search_internal.h:83
fsg_search_s::fsg
fsg_model_t * fsg
FSG model.
Definition:
fsg_search_internal.h:73
dict_t
a structure for a dictionary.
Definition:
dict.h:76
fsg_search_s::beam_factor
float32 beam_factor
Dynamic/adaptive factor (<=1) applied to above beams to determine actual effective beams.
Definition:
fsg_search_internal.h:84
fsg_search_s::bestscore
int32 bestscore
For beam pruning.
Definition:
fsg_search_internal.h:96
fsg_seg_s::cur
int16 cur
Current position in hist.
Definition:
fsg_search_internal.h:62
acmod_s
Acoustic model structure.
Definition:
acmod.h:148
fsg_search_s
Implementation of FSG search (and "FSG set") structure.
Definition:
fsg_search_internal.h:68
fsg_search_s::n_hmm_eval
int32 n_hmm_eval
Total HMMs evaluated this utt.
Definition:
fsg_search_internal.h:101
fsg_search_s::bestpath
uint8 bestpath
Whether to run bestpath search and confidence annotation at end.
Definition:
fsg_search_internal.h:92
fsg_search_s::wip
int32 wip
Language weights.
Definition:
fsg_search_internal.h:88
fsg_search_s::perf
ptmr_t perf
Performance counter.
Definition:
fsg_search_internal.h:104
src
libpocketsphinx
fsg_search_internal.h
Generated by
1.8.17