static HMMPosition() { int num = 0; HMMPosition[] array = HMMPosition.values(); int num2 = array.Length; for (int i = 0; i < num2; i++) { HMMPosition hmmposition = array[i]; if ((int)String.instancehelper_charAt(hmmposition.rep, 0) > num) { num = (int)String.instancehelper_charAt(hmmposition.rep, 0); } } HMMPosition.posByRep = new HMMPosition[num + 1]; array = HMMPosition.values(); num2 = array.Length; for (int i = 0; i < num2; i++) { HMMPosition hmmposition = array[i]; HMMPosition.posByRep[(int)String.instancehelper_charAt(hmmposition.rep, 0)] = hmmposition; } }
public HMMPool(AcousticModel model, Logger logger, UnitManager unitManager) { this.logger = logger; int num = 0; this.model = model; this.unitManager = unitManager; if (model.getLeftContextSize() != 1) { string text = "LexTreeLinguist: Unsupported left context size"; throw new Error(text); } if (model.getRightContextSize() != 1) { string text2 = "LexTreeLinguist: Unsupported right context size"; throw new Error(text2); } Iterator iterator = model.getContextIndependentUnitIterator(); while (iterator.hasNext()) { Unit unit = (Unit)iterator.next(); logger.fine(new StringBuilder().append("CI unit ").append(unit).toString()); if (unit.getBaseID() > num) { num = unit.getBaseID(); } } this.numCIUnits = num + 1; this.unitTable = new Unit[this.numCIUnits * this.numCIUnits * this.numCIUnits]; iterator = model.getHMMIterator(); while (iterator.hasNext()) { HMM hmm = (HMM)iterator.next(); Unit unit2 = hmm.getUnit(); int id = this.getID(unit2); this.unitTable[id] = unit2; if (logger.isLoggable(Level.FINER)) { logger.finer(new StringBuilder().append("Unit ").append(unit2).append(" id ").append(id).toString()); } } this.hmmTable = new EnumMap(ClassLiteral <HMMPosition> .Value); HMMPosition[] array = HMMPosition.values(); int num2 = array.Length; for (int i = 0; i < num2; i++) { HMMPosition hmmposition = array[i]; HMM[] array2 = new HMM[this.unitTable.Length]; this.hmmTable.put(hmmposition, array2); for (int j = 1; j < this.unitTable.Length; j++) { Unit unit3 = this.unitTable[j]; if (unit3 == null) { unit3 = this.synthesizeUnit(j); } if (unit3 != null) { array2[j] = model.lookupNearestHMM(unit3, hmmposition, false); if (!HMMPool.assertionsDisabled && array2[j] == null) { throw new AssertionError(); } } } } }