<!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/mdef.h File Reference</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('mdef_8h.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Defines</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <h1>src/libpocketsphinx/mdef.h File Reference</h1> </div> </div> <div class="contents"> <p>Model definition. <a href="#_details">More...</a></p> <div class="textblock"><code>#include <stdio.h></code><br/> <code>#include <sphinxbase/hash_table.h></code><br/> </div> <p><a href="mdef_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structciphone__t.html">ciphone_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">CI phone information. <a href="structciphone__t.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structphone__t.html">phone_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Triphone information, including base phones as a subset. <a href="structphone__t.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structph__rc__s.html">ph_rc_s</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structph__lc__s.html">ph_lc_s</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmdef__t.html">mdef_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The main model definition structure. <a href="structmdef__t.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac271413770c3e95b993b856967b61487"></a><!-- doxytag: member="mdef.h::N_WORD_POSN" ref="ac271413770c3e95b993b856967b61487" args="" --> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#ac271413770c3e95b993b856967b61487">N_WORD_POSN</a>   4</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">total # of word positions (excluding undefined) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89ef0442ded2ff90176ba6d02563923d"></a><!-- doxytag: member="mdef.h::WPOS_NAME" ref="a89ef0442ded2ff90176ba6d02563923d" args="" --> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a89ef0442ded2ff90176ba6d02563923d">WPOS_NAME</a>   "ibesu"</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Printable code for each word position above. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87b279af2566a60666495e16d09a8aee"></a><!-- doxytag: member="mdef.h::S3_SILENCE_CIPHONE" ref="a87b279af2566a60666495e16d09a8aee" args="" --> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a87b279af2566a60666495e16d09a8aee">S3_SILENCE_CIPHONE</a>   "SIL"</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Hard-coded silence CI phone name. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa75eb2e79e7b9a3c8f4ab3722b997b83"></a><!-- doxytag: member="mdef.h::mdef_is_fillerphone" ref="aa75eb2e79e7b9a3c8f4ab3722b997b83" args="(m, p)" --> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#aa75eb2e79e7b9a3c8f4ab3722b997b83">mdef_is_fillerphone</a>(m, p)   ((m)->ciphone[p].filler)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Access macros; not meant for arbitrary use. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93926cad5a753339ed8e3dd65be33ee7"></a><!-- doxytag: member="mdef.h::mdef_n_ciphone" ref="a93926cad5a753339ed8e3dd65be33ee7" args="(m)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_n_ciphone</b>(m)   ((m)->n_ciphone)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39673ae552a7b3f777e7891b19eef91c"></a><!-- doxytag: member="mdef.h::mdef_n_phone" ref="a39673ae552a7b3f777e7891b19eef91c" args="(m)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_n_phone</b>(m)   ((m)->n_phone)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0ff23744c11412bf5c8f392b1dd3ff3"></a><!-- doxytag: member="mdef.h::mdef_n_sseq" ref="ab0ff23744c11412bf5c8f392b1dd3ff3" args="(m)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_n_sseq</b>(m)   ((m)->n_sseq)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac333147a77ef083afe5db31af9c743ca"></a><!-- doxytag: member="mdef.h::mdef_n_emit_state" ref="ac333147a77ef083afe5db31af9c743ca" args="(m)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_n_emit_state</b>(m)   ((m)->n_emit_state)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6dc091ff16b4198af78583a243354c3d"></a><!-- doxytag: member="mdef.h::mdef_n_sen" ref="a6dc091ff16b4198af78583a243354c3d" args="(m)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_n_sen</b>(m)   ((m)->n_sen)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9e86b3579c2d7ea0836e21afab519c4"></a><!-- doxytag: member="mdef.h::mdef_n_tmat" ref="ab9e86b3579c2d7ea0836e21afab519c4" args="(m)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_n_tmat</b>(m)   ((m)->n_tmat)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abb0000ac304bec78f21cb64be7083530"></a><!-- doxytag: member="mdef.h::mdef_pid2ssid" ref="abb0000ac304bec78f21cb64be7083530" args="(m, p)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_pid2ssid</b>(m, p)   ((m)->phone[p].ssid)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aacb8b60ea0e4a8648be4cc3b196dff1c"></a><!-- doxytag: member="mdef.h::mdef_pid2tmatid" ref="aacb8b60ea0e4a8648be4cc3b196dff1c" args="(m, p)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_pid2tmatid</b>(m, p)   ((m)->phone[p].tmat)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a918da7f9bc2808c57ed5ed916a00e375"></a><!-- doxytag: member="mdef.h::mdef_silphone" ref="a918da7f9bc2808c57ed5ed916a00e375" args="(m)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_silphone</b>(m)   ((m)->sil)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb116821c5048af4af53565252aa9e8f"></a><!-- doxytag: member="mdef.h::mdef_sen2cimap" ref="aeb116821c5048af4af53565252aa9e8f" args="(m)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_sen2cimap</b>(m)   ((m)->sen2cimap)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f05f4b2bd264a9e3be296e6f3fa40df"></a><!-- doxytag: member="mdef.h::mdef_sseq2sen" ref="a8f05f4b2bd264a9e3be296e6f3fa40df" args="(m, ss, pos)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_sseq2sen</b>(m, ss, pos)   ((m)->sseq[ss][pos])</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d873373adc8f8eac706eaa033d6fc0e"></a><!-- doxytag: member="mdef.h::mdef_pid2ci" ref="a4d873373adc8f8eac706eaa033d6fc0e" args="(m, p)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_pid2ci</b>(m, p)   ((m)->phone[p].ci)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e2bac0eaa3e3a89c4482bf2332728e1"></a><!-- doxytag: member="mdef.h::mdef_cd2cisen" ref="a8e2bac0eaa3e3a89c4482bf2332728e1" args="(m)" --> #define </td><td class="memItemRight" valign="bottom"><b>mdef_cd2cisen</b>(m)   ((m)->cd2cisen)</td></tr> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaed9796f885acce1a3f7b7fbb412fe0e"></a><!-- doxytag: member="mdef.h::ph_rc_t" ref="aaed9796f885acce1a3f7b7fbb412fe0e" args="" --> typedef struct <a class="el" href="structph__rc__s.html">ph_rc_s</a> </td><td class="memItemRight" valign="bottom"><b>ph_rc_t</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab5ed563060c703a3dec9349c6fb1b17"></a><!-- doxytag: member="mdef.h::ph_lc_t" ref="aab5ed563060c703a3dec9349c6fb1b17" args="" --> typedef struct <a class="el" href="structph__lc__s.html">ph_lc_s</a> </td><td class="memItemRight" valign="bottom"><b>ph_lc_t</b></td></tr> <tr><td colspan="2"><h2><a name="enum-members"></a> Enumerations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8f">word_posn_t</a> { <br/>   <a class="el" href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8fa034bedf5019d94429746634bc0d37464">WORD_POSN_INTERNAL</a> = 0, <a class="el" href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8fa8ca058a8d25d38d074e028460833c8a9">WORD_POSN_BEGIN</a> = 1, <a class="el" href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8fa85b62e42f20399f933b33099290989c3">WORD_POSN_END</a> = 2, <a class="el" href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8fa34f808e43d8f6e9312054f34a8bd74ac">WORD_POSN_SINGLE</a> = 3, <br/>   <a class="el" href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8fa6b0544f6dcc29f8f4f46de22f28ff9b6">WORD_POSN_UNDEFINED</a> = 4 <br/> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Union of different type of word position. </p> <a href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8f">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structmdef__t.html">mdef_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a8f2fb119373324175bf82ad2c403e2be">mdef_init</a> (char *mdeffile, int breport)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize the phone structure from the given model definition file. <a href="#a8f2fb119373324175bf82ad2c403e2be"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#aa2c122222a6c9826f16df4644eb6cfd1">mdef_ciphone_id</a> (<a class="el" href="structmdef__t.html">mdef_t</a> *m, char *ciphone)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the ciphone id given a string name. <a href="#aa2c122222a6c9826f16df4644eb6cfd1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a445bee881e1af552b1bc33c3d4d3e6f3">mdef_ciphone_str</a> (<a class="el" href="structmdef__t.html">mdef_t</a> *m, int ci)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the phone string given the ci phone id. <a href="#a445bee881e1af552b1bc33c3d4d3e6f3"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a9e3f89c3fe09a235beafe056be18c6ce">mdef_is_ciphone</a> (<a class="el" href="structmdef__t.html">mdef_t</a> *m, int p)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Decide whether the phone is ci phone. <a href="#a9e3f89c3fe09a235beafe056be18c6ce"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#ab6d74ce89ba1f174789a8c5a4add9946">mdef_is_cisenone</a> (<a class="el" href="structmdef__t.html">mdef_t</a> *m, int s)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Decide whether the senone is a senone for a ci phone, or a ci senone. <a href="#ab6d74ce89ba1f174789a8c5a4add9946"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a34cafc86f7db4e18389556c8eaca5f02">mdef_phone_id</a> (<a class="el" href="structmdef__t.html">mdef_t</a> *m, int b, int l, int r, <a class="el" href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8f">word_posn_t</a> pos)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Decide the phone id given the left, right and base phones. <a href="#a34cafc86f7db4e18389556c8eaca5f02"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a2e23174c9285fbb98f60670644c89712">mdef_phone_str</a> (<a class="el" href="structmdef__t.html">mdef_t</a> *m, int pid, char *buf)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a phone string for the given phone (base or triphone) id in the given buf. <a href="#a2e23174c9285fbb98f60670644c89712"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a49424df076ebbabc5c8e34bd9db54616">mdef_hmm_cmp</a> (<a class="el" href="structmdef__t.html">mdef_t</a> *m, int p1, int p2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare the underlying HMMs for two given phones (i.e., compare the two transition matrix IDs and the individual state(senone) IDs). <a href="#a49424df076ebbabc5c8e34bd9db54616"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#ad6748527975b2653049b80dabfaa69f1">mdef_report</a> (<a class="el" href="structmdef__t.html">mdef_t</a> *m)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Report the model definition's parameters. <a href="#ad6748527975b2653049b80dabfaa69f1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a237854c5a842ee89a099209014a68eba">mdef_free_recursive_lc</a> (<a class="el" href="structph__lc__t.html">ph_lc_t</a> *lc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">RAH, For freeing memory. <a href="#a237854c5a842ee89a099209014a68eba"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#ab8db39894feff4c891bc062eae5ea6dd">mdef_free_recursive_rc</a> (<a class="el" href="structph__rc__t.html">ph_rc_t</a> *rc)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="mdef_8h.html#a38d2a4b150ecb10a3c80f3504cfdc63d">mdef_free</a> (<a class="el" href="structmdef__t.html">mdef_t</a> *mdef)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free an <a class="el" href="structmdef__t.html" title="The main model definition structure.">mdef_t</a>. <a href="#a38d2a4b150ecb10a3c80f3504cfdc63d"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Model definition. </p> <p>Definition in file <a class="el" href="mdef_8h_source.html">mdef.h</a>.</p> </div><hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="a71b2bcae7b6e79bad584cc5500b20e8f"></a><!-- doxytag: member="mdef.h::word_posn_t" ref="a71b2bcae7b6e79bad584cc5500b20e8f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8f">word_posn_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>Union of different type of word position. </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a71b2bcae7b6e79bad584cc5500b20e8fa034bedf5019d94429746634bc0d37464"></a><!-- doxytag: member="WORD_POSN_INTERNAL" ref="a71b2bcae7b6e79bad584cc5500b20e8fa034bedf5019d94429746634bc0d37464" args="" -->WORD_POSN_INTERNAL</em> </td><td> <p>Internal phone of word. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a71b2bcae7b6e79bad584cc5500b20e8fa8ca058a8d25d38d074e028460833c8a9"></a><!-- doxytag: member="WORD_POSN_BEGIN" ref="a71b2bcae7b6e79bad584cc5500b20e8fa8ca058a8d25d38d074e028460833c8a9" args="" -->WORD_POSN_BEGIN</em> </td><td> <p>Beginning phone of word. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a71b2bcae7b6e79bad584cc5500b20e8fa85b62e42f20399f933b33099290989c3"></a><!-- doxytag: member="WORD_POSN_END" ref="a71b2bcae7b6e79bad584cc5500b20e8fa85b62e42f20399f933b33099290989c3" args="" -->WORD_POSN_END</em> </td><td> <p>Ending phone of word. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a71b2bcae7b6e79bad584cc5500b20e8fa34f808e43d8f6e9312054f34a8bd74ac"></a><!-- doxytag: member="WORD_POSN_SINGLE" ref="a71b2bcae7b6e79bad584cc5500b20e8fa34f808e43d8f6e9312054f34a8bd74ac" args="" -->WORD_POSN_SINGLE</em> </td><td> <p>Single phone word (i.e. </p> <p>begin & end) </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a71b2bcae7b6e79bad584cc5500b20e8fa6b0544f6dcc29f8f4f46de22f28ff9b6"></a><!-- doxytag: member="WORD_POSN_UNDEFINED" ref="a71b2bcae7b6e79bad584cc5500b20e8fa6b0544f6dcc29f8f4f46de22f28ff9b6" args="" -->WORD_POSN_UNDEFINED</em> </td><td> <p>Undefined value, used for initial conditions, etc. </p> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8h_source.html#l00075">75</a> of file <a class="el" href="mdef_8h_source.html">mdef.h</a>.</p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="aa2c122222a6c9826f16df4644eb6cfd1"></a><!-- doxytag: member="mdef.h::mdef_ciphone_id" ref="aa2c122222a6c9826f16df4644eb6cfd1" args="(mdef_t *m, char *ciphone)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdef_ciphone_id </td> <td>(</td> <td class="paramtype"><a class="el" href="structmdef__t.html">mdef_t</a> * </td> <td class="paramname"><em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>ciphone</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the ciphone id given a string name. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>ciphone id for the given ciphone string name </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">m</td><td>In: Model structure being queried </td></tr> <tr><td class="paramname">ciphone</td><td>In: ciphone for which id wanted </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00176">176</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> <p>References <a class="el" href="mdef_8h_source.html#l00147">mdef_t::ciphone_ht</a>.</p> </div> </div> <a class="anchor" id="a445bee881e1af552b1bc33c3d4d3e6f3"></a><!-- doxytag: member="mdef.h::mdef_ciphone_str" ref="a445bee881e1af552b1bc33c3d4d3e6f3" args="(mdef_t *m, int ci)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* mdef_ciphone_str </td> <td>(</td> <td class="paramtype"><a class="el" href="structmdef__t.html">mdef_t</a> * </td> <td class="paramname"><em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>ci</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the phone string given the ci phone id. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>: READ-ONLY ciphone string name for the given ciphone id </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">m</td><td>In: Model structure being queried </td></tr> <tr><td class="paramname">ci</td><td>In: ciphone id for which name wanted </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00186">186</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> <p>References <a class="el" href="mdef_8h_source.html#l00148">mdef_t::ciphone</a>, and <a class="el" href="mdef_8h_source.html#l00091">ciphone_t::name</a>.</p> </div> </div> <a class="anchor" id="a38d2a4b150ecb10a3c80f3504cfdc63d"></a><!-- doxytag: member="mdef.h::mdef_free" ref="a38d2a4b150ecb10a3c80f3504cfdc63d" args="(mdef_t *mdef)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mdef_free </td> <td>(</td> <td class="paramtype"><a class="el" href="structmdef__t.html">mdef_t</a> * </td> <td class="paramname"><em>mdef</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free an <a class="el" href="structmdef__t.html" title="The main model definition structure.">mdef_t</a>. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">mdef</td><td>In : The model definition </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00745">745</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> <p>References <a class="el" href="mdef_8h_source.html#l00154">mdef_t::cd2cisen</a>, <a class="el" href="mdef_8h_source.html#l00148">mdef_t::ciphone</a>, <a class="el" href="mdef_8h_source.html#l00147">mdef_t::ciphone_ht</a>, <a class="el" href="mdef_8h_source.html#l00140">mdef_t::n_ciphone</a>, <a class="el" href="mdef_8h_source.html#l00082">N_WORD_POSN</a>, <a class="el" href="mdef_8h_source.html#l00091">ciphone_t::name</a>, <a class="el" href="mdef_8h_source.html#l00149">mdef_t::phone</a>, <a class="el" href="mdef_8h_source.html#l00157">mdef_t::sen2cimap</a>, <a class="el" href="mdef_8h_source.html#l00150">mdef_t::sseq</a>, <a class="el" href="mdef_8h_source.html#l00167">mdef_t::st2senmap</a>, and <a class="el" href="mdef_8h_source.html#l00161">mdef_t::wpos_ci_lclist</a>.</p> </div> </div> <a class="anchor" id="a237854c5a842ee89a099209014a68eba"></a><!-- doxytag: member="mdef.h::mdef_free_recursive_lc" ref="a237854c5a842ee89a099209014a68eba" args="(ph_lc_t *lc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mdef_free_recursive_lc </td> <td>(</td> <td class="paramtype"><a class="el" href="structph__lc__t.html">ph_lc_t</a> * </td> <td class="paramname"><em>lc</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>RAH, For freeing memory. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">lc</td><td>In: A list of left context </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00713">713</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> </div> </div> <a class="anchor" id="ab8db39894feff4c891bc062eae5ea6dd"></a><!-- doxytag: member="mdef.h::mdef_free_recursive_rc" ref="ab8db39894feff4c891bc062eae5ea6dd" args="(ph_rc_t *rc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mdef_free_recursive_rc </td> <td>(</td> <td class="paramtype"><a class="el" href="structph__rc__t.html">ph_rc_t</a> * </td> <td class="paramname"><em>rc</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">rc</td><td>In: A list of right context </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00728">728</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> </div> </div> <a class="anchor" id="a49424df076ebbabc5c8e34bd9db54616"></a><!-- doxytag: member="mdef.h::mdef_hmm_cmp" ref="a49424df076ebbabc5c8e34bd9db54616" args="(mdef_t *m, int p1, int p2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdef_hmm_cmp </td> <td>(</td> <td class="paramtype"><a class="el" href="structmdef__t.html">mdef_t</a> * </td> <td class="paramname"><em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>p1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>p2</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Compare the underlying HMMs for two given phones (i.e., compare the two transition matrix IDs and the individual state(senone) IDs). </p> <dl class="return"><dt><b>Returns:</b></dt><dd>0 iff the HMMs are identical, -1 otherwise. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">m</td><td>In: Model being queried </td></tr> <tr><td class="paramname">p1</td><td>In: One of the two triphones being compared </td></tr> <tr><td class="paramname">p2</td><td>In: One of the two triphones being compared </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a8f2fb119373324175bf82ad2c403e2be"></a><!-- doxytag: member="mdef.h::mdef_init" ref="a8f2fb119373324175bf82ad2c403e2be" args="(char *mdeffile, int breport)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structmdef__t.html">mdef_t</a>* mdef_init </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>mdeffile</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>breport</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize the phone structure from the given model definition file. </p> <p>It should be treated as a READ-ONLY structure. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the phone structure created. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">mdeffile</td><td>In: Model definition file </td></tr> <tr><td class="paramname">breport</td><td>In: whether to report the progress or not </td></tr> </table> </dd> </dl> <p>Referenced by <a class="el" href="bin__mdef_8c_source.html#l00066">bin_mdef_read_text()</a>.</p> </div> </div> <a class="anchor" id="a9e3f89c3fe09a235beafe056be18c6ce"></a><!-- doxytag: member="mdef.h::mdef_is_ciphone" ref="a9e3f89c3fe09a235beafe056be18c6ce" args="(mdef_t *m, int p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdef_is_ciphone </td> <td>(</td> <td class="paramtype"><a class="el" href="structmdef__t.html">mdef_t</a> * </td> <td class="paramname"><em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>p</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Decide whether the phone is ci phone. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>1 if given triphone argument is a ciphone, 0 if not, -1 if error </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">m</td><td>In: Model structure being queried </td></tr> <tr><td class="paramname">p</td><td>In: triphone id being queried </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00251">251</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> </div> </div> <a class="anchor" id="ab6d74ce89ba1f174789a8c5a4add9946"></a><!-- doxytag: member="mdef.h::mdef_is_cisenone" ref="ab6d74ce89ba1f174789a8c5a4add9946" args="(mdef_t *m, int s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdef_is_cisenone </td> <td>(</td> <td class="paramtype"><a class="el" href="structmdef__t.html">mdef_t</a> * </td> <td class="paramname"><em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>s</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Decide whether the senone is a senone for a ci phone, or a ci senone. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>1 if a given senone is a ci senone </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">m</td><td>In: Model structure being queried </td></tr> <tr><td class="paramname">s</td><td>In: senone id being queried </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00260">260</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> <p>References <a class="el" href="mdef_8h_source.html#l00154">mdef_t::cd2cisen</a>, and <a class="el" href="mdef_8h_source.html#l00144">mdef_t::n_sen</a>.</p> </div> </div> <a class="anchor" id="a34cafc86f7db4e18389556c8eaca5f02"></a><!-- doxytag: member="mdef.h::mdef_phone_id" ref="a34cafc86f7db4e18389556c8eaca5f02" args="(mdef_t *m, int b, int l, int r, word_posn_t pos)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdef_phone_id </td> <td>(</td> <td class="paramtype"><a class="el" href="structmdef__t.html">mdef_t</a> * </td> <td class="paramname"><em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>b</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>l</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>r</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="mdef_8h.html#a71b2bcae7b6e79bad584cc5500b20e8f">word_posn_t</a> </td> <td class="paramname"><em>pos</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Decide the phone id given the left, right and base phones. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>: phone id for the given constituents if found, else BAD_S3PID </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">m</td><td>In: Model structure being queried </td></tr> <tr><td class="paramname">b</td><td>In: base ciphone id </td></tr> <tr><td class="paramname">l</td><td>In: left context ciphone id </td></tr> <tr><td class="paramname">r</td><td>In: right context ciphone id </td></tr> <tr><td class="paramname">pos</td><td>In: Word position </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00219">219</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> <p>References <a class="el" href="mdef_8h_source.html#l00148">mdef_t::ciphone</a>, <a class="el" href="mdef_8h_source.html#l00092">ciphone_t::filler</a>, <a class="el" href="mdef_8h_source.html#l00082">N_WORD_POSN</a>, <a class="el" href="mdef_8h_source.html#l00159">mdef_t::sil</a>, and <a class="el" href="mdef_8h_source.html#l00161">mdef_t::wpos_ci_lclist</a>.</p> </div> </div> <a class="anchor" id="a2e23174c9285fbb98f60670644c89712"></a><!-- doxytag: member="mdef.h::mdef_phone_str" ref="a2e23174c9285fbb98f60670644c89712" args="(mdef_t *m, int pid, char *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int mdef_phone_str </td> <td>(</td> <td class="paramtype"><a class="el" href="structmdef__t.html">mdef_t</a> * </td> <td class="paramname"><em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>pid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>buf</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a phone string for the given phone (base or triphone) id in the given buf. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>0 if successful, -1 if error. </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">m</td><td>In: Model structure being queried </td></tr> <tr><td class="paramname">pid</td><td>In: phone id being queried </td></tr> <tr><td class="paramname">buf</td><td>Out: On return, buf has the string </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00196">196</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> <p>References <a class="el" href="mdef_8h_source.html#l00149">mdef_t::phone</a>, <a class="el" href="mdef_8h_source.html#l00105">phone_t::rc</a>, <a class="el" href="mdef_8h_source.html#l00106">phone_t::wpos</a>, and <a class="el" href="mdef_8h_source.html#l00083">WPOS_NAME</a>.</p> </div> </div> <a class="anchor" id="ad6748527975b2653049b80dabfaa69f1"></a><!-- doxytag: member="mdef.h::mdef_report" ref="ad6748527975b2653049b80dabfaa69f1" args="(mdef_t *m)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void mdef_report </td> <td>(</td> <td class="paramtype"><a class="el" href="structmdef__t.html">mdef_t</a> * </td> <td class="paramname"><em>m</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Report the model definition's parameters. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">m</td><td>In: model definition structure </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="mdef_8c_source.html#l00690">690</a> of file <a class="el" href="mdef_8c_source.html">mdef.c</a>.</p> <p>References <a class="el" href="mdef_8h_source.html#l00143">mdef_t::n_ci_sen</a>, <a class="el" href="mdef_8h_source.html#l00140">mdef_t::n_ciphone</a>, <a class="el" href="mdef_8h_source.html#l00142">mdef_t::n_emit_state</a>, <a class="el" href="mdef_8h_source.html#l00141">mdef_t::n_phone</a>, <a class="el" href="mdef_8h_source.html#l00144">mdef_t::n_sen</a>, and <a class="el" href="mdef_8h_source.html#l00152">mdef_t::n_sseq</a>.</p> </div> </div> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="mdef_8h.html">mdef.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>