Пример #1
0
        public SpeakerCluster(SpeakerCluster c)
        {
            this.segmentSet    = new TreeSet();
            this.featureMatrix = new Array2DRowRealMatrix(c.getFeatureMatrix().getData());
            Iterator iterator = c.segmentSet.iterator();

            while (iterator.hasNext())
            {
                this.addSegment((Segment)iterator.next());
            }
        }
        internal virtual double computeDistance(SpeakerCluster speakerCluster, SpeakerCluster speakerCluster2)
        {
            int rowDimension    = speakerCluster.getFeatureMatrix().getRowDimension() + speakerCluster2.getFeatureMatrix().getRowDimension();
            int columnDimension = speakerCluster.getFeatureMatrix().getColumnDimension();
            Array2DRowRealMatrix array2DRowRealMatrix = new Array2DRowRealMatrix(rowDimension, columnDimension);

            array2DRowRealMatrix.setSubMatrix(speakerCluster.getFeatureMatrix().getData(), 0, 0);
            array2DRowRealMatrix.setSubMatrix(speakerCluster2.getFeatureMatrix().getData(), speakerCluster.getFeatureMatrix().getRowDimension(), 0);
            double num  = SpeakerIdentification.getBICValue(array2DRowRealMatrix);
            double num2 = 13.0;
            double num3 = 0.5 * (num2 + 0.5 * num2 * (num2 + (double)1f)) * java.lang.Math.log((double)array2DRowRealMatrix.getRowDimension()) * 2.0;

            return(num - speakerCluster.getBicValue() - speakerCluster2.getBicValue() - num3);
        }
Пример #3
0
        public static void printSpeakerIntervals(ArrayList speakers, string fileName)
        {
            string     text       = new StringBuilder().append(java.lang.String.instancehelper_substring(fileName, 0, java.lang.String.instancehelper_indexOf(fileName, 46))).append(".seg").toString();
            FileWriter fileWriter = new FileWriter(text);
            int        num        = 0;
            Iterator   iterator   = speakers.iterator();

            while (iterator.hasNext())
            {
                SpeakerCluster speakerCluster = (SpeakerCluster)iterator.next();
                num++;
                ArrayList speakerIntervals = speakerCluster.getSpeakerIntervals();
                Iterator  iterator2        = speakerIntervals.iterator();
                while (iterator2.hasNext())
                {
                    Segment segment = (Segment)iterator2.next();
                    fileWriter.write(new StringBuilder().append(fileName).append(" ").append(1).append(" ").append(segment.getStartTime() / 10).append(" ").append(segment.getLength() / 10).append("U U U Speaker").append(num).append("\n").toString());
                }
            }
            fileWriter.close();
        }
Пример #4
0
        public static void printIntervals(ArrayList speakers)
        {
            [email protected](new StringBuilder().append("Detected ").append(speakers.size()).append(" Speakers :").toString());
            int      num      = 0;
            Iterator iterator = speakers.iterator();

            while (iterator.hasNext())
            {
                SpeakerCluster speakerCluster = (SpeakerCluster)iterator.next();
                PrintStream    @out           = java.lang.System.@out;
                StringBuilder  stringBuilder  = new StringBuilder().append("Speaker ");
                num++;
                @out.print(stringBuilder.append(num).append(": ").toString());
                ArrayList speakerIntervals = speakerCluster.getSpeakerIntervals();
                Iterator  iterator2        = speakerIntervals.iterator();
                while (iterator2.hasNext())
                {
                    Segment segment = (Segment)iterator2.next();
                    [email protected](new StringBuilder().append("[").append(Tester.time(segment.getStartTime())).append(" ").append(Tester.time(segment.getLength())).append("]").toString());
                }
                [email protected]();
            }
        }
Пример #5
0
        public virtual void mergeWith(SpeakerCluster target)
        {
            if (target == null)
            {
                throw new NullPointerException();
            }
            Iterator iterator = target.segmentSet.iterator();

            while (iterator.hasNext())
            {
                if (!this.addSegment((Segment)iterator.next()).booleanValue())
                {
                    [email protected]("Something doesn't work in mergeWith method, Cluster class");
                }
            }
            int rowDimension    = this.featureMatrix.getRowDimension() + target.getFeatureMatrix().getRowDimension();
            int columnDimension = this.featureMatrix.getColumnDimension();
            Array2DRowRealMatrix array2DRowRealMatrix = new Array2DRowRealMatrix(rowDimension, columnDimension);

            array2DRowRealMatrix.setSubMatrix(this.featureMatrix.getData(), 0, 0);
            array2DRowRealMatrix.setSubMatrix(target.getFeatureMatrix().getData(), this.featureMatrix.getRowDimension(), 0);
            this.bicValue      = SpeakerIdentification.getBICValue(array2DRowRealMatrix);
            this.featureMatrix = new Array2DRowRealMatrix(array2DRowRealMatrix.getData());
        }