Пример #1
0
 public virtual string[] getHMMnames()
 {
     string[] array = new string[this.__hmms.size()];
     for (int i = 0; i < array.Length; i++)
     {
         SingleHMM singleHMM = (SingleHMM)this.__hmms.get(i);
         array[i] = singleHMM.getName();
     }
     return(array);
 }
Пример #2
0
 public virtual int getHMMidx(SingleHMM hmm)
 {
     for (int i = 0; i < this.__hmms.size(); i++)
     {
         SingleHMM singleHMM = (SingleHMM)this.__hmms.get(i);
         if (singleHMM == hmm)
         {
             return(i);
         }
     }
     return(-1);
 }
Пример #3
0
        public virtual int getNhmmsTri()
        {
            int      num      = 0;
            Iterator iterator = this.__hmms.iterator();

            while (iterator.hasNext())
            {
                SingleHMM singleHMM = (SingleHMM)iterator.next();
                if (String.instancehelper_indexOf(singleHMM.getName(), 45) >= 0 || String.instancehelper_indexOf(singleHMM.getName(), 43) >= 0)
                {
                    num++;
                }
            }
            return(num);
        }
Пример #4
0
 public SingleHMM next()
 {
     while (this.cur < this.this_0.__hmms.size())
     {
         List _hmms = this.this_0.__hmms;
         int  num   = this.cur;
         int  num2  = num;
         this.cur = num + 1;
         SingleHMM singleHMM = (SingleHMM)_hmms.get(num2);
         if (String.instancehelper_indexOf(singleHMM.getName(), 45) >= 0 || String.instancehelper_indexOf(singleHMM.getName(), 43) >= 0)
         {
             return(singleHMM);
         }
     }
     return(null);
 }
Пример #5
0
        public virtual SingleHMM getHMM(string nom)
        {
            SingleHMM singleHMM = null;
            Iterator  iterator  = this.__hmms.iterator();

            while (iterator.hasNext())
            {
                SingleHMM singleHMM2 = (SingleHMM)iterator.next();
                singleHMM = singleHMM2;
                if (String.instancehelper_equals(singleHMM.getName(), nom))
                {
                    break;
                }
            }
            return(singleHMM);
        }
Пример #6
0
 public virtual int getHMMIndex(SingleHMM h)
 {
     return(this.__hmms.indexOf(h));
 }
Пример #7
0
        private SingleHMM loadHMM(BufferedReader bufferedReader, string text, List list)
        {
            GMMDiag gmmdiag = null;
            string  text2   = "";

            while (!String.instancehelper_startsWith(text2, "<NUMSTATES>"))
            {
                text2 = bufferedReader.readLine();
            }
            int num = Integer.parseInt(String.instancehelper_substring(text2, String.instancehelper_indexOf(text2, 32) + 1));

            num--;
            SingleHMM singleHMM = new SingleHMM(num);

            singleHMM.setName(text);
            singleHMM.hmmset = this;
            while (!String.instancehelper_startsWith(text2, "<STATE>"))
            {
                text2 = bufferedReader.readLine();
            }
            while (String.instancehelper_startsWith(text2, "<STATE>"))
            {
                int num2 = Integer.parseInt(String.instancehelper_substring(text2, String.instancehelper_indexOf(text2, 32) + 1));
                num2--;
                text2 = bufferedReader.readLine();
                int gmmidx;
                if (String.instancehelper_startsWith(text2, "~s"))
                {
                    string text3 = String.instancehelper_substring(text2, String.instancehelper_indexOf(text2, 34) + 1, String.instancehelper_lastIndexOf(text2, 34));
                    int    i;
                    for (i = 0; i < list.size(); i++)
                    {
                        gmmdiag = (GMMDiag)list.get(i);
                        if (String.instancehelper_equals(gmmdiag.nom, text3))
                        {
                            break;
                        }
                    }
                    gmmidx = i;
                    if (i == list.size())
                    {
                        java.lang.System.err.println(new StringBuilder().append("Error creatiing HMM : state ").append(text).append(" not found").toString());
                        java.lang.System.exit(1);
                    }
                }
                else
                {
                    this.loadState(bufferedReader, "", text2);
                    gmmidx  = this.__gmms.size() - 1;
                    gmmdiag = (GMMDiag)this.__gmms.get(this.__gmms.size() - 1);
                }
                HMMState hmmstate = new HMMState(gmmdiag, new Lab(text, num2));
                hmmstate.gmmidx = gmmidx;
                this.__states.add(hmmstate);
                singleHMM.setState(num2 - 1, hmmstate);
                text2 = bufferedReader.readLine();
                if (String.instancehelper_startsWith(text2, "<GCONST>"))
                {
                    text2 = bufferedReader.readLine();
                }
            }
            if (String.instancehelper_startsWith(text2, "~t"))
            {
                string text4 = String.instancehelper_substring(text2, String.instancehelper_indexOf(text2, 34) + 1, String.instancehelper_lastIndexOf(text2, 34));
                int    num3  = this.getTrans(text4);
                singleHMM.setTrans(num3);
            }
            else
            {
                if (!String.instancehelper_startsWith(text2, "<TRANSP>"))
                {
                    java.lang.System.err.println(new StringBuilder().append("Error reading model: missing transitions.").append(text2).toString());
                    java.lang.System.exit(1);
                }
                this.loadTrans(bufferedReader, null, text2);
                singleHMM.setTrans(this.trans);
            }
            text2 = bufferedReader.readLine();
            if (!String.instancehelper_startsWith(text2, "<ENDHMM>"))
            {
                java.lang.System.err.println(new StringBuilder().append("Error reading model: missing ENDHMM.").append(text2).toString());
                java.lang.System.exit(1);
            }
            return(singleHMM);
        }