<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>PocketSphinx: src/libpocketsphinx/ms_senone.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">PocketSphinx <span id="projectnumber">0.6</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('ms__senone_8h.html',''); </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <h1>src/libpocketsphinx/ms_senone.h</h1> </div> </div> <div class="contents"> <a href="ms__senone_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */</span> <a name="l00002"></a>00002 <span class="comment">/* ====================================================================</span> <a name="l00003"></a>00003 <span class="comment"> * Copyright (c) 1999-2004 Carnegie Mellon University. All rights</span> <a name="l00004"></a>00004 <span class="comment"> * reserved.</span> <a name="l00005"></a>00005 <span class="comment"> *</span> <a name="l00006"></a>00006 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span> <a name="l00007"></a>00007 <span class="comment"> * modification, are permitted provided that the following conditions</span> <a name="l00008"></a>00008 <span class="comment"> * are met:</span> <a name="l00009"></a>00009 <span class="comment"> *</span> <a name="l00010"></a>00010 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span> <a name="l00011"></a>00011 <span class="comment"> * notice, this list of conditions and the following disclaimer. </span> <a name="l00012"></a>00012 <span class="comment"> *</span> <a name="l00013"></a>00013 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span> <a name="l00014"></a>00014 <span class="comment"> * notice, this list of conditions and the following disclaimer in</span> <a name="l00015"></a>00015 <span class="comment"> * the documentation and/or other materials provided with the</span> <a name="l00016"></a>00016 <span class="comment"> * distribution.</span> <a name="l00017"></a>00017 <span class="comment"> *</span> <a name="l00018"></a>00018 <span class="comment"> * This work was supported in part by funding from the Defense Advanced </span> <a name="l00019"></a>00019 <span class="comment"> * Research Projects Agency and the National Science Foundation of the </span> <a name="l00020"></a>00020 <span class="comment"> * United States of America, and the CMU Sphinx Speech Consortium.</span> <a name="l00021"></a>00021 <span class="comment"> *</span> <a name="l00022"></a>00022 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND </span> <a name="l00023"></a>00023 <span class="comment"> * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, </span> <a name="l00024"></a>00024 <span class="comment"> * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</span> <a name="l00025"></a>00025 <span class="comment"> * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY</span> <a name="l00026"></a>00026 <span class="comment"> * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span> <a name="l00027"></a>00027 <span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT </span> <a name="l00028"></a>00028 <span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, </span> <a name="l00029"></a>00029 <span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY </span> <a name="l00030"></a>00030 <span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT </span> <a name="l00031"></a>00031 <span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE </span> <a name="l00032"></a>00032 <span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span> <a name="l00033"></a>00033 <span class="comment"> *</span> <a name="l00034"></a>00034 <span class="comment"> * ====================================================================</span> <a name="l00035"></a>00035 <span class="comment"> *</span> <a name="l00036"></a>00036 <span class="comment"> */</span> <a name="l00037"></a>00037 <span class="comment">/*</span> <a name="l00038"></a>00038 <span class="comment"> * senone.h -- Mixture density weights associated with each tied state.</span> <a name="l00039"></a>00039 <span class="comment"> *</span> <a name="l00040"></a>00040 <span class="comment"> * **********************************************</span> <a name="l00041"></a>00041 <span class="comment"> * CMU ARPA Speech Project</span> <a name="l00042"></a>00042 <span class="comment"> *</span> <a name="l00043"></a>00043 <span class="comment"> * Copyright (c) 1996 Carnegie Mellon University.</span> <a name="l00044"></a>00044 <span class="comment"> * ALL RIGHTS RESERVED.</span> <a name="l00045"></a>00045 <span class="comment"> * **********************************************</span> <a name="l00046"></a>00046 <span class="comment"> * </span> <a name="l00047"></a>00047 <span class="comment"> * HISTORY</span> <a name="l00048"></a>00048 <span class="comment"> * </span> <a name="l00049"></a>00049 <span class="comment"> * $Log$</span> <a name="l00050"></a>00050 <span class="comment"> * Revision 1.1 2006/04/05 20:27:30 dhdfu</span> <a name="l00051"></a>00051 <span class="comment"> * A Great Reorganzation of header files and executables</span> <a name="l00052"></a>00052 <span class="comment"> * </span> <a name="l00053"></a>00053 <span class="comment"> * Revision 1.7 2006/02/22 17:27:39 arthchan2003</span> <a name="l00054"></a>00054 <span class="comment"> * Merged from SPHINX3_5_2_RCI_IRII_BRANCH: 1, NOT doing truncation in the multi-stream GMM computation \n. 2, Added .s3cont. to be the alias of the old multi-stream GMM computation routine \n. 3, Added license \n. 4, Fixed dox-doc. \n</span> <a name="l00055"></a>00055 <span class="comment"> *</span> <a name="l00056"></a>00056 <span class="comment"> * Revision 1.6.4.4 2006/01/16 19:47:05 arthchan2003</span> <a name="l00057"></a>00057 <span class="comment"> * Removed the truncation of senone probability code.</span> <a name="l00058"></a>00058 <span class="comment"> *</span> <a name="l00059"></a>00059 <span class="comment"> * Revision 1.6.4.3 2005/08/03 18:53:43 dhdfu</span> <a name="l00060"></a>00060 <span class="comment"> * Add memory deallocation functions. Also move all the initialization</span> <a name="l00061"></a>00061 <span class="comment"> * of ms_mgau_model_t into ms_mgau_init (duh!), which entails removing it</span> <a name="l00062"></a>00062 <span class="comment"> * from decode_anytopo and friends.</span> <a name="l00063"></a>00063 <span class="comment"> *</span> <a name="l00064"></a>00064 <span class="comment"> * Revision 1.6.4.2 2005/07/20 19:39:01 arthchan2003</span> <a name="l00065"></a>00065 <span class="comment"> * Added licences in ms_* series of code.</span> <a name="l00066"></a>00066 <span class="comment"> *</span> <a name="l00067"></a>00067 <span class="comment"> * Revision 1.6.4.1 2005/07/05 05:47:59 arthchan2003</span> <a name="l00068"></a>00068 <span class="comment"> * Fixed dox-doc. struct level of documentation are included.</span> <a name="l00069"></a>00069 <span class="comment"> *</span> <a name="l00070"></a>00070 <span class="comment"> * Revision 1.6 2005/06/21 19:00:19 arthchan2003</span> <a name="l00071"></a>00071 <span class="comment"> * Add more detail comments to ms_senone.h</span> <a name="l00072"></a>00072 <span class="comment"> *</span> <a name="l00073"></a>00073 <span class="comment"> * Revision 1.5 2005/06/21 18:57:31 arthchan2003</span> <a name="l00074"></a>00074 <span class="comment"> * 1, Fixed doxygen documentation. 2, Added $ keyword.</span> <a name="l00075"></a>00075 <span class="comment"> *</span> <a name="l00076"></a>00076 <span class="comment"> * Revision 1.2 2005/06/13 04:02:56 archan</span> <a name="l00077"></a>00077 <span class="comment"> * Fixed most doxygen-style documentation under libs3decoder.</span> <a name="l00078"></a>00078 <span class="comment"> *</span> <a name="l00079"></a>00079 <span class="comment"> * Revision 1.1.1.1 2005/03/24 15:24:00 archan</span> <a name="l00080"></a>00080 <span class="comment"> * I found Evandro's suggestion is quite right after yelling at him 2 days later. So I decide to check this in again without any binaries. (I have done make distcheck. ) . Again, this is a candidate for s3.6 and I believe I need to work out 4-5 intermediate steps before I can complete the first prototype. That's why I keep local copies. </span> <a name="l00081"></a>00081 <span class="comment"> *</span> <a name="l00082"></a>00082 <span class="comment"> * Revision 1.4 2004/12/06 10:52:01 arthchan2003</span> <a name="l00083"></a>00083 <span class="comment"> * Enable doxygen documentation in libs3decoder</span> <a name="l00084"></a>00084 <span class="comment"> *</span> <a name="l00085"></a>00085 <span class="comment"> * Revision 1.3 2004/11/13 21:25:19 arthchan2003</span> <a name="l00086"></a>00086 <span class="comment"> * commit of 1, absolute CI-GMMS , 2, fast CI senone computation using svq, 3, Decrease the number of static variables, 4, fixing the random generator problem of vector_vqgen, 5, move all unused files to NOTUSED</span> <a name="l00087"></a>00087 <span class="comment"> *</span> <a name="l00088"></a>00088 <span class="comment"> * Revision 1.2 2004/08/31 08:43:47 arthchan2003</span> <a name="l00089"></a>00089 <span class="comment"> * Fixing _cpluscplus directive</span> <a name="l00090"></a>00090 <span class="comment"> *</span> <a name="l00091"></a>00091 <span class="comment"> * Revision 1.1 2004/08/09 00:17:11 arthchan2003</span> <a name="l00092"></a>00092 <span class="comment"> * Incorporating s3.0 align, at this point, there are still some small problems in align but they don't hurt. For example, the score doesn't match with s3.0 and the output will have problem if files are piped to /dev/null/. I think we can go for it.</span> <a name="l00093"></a>00093 <span class="comment"> *</span> <a name="l00094"></a>00094 <span class="comment"> * Revision 1.1 2003/02/14 14:40:34 cbq</span> <a name="l00095"></a>00095 <span class="comment"> * Compiles. Analysis is probably hosed.</span> <a name="l00096"></a>00096 <span class="comment"> *</span> <a name="l00097"></a>00097 <span class="comment"> * Revision 1.1 2000/04/24 09:39:41 lenzo</span> <a name="l00098"></a>00098 <span class="comment"> * s3 import.</span> <a name="l00099"></a>00099 <span class="comment"> *</span> <a name="l00100"></a>00100 <span class="comment"> * </span> <a name="l00101"></a>00101 <span class="comment"> * 13-Dec-95 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University.</span> <a name="l00102"></a>00102 <span class="comment"> * Added senone_eval_all().</span> <a name="l00103"></a>00103 <span class="comment"> * </span> <a name="l00104"></a>00104 <span class="comment"> * 12-Nov-95 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University.</span> <a name="l00105"></a>00105 <span class="comment"> * Created.</span> <a name="l00106"></a>00106 <span class="comment"> */</span> <a name="l00107"></a>00107 <a name="l00108"></a>00108 <a name="l00109"></a>00109 <span class="preprocessor">#ifndef _LIBFBS_SENONE_H_</span> <a name="l00110"></a>00110 <span class="preprocessor"></span><span class="preprocessor">#define _LIBFBS_SENONE_H_</span> <a name="l00111"></a>00111 <span class="preprocessor"></span> <a name="l00112"></a>00112 <a name="l00113"></a>00113 <span class="comment">/* SphinxBase headers. */</span> <a name="l00114"></a>00114 <span class="preprocessor">#include <sphinxbase/err.h></span> <a name="l00115"></a>00115 <span class="preprocessor">#include <sphinxbase/ckd_alloc.h></span> <a name="l00116"></a>00116 <span class="preprocessor">#include <sphinxbase/cmd_ln.h></span> <a name="l00117"></a>00117 <span class="preprocessor">#include <sphinxbase/logmath.h></span> <a name="l00118"></a>00118 <a name="l00119"></a>00119 <span class="comment">/* Local headers. */</span> <a name="l00120"></a>00120 <span class="preprocessor">#include "<a class="code" href="ms__gauden_8h.html" title="(Sphinx 3.0 specific) Gaussian density module.">ms_gauden.h</a>"</span> <a name="l00121"></a>00121 <span class="preprocessor">#include "<a class="code" href="bin__mdef_8h.html" title="Binary format model definition files, with support for heterogeneous topologies and variable-size N-p...">bin_mdef.h</a>"</span> <a name="l00122"></a>00122 <a name="l00131"></a>00131 <span class="preprocessor">#ifdef __cplusplus</span> <a name="l00132"></a>00132 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { <a name="l00133"></a>00133 <span class="preprocessor">#endif</span> <a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor">#if 0</span> <a name="l00135"></a>00135 <span class="preprocessor"></span>} <span class="comment">/* Fool Emacs into not indenting things. */</span> <a name="l00136"></a>00136 <span class="preprocessor">#endif</span> <a name="l00137"></a>00137 <span class="preprocessor"></span> <a name="l00138"></a><a class="code" href="ms__senone_8h.html#af5f6b21f81649ae1d6ce57f5564d3be0">00138</a> <span class="keyword">typedef</span> uint8 <a class="code" href="ms__senone_8h.html#af5f6b21f81649ae1d6ce57f5564d3be0" title="Senone logs3-probs, truncated to 8 bits.">senprob_t</a>; <a name="l00147"></a><a class="code" href="structsenone__t.html">00147</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <a name="l00148"></a><a class="code" href="structsenone__t.html#aa7e23dc8a18875bad1c1b9c322f3cad4">00148</a> <a class="code" href="ms__senone_8h.html#af5f6b21f81649ae1d6ce57f5564d3be0" title="Senone logs3-probs, truncated to 8 bits.">senprob_t</a> ***pdf; <a name="l00155"></a><a class="code" href="structsenone__t.html#aa8621fab8c5b7a13493cae5549a5e0de">00155</a> logmath_t *<a class="code" href="structsenone__t.html#aa8621fab8c5b7a13493cae5549a5e0de" title="log math computation">lmath</a>; <a name="l00156"></a><a class="code" href="structsenone__t.html#a769aa6d2fc16b33c0b9a1cbf31592422">00156</a> uint32 <a class="code" href="structsenone__t.html#a769aa6d2fc16b33c0b9a1cbf31592422" title="Number senones in this set.">n_sen</a>; <a name="l00157"></a><a class="code" href="structsenone__t.html#a6a0aa50b8ff66e06f7305d1c8e4a17be">00157</a> uint32 <a class="code" href="structsenone__t.html#a6a0aa50b8ff66e06f7305d1c8e4a17be" title="Number feature streams.">n_feat</a>; <a name="l00158"></a><a class="code" href="structsenone__t.html#a3c382a37dc9cb650d910bb881c52b336">00158</a> uint32 <a class="code" href="structsenone__t.html#a3c382a37dc9cb650d910bb881c52b336" title="Number codewords per codebook,stream.">n_cw</a>; <a name="l00159"></a><a class="code" href="structsenone__t.html#a71cf7b41b2334216944380296c03c99a">00159</a> uint32 <a class="code" href="structsenone__t.html#a71cf7b41b2334216944380296c03c99a" title="Number gaussian density codebooks referred to by senones.">n_gauden</a>; <a name="l00160"></a><a class="code" href="structsenone__t.html#af3f77493f07dd1740084ea8dc4541cb1">00160</a> float32 <a class="code" href="structsenone__t.html#af3f77493f07dd1740084ea8dc4541cb1" title="floor applied to each PDF entry">mixwfloor</a>; <a name="l00161"></a><a class="code" href="structsenone__t.html#a5f0eee5a11e7c10b20e0cce10305edfc">00161</a> uint32 *<a class="code" href="structsenone__t.html#a5f0eee5a11e7c10b20e0cce10305edfc" title="senone-id -&gt; mgau-id mapping for senones in this set">mgau</a>; <a name="l00162"></a><a class="code" href="structsenone__t.html#a58af20c262d9d633f53c8c1c7e60459e">00162</a> int32 *<a class="code" href="structsenone__t.html#a58af20c262d9d633f53c8c1c7e60459e" title="The feature score for every senone, will be initialized inside senone_eval_all.">featscr</a>; <a name="l00163"></a><a class="code" href="structsenone__t.html#ad9b17f6aecf056fcea0eaaab0c7d35ca">00163</a> int32 <a class="code" href="structsenone__t.html#ad9b17f6aecf056fcea0eaaab0c7d35ca" title="Inverse acoustic weight.">aw</a>; <a name="l00164"></a>00164 } <a class="code" href="structsenone__t.html" title="8-bit senone PDF structure.">senone_t</a>; <a name="l00165"></a>00165 <a name="l00166"></a>00166 <a name="l00173"></a>00173 <a class="code" href="structsenone__t.html" title="8-bit senone PDF structure.">senone_t</a> *senone_init (<a class="code" href="structgauden__t.html" title="Multivariate gaussian mixture density parameters.">gauden_t</a> *g, <a name="l00174"></a>00174 <span class="keywordtype">char</span> <span class="keyword">const</span> *mixwfile, <a name="l00175"></a>00175 <span class="keywordtype">char</span> <span class="keyword">const</span> *mgau_mapfile, <a name="l00178"></a>00178 float32 mixwfloor, <a name="l00179"></a>00179 logmath_t *lmath, <a name="l00180"></a>00180 <a class="code" href="structbin__mdef__s.html">bin_mdef_t</a> *mdef <a name="l00181"></a>00181 ); <a name="l00182"></a>00182 <a name="l00184"></a>00184 <span class="keywordtype">void</span> senone_free(<a class="code" href="structsenone__t.html" title="8-bit senone PDF structure.">senone_t</a> *s); <a name="l00190"></a>00190 int32 <a class="code" href="ms__senone_8h.html#a0ef3f343c1f7a9504a1ceda2d7383000" title="Evaluate the score for the given senone wrt to the given top N gaussian codewords.">senone_eval</a> (<a class="code" href="structsenone__t.html" title="8-bit senone PDF structure.">senone_t</a> *s, <span class="keywordtype">int</span> <span class="keywordtype">id</span>, <a name="l00191"></a>00191 <a class="code" href="structgauden__dist__t.html" title="Structure to store distance (density) values for a given input observation wrt density values in some...">gauden_dist_t</a> **dist, <a name="l00195"></a>00195 <span class="keywordtype">int</span> n_top <a name="l00196"></a>00196 ); <a name="l00197"></a>00197 <a name="l00198"></a>00198 <span class="preprocessor">#if 0</span> <a name="l00199"></a>00199 <span class="preprocessor"></span>{ <span class="comment">/* Stop indent from complaining */</span> <a name="l00200"></a>00200 <span class="preprocessor">#endif</span> <a name="l00201"></a>00201 <span class="preprocessor"></span><span class="preprocessor">#ifdef __cplusplus</span> <a name="l00202"></a>00202 <span class="preprocessor"></span>} <a name="l00203"></a>00203 <span class="preprocessor">#endif</span> <a name="l00204"></a>00204 <span class="preprocessor"></span> <a name="l00205"></a>00205 <span class="preprocessor">#endif</span> </pre></div></div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="ms__senone_8h.html">ms_senone.h</a> </li> <li class="footer">Generated on Wed Apr 20 2011 for PocketSphinx by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li> </ul> </div> </body> </html>