示例#1
0
            public Pool htkVars(string name, float num)
            {
                Pool pool      = new Pool(name);
                int  numStates = this.getNumStates();
                int  value     = 1;
                int  gmmsize   = this.getGMMSize();

                pool.setFeature(Pool.Feature.__NUM_SENONES, numStates);
                pool.setFeature(Pool.Feature.__NUM_STREAMS, value);
                pool.setFeature(Pool.Feature.__NUM_GAUSSIANS_PER_STATE, gmmsize);
                int ncoefs = this.getNcoefs();

                for (int i = 0; i < numStates; i++)
                {
                    GMMDiag gmmdiag = (GMMDiag)this.hmmsHTK.__gmms.get(i);
                    for (int j = 0; j < gmmsize; j++)
                    {
                        float[] array = new float[ncoefs];
                        int     k;
                        for (k = 0; k < ncoefs; k++)
                        {
                            array[k] = gmmdiag.getVar(j, k);
                        }
                        Utilities.floorData(array, HTKLoader.access_000(this.this_0));
                        k = i * gmmsize + j;
                        pool.put(k, array);
                    }
                }
                return(pool);
            }
示例#2
0
            public Pool htkMeans(string name)
            {
                Pool pool      = new Pool(name);
                int  numStates = this.getNumStates();
                int  value     = 1;
                int  gmmsize   = this.getGMMSize();

                pool.setFeature(Pool.Feature.__NUM_SENONES, numStates);
                pool.setFeature(Pool.Feature.__NUM_STREAMS, value);
                pool.setFeature(Pool.Feature.__NUM_GAUSSIANS_PER_STATE, gmmsize);
                int ncoefs = this.getNcoefs();

                for (int i = 0; i < numStates; i++)
                {
                    GMMDiag gmmdiag = (GMMDiag)this.hmmsHTK.__gmms.get(i);
                    for (int j = 0; j < gmmsize; j++)
                    {
                        float[] array = new float[ncoefs];
                        int     k;
                        for (k = 0; k < ncoefs; k++)
                        {
                            array[k] = gmmdiag.getMean(j, k);
                        }
                        k = i * gmmsize + j;
                        pool.put(k, array);
                    }
                }
                return(pool);
            }
示例#3
0
            public GaussianWeights htkWeights(string name, float num)
            {
                int             numStates       = this.getNumStates();
                int             numStreams      = 1;
                int             gmmsize         = this.getGMMSize();
                GaussianWeights gaussianWeights = new GaussianWeights(name, numStates, gmmsize, numStreams);

                for (int i = 0; i < numStates; i++)
                {
                    GMMDiag gmmdiag = (GMMDiag)this.hmmsHTK.__gmms.get(i);
                    float[] array   = new float[gmmsize];
                    for (int j = 0; j < gmmsize; j++)
                    {
                        array[j] = gmmdiag.getWeight(j);
                    }
                    Utilities.floorData(array, HTKLoader.access_100(this.this_0));
                    HTKLoader.access_200(this.this_0).linearToLog(array);
                    gaussianWeights.put(i, 0, array);
                }
                return(gaussianWeights);
            }
示例#4
0
            internal int getNcoefs()
            {
                GMMDiag gmmdiag = (GMMDiag)this.hmmsHTK.__gmms.get(0);

                return(gmmdiag.getNcoefs());
            }
示例#5
0
            internal int getGMMSize()
            {
                GMMDiag gmmdiag = (GMMDiag)this.hmmsHTK.__gmms.get(0);

                return(gmmdiag.getNgauss());
            }