PocketSphinx  5prealpha
ptm_mgau.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /* ====================================================================
3  * Copyright (c) 1999-2010 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  * This work was supported in part by funding from the Defense Advanced
19  * Research Projects Agency and the National Science Foundation of the
20  * United States of America, and the CMU Sphinx Speech Consortium.
21  *
22  * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND
23  * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
24  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
25  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
26  * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  *
34  * ====================================================================
35  *
36  */
42 #ifndef __PTM_MGAU_H__
43 #define __PTM_MGAU_H__
44 
45 /* SphinxBase headesr. */
46 #include <sphinxbase/fe.h>
47 #include <sphinxbase/logmath.h>
48 #include <sphinxbase/mmio.h>
49 
50 /* Local headers. */
51 #include "acmod.h"
52 #include "hmm.h"
53 #include "bin_mdef.h"
54 #include "ms_gauden.h"
55 
56 typedef struct ptm_mgau_s ptm_mgau_t;
57 
58 typedef struct ptm_topn_s {
59  int32 cw;
60  int32 score;
61 } ptm_topn_t;
62 
63 typedef struct ptm_fast_eval_s {
65  bitvec_t *mgau_active;
67 
68 struct ptm_mgau_s {
70  cmd_ln_t *config;
72  int32 n_sen;
73  uint8 *sen2cb;
74  uint8 ***mixw;
75  mmio_file_t *sendump_mmap;/* Memory map for mixw (or NULL if not mmap) */
76  uint8 *mixw_cb; /* Mixture weight codebook, if any (assume it contains 16 values) */
77  int16 max_topn;
78  int16 ds_ratio;
79 
84  /* Log-add table for compressed values. */
85  logmath_t *lmath_8b;
86  /* Log-add object for reloading means/variances. */
87  logmath_t *lmath;
88 };
89 
90 ps_mgau_t *ptm_mgau_init(acmod_t *acmod, bin_mdef_t *mdef);
91 void ptm_mgau_free(ps_mgau_t *s);
93  int16 *senone_scores,
94  uint8 *senone_active,
95  int32 n_senone_active,
96  mfcc_t **featbuf,
97  int32 frame,
98  int32 compallsen);
99 int ptm_mgau_mllr_transform(ps_mgau_t *s,
100  ps_mllr_t *mllr);
101 
102 
103 #endif /* __PTM_MGAU_H__ */
ptm_topn_t *** topn
Top-N for each codebook (mgau x feature x topn)
Definition: ptm_mgau.h:64
uint8 * sen2cb
Senone to codebook mapping.
Definition: ptm_mgau.h:73
int n_fast_hist
Number of past frames tracked.
Definition: ptm_mgau.h:82
gauden_t * g
Set of Gaussians.
Definition: ptm_mgau.h:71
Binary format model definition files, with support for heterogeneous topologies and variable-size N-p...
Implementation of HMM base structure.
int ptm_mgau_frame_eval(ps_mgau_t *s, int16 *senone_scores, uint8 *senone_active, int32 n_senone_active, mfcc_t **featbuf, int32 frame, int32 compallsen)
Compute senone scores for the active senones.
Definition: ptm_mgau.c:409
ps_mgau_t base
base structure.
Definition: ptm_mgau.h:69
(Sphinx 3.0 specific) Gaussian density module.
Feature space linear transform structure.
Definition: acmod.h:82
cmd_ln_t * config
Configuration parameters.
Definition: ptm_mgau.h:70
uint8 *** mixw
Mixture weight distributions by feature, codeword, senone.
Definition: ptm_mgau.h:74
ptm_fast_eval_t * hist
Fast evaluation info for past frames.
Definition: ptm_mgau.h:80
ptm_fast_eval_t * f
Fast eval info for current frame.
Definition: ptm_mgau.h:81
int32 cw
Codeword index.
Definition: ptm_mgau.h:59
int32 score
Score.
Definition: ptm_mgau.h:60
Multivariate gaussian mixture density parameters.
Definition: ms_gauden.h:82
bitvec_t * mgau_active
Set of active codebooks.
Definition: ptm_mgau.h:65
Acoustic model structures for PocketSphinx.
int32 n_sen
Number of senones.
Definition: ptm_mgau.h:72
Acoustic model structure.
Definition: acmod.h:148