<!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/pocketsphinx_internal.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('pocketsphinx__internal_8h.html',''); </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <h1>src/libpocketsphinx/pocketsphinx_internal.h</h1> </div> </div> <div class="contents"> <a href="pocketsphinx__internal_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) 2008 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 <a name="l00044"></a>00044 <span class="preprocessor">#ifndef __POCKETSPHINX_INTERNAL_H__</span> <a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define __POCKETSPHINX_INTERNAL_H__</span> <a name="l00046"></a>00046 <span class="preprocessor"></span> <a name="l00047"></a>00047 <span class="comment">/* SphinxBase headers. */</span> <a name="l00048"></a>00048 <span class="preprocessor">#include <sphinxbase/cmd_ln.h></span> <a name="l00049"></a>00049 <span class="preprocessor">#include <sphinxbase/logmath.h></span> <a name="l00050"></a>00050 <span class="preprocessor">#include <sphinxbase/fe.h></span> <a name="l00051"></a>00051 <span class="preprocessor">#include <sphinxbase/feat.h></span> <a name="l00052"></a>00052 <span class="preprocessor">#include <sphinxbase/profile.h></span> <a name="l00053"></a>00053 <a name="l00054"></a>00054 <span class="comment">/* Local headers. */</span> <a name="l00055"></a>00055 <span class="preprocessor">#include "pocketsphinx.h"</span> <a name="l00056"></a>00056 <span class="preprocessor">#include "<a class="code" href="acmod_8h.html" title="Acoustic model structures for PocketSphinx.">acmod.h</a>"</span> <a name="l00057"></a>00057 <span class="preprocessor">#include "<a class="code" href="dict_8h.html" title="Operations on dictionary.">dict.h</a>"</span> <a name="l00058"></a>00058 <span class="preprocessor">#include "<a class="code" href="dict2pid_8h.html" title="Building triphones for a dictionary.">dict2pid.h</a>"</span> <a name="l00059"></a>00059 <a name="l00063"></a><a class="code" href="pocketsphinx__internal_8h.html#adc3de4d62e46c5e6cb93d09fb61be8ee">00063</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_s</a> <a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a>; <a name="l00064"></a>00064 <a name="l00068"></a><a class="code" href="structps__searchfuncs__s.html">00068</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structps__searchfuncs__s.html" title="V-table for search algorithm.">ps_searchfuncs_s</a> { <a name="l00069"></a>00069 <span class="keywordtype">char</span> <span class="keyword">const</span> *name; <a name="l00070"></a>00070 <a name="l00071"></a>00071 int (*start)(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search); <a name="l00072"></a>00072 int (*step)(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search, <span class="keywordtype">int</span> frame_idx); <a name="l00073"></a>00073 int (*finish)(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search); <a name="l00074"></a>00074 int (*reinit)(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search, <a class="code" href="structdict__t.html" title="a structure for a dictionary.">dict_t</a> *dict, <a class="code" href="structdict2pid__t.html" title="Building composite triphone (as well as word internal triphones) with the dictionary.">dict2pid_t</a> *d2p); <a name="l00075"></a>00075 void (*free)(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search); <a name="l00076"></a>00076 <a name="l00077"></a>00077 <a class="code" href="structps__lattice__s.html" title="Word graph structure used in bestpath/nbest search.">ps_lattice_t</a> *(*lattice)(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search); <a name="l00078"></a>00078 <span class="keywordtype">char</span> <span class="keyword">const</span> *(*hyp)(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search, int32 *out_score); <a name="l00079"></a>00079 int32 (*prob)(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search); <a name="l00080"></a>00080 <a class="code" href="structps__seg__s.html" title="Base structure for hypothesis segmentation iterator.">ps_seg_t</a> *(*seg_iter)(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search, int32 *out_score); <a name="l00081"></a>00081 } <a class="code" href="pocketsphinx__internal_8h.html#a0eae078e32bd5f339792884c68aad8b3" title="V-table for search algorithm.">ps_searchfuncs_t</a>; <a name="l00082"></a>00082 <a name="l00086"></a><a class="code" href="structps__search__s.html">00086</a> <span class="keyword">struct </span><a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_s</a> { <a name="l00087"></a><a class="code" href="structps__search__s.html#aa51e88956bbe9c05359d32526180809b">00087</a> <a class="code" href="structps__searchfuncs__s.html" title="V-table for search algorithm.">ps_searchfuncs_t</a> *<a class="code" href="structps__search__s.html#aa51e88956bbe9c05359d32526180809b" title="V-table of search methods.">vt</a>; <a name="l00088"></a><a class="code" href="structps__search__s.html#a2a33b7698fb237b42e007788f65cd46c">00088</a> <a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *<a class="code" href="structps__search__s.html#a2a33b7698fb237b42e007788f65cd46c" title="Phoneme loop for lookahead.">pls</a>; <a name="l00089"></a><a class="code" href="structps__search__s.html#aa6e3e18165bbc70084a06575d5703042">00089</a> cmd_ln_t *<a class="code" href="structps__search__s.html#aa6e3e18165bbc70084a06575d5703042" title="Configuration.">config</a>; <a name="l00090"></a><a class="code" href="structps__search__s.html#a0fdf6fe8c4d9c28f10c48c09517c6b91">00090</a> <a class="code" href="structacmod__s.html" title="Acoustic model structure.">acmod_t</a> *<a class="code" href="structps__search__s.html#a0fdf6fe8c4d9c28f10c48c09517c6b91" title="Acoustic model.">acmod</a>; <a name="l00091"></a><a class="code" href="structps__search__s.html#a918f243fa966e72c47f697fb9e60089d">00091</a> <a class="code" href="structdict__t.html" title="a structure for a dictionary.">dict_t</a> *<a class="code" href="structps__search__s.html#a918f243fa966e72c47f697fb9e60089d" title="Pronunciation dictionary.">dict</a>; <a name="l00092"></a><a class="code" href="structps__search__s.html#a81b461e7ef3a080d046039e186134a15">00092</a> <a class="code" href="structdict2pid__t.html" title="Building composite triphone (as well as word internal triphones) with the dictionary.">dict2pid_t</a> *<a class="code" href="structps__search__s.html#a81b461e7ef3a080d046039e186134a15" title="Dictionary to senone mappings.">d2p</a>; <a name="l00093"></a><a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3">00093</a> <span class="keywordtype">char</span> *<a class="code" href="structps__search__s.html#aa398c736a887af97e42b2a562359adc3" title="Current hypothesis string.">hyp_str</a>; <a name="l00094"></a><a class="code" href="structps__search__s.html#a897f46c55d17e817ff1364f555b31463">00094</a> <a class="code" href="structps__lattice__s.html" title="Word graph structure used in bestpath/nbest search.">ps_lattice_t</a> *<a class="code" href="structps__search__s.html#a897f46c55d17e817ff1364f555b31463" title="Current hypothesis word graph.">dag</a>; <a name="l00095"></a><a class="code" href="structps__search__s.html#aa3020ef7bd4e56713dfe2fbad52e6e4f">00095</a> <a class="code" href="structps__latlink__s.html" title="Links between DAG nodes.">ps_latlink_t</a> *<a class="code" href="structps__search__s.html#aa3020ef7bd4e56713dfe2fbad52e6e4f" title="Final link in best path.">last_link</a>; <a name="l00096"></a><a class="code" href="structps__search__s.html#a721a656d0e34f7604ea8c52a1bdf14ff">00096</a> int32 <a class="code" href="structps__search__s.html#a721a656d0e34f7604ea8c52a1bdf14ff" title="Utterance posterior probability.">post</a>; <a name="l00097"></a><a class="code" href="structps__search__s.html#ad4d98deb905bd664ec44313ea0065b1a">00097</a> int32 <a class="code" href="structps__search__s.html#ad4d98deb905bd664ec44313ea0065b1a" title="Number of words known to search (may be less than in the dictionary)">n_words</a>; <a name="l00100"></a>00100 <span class="comment">/* Magical word IDs that must exist in the dictionary: */</span> <a name="l00101"></a><a class="code" href="structps__search__s.html#ae1a9fa33bfc851ec91ce96870714b3cc">00101</a> int32 <a class="code" href="structps__search__s.html#ae1a9fa33bfc851ec91ce96870714b3cc" title="Start word ID.">start_wid</a>; <a name="l00102"></a><a class="code" href="structps__search__s.html#ab6851b4675f38ab6b3683d75521f000b">00102</a> int32 <a class="code" href="structps__search__s.html#ab6851b4675f38ab6b3683d75521f000b" title="Silence word ID.">silence_wid</a>; <a name="l00103"></a><a class="code" href="structps__search__s.html#a0fb4d79f1084bdbbc0a808513f7c1ca7">00103</a> int32 <a class="code" href="structps__search__s.html#a0fb4d79f1084bdbbc0a808513f7c1ca7" title="Finish word ID.">finish_wid</a>; <a name="l00104"></a>00104 }; <a name="l00105"></a>00105 <a name="l00106"></a>00106 <span class="preprocessor">#define ps_search_base(s) ((ps_search_t *)s)</span> <a name="l00107"></a>00107 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_config(s) ps_search_base(s)->config</span> <a name="l00108"></a>00108 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_acmod(s) ps_search_base(s)->acmod</span> <a name="l00109"></a>00109 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_dict(s) ps_search_base(s)->dict</span> <a name="l00110"></a>00110 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_dict2pid(s) ps_search_base(s)->d2p</span> <a name="l00111"></a>00111 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_dag(s) ps_search_base(s)->dag</span> <a name="l00112"></a>00112 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_last_link(s) ps_search_base(s)->last_link</span> <a name="l00113"></a>00113 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_post(s) ps_search_base(s)->post</span> <a name="l00114"></a>00114 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_lookahead(s) ps_search_base(s)->pls</span> <a name="l00115"></a>00115 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_n_words(s) ps_search_base(s)->n_words</span> <a name="l00116"></a>00116 <span class="preprocessor"></span> <a name="l00117"></a>00117 <span class="preprocessor">#define ps_search_name(s) ps_search_base(s)->vt->name</span> <a name="l00118"></a>00118 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_start(s) (*(ps_search_base(s)->vt->start))(s)</span> <a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_step(s,i) (*(ps_search_base(s)->vt->step))(s,i)</span> <a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_finish(s) (*(ps_search_base(s)->vt->finish))(s)</span> <a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_reinit(s,d,d2p) (*(ps_search_base(s)->vt->reinit))(s,d,d2p)</span> <a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_free(s) (*(ps_search_base(s)->vt->free))(s)</span> <a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_lattice(s) (*(ps_search_base(s)->vt->lattice))(s)</span> <a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_hyp(s,sc) (*(ps_search_base(s)->vt->hyp))(s,sc)</span> <a name="l00125"></a>00125 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_prob(s) (*(ps_search_base(s)->vt->prob))(s)</span> <a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_seg_iter(s,sc) (*(ps_search_base(s)->vt->seg_iter))(s,sc)</span> <a name="l00127"></a>00127 <span class="preprocessor"></span> <a name="l00128"></a>00128 <span class="comment">/* For convenience... */</span> <a name="l00129"></a>00129 <span class="preprocessor">#define ps_search_silence_wid(s) ps_search_base(s)->silence_wid</span> <a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_start_wid(s) ps_search_base(s)->start_wid</span> <a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_finish_wid(s) ps_search_base(s)->finish_wid</span> <a name="l00132"></a>00132 <span class="preprocessor"></span> <a name="l00136"></a>00136 <span class="keywordtype">void</span> ps_search_init(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search, <a class="code" href="structps__searchfuncs__s.html" title="V-table for search algorithm.">ps_searchfuncs_t</a> *vt, <a name="l00137"></a>00137 cmd_ln_t *config, <a class="code" href="structacmod__s.html" title="Acoustic model structure.">acmod_t</a> *acmod, <a class="code" href="structdict__t.html" title="a structure for a dictionary.">dict_t</a> *dict, <a name="l00138"></a>00138 <a class="code" href="structdict2pid__t.html" title="Building composite triphone (as well as word internal triphones) with the dictionary.">dict2pid_t</a> *d2p); <a name="l00139"></a>00139 <a name="l00143"></a>00143 <span class="keywordtype">void</span> ps_search_base_reinit(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search, <a class="code" href="structdict__t.html" title="a structure for a dictionary.">dict_t</a> *dict, <a name="l00144"></a>00144 <a class="code" href="structdict2pid__t.html" title="Building composite triphone (as well as word internal triphones) with the dictionary.">dict2pid_t</a> *d2p); <a name="l00145"></a>00145 <a name="l00149"></a>00149 <span class="keywordtype">void</span> ps_search_deinit(<a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *search); <a name="l00150"></a>00150 <a name="l00151"></a><a class="code" href="structps__segfuncs__s.html">00151</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structps__segfuncs__s.html">ps_segfuncs_s</a> { <a name="l00152"></a>00152 <a class="code" href="structps__seg__s.html" title="Base structure for hypothesis segmentation iterator.">ps_seg_t</a> *(*seg_next)(<a class="code" href="structps__seg__s.html" title="Base structure for hypothesis segmentation iterator.">ps_seg_t</a> *seg); <a name="l00153"></a>00153 void (*seg_free)(<a class="code" href="structps__seg__s.html" title="Base structure for hypothesis segmentation iterator.">ps_seg_t</a> *seg); <a name="l00154"></a>00154 } <a class="code" href="structps__segfuncs__s.html">ps_segfuncs_t</a>; <a name="l00155"></a>00155 <a name="l00159"></a><a class="code" href="structps__seg__s.html">00159</a> <span class="keyword">struct </span><a class="code" href="structps__seg__s.html" title="Base structure for hypothesis segmentation iterator.">ps_seg_s</a> { <a name="l00160"></a><a class="code" href="structps__seg__s.html#a510362a2281e374c839397c3e5488515">00160</a> <a class="code" href="structps__segfuncs__s.html">ps_segfuncs_t</a> *<a class="code" href="structps__seg__s.html#a510362a2281e374c839397c3e5488515" title="V-table of seg methods.">vt</a>; <a name="l00161"></a><a class="code" href="structps__seg__s.html#a14168ddcb60e094dad36c7c920a79bb3">00161</a> <a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *<a class="code" href="structps__seg__s.html#a14168ddcb60e094dad36c7c920a79bb3" title="Search object from whence this came.">search</a>; <a name="l00162"></a><a class="code" href="structps__seg__s.html#a97a0dc7db931c7e3f98d23d21ce27f04">00162</a> <span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code" href="structps__seg__s.html#a97a0dc7db931c7e3f98d23d21ce27f04" title="Word string (pointer into dictionary hash)">word</a>; <a name="l00163"></a><a class="code" href="structps__seg__s.html#ac292e31304906addf3d49f1473df8ead">00163</a> int16 <a class="code" href="structps__seg__s.html#ac292e31304906addf3d49f1473df8ead" title="Start frame.">sf</a>; <a name="l00164"></a><a class="code" href="structps__seg__s.html#a2043ca87b07df0cd80d0fb65c3521c04">00164</a> int16 <a class="code" href="structps__seg__s.html#a2043ca87b07df0cd80d0fb65c3521c04" title="End frame.">ef</a>; <a name="l00165"></a><a class="code" href="structps__seg__s.html#a6f7706ec4c0d0ec8ecafaf0f29f41f4b">00165</a> int32 <a class="code" href="structps__seg__s.html#a6f7706ec4c0d0ec8ecafaf0f29f41f4b" title="Acoustic score.">ascr</a>; <a name="l00166"></a><a class="code" href="structps__seg__s.html#a69e605f422eeed1a9c67437e8ddd8b08">00166</a> int32 <a class="code" href="structps__seg__s.html#a69e605f422eeed1a9c67437e8ddd8b08" title="Language model score.">lscr</a>; <a name="l00167"></a><a class="code" href="structps__seg__s.html#ae683244d90d0a5339930b47757778432">00167</a> int32 <a class="code" href="structps__seg__s.html#ae683244d90d0a5339930b47757778432" title="Log posterior probability.">prob</a>; <a name="l00168"></a>00168 <span class="comment">/* This doesn't need to be 32 bits, so once the scores above are</span> <a name="l00169"></a>00169 <span class="comment"> * reduced to 16 bits (or less!), this will be too. */</span> <a name="l00170"></a><a class="code" href="structps__seg__s.html#a4d86c21f1ed2dc3eb3b1b1b37ce9bb48">00170</a> int32 <a class="code" href="structps__seg__s.html#a4d86c21f1ed2dc3eb3b1b1b37ce9bb48" title="Language model backoff.">lback</a>; <a name="l00171"></a>00171 <span class="comment">/* Not sure if this should be here at all. */</span> <a name="l00172"></a><a class="code" href="structps__seg__s.html#a2249c012b83c902f4f8ed8d98ded7d20">00172</a> float32 <a class="code" href="structps__seg__s.html#a2249c012b83c902f4f8ed8d98ded7d20" title="Language weight factor (for second-pass searches)">lwf</a>; <a name="l00173"></a>00173 }; <a name="l00174"></a>00174 <a name="l00175"></a>00175 <span class="preprocessor">#define ps_search_seg_next(seg) (*(seg->vt->seg_next))(seg)</span> <a name="l00176"></a>00176 <span class="preprocessor"></span><span class="preprocessor">#define ps_search_seg_free(s) (*(seg->vt->seg_free))(seg)</span> <a name="l00177"></a>00177 <span class="preprocessor"></span> <a name="l00178"></a>00178 <a name="l00182"></a><a class="code" href="structps__decoder__s.html">00182</a> <span class="keyword">struct </span><a class="code" href="structps__decoder__s.html" title="Decoder object.">ps_decoder_s</a> { <a name="l00183"></a>00183 <span class="comment">/* Model parameters and such. */</span> <a name="l00184"></a><a class="code" href="structps__decoder__s.html#a0565ed97b32408bd05c8104f020cef05">00184</a> cmd_ln_t *<a class="code" href="structps__decoder__s.html#a0565ed97b32408bd05c8104f020cef05" title="Configuration.">config</a>; <a name="l00185"></a><a class="code" href="structps__decoder__s.html#aa5ab90180288b6c9039eb86b496f76aa">00185</a> <span class="keywordtype">int</span> <a class="code" href="structps__decoder__s.html#aa5ab90180288b6c9039eb86b496f76aa" title="Reference count.">refcount</a>; <a name="l00187"></a>00187 <span class="comment">/* Basic units of computation. */</span> <a name="l00188"></a><a class="code" href="structps__decoder__s.html#af834d2bc1d44c1d9ef607b025413a0b8">00188</a> <a class="code" href="structacmod__s.html" title="Acoustic model structure.">acmod_t</a> *<a class="code" href="structps__decoder__s.html#af834d2bc1d44c1d9ef607b025413a0b8" title="Acoustic model.">acmod</a>; <a name="l00189"></a><a class="code" href="structps__decoder__s.html#aef6228c17907cc1d0cef835b238b5d91">00189</a> <a class="code" href="structdict__t.html" title="a structure for a dictionary.">dict_t</a> *<a class="code" href="structps__decoder__s.html#aef6228c17907cc1d0cef835b238b5d91" title="Pronunciation dictionary.">dict</a>; <a name="l00190"></a><a class="code" href="structps__decoder__s.html#ae6515cbc261686f3f3bbd95719f79793">00190</a> <a class="code" href="structdict2pid__t.html" title="Building composite triphone (as well as word internal triphones) with the dictionary.">dict2pid_t</a> *<a class="code" href="structps__decoder__s.html#ae6515cbc261686f3f3bbd95719f79793" title="Dictionary to senone mapping.">d2p</a>; <a name="l00191"></a><a class="code" href="structps__decoder__s.html#abd17fe329f2fb219c5a534f3217c5b95">00191</a> logmath_t *<a class="code" href="structps__decoder__s.html#abd17fe329f2fb219c5a534f3217c5b95" title="Log math computation.">lmath</a>; <a name="l00193"></a>00193 <span class="comment">/* Search modules. */</span> <a name="l00194"></a><a class="code" href="structps__decoder__s.html#aa04a75334c8bc39c6e1dc4b1de1d760f">00194</a> glist_t <a class="code" href="structps__decoder__s.html#aa04a75334c8bc39c6e1dc4b1de1d760f" title="List of search modules.">searches</a>; <a name="l00195"></a>00195 <span class="comment">/* TODO: Convert this to a stack of searches each with their own</span> <a name="l00196"></a>00196 <span class="comment"> * lookahead value. */</span> <a name="l00197"></a><a class="code" href="structps__decoder__s.html#ad337270efc93613cf8dd7594f6515799">00197</a> <a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *<a class="code" href="structps__decoder__s.html#ad337270efc93613cf8dd7594f6515799" title="Currently active search module.">search</a>; <a name="l00198"></a><a class="code" href="structps__decoder__s.html#a0c6d141d7a71a1287be00a1ebcc7643d">00198</a> <a class="code" href="structps__search__s.html" title="Base structure for search module.">ps_search_t</a> *<a class="code" href="structps__decoder__s.html#a0c6d141d7a71a1287be00a1ebcc7643d" title="Phone loop search for lookahead.">phone_loop</a>; <a name="l00199"></a><a class="code" href="structps__decoder__s.html#a0f0a6681ffd98af789f6bed556c814e4">00199</a> <span class="keywordtype">int</span> <a class="code" href="structps__decoder__s.html#a0f0a6681ffd98af789f6bed556c814e4" title="Window size for phoneme lookahead.">pl_window</a>; <a name="l00201"></a>00201 <span class="comment">/* Utterance-processing related stuff. */</span> <a name="l00202"></a><a class="code" href="structps__decoder__s.html#a0f597370dd162c2799efe216c9b991fc">00202</a> uint32 <a class="code" href="structps__decoder__s.html#a0f597370dd162c2799efe216c9b991fc" title="Utterance counter.">uttno</a>; <a name="l00203"></a><a class="code" href="structps__decoder__s.html#a0c21a99a0cb1e71cf7811f99cc17c105">00203</a> <span class="keywordtype">char</span> *<a class="code" href="structps__decoder__s.html#a0c21a99a0cb1e71cf7811f99cc17c105" title="Utterance ID for current utterance.">uttid</a>; <a name="l00204"></a><a class="code" href="structps__decoder__s.html#ab42d1d1e300d2a6df5dd3cd796a27d43">00204</a> ptmr_t <a class="code" href="structps__decoder__s.html#ab42d1d1e300d2a6df5dd3cd796a27d43" title="Performance counter for all of decoding.">perf</a>; <a name="l00205"></a><a class="code" href="structps__decoder__s.html#a2886b321c576c7def449ebb2f37899fd">00205</a> uint32 <a class="code" href="structps__decoder__s.html#a2886b321c576c7def449ebb2f37899fd" title="Total number of frames processed.">n_frame</a>; <a name="l00206"></a><a class="code" href="structps__decoder__s.html#a8bb5ef8791798b8dd9bc82b1ec016663">00206</a> <span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code" href="structps__decoder__s.html#a8bb5ef8791798b8dd9bc82b1ec016663" title="Log directory for MFCC files.">mfclogdir</a>; <a name="l00207"></a><a class="code" href="structps__decoder__s.html#aa2610c52a9267ee18ca095169bf34bfd">00207</a> <span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code" href="structps__decoder__s.html#aa2610c52a9267ee18ca095169bf34bfd" title="Log directory for audio files.">rawlogdir</a>; <a name="l00208"></a><a class="code" href="structps__decoder__s.html#a0ed3476113fe3d63b13ac5e8da3f3b4f">00208</a> <span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code" href="structps__decoder__s.html#a0ed3476113fe3d63b13ac5e8da3f3b4f" title="Log directory for senone score files.">senlogdir</a>; <a name="l00209"></a>00209 }; <a name="l00210"></a>00210 <a name="l00211"></a>00211 <span class="preprocessor">#endif </span><span class="comment">/* __POCKETSPHINX_INTERNAL_H__ */</span> </pre></div></div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="pocketsphinx__internal_8h.html">pocketsphinx_internal.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>