<!--#set var="isip_enrgydow_title" value="ISIP Software Documentation" -->
<?php include("/data/isip/www/templates/documentation/header/header.html"); ?>

<!--#set var="isip_page_title" value="VerifyHMM" -->
<?php include("/data/isip/www/templates/documentation/body/index_class.html"); ?>
<?php include("/data/isip/www/templates/documentation/body/bar.html"); ?>

<a name="name">
<b>
name:
<a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h">VerifyHMM</a>
</b>

<br><br>

<a name="synopsis">
<b>synopsis:</b>
<br><br>

<blockquote>
<pre>
g++ [flags ...] file ... -l /isip/tools/lib/$ISIP_BINARY/lib_pr.a

#include &lt;VerifyHMM.h&gt;

VerifyHMM();
boolean run(Sdb& sdb);
</pre>
</blockquote>

<a name="quick_start">
<b>quick start:</b>
<br><br>

<blockquote>
<pre>
VerifyHMM hmm;
hmm.setParamFile(L"diagnose_params.sof");
Sdb raw_list_sdb;
boolean is_list = true;
raw_list_sdb.append(L"diagnose_mfcc_list.sof", is_list);
hmm.run(sdb);
</pre>
</blockquote>

<a name="description"> 
<b>description:</b>
<br><br>

The VerifyHMM class is used to implement Hidden Markov Model-based
speaker verification technology. It provides the Likelihood_Ratio and
Baum-Welch algorithms for speaker verification and speaker enrollment.

<br><br>

<a name="dependencies">
<b>dependencies:</b>
<br><br>

<ul>
  <li> <a href="../../shell/Sdb/">Sdb</a>
  <li> <a href="../../sp/FrontEnd/">FrontEnd</a>
  <li> <a href="../../search/HierarchicalSearch/">HierarchicalSearch</a>
  <li> <a href="../HiddenMarkovModel/">HiddenMarkovModel</a>
</ul>


<a name="constants">
<b>public constants:</b>
<br><br>

<ul>
  <li> define class name:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&constant=CLASS_NAME">static const String CLASS_NAME;</a></pre>

  <li> define enumerations:
       
       <pre>enum ALGORITHM { VERIFY = 0, TRAIN, MIXTURE_SPLITTING, DEF_ALGORITHM = VERIFY };</pre>

       <pre>enum IMPLEMENTATION { LIKELIHOOD_RATIO = 0, BAUM_WELCH, VARIANCE_SPLITTING, LIKELIHOOD, DEF_IMPLEMENTATION = LIKELIHOOD_RATIO };</pre>

  <li> define name maps:       

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&constant=IMPL_MAP">static const NameMap IMPL_MAP;</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&constant=ALGO_MAP">static const NameMap ALGO_MAP;</a></pre>

  <li> define i/o constants:
       
       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&constant=PARAM_IMPOSTER_LANGUAGE_MODEL">static const String PARAM_IMPOSTER_LANGUAGE_MODEL;</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&constant=PARAM_IMPOSTER_STATISTICAL_MODEL_POOL">static const String PARAM_IMPOSTER_STATISTICAL_MODEL_POOL;</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&constant=PARAM_DECISION_THRESHOLDS">static const String PARAM_DECISION_THRESHOLDS;</a></pre>

  <li> define public constants:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&constant=DEF_DECISION_THRESHOLDS">static const String DEF_DECISION_THRESHOLDS;</a></pre>
       
</ul>

<a name="protected">
<b>protected data:</b>
<br><br>

<ul>
  <li> algorithm name:

       <pre>ALGORITHM algorithm_d;</pre>

  <li> implementation name:

       <pre>IMPLEMENTATION implementation_d;</pre>

  <li> imposter language model file:

       <pre>Filename imp_lm_file_d;</pre>

  <li> imposter statistical model pool file:

       <pre>Filename imp_smp_file_d;</pre>

  <li> decision thresholds:

       <pre>VectorFloat decision_thresholds_d;</pre>

  <li> hierarchical search for imposter models:

       <pre>HierarchicalSearch imp_search_engine_d;</pre>

  <li> declare the memory manager:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&static=mgr_d">static MemoryManager mgr_d;</a></pre>

</ul>

<a name="public">
<b>required public methods:</b>
<br><br>

<ul>
  <li> static methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=name&instance=0">static const String& name();</a></pre>

  <li> debug methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_02.cc&method=diagnose&instance=0">static boolean diagnose(Integral::DEBUG debug_level);</a></pre>

  <li> destructor/constructor(s):

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&method=destructor&instance=0">~VerifyHMM();</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&method=default+constructor&instance=0">VerifyHMM();</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_00.cc&method=copy+constructor&instance=0">VerifyHMM(const VerifyHMM& arg);</a></pre>

  <li> assign methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=assign&instance=0">boolean assign(const VerifyHMM& arg);</a></pre>

  <li> operator= method:

       <pre>not present.</pre>

  <li> i/o methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_04.cc&method=sofSize&instance=0">long sofSize() const;</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_03.cc&method=read&instance=0">boolean read(Sof& sof, long tag, const String& name = CLASS_NAME);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_04.cc&method=write&instance=0">boolean write(Sof& sof, long tag, const String& name = CLASS_NAME) const;</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_03.cc&method=readData&instance=0">boolean readData(Sof& sof, const String& pname = DEF_PARAM, long size = SofParser::FULL_OBJECT, boolean param = true, boolean nested = false);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_04.cc&method=writeData&instance=0">boolean writeData(Sof& sof, const String& param = DEF_PARAM) const;</a></pre>

  <li> equality methods:

       <pre>not present.</pre>

  <li> memory management methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=new&instance=0">static void* operator new(size_t size);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=new\[\]&instance=0">static void* operator new[](size_t size);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=delete&instance=0">static void operator delete(void* ptr);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=delete\[\]&instance=0">static void operator delete[](void* ptr);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=setGrowSize&instance=0">static boolean setGrowSize(long grow_size);</a></pre>

</ul>

<a name="specific">
<b>class-specific public methods:</b>
<br><br>

<ul>
  <li> declare configuration methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=getAlgorithm&instance=0">ALGORITHM getAlgorithm();</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=setAlgorithm&instance=0">boolean setAlgorithm(ALGORITHM arg);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=getImplementation&instance=0">IMPLEMENTATION getImplementation();</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=setImplementation&instance=0">boolean setImplementation(IMPLEMENTATION arg);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=getImposterLanguageModelFile&instance=0">Filename& getImposterLanguageModelFile();</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=setImposterLanguageModelFile&instance=0">boolean setImposterLanguageModelFile(const Filename& arg);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=getImposterStatisticalModelPoolFile&instance=0">Filename& getImposterStatisticalModelPoolFile();</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=setImposterStatisticalModelPoolFile&instance=0">boolean setImposterStatisticalModelPoolFile(const Filename& arg);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=getDecisionThresholds&instance=0">VectorFloat getDecisionThresholds();</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/VerifyHMM.h&method=setDecisionThresholds&instance=0">boolean setDecisionThresholds(VectorFloat decision_thresholds);</a></pre>

  <li> declare verification methods:

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_05.cc&method=verify&instance=0">boolean verify(Sdb& sdb);</a></pre>
       
  <li> declare search-engine methods:              

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_05.cc&method=run&instance=0">boolean run(Sdb& sdb);</a></pre>

       <pre><a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/vhmm_05.cc&method=load&instance=0">boolean load();</a></pre>

</ul>

<a name="private">
<b>private methods:</b>
<br><br>

<ul>       
  <li> none
</ul>

<a name="examples">
<b>examples:</b>
<br><br>

<ul>
  <li> This example shows how to run the VerifyHMM verifier
       using Likelihood_Ratio algorithm

<pre>
// declare a VerifyHMM object
//
VerifyHMM hmm;

// set up the param file for hmm and front end specification
//
hmm.setParamFile(L"<a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/diagnose_params.sof">diagnose_params.sof</a>");

// setup the input speech file list
//      
Sdb raw_list_sdb;
boolean is_list = true;
raw_list_sdb.append(L"<a href="/perl/ifc_document.pl?file=$isip/class/pr/VerifyHMM/diagnose_raw_list.sof">diagnose_raw_list.sof</a>", is_list);

// run the VerifyHMM verifier on the input speech file list
//
hmm.run(raw_list_sdb);
</pre>
</ul>

<a name="notes">
<b>notes:</b>
<br><br>

<ul>
  <li> none
</ul>

<!--#include virtual="/hse/ies/templates/documentation/footer/footer.html" -->
