internal virtual double getLikelihoodRatio(double num, int num2, Array2DRowRealMatrix array2DRowRealMatrix) { int num3 = 13; double num4 = 0.5 * ((double)num3 + 0.5 * (double)num3 * (double)(num3 + 1)) * java.lang.Math.log((double)array2DRowRealMatrix.getRowDimension()) * 2.0; int rowDimension = array2DRowRealMatrix.getRowDimension(); int columnDimension = array2DRowRealMatrix.getColumnDimension(); Array2DRowRealMatrix mat = (Array2DRowRealMatrix)array2DRowRealMatrix.getSubMatrix(0, num2 - 1, 0, columnDimension - 1); Array2DRowRealMatrix mat2 = (Array2DRowRealMatrix)array2DRowRealMatrix.getSubMatrix(num2, rowDimension - 1, 0, columnDimension - 1); double num5 = SpeakerIdentification.getBICValue(mat); double num6 = SpeakerIdentification.getBICValue(mat2); return(num - num5 - num6 - num4); }
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); }
private int getPoint(int num, int num2, int num3, Array2DRowRealMatrix array2DRowRealMatrix) { double num4 = double.NegativeInfinity; int columnDimension = array2DRowRealMatrix.getColumnDimension(); int num5 = 0; Array2DRowRealMatrix array2DRowRealMatrix2 = (Array2DRowRealMatrix)array2DRowRealMatrix.getSubMatrix(num, num + num2 - 1, 0, columnDimension - 1); double num6 = SpeakerIdentification.getBICValue(array2DRowRealMatrix2); for (int i = 14; i < num2 - 13; i += num3) { double num7 = this.getLikelihoodRatio(num6, i, array2DRowRealMatrix2); if (num7 > num4) { num4 = num7; num5 = i; } } if (num4 < (double)0f) { num5 = int.MinValue; } return(num5 + num); }
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()); }