Пример #1
0
        public virtual void load()
        {
            KaldiTextParser parser          = new KaldiTextParser(this.location);
            TransitionModel transitionModel = new TransitionModel(parser);

            this.senonePool = new KaldiGmmPool(parser);
            File              file              = new File(this.location, "phones.txt");
            InputStream       inputStream       = new URL(file.getPath()).openStream();
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader    bufferedReader    = new BufferedReader(inputStreamReader);
            HashMap           hashMap           = new HashMap();
            string            text;

            while (null != (text = bufferedReader.readLine()))
            {
                string[] array = String.instancehelper_split(text, " ");
                if (Character.isLetter(String.instancehelper_charAt(array[0], 0)))
                {
                    hashMap.put(array[0], Integer.valueOf(Integer.parseInt(array[1])));
                }
            }
            this.contextIndependentUnits = new HashMap();
            this.hmmManager = new LazyHmmManager(parser, transitionModel, this.senonePool, hashMap);
            Iterator iterator = hashMap.keySet().iterator();

            while (iterator.hasNext())
            {
                string text2 = (string)iterator.next();
                Unit   unit  = this.unitManager.getUnit(text2, String.instancehelper_equals("SIL", text2));
                this.contextIndependentUnits.put(unit.getName(), unit);
                this.hmmManager.get(HMMPosition.__UNDEFINED, unit);
            }
            this.loadTransform();
            this.loadProperties();
        }
Пример #2
0
 public LazyHmmManager(KaldiTextParser parser, TransitionModel transitionModel, Pool senonePool, Map symbolTable)
 {
     this.transitionModel = transitionModel;
     this.senonePool      = senonePool;
     this.symbolTable     = symbolTable;
     parser.expectToken("ContextDependency");
     parser.getInt();
     parser.getInt();
     parser.expectToken("ToPdf");
     this.eventMap = this.parseEventMap(parser);
     parser.expectToken("EndContextDependency");
 }
Пример #3
0
        public KaldiGmmPool(KaldiTextParser parser) : base("senones")
        {
            parser.expectToken("<DIMENSION>");
            parser.getInt();
            parser.expectToken("<NUMPDFS>");
            int @int = parser.getInt();

            for (int i = 0; i < @int; i++)
            {
                this.put(i, new DiagGmm(i, parser));
            }
        }
Пример #4
0
        private EventMap parseTableEventMap(KaldiTextParser kaldiTextParser)
        {
            int       @int      = kaldiTextParser.getInt();
            int       num       = kaldiTextParser.getInt();
            ArrayList arrayList = new ArrayList(num);

            kaldiTextParser.expectToken("(");
            for (;;)
            {
                int num2 = 0;
                int num3 = num;
                num--;
                if (num2 >= num3)
                {
                    break;
                }
                arrayList.add(this.parseEventMap(kaldiTextParser));
            }
            kaldiTextParser.expectToken(")");
            return(new TableEventMap(@int, arrayList));
        }
Пример #5
0
        private EventMap parseSplitEventMap(KaldiTextParser kaldiTextParser)
        {
            int       @int      = kaldiTextParser.getInt();
            ArrayList arrayList = new ArrayList();

            int[] intArray = kaldiTextParser.getIntArray();
            int   num      = intArray.Length;

            for (int i = 0; i < num; i++)
            {
                Integer integer = Integer.valueOf(intArray[i]);
                arrayList.add(integer);
            }
            kaldiTextParser.expectToken("{");
            EventMap      yesMap = this.parseEventMap(kaldiTextParser);
            EventMap      noMap  = this.parseEventMap(kaldiTextParser);
            SplitEventMap result = new SplitEventMap(@int, arrayList, yesMap, noMap);

            kaldiTextParser.expectToken("}");
            return(result);
        }
Пример #6
0
        private EventMap parseEventMap(KaldiTextParser kaldiTextParser)
        {
            string token = kaldiTextParser.getToken();

            if (String.instancehelper_equals("CE", token))
            {
                return(new ConstantEventMap(kaldiTextParser.getInt()));
            }
            if (String.instancehelper_equals("SE", token))
            {
                return(this.parseSplitEventMap(kaldiTextParser));
            }
            if (String.instancehelper_equals("TE", token))
            {
                return(this.parseTableEventMap(kaldiTextParser));
            }
            if (String.instancehelper_equals("NULL", token))
            {
                return(null);
            }
            string text = token;

            throw new InputMismatchException(text);
        }