public virtual bool isEqual(GMMDiag g) { if (this.getNgauss() != g.getNgauss()) { return(false); } if (this.getNgauss() != g.getNcoefs()) { return(false); } for (int i = 0; i < this.getNgauss(); i++) { if (this.isDiff(this.getWeight(i), g.getWeight(i))) { return(false); } for (int j = 0; j < this.getNcoefs(); j++) { if (this.isDiff(this.getMean(i, j), g.getMean(i, j))) { return(false); } if (this.isDiff(this.getVar(i, j), g.getVar(i, j))) { return(false); } } } return(true); }
public virtual GMMDiag getMarginal(bool[] mask) { int num = 0; int num2 = mask.Length; for (int i = 0; i < num2; i++) { int j = mask[i] ? 1 : 0; if (j != 0) { num++; } } GMMDiag gmmdiag = new GMMDiag(this.getNgauss(), num); num2 = 0; for (int i = 0; i < this.ncoefs; i++) { if (mask[i]) { for (int j = 0; j < this.ngauss; j++) { gmmdiag.setMean(j, num2, this.getMean(j, i)); gmmdiag.setVar(j, num2, this.getVar(j, i)); } num2++; } } for (int i = 0; i < this.ngauss; i++) { gmmdiag.setWeight(i, this.getWeight(i)); } gmmdiag.precomputeDistance(); return(gmmdiag); }
public virtual GMMDiag getGauss(int i) { GMMDiag gmmdiag = new GMMDiag(1, this.getNcoefs()); ByteCodeHelper.arraycopy_primitive_4(this.means[i], 0, gmmdiag.means[0], 0, this.getNcoefs()); ByteCodeHelper.arraycopy_primitive_4(this.covar[i], 0, gmmdiag.covar[0], 0, this.getNcoefs()); gmmdiag.setWeight(0, 1f); gmmdiag.precomputeDistance(); return(gmmdiag); }
public virtual GMMDiag merge(GMMDiag g, float w1) { GMMDiag gmmdiag = new GMMDiag(this.getNgauss() + g.getNgauss(), this.getNcoefs()); for (int i = 0; i < this.getNgauss(); i++) { ByteCodeHelper.arraycopy_primitive_4(this.means[i], 0, gmmdiag.means[i], 0, this.getNcoefs()); ByteCodeHelper.arraycopy_primitive_4(this.covar[i], 0, gmmdiag.covar[i], 0, this.getNcoefs()); gmmdiag.setWeight(i, this.getWeight(i) * w1); } for (int i = 0; i < g.getNgauss(); i++) { ByteCodeHelper.arraycopy_primitive_4(g.means[i], 0, gmmdiag.means[this.ngauss + i], 0, this.getNcoefs()); ByteCodeHelper.arraycopy_primitive_4(g.covar[i], 0, gmmdiag.covar[this.ngauss + i], 0, this.getNcoefs()); gmmdiag.setWeight(this.ngauss + i, g.getWeight(i) * (1f - w1)); } gmmdiag.precomputeDistance(); return(gmmdiag); }
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); }
public HMMState(GMMDiag g, Lab l) { this.gmmidx = -1; this.lab = l; this.__gmm = g; }