Merge branch 'macster110-main'

This commit is contained in:
Douglas Gillespie 2025-02-12 09:11:14 +00:00
commit 30dfd34b8a
106 changed files with 3497 additions and 788 deletions
.settings
pom.xml
src
Map/gridbaselayer
PamController
PamUtils
PamView
PamguardMVC
Resources/css
binaryFileStorage
clickDetector
clickTrainDetector/logging
dataPlotsFX
detectionPlotFX
export
generalDatabase/lookupTables
ltsa
pamViewFX
rawDeepLearningClassifier
test

View File

@ -1,6 +1,7 @@
eclipse.preferences.version=1
encoding//src/help/utilities/tethys/docs/connection.html=UTF-8
encoding//src/rawDeepLearningClassifer/segmenter/SegmenterProcess.java=UTF-8
encoding//src/test=UTF-8
encoding//src/test/resources=UTF-8
encoding/<project>=UTF-8
encoding/src=UTF-8

View File

@ -11,9 +11,9 @@ org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.compliance=21
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@ -23,4 +23,4 @@ org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
org.eclipse.jdt.core.compiler.source=21

80
pom.xml
View File

@ -14,7 +14,6 @@
</organization>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<javafx.version>21</javafx.version>
@ -54,7 +53,7 @@
<profiles>
<!-- The MacOS profile creates a DMG package for installing PAMGuard on MacOS-->
<!--Note: Ther eis a Maven bug when using profiles when the plugin order is messed up and seemingly quite random.
<!--Note: There is a Maven bug when using profiles when the plugin order is messed up and seemingly quite random.
In PAMGuard it essential that the shade plugin is called before the macos plugin and so the phase of the
macos bundling has been moved to deploy. To run the bundler we therefore need to put both the macossappbunlder
and exec shell script into the deploy phase so they are never really called. We then explicatelyl call them after
@ -102,11 +101,11 @@
</dmg>
<!--Very important or deep learning does not work-->
<app>
<includeDependencies>false</includeDependencies>
<includeDependencies>true</includeDependencies>
</app>
<jdk>
<include>true</include>
<!--<location>/Library/Java/JavaVirtualMachines/amazon-corretto-21.jdk</location>-->
<location>/Library/Java/JavaVirtualMachines/amazon-corretto-21.jdk</location>
</jdk>
<codesign>
<enable>false</enable>
@ -314,57 +313,6 @@
</executions>
</plugin>
<!-- Plugin which creates a .dmg file for MacOS. -->
<plugin>
<groupId>de.perdian.maven.plugins</groupId>
<artifactId>macosappbundler-maven-plugin</artifactId>
<version>1.21.1</version>
<configuration>
<plist>
<JVMMainClassName>pamguard.Pamguard</JVMMainClassName>
<CFBundleIconFile>
src/Resources/PamguardIcon2.icns</CFBundleIconFile>
<CFBundleDisplayName>PAMGuard</CFBundleDisplayName>
<CFBundleDevelopmentRegion>English</CFBundleDevelopmentRegion>
<CFBundleURLTypes>
<string>msa</string>
</CFBundleURLTypes>
<JVMVersion>21+</JVMVersion>
<JVMArguments>
<string>-c</string>
</JVMArguments>
<NSAppSleepDisabled>true</NSAppSleepDisabled>
</plist>
<dmg>
<generate>true</generate>
<additionalResources>
<additionalResource>
<directory>
${project.basedir}/target/bundle/</directory>
</additionalResource>
</additionalResources>
<dmgFileName>${project.build.finalName}</dmgFileName>
<appendVersion>false</appendVersion>
</dmg>
<jdk>
<include>false</include>
<location>/Library/Java/JavaVirtualMachines/amazon-corretto-21.jdk</location>
</jdk>
<codesign>
<enable>false</enable>
<identity>3rd Party Mac Developer Application: Jamie Macaulay (7365S9DZ34)</identity>
</codesign>
</configuration>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>bundle</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
@ -494,13 +442,21 @@
<groupId>io.github.macster110</groupId>
<artifactId>jpamutils</artifactId>
<version>0.0.59e</version>
<!-- com.github.psambit9791:wavfile:jar:0.1 pulls in various junit dependencies which breaks our own testing -->
<!--<exclusions>
<exclusion>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
</exclusion>
</exclusions>-->
</dependency>
<!--jpam project - Deep learning java library -->
<dependency>
<groupId>io.github.macster110</groupId>
<artifactId>jdl4pam</artifactId>
<version>0.0.99e</version>
<version>0.0.99f</version>
</dependency>
<!-- https://mvnrepository.com/artifact/gov.nist.math/jama -->
@ -810,11 +766,11 @@
<version>2.12.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>9.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
@ -825,7 +781,7 @@
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.17.0</version>
<version>4.29.1</version>
</dependency>
<!-- https://docs.unidata.ucar.edu/netcdf-java/5.2/userguide/using_netcdf_java_artifacts.html -->
@ -833,7 +789,7 @@
<dependency>
<groupId>edu.ucar</groupId>
<artifactId>netcdfAll</artifactId>
<version>4.6.14</version>
<version>5.4.1</version>
<exclusions>
<exclusion>
<groupId>com.google.protobuf</groupId>

View File

@ -7,11 +7,11 @@ import java.io.IOException;
import PamView.ColourArray;
import PamView.PamColors;
import PamView.PamColors.PamColor;
import ucar.netcdf.Dimension;
import ucar.netcdf.DimensionSet;
import ucar.netcdf.NetcdfFile;
import ucar.netcdf.Variable;
import ucar.netcdf.VariableIterator;
import ucar.ma2.Array;
import ucar.ma2.Index;
import ucar.nc2.Dimension;
import ucar.nc2.NetcdfFile;
import ucar.nc2.Variable;
public class GebcoNETCDF {
@ -37,18 +37,19 @@ public class GebcoNETCDF {
return;
}
DimensionSet dim = ncf.getDimensions();
Dimension latDim = dim.get(latName);
ncf.findDimension(eleName);
Dimension latDim = ncf.findDimension(latName);
nLat = latDim.getLength();
Dimension lonDim = dim.get(lonName);
Dimension lonDim = ncf.findDimension(lonName);
nLon = lonDim.getLength();
latRange = getRange(latName);
lonRange = getRange(lonName);
elevationRange = extractElevationRange();
}
public MapRasterImage getImage(double[] latRange, double[] lonRange, boolean forceRecreate) {
if (mapImage == null || forceRecreate) {
int[] latRangeBins = {0, nLat};
@ -65,46 +66,57 @@ public class GebcoNETCDF {
private double[] getRange(String varName) {
Variable var = findVariable(varName);
Dimension dim = netcdfFile.getDimensions().get(varName);
Dimension dim = netcdfFile.findDimension(varName);
int n = dim.getLength();
if (var == null) {
return null;
}
double[] range = new double[2];
int[] pos = new int[2];
try {
range[0] = var.getDouble(pos);
Array varA = var.read();
Index index = varA.getIndex();
range[0] = varA.getDouble(index.set(pos[0], pos[1]));
pos[0] = n-1;
range[1] = var.getDouble(pos);
range[1] = varA.getDouble(index.set(pos[0], pos[1]));
} catch (IOException e) {
e.printStackTrace();
}
return range;
}
private double[] extractElevationRange() {
Variable ele = findVariable(eleName);
double[] range = new double[2];
double val;
int iVal;
int[] pos = new int[2];
Variable eleV = findVariable(eleName);
try {
Array ele = eleV.read();
double[] range = new double[2];
double val;
// int iVal;
// int[] pos = new int[2];
Index index = ele.getIndex();
for (int i = 0; i < nLat; i++) {
pos[0] = i;
// pos[0] = i;
for (int j = 0; j < nLon; j++) {
pos[1] = j;
val = ele.getDouble(pos);
// pos[1] = j;
val = ele.getDouble(index.set(i,j));
range[0] = Math.min(range[0], val);
range[1] = Math.max(range[1], val);
}
}
} catch (IOException e) {
return range;
} catch (Exception e) {
e.printStackTrace();
return null;
}
return range;
}
/**
* work out a value from an evenly spaced range based on a bin number
* @param valueRange
@ -114,11 +126,11 @@ public class GebcoNETCDF {
double binToValue(double[] valueRange, int nBin, double bin) {
return valueRange[0] + (valueRange[1]-valueRange[0])*(double) bin / (double) (nBin);
}
double latBinToValue(double latBin) {
return binToValue(latRange, nLat, latBin);
}
double lonBinToValue(double lonBin) {
return binToValue(lonRange, nLon, lonBin);
}
@ -128,7 +140,7 @@ public class GebcoNETCDF {
ColourArray depthArray = ColourArray.createMultiColouredArray(100, Color.WHITE, PamColors.getInstance().getColor(PamColor.MAP));
return createImage(latRangeBins, lonRangeBins, heightArray, depthArray, hop);
}
public MapRasterImage createImage(int[] latRangeBins, int[] lonRangeBins, ColourArray heightColours, ColourArray depthColours, int hop) {
latRangeBins[0] = Math.max(latRangeBins[0], 0);
latRangeBins[1] = Math.min(latRangeBins[1], nLat);
@ -144,12 +156,14 @@ public class GebcoNETCDF {
/*
* need to get the maxima and minima of the elevation data for scaling.
*/
Variable ele = findVariable(eleName);
Variable eleV = findVariable(eleName);
double maxDepth = -elevationRange[0], maxHeight = elevationRange[1];
double val;
int iVal;
int[] pos = new int[2];
try {
Array ele = eleV.read();
Index index = ele.getIndex();
double hRat = 300;
int nH = heightColours.getNumbColours();
int nD = depthColours.getNumbColours();
@ -161,15 +175,15 @@ public class GebcoNETCDF {
pos[0] = i;
for (int j = lonRangeBins[0], ji = 0; j < lonRangeBins[1] && ji < image.getWidth(); j+= hop, ji++) {
pos[1] = j;
val = ele.getDouble(pos);
val = ele.getDouble(index.set(i,j));
ColourArray colours;
if (val >= 0) {
// iVal = (int) (99*Math.log10(val+1)/Math.log10(maxHeight));
// iVal = (int) (99*Math.log10(val+1)/Math.log10(maxHeight));
iVal = (int) (ah*Math.log(val+1) + bh);
colours = heightColours;
}
else {
// iVal = (int) (99*Math.log10(-val)/Math.log10(maxDepth));
// iVal = (int) (99*Math.log10(-val)/Math.log10(maxDepth));
iVal = (int) (ad*Math.log(-val) + bd);
colours = depthColours;
}
@ -181,7 +195,7 @@ public class GebcoNETCDF {
} catch (IOException e) {
e.printStackTrace();
}
double[] latRange = new double[2];
double[] lonRange = new double[2];
double[] edges = {-.5, +.5};
@ -199,21 +213,23 @@ public class GebcoNETCDF {
* @return Variable or null
*/
private Variable findVariable(String varName) {
VariableIterator varIter = netcdfFile.iterator();
while (varIter.hasNext() ) {
Variable var = varIter.next();
if (var.getName().equalsIgnoreCase(varName)) {
return var;
}
}
return null;
return netcdfFile.findVariable(varName);
// VariableIterator varIter = netcdfFile.findVariable(varName);
// while (varIter.hasNext() ) {
// Variable var = varIter.next();
// if (var.getName().equalsIgnoreCase(varName)) {
// return var;
// }
// }
// return null;
}
private boolean hasField(String fieldName) {
if (netcdfFile.contains(fieldName)) {
if (netcdfFile.findVariable(fieldName)!=null) {
return true;
}
System.out.printf("Map file %s has no field \"%s\"\n", netcdfFile.getName(), fieldName);
System.out.printf("Map file %s has no field \"%s\"\n", netcdfFile.getTitle(), fieldName);
return false;
}
@ -238,9 +254,10 @@ public class GebcoNETCDF {
}
NetcdfFile ncf;
try {
ncf = new NetcdfFile(ncFile, true);
ncf = NetcdfFile.open(ncFile.getPath());
GebcoNETCDF gebcoRaster = new GebcoNETCDF(ncf);
// ncf.close();
// ncf.close();
return gebcoRaster;
} catch (IOException e) {
e.printStackTrace();

View File

@ -3,7 +3,6 @@ package Map.gridbaselayer;
import java.awt.image.BufferedImage;
import PamguardMVC.PamDataUnit;
import ucar.multiarray.MultiArray;
@Deprecated
public class GridDataUnit extends PamDataUnit {
@ -11,15 +10,14 @@ public class GridDataUnit extends PamDataUnit {
private double[] latArray;
private double[] lonArray;
private BufferedImage image;
private MultiArray data;
public GridDataUnit(double[] latArray, double[] lonArray, BufferedImage image, MultiArray elevation) {
public GridDataUnit(double[] latArray, double[] lonArray, BufferedImage image) {
super(0);
setDurationInMilliseconds(System.currentTimeMillis());
this.latArray = latArray;
this.lonArray = lonArray;
this.image = image;
this.data = elevation;
//this.data = elevation;
}
/**
@ -64,19 +62,19 @@ public class GridDataUnit extends PamDataUnit {
this.image = image;
}
/**
* @return the data
*/
public MultiArray getData() {
return data;
}
/**
* @param data the data to set
*/
public void setData(MultiArray data) {
this.data = data;
}
// /**
// * @return the data
// */
// public MultiArray getData() {
// return data;
// }
//
// /**
// * @param data the data to set
// */
// public void setData(MultiArray data) {
// this.data = data;
// }
}

View File

@ -3115,7 +3115,7 @@ public class PamController implements PamControllerInterface, PamSettings {
}
/**
* Gt the main PAMGuard configuration (list of connected modules).
* Get the main PAMGuard configuration (list of connected modules).
*
* @return the pamConfiguration
*/

View File

@ -833,6 +833,21 @@ public class PamArrayUtils {
}
return sum;
}
/**
* Sum the elements in an array
* @param array - the array to sum.
* @return the summation of all the elements in the array.
*/
public static double sum(float[] array) {
double sum=0;
for (double val:array) {
sum+=val;
}
return sum;
}
/**
@ -920,14 +935,23 @@ public class PamArrayUtils {
/**
* Print an array to the console.
* @param array to print
* @param row - if true then prints all results in a single row
*/
public static void printArray(float[] array) {
public static void printArray(float[] array, boolean row) {
if (array==null) System.out.println("null");
for (int i=0; i<array.length; i++) {
System.out.println(i + ": " + array[i]);
if (row) System.out.print(array[i] + " ");
else System.out.println(i + ": " + array[i]);
}
}
/**
* Print an array to the console.
* @param array to print
*/
public static void printArray(float[] array) {
printArray(array, false);
}
/**
* Print an array to the console with no index numbers

View File

@ -197,6 +197,7 @@ public class SelectFolder {
if (!f.exists()) {
if (JOptionPane.showConfirmDialog(folderPanel, "The directory " + folder + " does not exist " +
"do you want to create it ?", "Select Directory", JOptionPane.YES_NO_CANCEL_OPTION) == JOptionPane.YES_OPTION) {
if (!f.mkdirs()) {
// print a warning message
JOptionPane.showMessageDialog(folderPanel, "The folder " + folder + " could not be created",

View File

@ -172,7 +172,11 @@ public class PamGui extends PamView implements WindowListener, PamSettings {
frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
String iconLoc = PamIcon.getPAMGuardIconPath(PamIcon.OLD);
//<<<<<<< HEAD
// String iconLoc = PamIcon.getPAMGuardIconPath(PamIcon.OLD);
//=======
String iconLoc = PamIcon.getPAMGuardIconPath(PamIcon.NORMAL);
//>>>>>>> b88dbada951a64364503ec687b4babdc4df07183
// switch (PamController.getInstance().getRunMode()){
// case(PamController.RUN_NETWORKRECEIVER):iconLoc=PamIcon.getPAMGuardIconPath(PamIcon.NORMAL);break;
// case(PamController.RUN_PAMVIEW):iconLoc=PamIcon.getPAMGuardIconPath(PamIcon.NORMAL);break;

View File

@ -96,7 +96,7 @@ public class WarnOnce implements PamSettings {
}
else if (PamGUIManager.isFX()) {
return singleInstance.showWarningDialogFX(null,
title, message, getAlertType(messageType), helpPoint, error, okButtonText, cancelButtonText);
title, message, getAlertType(messageType), helpPoint, error, okButtonText, cancelButtonText, false);
}
return -1;
}
@ -273,7 +273,21 @@ public class WarnOnce implements PamSettings {
* otherwise OK_OPTION will always be returned.
*/
public static int showWarningFX(javafx.stage.Window parent, String title, String message, AlertType messageType) {
return singleInstance.showWarningDialogFX(parent, title, message, messageType, null, null, null, null);
return singleInstance.showWarningDialogFX(parent, title, message, messageType, null, null, null, null, false);
}
/**
* Show a warning message in JavaFX dialog.
* @param parent parent frame
* @param title title of warning
* @param message warning message (use html for multiline messages)
* @param messageType message type OK_CANCEL_OPTION or WARNING_MESSAGE
* @return if messageType is OK_CANCEN_OPTION this will return OK_OPTION or CANECL_OPTION,
* otherwise OK_OPTION will always be returned.
*/
public static int showWarningFX(javafx.stage.Window parent, String title, String message, AlertType messageType, boolean disableCheckBoxes) {
return singleInstance.showWarningDialogFX(parent, title, message, messageType, null, null, null, null, disableCheckBoxes);
}
/**
@ -289,7 +303,7 @@ public class WarnOnce implements PamSettings {
* otherwise OK_OPTION will always be returned.
*/
public static int showWarningFX(javafx.stage.Window parent, String title, String message, AlertType messageType, String helpPoint) {
return singleInstance.showWarningDialogFX(parent, title, message, messageType, helpPoint, null, null, null);
return singleInstance.showWarningDialogFX(parent, title, message, messageType, helpPoint, null, null, null, false);
}
/**
@ -304,7 +318,7 @@ public class WarnOnce implements PamSettings {
*/
public static int showWarningFX(javafx.stage.Window parent, String title, String message, AlertType messageType, String helpPoint, Throwable error) {
if (! PamController.checkIfNetworkControlled()) {
return singleInstance.showWarningDialogFX(parent, title, message, messageType, helpPoint, error, null, null);
return singleInstance.showWarningDialogFX(parent, title, message, messageType, helpPoint, error, null, null, false);
} else {
System.out.println(" ");
System.out.println("*** Warning: " + title);
@ -327,7 +341,7 @@ public class WarnOnce implements PamSettings {
* @return if messageType is OK_CANCEL_OPTION this will return OK_OPTION or CANCEL_OPTION, otherwise OK_OPTION will always be returned.
*/
public static int showWarningFX(javafx.stage.Window parent, String title, String message, AlertType messageType, String helpPoint, Throwable error, String okButtonText, String cancelButtonText) {
return singleInstance.showWarningDialogFX(parent, title, message, messageType, helpPoint, error, okButtonText, cancelButtonText);
return singleInstance.showWarningDialogFX(parent, title, message, messageType, helpPoint, error, okButtonText, cancelButtonText, false);
}
/**
@ -407,7 +421,8 @@ public class WarnOnce implements PamSettings {
* @return if messageType is OK_CANCEN_OPTION this will return OK_OPTION or CANECL_OPTION,
* otherwise OK_OPTION will always be returned.
*/
private int showWarningDialogFX(javafx.stage.Window parent, String title, String message, AlertType messageType, String helpPoint, Throwable error, String okButtonText, String cancelButtonText) {
private int showWarningDialogFX(javafx.stage.Window parent, String title, String message, AlertType messageType, String helpPoint,
Throwable error, String okButtonText, String cancelButtonText, boolean disableCheckBoxes) {
// check if we should show the warning again this session
Boolean showAgain = showThisSess.get(title+message);
@ -424,7 +439,7 @@ public class WarnOnce implements PamSettings {
}
// show the warning
WarnOnceDialogFX wo = new WarnOnceDialogFX(parent, title, message, messageType, helpPoint, error, okButtonText, cancelButtonText);
WarnOnceDialogFX wo = new WarnOnceDialogFX(parent, title, message, messageType, helpPoint, error, okButtonText, cancelButtonText, disableCheckBoxes);
wo.showDialog();
warnOnceList.setShowWarning(title+message, wo.isShowAgain());
showThisSess.put(title+message, wo.isShowThisSess());

View File

@ -14,6 +14,8 @@ import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonType;
import javafx.scene.control.CheckBox;
import javafx.scene.control.DialogPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.stage.Window;
import pamViewFX.fxNodes.PamHBox;
@ -48,7 +50,7 @@ public class WarnOnceDialogFX {
* The warning message
*/
private String message;
/**
* The opt out this session check box.
*/
@ -59,6 +61,8 @@ public class WarnOnceDialogFX {
*/
private CheckBox dontShowAgain;
private HBox checkBoxPane;
/**
* Constructor the warn once dialog.
* @param parentStage - the parent window
@ -74,12 +78,12 @@ public class WarnOnceDialogFX {
alert = createAlertWithOptOut(alertType, title, null, message, "Don't show this message again", ButtonType.YES, ButtonType.NO);
// if (alert.showAndWait().filter(t -> t == ButtonType.YES).isPresent()) {
// }
// for now, this is not implemented so just make sure it's not checked. If we want to add it to the dialog, we'll need to rearrange everything
// because the opt-out checkbox is added to the buttons bar in a sneaky way, and you can't do that twice.
dontShowAgainThisSess.setSelected(false);
}
/**
* Constructor the warn once dialog.
* @param parentStage - the parent window
@ -92,20 +96,34 @@ public class WarnOnceDialogFX {
* @param canceltext
*/
public WarnOnceDialogFX(Window parentStage, String title, String message, AlertType alertType , String helpPoint, Throwable error, String oktext, String canceltext) {
this(parentStage, title, message, alertType, helpPoint, error, oktext, canceltext, false);
}
public WarnOnceDialogFX(Window parentStage, String title, String message, AlertType alertType , String helpPoint,
Throwable error, String oktext, String canceltext, boolean disableCheckBoxes) {
this.error=error;
this.message=message;
ButtonType okButton;
if (oktext==null) okButton = ButtonType.OK;
else okButton = new ButtonType(oktext);
ButtonType cancelButton;
if (canceltext==null) cancelButton = ButtonType.OK;
else cancelButton = new ButtonType(canceltext);
//TODO help point.
alert = createAlertWithOptOut(alertType, title, null, message, "Don't show this message again", okButton, cancelButton);
//System.out.println("CREATE ALERT: " + disableCheckBoxes);
this.disableCheckBoxes(disableCheckBoxes);
}
/**
* Show the warning dialog.
@ -142,7 +160,7 @@ public class WarnOnceDialogFX {
clpbrd.setContents(stringSelection, null);
}
}
public boolean isShowAgain() {
return dontShowAgain.isSelected() == false;
}
@ -164,7 +182,7 @@ public class WarnOnceDialogFX {
private Alert createAlertWithOptOut(AlertType type, String title, String headerText,
String message, String optOutMessage,
ButtonType... buttonTypes) {
Alert alert = new Alert(type);
// Need to force the alert to layout in order to grab the graphic,
// as we are replacing the dialog pane with a custom pane
@ -174,22 +192,22 @@ public class WarnOnceDialogFX {
// Create a new dialog pane that has a checkbox instead of the hide/show details button
// Use the supplied callback for the action of the checkbox
alert.setDialogPane(new DialogPane() {
@Override
protected Node createDetailsButton() {
dontShowAgain = new CheckBox();
dontShowAgain.setText(optOutMessage + " ever");
dontShowAgainThisSess = new CheckBox();
dontShowAgainThisSess.setText(" this session ");
PamHBox hBox = new PamHBox();
hBox.getChildren().addAll(dontShowAgain, dontShowAgainThisSess);
hBox.setSpacing(5);
hBox.setAlignment(Pos.CENTER_LEFT);
return hBox;
checkBoxPane = new PamHBox();
checkBoxPane.getChildren().addAll(dontShowAgain, dontShowAgainThisSess);
checkBoxPane.setSpacing(5);
checkBoxPane.setAlignment(Pos.CENTER_LEFT);
return checkBoxPane;
}
});
alert.getDialogPane().getButtonTypes().addAll(buttonTypes[0]);
@ -202,7 +220,7 @@ public class WarnOnceDialogFX {
alert.getDialogPane().setGraphic(graphic);
alert.setTitle(title);
alert.setHeaderText(headerText);
return alert;
}
@ -215,5 +233,12 @@ public class WarnOnceDialogFX {
}
public void disableCheckBoxes(boolean disable) {
checkBoxPane.setDisable(disable);
dontShowAgain.setDisable(disable);
dontShowAgainThisSess.setDisable(disable);
}
}

View File

@ -170,8 +170,8 @@ public class RawDataTransforms {
}
double[] waveformTrim = new double[maxBin-minBin];
// System.out.println("minBin: " +minBin + " maxBin: " + maxBin + " " + Math.min(this.getWaveData(channel).length, waveformTrim.length) + " " + this.getWaveData(channel).length + " " + this.getSampleDuration());
// System.out.println("minBin: " +minBin + " maxBin: " + maxBin + " " + Math.min(this.getWaveData(channel).length, waveformTrim.length) + " " + this.getWaveData(channel).length + " " + this.getSampleDuration());
System.arraycopy(this.getWaveData(channel), minBin, waveformTrim, 0, Math.min(this.getWaveData(channel).length-minBin-1, waveformTrim.length));
@ -187,9 +187,10 @@ public class RawDataTransforms {
*
* @param channel channel number
* @param fftLength
* @param Hann - true to use hanning window
* @return Power spectrum
*/
public double[] getPowerSpectrum(int channel, int fftLength) {
public double[] getPowerSpectrum(int channel, int fftLength, boolean Hann) {
synchronized (synchObject) {
if (powerSpectra == null) {
powerSpectra = new double[PamUtils.getNumChannels(dataUnit.getChannelBitmap())][];
@ -200,7 +201,13 @@ public class RawDataTransforms {
if (powerSpectra[channel] == null
|| powerSpectra[channel].length != fftLength / 2) {
ComplexArray cData = getComplexSpectrumHann(channel, fftLength);
ComplexArray cData;
if (Hann) {
cData = getComplexSpectrumHann(channel, fftLength);
}
else {
cData = getComplexSpectrum(channel, fftLength);
}
currentSpecLen = fftLength;
powerSpectra[channel] = cData.magsq();
if (powerSpectra==null){
@ -216,6 +223,19 @@ public class RawDataTransforms {
}
}
/**
* Returns the power spectrum for a given channel (square of magnitude of
* complex spectrum)
*
* @param channel channel number
* @param fftLength
* @return Power spectrum
*/
public double[] getPowerSpectrum(int channel, int fftLength) {
return getPowerSpectrum( channel, fftLength, true);
}
/**
* Returns the sum of the power spectra for all channels
@ -410,7 +430,7 @@ public class RawDataTransforms {
paddedRawData = new double[fftLength];
rawData = getWaveData(channel);
//double[] rotData = getRotationCorrection(channel);
/**
*FIXME
* 11/07 Changed from getSampleDuration because an error sometimes occurs where the sample duration
@ -418,7 +438,7 @@ public class RawDataTransforms {
*/
//mn = Math.min(fftLength, getSampleDuration().intValue());
mn = Math.min(fftLength, rawData.length);
// System.out.println("fftLength: " + rawData.length + " " + getSampleDuration().intValue() + " mn " +mn);
// System.out.println("fftLength: " + rawData.length + " " + getSampleDuration().intValue() + " mn " +mn);
for (i = 0; i < mn; i++) {
paddedRawData[i] = rawData[i];//-rotData[i];
}

View File

@ -0,0 +1,237 @@
/* General Styling for PAMGuard JavaFX controls which trys to replicate the Swing Flatlaf theme */
.root {
-fx-font-family: "Segoe UI", "Tahoma", "Arial", sans-serif;
-fx-font-size: 13px;
-fx-base: #f5f5f5;
-fx-background: #ffffff;
-fx-control-inner-background: #ffffff;
-fx-control-inner-background-alt: #f0f0f0;
-fx-focus-color: #3895EC;
-fx-faint-focus-color: rgba(56, 149, 236, 0.2);
-fx-accent: #3895EC;
-fx-default-button: -fx-accent;
}
/* Labels */
.label {
-fx-text-fill: #333333;
}
/* Buttons */
.button {
-fx-background-color: #ffffff;
-fx-border-color: #cccccc;
-fx-border-width: 1px;
-fx-padding: 6px 12px;
-fx-text-fill: #333333;
-fx-background-radius: 3px;
-fx-border-radius: 3px;
}
.button:hover {
-fx-background-color: #f0f0f0;
}
.button:pressed {
-fx-background-color: #e6e6e6;
}
.button:default {
-fx-background-color: -fx-accent;
-fx-text-fill: white;
-fx-border-color: transparent;
}
.button:default:hover {
-fx-background-color: #2f7dbe;
}
.button:default:pressed {
-fx-background-color: #266591;
}
/* Text Fields and Text Areas */
.text-field,
.text-area {
-fx-background-color: #ffffff;
-fx-border-color: #cccccc;
-fx-border-width: 1px;
-fx-padding: 4px;
-fx-prompt-text-fill: #999999;
-fx-background-radius: 3px;
-fx-border-radius: 3px;
}
.text-field:focused,
.text-area:focused {
-fx-border-color: -fx-focus-color;
-fx-effect: null;
}
/* Checkboxes */
.check-box {
-fx-padding: 2px;
}
/* Combo Boxes */
.combo-box {
-fx-background-color: #ffffff;
-fx-border-color: #cccccc;
-fx-border-width: 1px;
-fx-padding: 4px;
-fx-background-radius: 3px;
-fx-border-radius: 3px;
}
.combo-box:focused {
-fx-border-color: -fx-focus-color;
-fx-effect: null;
}
/* Toggle Switches (using a custom approach) */
.toggle-switch {
-fx-cursor: hand;
}
.toggle-switch .track {
-fx-background-color: #cccccc;
-fx-background-radius: 10px;
-fx-pref-width: 40px; /* Adjust as needed */
-fx-pref-height: 20px;
}
.toggle-switch:selected .track {
-fx-background-color: -fx-accent;
}
.toggle-switch .thumb {
-fx-background-color: white;
-fx-background-radius: 50%;
-fx-pref-width: 16px;
-fx-pref-height: 16px;
-fx-translate-x: -10px; /* Initial position */
}
.toggle-switch:selected .thumb {
-fx-translate-x: 10px; /* Shifted position */
}
/****************************************************************
Spinner
****************************************************************/
.spinner {
-fx-background-color: #ffffff;
-fx-border-color: #cccccc;
-fx-border-width: 1px;
-fx-padding: 4px;
-fx-background-radius: 3px;
-fx-border-radius: 3px;
}
.spinner:focused {
-fx-border-color: -fx-focus-color;
-fx-effect: null;
}
.spinner .text-field {
-fx-background-color: inherit; /* Inherit from spinner background */
-fx-border-color: inherit; /* Inherit from spinner border */
-fx-border-width: 0; /* No separate border for the text field */
-fx-padding: 5px 0; /* Consistent vertical padding */
-fx-alignment: center; /* Center text */
}
.spinner .increment-arrow-button,
.spinner .decrement-arrow-button {
-fx-background-color: #d2d2d2; /* Light gray background for buttons */
-fx-border-color: inherit; /* Inherit border from spinner */
-fx-border-width: 0; /* No separate border for buttons */
-fx-padding: 5px 5px;
}
.spinner .increment-arrow-button:hover,
.spinner .decrement-arrow-button:hover {
-fx-background-color: #3895EC; /* FlatLaf blue highlight on hover */
-fx-text-fill: white; /* White arrow on hover */
}
/* Split Arrows (Horizontal) */
.spinner.split-arrows-horizontal {
-fx-border-radius: 3px; /* Ensure rounded corners for the overall spinner */
}
.spinner.split-arrows-horizontal .text-field {
-fx-border-width: 0;
-fx-border-color: inherit;
}
.spinner.split-arrows-horizontal .increment-arrow-button {
-fx-background-radius: 0 3px 3px 0; /* Right rounded corners */
}
.spinner.split-arrows-horizontal .decrement-arrow-button {
-fx-background-radius: 3px 0 0 3px; /* Left rounded corners */
}
/* Fix for borders between elements*/
.spinner.split-arrows-horizontal .increment-arrow-button {
-fx-border-width: 0 1px 0 0;
}
.spinner.split-arrows-horizontal .decrement-arrow-button {
-fx-border-width: 0 0 0 1px;
}
/* Scroll Bars */
.scroll-bar:vertical .increment-button,
.scroll-bar:vertical .decrement-button,
.scroll-bar:horizontal .increment-button,
.scroll-bar:horizontal .decrement-button {
-fx-background-color: transparent;
-fx-border-color: transparent;
}
.scroll-bar:vertical .thumb,
.scroll-bar:horizontal .thumb {
-fx-background-color: rgba(0, 0, 0, 0.2);
-fx-background-radius: 5px;
}
.scroll-bar:vertical .thumb:hover,
.scroll-bar:horizontal .thumb:hover {
-fx-background-color: rgba(0, 0, 0, 0.4);
}
/* Tables */
.table-view {
-fx-background-color: transparent;
-fx-border-color: #cccccc;
-fx-border-width: 1px;
}
.table-view .column-header-background {
-fx-background-color: #f0f0f0;
}
.table-view .column-header {
-fx-border-color: #cccccc;
-fx-padding: 6px;
}
.table-row-cell:even {
-fx-background-color: -fx-control-inner-background;
}
.table-row-cell:odd {
-fx-background-color: -fx-control-inner-background-alt;
}
.table-row-cell:selected {
-fx-background-color: rgba(56, 149, 236, 0.3);
}

View File

@ -128,6 +128,10 @@ public class BinaryStorageDialogPanel {
return false;
}
binaryStoreSettings.setStoreLocation(storageLocation.getFolderName(true));
if (binaryStoreSettings.getStoreLocation()==null) {
//cancel button pressed - return to dialog
return false;
}
binaryStoreSettings.autoNewFiles = autoNewFiles.isSelected();
binaryStoreSettings.datedSubFolders = dateSubFolders.isSelected();
binaryStoreSettings.limitFileSize = limitfileSize.isSelected();

View File

@ -191,7 +191,7 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
public ClickSpectrum(STClickControl clickControl, ClickDisplayManager clickDisplayManager, ClickDisplayManager.ClickDisplayInfo clickDisplayInfo) {
this((ClickControl) clickControl, clickDisplayManager, clickDisplayInfo);
}
@Override
public PamObserver getObserverObject() {
return this;
@ -409,15 +409,22 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
eventLineData = eventSpectrum;
}
if (!isEventClick(storedClick)) {
eventLineData = null;
}
// work out the scales, mins and max's, etc.
maxVal = 0;
for (int iChan = 0; iChan < clickLineData.length; iChan++) {
for (int i = 0; i < clickLineData[iChan].length; i++){
maxVal = Math.max(maxVal, clickLineData[iChan][i]);
if (eventLineData!=null && eventLineData[iChan]!=null && isViewer && clickSpectrumParams.showEventInfo ){
if( i<eventLineData[iChan].length){
maxVal = Math.max(maxVal, eventLineData[iChan][i]);
// System.out.println(eventLineData == null ? "Event is null" : ("Event length is " + eventLineData.length));
if (!clickSpectrumParams.plotCepstrum && eventLineData!=null) {
if (eventLineData[iChan]!=null && isViewer && clickSpectrumParams.showEventInfo ){
if( i<eventLineData[iChan].length){
maxVal = Math.max(maxVal, eventLineData[iChan][i]);
}
}
}
}
@ -446,7 +453,7 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
double scale = 1./(maxVal*1.1);
if (isViewer ){
if (eventLineData!=null && clickSpectrumParams.showEventInfo){
if (eventLineData!=null && clickSpectrumParams.showEventInfo && !clickSpectrumParams.plotCepstrum){
g2.setStroke(dashed);
@ -516,8 +523,8 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
*/
private void paintLogSpectrum(Graphics g, Rectangle clipRect) {
double[][] clickLineData;
double[][] eventLineData;
double[][] clickLineData = null;
double[][] eventLineData = null;
synchronized (storedSpectrumLock) {
if (storedSpectrum == null || storedSpectrum.length == 0 || storedSpectrum[0].length == 0) return;
@ -530,13 +537,17 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
eventLineData = eventSpectrum;
}
if (!isEventClick(storedClick)) {
eventLineData = null;
}
//System.out.println("paintLogSpectrum.eventLineData: 1" + eventLineData[0].length);
if (logSpectrum == null || clickSpectrumParams.plotCepstrum != lastCepChoice || eventSpectrumTemplatesLog!=null) {
double temp;
logSpectrum = new double[clickLineData.length][clickLineData[0].length];
if (eventSpectrum!=null && isViewer ){
if (eventLineData!=null && isViewer ){
logEventSpectrum = new double[eventLineData.length][eventLineData[0].length];
}
if (eventSpectrumTemplatesLog!=null && isViewer ){
@ -554,7 +565,7 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
}
}
//sperated this out and the spectrums can be different lengths.
//seperated this out and the spectrums can be different lengths.
if (eventLineData!=null && isViewer &&clickSpectrumParams.showEventInfo){
for (int i = 0; i < eventLineData[iChan].length; i++){
if( i<eventLineData[iChan].length){
@ -581,8 +592,8 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
logTemplateSpectrum[i]=logTemplate;
}
}
}
lastCepChoice = clickSpectrumParams.plotCepstrum;
drawLogSpectrum(g,clipRect,clickLineData, eventLineData);
}
@ -608,7 +619,7 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
//show an average log spectrum
if (eventLineData!=null && isViewer && clickSpectrumParams.showEventInfo){
if (eventLineData!=null && isViewer && clickSpectrumParams.showEventInfo && !clickSpectrumParams.plotCepstrum){
xScale = (double) r.width / (double) (eventLineData[0].length - 1);
scaleLim = Math.abs(clickSpectrumParams.logRange);
@ -629,7 +640,7 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
}
//show custim templates
if (clickTemplateParams.clickTemplateArray.size()>0 && eventLineData !=null){
if (clickTemplateParams.clickTemplateArray.size()>0 && logTemplateSpectrum !=null){
g2.setStroke(dashedtmplate);
for (int i = 0; i < logTemplateSpectrum.length; i++) {
if (logTemplateSpectrum[i]!=null && clickTemplateParams.clickTempVisible.get(i)==true){
@ -782,12 +793,12 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
menuItem.addActionListener(new EditTemplates());
menu.add(menuItem);
}
menuItem = new JMenuItem("Add template...");
menuItem.addActionListener(new AddTemplate());
menu.add(menuItem);
menuItem = new JMenuItem("Clear templates");
menuItem.addActionListener(new ClearTemplates());
menu.add(menuItem);
@ -807,15 +818,15 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
repaint(10);
}
}
private class AddTemplate implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
addTemnplateDialog();
}
}
private class ClearTemplates implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
@ -882,7 +893,7 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
}
}
public void clearTemplates(){
clickTemplateParams.clickTemplateArray=new ArrayList<ClickTemplate>();
clickTemplateParams.clickTempVisible=new ArrayList<Boolean>();
@ -952,7 +963,8 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
storedSpectrum[i] = SmoothingFilter.smoothData(storedSpectrum[i], clickSpectrumParams.plotSmoothing);
}
}
//calculating an event spectrum can take a very long time.
//calculating an event spectrum can take a very long time so we don't delete the last event incase a user
//is clicking between one event and un-annotated clicks so whether to draw an event is handled in the paint functions
if (isViewer && this.clickSpectrumParams.showEventInfo){
getEventClick(newClick);
}
@ -964,6 +976,16 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
spectrumAxisPanel.repaint(100);
}
/**
* Does the click belong to an event.
*/
private boolean isEventClick(ClickDetection newClick) {
if (newClick.getSuperDetection(0)==null || !newClick.getSuperDetection(0).equals(lastEvent) ) {
return false;
}
return true;
}
/**
* Normalis so that the amplitude of the cepstrum is the same as that of the spectrum.
@ -1323,7 +1345,7 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
@Override
public void updateData(PamObservable observable, PamDataUnit pamDataUnit) {
// TODO Auto-generated method stub
}
public ClickDetection getStoredClick(){
@ -1375,7 +1397,7 @@ public class ClickSpectrum extends ClickDisplay implements PamObserver , PamSett
clickSpectrumParams = ((ClickSpectrumParams) pamControlledUnitSettings.getSettings()).clone();
return true;
}
@Override
public void receiveSourceNotification(int type, Object object) {
// don't do anything by default

View File

@ -316,7 +316,7 @@ public class ClickSpectrumTemplateEditDialog extends PamDialog{
ArrayList<double[]> fftAll=getEventFFTs(channel,true);
//create standard average spectrum
this.averageFFT=fftMean(fftAll);
printFFT( averageFFT);
//printFFT( averageFFT);
this.stdFFT=fftstd(fftAll,averageFFT);
//create log template
this.averageFFTLog=fftMean(convertAllFFttoLog(fftAll));

View File

@ -485,19 +485,21 @@ public class ClickSelectPaneFX extends DynamicSettingsPane<Boolean> {
});
lutList = LookUpTables.getLookUpTables().getLookupList(ClicksOffline.ClickTypeLookupName);
if (lutList == null) {
return;
}
useType = new CheckBox[lutList.getList().size()];
for (int i = 0; i < useType.length; i++) {
this.getChildren().add(useType[i] = new CheckBox(lutList.getList().get(i).getText()));
useType[i].setSelected(clickAlarmParameters.isUseEventType(lutList.getList().get(i).getCode()));
useType[i].setOnAction((action)->{
setUseAllCheckBox();
notifySettingsListeners();
});
}
//2024-12-18 This is causing an excpetion because lookup tabel does not exist.
// lutList = LookUpTables.getLookUpTables().getLookupList(ClicksOffline.ClickTypeLookupName);
// if (lutList == null) {
// return;
// }
// useType = new CheckBox[lutList.getList().size()];
// for (int i = 0; i < useType.length; i++) {
// this.getChildren().add(useType[i] = new CheckBox(lutList.getList().get(i).getText()));
// useType[i].setSelected(clickAlarmParameters.isUseEventType(lutList.getList().get(i).getCode()));
// useType[i].setOnAction((action)->{
// setUseAllCheckBox();
// notifySettingsListeners();
// });
// }
setUseAllCheckBox();
}

View File

@ -20,7 +20,6 @@ public class ClickTrainDetSubLogging extends SQLLogging {
super(pamDataBlock);
this.clickTrainLogging = clickTrainLogging;
setTableDefinition(new PamSubtableDefinition(clickTrainLogging.getClickTrainControl().getUnitName()+"_Children"));
}
@Override

View File

@ -99,7 +99,11 @@ public class ClickFFTPlotManager2 extends FFTPlotManager {
}
else {
double[] spectrum=((ClickDetection) detection).getPowerSpectrum(chanClick, clickPlotInfoFX.isViewer() ? true : false);
spectrum=((ClickDetection) detection).getPowerSpectrum(chanClick, clickPlotInfoFX.isViewer() ? true : false);
if (spectrum==null) spectrum=((ClickDetection) detection).getPowerSpectrum(chanClick, true);
if (spectrum ==null) {
System.err.println("ClickPlotFFTManager2: Spectrum for the click is null?");
}
drawClickFFT(Arrays.copyOf(spectrum, spectrum.length), pamDataUnit.getTimeMilliseconds(), writableImage.getScrollingPLot2DSegmenter().getMaxY(), writableImage);
}
}

View File

@ -4,11 +4,9 @@ import java.awt.geom.Path2D;
import java.util.ArrayList;
import java.util.Arrays;
import IshmaelDetector.IshDetFnDataUnit;
import PamDetection.AbstractLocalisation;
import PamDetection.LocContents;
import PamDetection.LocalisationInfo;
import PamUtils.Coordinate3d;
import PamUtils.PamUtils;
import PamView.GeneralProjector;
import PamView.HoverData;
@ -104,23 +102,25 @@ public class GenericDataPlotInfo extends TDDataInfoFX {
}
else {
return super.drawDataUnit(plotNumber, pamDataUnit, g, scrollStart, tdProjector, type);
}
}
/**
* Base class draws a simple frequency box. Easily overridden to draw something else, e.g. a contour.
* @param plotNumber
* @param pamDataUnit
* @param g
* @param scrollStart
* @param tdProjector
* @param type
* @return
* Draw a data unit as a box.
* @param plotNumber - the pot number
* @param pamDataUnit - the data unit that will be plotted
* @param f - the y axis max and min values
* @param g - the graphics context.
* @param scrollStart - the scroll start in millis.
* @param tdProjector - the graph projector.
* @param type - the plot type.
* @return a polygon of the data unit.
*/
public Polygon drawFrequencyData(int plotNumber, PamDataUnit pamDataUnit, GraphicsContext g, double scrollStart,
public Polygon drawBoxData(int plotNumber, PamDataUnit pamDataUnit, double[] f, GraphicsContext g, double scrollStart,
TDProjectorFX tdProjector, int type) {
g.setLineDashes(null);
g.setLineWidth(2);
TDSymbolChooserFX symbolChooser = getSymbolChooser();
@ -129,13 +129,13 @@ public class GenericDataPlotInfo extends TDDataInfoFX {
symbol = symbolChooser.getPamSymbol(pamDataUnit, type);
}
double[] f = pamDataUnit.getFrequency();
if (f == null) {
return null;
}
if (f.length == 1) {
System.out.println("GenericDataPlotInfo: Single frequency measure in data unit " + pamDataUnit.toString());
}
// draw a frequency box.
double y0 = tdProjector.getYPix(f[0]);
double y1 = tdProjector.getYPix(f[1]);
@ -186,6 +186,22 @@ public class GenericDataPlotInfo extends TDDataInfoFX {
return null;
}
/**
* Base class draws a simple frequency box. Easily overridden to draw something else, e.g. a contour.
* @param plotNumber
* @param pamDataUnit
* @param g
* @param scrollStart
* @param tdProjector
* @param type
* @return
*/
public Polygon drawFrequencyData(int plotNumber, PamDataUnit pamDataUnit, GraphicsContext g, double scrollStart,
TDProjectorFX tdProjector, int type) {
double[] f = pamDataUnit.getFrequency();
return drawBoxData( plotNumber, pamDataUnit,f, g, scrollStart, tdProjector, type);
}
@Override

View File

@ -35,7 +35,7 @@ import whistlesAndMoans.WhistleMoanControl;
/**
*
* A detection display which can display groups data units and
* A detection display which can display group data units and
* their super detections in a tab pane if applicable.
*
* @author Jamie Macaulay
@ -252,10 +252,10 @@ public class OverlayGroupDisplay extends PamBorderPane {
this.detectionsPane.setDetectionGroup(dataList);
if (superDets!=null) {
this.superDetectionsDisplay.setDetectionGroup(new ArrayList<PamDataUnit>(superDets));
}
this.prepareDisplay();
}

View File

@ -38,6 +38,7 @@ import pamViewFX.fxNodes.PamTilePane;
import pamViewFX.fxNodes.PamVBox;
import pamViewFX.fxNodes.flipPane.FlipPane;
import pamViewFX.fxNodes.hidingPane.HidingPane;
import pamViewFX.fxNodes.utilityPanes.PamToggleSwitch;
import pamViewFX.fxNodes.utilsFX.PamUtilsFX;
import pamViewFX.fxStyles.PamStylesManagerFX;
@ -220,8 +221,6 @@ public class TDMenuPane extends PamBorderPane {
closeButtonLeft.setVisible(true);
topHolder.setLeft(closeButtonLeft);
holder.setLeft(hidingPaneLeft);
holder.setCenter(groupDetectionDisplay);
holder.setLeft(hidingPaneLeft);
@ -235,14 +234,19 @@ public class TDMenuPane extends PamBorderPane {
* Set the summary text for the data unit in the menu.
*/
private void setSummaryText() {
if (currentDataUnit==null || detectionSummary==null) return;
if (currentDataUnit==null || detectionSummary==null) {
this.infoTextLabel.setText("No data units selected");
return;
}
String text;
if (detectionSummary.getDataList().size()>=1){
// text= currentDataUnit.getSummaryString();
text=currentDataUnit.getParentDataBlock().
getHoverText(tdGraphFX.getGraphProjector(), currentDataUnit, 0);
if (text==null) return; //do not clear as usually this is because a super unit has been set
}
else {
@ -280,25 +284,27 @@ public class TDMenuPane extends PamBorderPane {
infoButton.setGraphic(PamGlyphDude.createPamIcon("mdi2i-information", PamGuiManagerFX.iconSize));
//infoButton.setStyle(" -fx-background-radius: 0 0 0 0;");
toggle= new ToggleSwitch();
toggle= new ToggleSwitch();
toggle.setGraphic(PamGlyphDude.createPamIcon("mdi2c-chart-bell-curve", PamGuiManagerFX.iconSize));
toggle.setSelected(true);
toggle.setAlignment(Pos.CENTER);
toggle.setTooltip(new Tooltip("Show a preview of the detection"));
toggle.setMaxWidth(20);
toggle.setMaxWidth(30);
toggle.selectedProperty().addListener((obsVal, oldVal, newVal)->{
this.layoutPane(newVal);
this.getParent().layout(); //make sure the pop up actually lays out properly.
});
PamHBox toggleBox = new PamHBox();
toggleBox.setPadding(new Insets(5,5,5,5));
toggleBox.setSpacing(5);
toggleBox.getChildren().addAll(new Label("",PamGlyphDude.createPamIcon("mdi2c-chart-bell-curve", PamGuiManagerFX.iconSize)), toggle);
PamBorderPane toggleHolder = new PamBorderPane(toggle);
toggleHolder.getStyleClass().add("square-button-trans");
toggleHolder.setPadding(new Insets(0,10,0,0));
toggleHolder.prefWidthProperty().bind(menuPane.widthProperty());
PamHBox topMenu = new PamHBox();
topMenu.getChildren().addAll(infoButton, toggleHolder);
topMenu.setAlignment(Pos.CENTER);
PamBorderPane topMenu = new PamBorderPane();
topMenu.setLeft(infoButton);
topMenu.setRight(toggleBox);
//topMenu.setAlignment(Pos.CENTER);
menuPane.getChildren().add(topMenu);
@ -503,11 +509,19 @@ public class TDMenuPane extends PamBorderPane {
*/
public void prepareDisplay(){
if (detectionSummary==null || detectionSummary.getDataList()==null) {
currentDataUnit=null;
if (detectionSummary==null || detectionSummary.getDataList()==null || detectionSummary.getDataList().size()==0) {
setCurrentDataUnit(null);
}
else{ //show the first data unit;
setCurrentDataUnit(currentDataUnit);
else{
/**
* It's important to set the data unit explicitly here. This is because the listener
* in the group display will return both the super detection and currently selected click
* which can confuse the display, especially if the super detection has no associated data information
* So when a new data unit is selected set it here so that it's defintely the selected data unit which
* is showing in the menu pane.
*/
//show the first data unit;
setCurrentDataUnit(this.detectionSummary.getDataList().get(0));
this.detectionSummary.setFocusedIndex(0); //set focused to highlight data unit.
}
@ -521,8 +535,8 @@ public class TDMenuPane extends PamBorderPane {
/**
* Set the data unit list.
*/
public void setDataUnitList(DetectionGroupSummary detectionGroupSummary, OverlayMarker overlayMarker, MouseEvent e){
public void setDataUnitList(DetectionGroupSummary detectionGroupSummary, OverlayMarker overlayMarker, MouseEvent e){
this.detectionSummary=detectionGroupSummary;
this.overlayMarker=overlayMarker;
this.currentMouseEvent = e;

View File

@ -528,6 +528,7 @@ public class DetectionGroupDisplay extends PamBorderPane {
for (GroupDisplayListener aListener : displayListeners) {
aListener.newDataUnitSelected(oldDataUnit, newDataUnit);
}
}
/**

View File

@ -4,6 +4,7 @@ import org.jamdev.jdl4pam.utils.DLMatFile;
import PamUtils.PamCalendar;
import PamguardMVC.PamDataUnit;
import pamMaths.PamVector;
import us.hebi.matlab.mat.format.Mat5;
import us.hebi.matlab.mat.types.Array;
import us.hebi.matlab.mat.types.Matrix;
@ -150,5 +151,25 @@ public abstract class MLDataUnitExport<T extends PamDataUnit<?, ?>> {
public abstract String getName();
/**
* Get the bearings from the data unit. Note these are the angles that are rotated to real workd vectors.
* @param dataUnit- data unit.
* @return the angles in RADIANS.
*/
public static double[] realWordlVec2Angles(PamDataUnit dataUnit) {
//bearing
PamVector[] vector = dataUnit.getLocalisation().getRealWorldVectors();
double bearing = PamVector.vectorToSurfaceBearing(vector[0]);
//pitch
double x = vector[0].getElement(0);
double y = vector[0].getElement(1);
double z = vector[0].getElement(2);
x = Math.sqrt(x*x+y*y);
double pitch = Math.atan2(z,x);
return new double[] {bearing, pitch};
}
}

View File

@ -5,6 +5,7 @@ import org.jamdev.jdl4pam.utils.DLMatFile;
import PamUtils.PamUtils;
import PamguardMVC.PamDataUnit;
import PamguardMVC.RawDataHolder;
import pamMaths.PamVector;
import us.hebi.matlab.mat.format.Mat5;
import us.hebi.matlab.mat.types.Matrix;
import us.hebi.matlab.mat.types.Struct;
@ -20,11 +21,11 @@ public class MLRawExport extends MLDataUnitExport<PamDataUnit<?,?>>{
public Struct addDetectionSpecificFields(Struct mlStruct, int index, PamDataUnit dataUnit) {
RawDataHolder rawDataHolder = (RawDataHolder) dataUnit;
//the waveform
Matrix wave = DLMatFile.array2Matrix(rawDataHolder.getWaveData());
//the number of channels
Matrix nChan = Mat5.newScalar(PamUtils.getNumChannels(dataUnit.getChannelBitmap()));
@ -67,4 +68,5 @@ public class MLRawExport extends MLDataUnitExport<PamDataUnit<?,?>>{
return "raw_data_units";
}
}

View File

@ -11,9 +11,12 @@ public class RClickEventExport extends RSuperDetectionExport{
super(mlDetectionsManager);
}
@Override
public NamedBuilder addDetectionSpecificFields(NamedBuilder rData, SuperDetection dataUnit, int index) {
super.addDetectionSpecificFields(rData, dataUnit, index);
OfflineEventDataUnit clickEvent = (OfflineEventDataUnit) dataUnit;
rData.add("event_id", clickEvent.getEventId());
rData.add("event_type", clickEvent.getEventType());

View File

@ -94,6 +94,8 @@ public class RExportManager implements PamDataUnitExporter {
private void writeRFile() {
Context context = Context.newTopLevelContext();
try {
if (allData!=null) {
FileOutputStream fos = new FileOutputStream(currentFileName);
GZIPOutputStream zos = new GZIPOutputStream(fos);
@ -103,6 +105,8 @@ public class RExportManager implements PamDataUnitExporter {
writer.save(allData.build());
writer.close();
zos.close();
allData=null; //prevents writing the file again and again if offline end export is called.
}
}
catch (IOException e1) {
e1.printStackTrace();
@ -190,6 +194,8 @@ public class RExportManager implements PamDataUnitExporter {
//check whether the same.
if (rDataExport.get(i).getUnitClass().isAssignableFrom(dataUnits.get(j).getClass()) && !alreadyStruct[j]) {
dataList=rDataExport.get(i).detectionToStruct(dataUnits.get(j), n);
//System.out.println("Export data unit: " + rDataExport.get(i).getName());
//dataListArray.add((rDataExport.get(i).getName() + "_" + dataUnits.get(j).getUID()), dataList);
// format used in PAMBinaries
dataListArray.add(String.valueOf(dataUnits.get(j).getUID()), dataList);

View File

@ -9,6 +9,8 @@ import PamguardMVC.RawDataHolder;
import org.renjin.sexp.ListVector.NamedBuilder;
import clickDetector.ClickDetection;
import export.MLExport.MLDataUnitExport;
import pamMaths.PamVector;
public class RRawExport extends RDataUnitExport<PamDataUnit<?,?>> {
@ -39,7 +41,18 @@ public class RRawExport extends RDataUnitExport<PamDataUnit<?,?>> {
//time delay stuff.
if (dataUnit.getLocalisation()!=null) {
//bearing angles
rData.add("angles", dataUnit.getLocalisation().getAngles() == null ? new DoubleArrayVector(0.) : new DoubleArrayVector(dataUnit.getLocalisation().getAngles()));
if (dataUnit.getLocalisation().getRealWorldVectors() != null) {
double[] angles = MLDataUnitExport.realWordlVec2Angles(dataUnit);
rData.add("angles", new DoubleArrayVector(angles));
}
else {
rData.add("angles", new DoubleArrayVector(0.));
}
//bearing angles
rData.add("angles", dataUnit.getLocalisation().getRealWorldVectors() == null ? new DoubleArrayVector(0.) : new DoubleArrayVector(dataUnit.getLocalisation().getAngles()));
//angle errors
rData.add("angleErrors", dataUnit.getLocalisation().getAngleErrors() == null? new DoubleArrayVector(0.) : new DoubleArrayVector(dataUnit.getLocalisation().getAngleErrors()));
}

View File

@ -24,11 +24,10 @@ public class RSuperDetectionExport extends RDataUnitExport<SuperDetection>{
//We create a struct within a struct within a struct here...
SuperDetection superDetection = (SuperDetection) dataUnit;
ListVector.NamedBuilder dataUnits = new ListVector.NamedBuilder(); ;
ListVector.NamedBuilder dataUnits = new ListVector.NamedBuilder();
//now iterate through the data units and add data units to the struct.
//vital to clone this or we mess up all the data units in PAMGuard!
ArrayList<PamDataUnit> subDataUnits = (ArrayList<PamDataUnit>) superDetection.getSubDetections().clone();
@ -51,8 +50,15 @@ public class RSuperDetectionExport extends RDataUnitExport<SuperDetection>{
//add to the struct.
datasUnitsStruct= exporter.detectionToStruct(subDataUnits.get(i), n);
dataUnits.add(exporter.getName(), datasUnitsStruct);
System.out.println("Save sub det: " + subDataUnits.get(i).getUID());
//must be named differently
dataUnits.add((exporter.getName() + "_" + subDataUnits.get(i).getUID()) , datasUnitsStruct);
savedUnits.add(subDataUnits.get(i));
n++;
}
}
@ -65,6 +71,7 @@ public class RSuperDetectionExport extends RDataUnitExport<SuperDetection>{
}
rData.add("subdetections", dataUnits);
rData.add("nsubdet", superDetection.getSubDetectionsCount());

View File

@ -44,6 +44,8 @@ public class ExportTask extends OfflineTask<PamDataUnit<?,?>>{
*/
@Override
public void prepareTask() {
//save all data before exporting!
PamController.getInstance().saveViewerData();
exporter.perpareExport();
}

View File

@ -3,6 +3,9 @@ package generalDatabase.lookupTables;
import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
@ -23,6 +26,10 @@ import javax.swing.JPopupMenu;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import PamView.dialog.PamDialog;
import PamView.dialog.SettingsButton;
import PamView.panel.PamPanel;
/**
* Lookup component to go in dialogs, Logger forms, etc.
* <p> Has the look and feel of Logger drop down boxes but
@ -86,12 +93,33 @@ public class LookupComponent {
this.lookupTopic = lookupTopic;
mainPanel = new JPanel();
mainPanel = new PamPanel();
mainPanel.setLayout(new BorderLayout());
PamPanel eventPanel = new PamPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.gridy=0;
c.gridx=0;
c.insets = new Insets(0,0,0,5);
westPanel = new JPanel(new BorderLayout());
westPanel.add(BorderLayout.CENTER, codeField = new JTextField(5));
mainPanel.add(BorderLayout.CENTER, comboBox = new JComboBox());
mainPanel.add(BorderLayout.WEST, westPanel);
c.gridx++;
PamDialog.addComponent(eventPanel, westPanel, c);
c.gridx++;
PamDialog.addComponent(eventPanel, comboBox = new JComboBox(), c);
c.gridx++;
SettingsButton editButton = new SettingsButton();
editButton.addActionListener(new EditList());
PamDialog.addComponent(eventPanel, editButton, c);
mainPanel.add(BorderLayout.CENTER, eventPanel);
comboBox.addActionListener(new ListActionListener());

View File

@ -48,6 +48,7 @@ public class LtsaDataBlock extends FFTDataBlock {
*As for getOfflineData, overrride this.
*/
loadViewerData(new OfflineDataLoadInfo(startMillis, endMillis), null);
// now send all the data to the observer (the spectrogram)
// so that it redraws in the same way it does for real fft data.
synchronized (getSynchLock()) {

View File

@ -77,7 +77,7 @@ public class GroupedSourcePaneFX extends SourcePaneFX {
//sourcePane.setStyle("-fx-background-color: green");
Label titleLabel = new Label(getBorderTitle());
titleLabel = new Label(getBorderTitle());
PamGuiManagerFX.titleFont2style(titleLabel);
// titleLabel.setFont(PamGuiManagerFX.titleFontSize2);
sourcePane.add(titleLabel,0,0);
@ -430,5 +430,7 @@ public class GroupedSourcePaneFX extends SourcePaneFX {
public Pane getChannelPane() {
return channelPanel;
}
}

View File

@ -82,7 +82,7 @@ public class SourcePaneFX extends PamBorderPane {
/**
* The title labe. Sits above the combo box.
*/
private Label titleLabel;
protected Label titleLabel;
/**
* Validator for channels
@ -859,4 +859,20 @@ public class SourcePaneFX extends PamBorderPane {
return channelValidator;
}
/**
* Set the title.
* @param titleString - the title text
*/
public void setTitleText(String titleString) {
titleLabel.setText(titleString);
}
/**
* Clear the source types.
*/
public void clearSourceTypeList() {
this.sourceType.clear();
}
}

View File

@ -1,5 +1,9 @@
package pamViewFX.validator;
import java.util.List;
import java.util.stream.Collectors;
import net.synedra.validatorfx.ValidationMessage;
import net.synedra.validatorfx.Validator;
/**
@ -14,4 +18,25 @@ public class PamValidator extends Validator {
// TODO Auto-generated constructor stub
}
/**
* Create one string from a list of error messages.
* @param messages - the list of error messages
* @return
*/
public static String list2String(List<ValidationMessage> messages) {
String string = "";
//grab only unique messages
List<ValidationMessage> uniqueMessages = messages.stream()
.distinct()
.collect(Collectors.toList());
for (ValidationMessage msg:uniqueMessages) {
System.out.println(msg);
string += msg.getText() + "\n";
}
return string;
}
}

View File

@ -25,13 +25,14 @@ import PamguardMVC.PamRawDataBlock;
import PamguardMVC.dataSelector.DataSelector;
import ai.djl.engine.Engine;
import annotation.handler.AnnotationHandler;
import clickTrainDetector.layout.ClickTrainSymbolManager;
import dataPlotsFX.data.TDDataProviderRegisterFX;
import dataPlotsFX.data.generic.GenericDataPlotProvider;
import detectionPlotFX.data.DDPlotRegister;
import generalDatabase.DBControlUnit;
import generalDatabase.SQLLoggingAddon;
import pamScrollSystem.AbstractScrollManager;
import pamViewFX.fxNodes.pamDialogFX.PamDialogFX2AWT;
import rawDeepLearningClassifier.dataPlotFX.DLDetectionPlotProvider;
import rawDeepLearningClassifier.dataPlotFX.DLGroupSymbolManager;
import rawDeepLearningClassifier.dataPlotFX.DLPredictionProvider;
import rawDeepLearningClassifier.ddPlotFX.RawDLDDPlotProvider;
import rawDeepLearningClassifier.defaultModels.DLDefaultModelManager;
@ -59,6 +60,7 @@ import rawDeepLearningClassifier.logging.DLDetectionDatagram;
import rawDeepLearningClassifier.logging.DLGroupDetectionLogging;
import rawDeepLearningClassifier.logging.DLGroupSubLogging;
import rawDeepLearningClassifier.logging.DLResultBinarySource;
import rawDeepLearningClassifier.logging.DLResultLogging;
import rawDeepLearningClassifier.offline.DLOfflineProcess;
import rawDeepLearningClassifier.segmenter.SegmenterProcess;
@ -184,6 +186,18 @@ public class DLControl extends PamControlledUnit implements PamSettings {
* The binary data source for detection data
*/
private DLDetectionBinarySource dlDetectionBinarySource;
/**
* DL Group detection logging to database
*/
private DLGroupDetectionLogging dlGroupDetLogging;
/**
* Logging for raw predictions to database
*/
private DLResultLogging dlResultLogging;
/**
* The DL offline process.
@ -213,10 +227,13 @@ public class DLControl extends PamControlledUnit implements PamSettings {
*/
private DLDefaultModelManager defaultModelManager;
/**
* DL Group detection logging.
* If true then detections are saved to a group and all detections within a segment are then
* passed to the deep learning classifier.
*/
private DLGroupDetectionLogging dlGroupDetLogging;
private boolean groupDetections = false;
@ -245,7 +262,8 @@ public class DLControl extends PamControlledUnit implements PamSettings {
// classify the raw data segments.
addPamProcess(dlClassifyProcess = new DLClassifyProcess(this, segmenterProcess.getSegmenterDataBlock()));
dlClassifyProcess.addMultiPlexDataBlock(segmenterProcess.getSegmenteGrouprDataBlock());
//also add group data - rare to have to into datablocks but this will work.
dlClassifyProcess.addMultiPlexDataBlock(segmenterProcess.getSegmenteGroupDataBlock());
//manages the names assigned to different output classes.
dlClassNameManager = new DLClassNameManager(this);
@ -260,6 +278,7 @@ public class DLControl extends PamControlledUnit implements PamSettings {
// add storage options etc.
dlBinaryDataSource = new DLResultBinarySource(dlClassifyProcess);
dlClassifyProcess.getDLPredictionDataBlock().setBinaryDataSource(dlBinaryDataSource);
dlClassifyProcess.getDLPredictionDataBlock().SetLogging(dlResultLogging = new DLResultLogging(this, dlClassifyProcess.getDLPredictionDataBlock()));
dlClassifyProcess.getDLPredictionDataBlock().setDatagramProvider(new DLDataUnitDatagram(this));
dlDetectionBinarySource = new DLDetectionBinarySource(this, dlClassifyProcess.getDLDetectionDatablock());
@ -269,6 +288,9 @@ public class DLControl extends PamControlledUnit implements PamSettings {
// //set database logging for group detections
dlClassifyProcess.getDLGroupDetectionDataBlock().SetLogging(dlGroupDetLogging = new DLGroupDetectionLogging(this, dlClassifyProcess.getDLGroupDetectionDataBlock()));
dlGroupDetLogging.setSubLogging(new DLGroupSubLogging(dlGroupDetLogging, dlClassifyProcess.getDLGroupDetectionDataBlock()));
// int maxndays = 1; //maximum days to load.
// AbstractScrollManager.getScrollManager().addToSpecialDatablock(dlClassifyProcess.getDLGroupDetectionDataBlock(), maxndays*24*60*60*1000L , maxndays*24*60*60*1000L);
//a little strange this is not automatic but seems you have to add SQL add ons explicitly.
AnnotationHandler annotationHandler = dlClassifyProcess.getDLGroupDetectionDataBlock().getAnnotationHandler();
@ -290,12 +312,14 @@ public class DLControl extends PamControlledUnit implements PamSettings {
overlayGraphics = new DLDetectionGraphics(dlClassifyProcess.getDLGroupDetectionDataBlock());
overlayGraphics.setDetectionData(true);
dlClassifyProcess.getDLGroupDetectionDataBlock().setOverlayDraw(overlayGraphics);
//set the symbol managers.
dlClassifyProcess.getDLDetectionDatablock()
.setPamSymbolManager(new DLSymbolManager(this, dlClassifyProcess.getDLDetectionDatablock()));
dlClassifyProcess.getDLGroupDetectionDataBlock()
.setPamSymbolManager(new StandardSymbolManager( dlClassifyProcess.getDLGroupDetectionDataBlock(), new SymbolData()));
dlClassifyProcess.getDLGroupDetectionDataBlock().setPamSymbolManager(new DLGroupSymbolManager(dlClassifyProcess.getDLGroupDetectionDataBlock()));
dlClassifyProcess.getDLPredictionDataBlock()
.setPamSymbolManager(new PredictionSymbolManager(this, dlClassifyProcess.getDLDetectionDatablock()));
@ -664,7 +688,7 @@ public class DLControl extends PamControlledUnit implements PamSettings {
//create the data selector
//System.out.println("Data selector: " + dataSelector);
if (source!=null) {
dataSelector=source.getDataSelectCreator().getDataSelector(this.getUnitName() +"_clicks", false, null);
dataSelector=source.getDataSelectCreator().getDataSelector(this.getUnitName() +"_" + source.getDataName(), false, null);
//System.out.println("Data selector: " + dataSelector);
}
else {
@ -698,6 +722,28 @@ public class DLControl extends PamControlledUnit implements PamSettings {
return this.defaultModelManager;
}
/**
* Check whether group detections are being used.
* If true then detections are saved to a group and all detections within a segment are then
* passed to the deep learning classifier.
*/
public boolean isGroupDetections() {
return groupDetections;
}
/**
* Set whether to use group detections.
* If true then detections are saved to a group and all detections within a segment are then
* passed to the deep learning classifier.
* @param groupDetections - true to use group detections.
*/
public void setGroupDetections(boolean groupDetections) {
this. groupDetections=groupDetections;
}
}

View File

@ -8,7 +8,8 @@ public enum DLStatus {
FILE_NULL("The input file is null",
"The loaded file was null. If the file was download it may not have downloaded properly.", ErrorLevel.ERROR),
MODEL_LOAD_FAILED("The model failed to load",
//generic error when something has gone wrong.
MODEL_LOAD_FAIL("The model failed to load",
" The model failed to load - this could be because it is incompatible with PAMGuard or an uknown file format.",
ErrorLevel.ERROR),
@ -38,7 +39,11 @@ public enum DLStatus {
DECOMPRESSING_MODEL("Decompressing model", "Decompressing the model file", ErrorLevel.NO_ERROR),
INCOMPATIBLE_ZIP("Incorrect Zip format", "The zip format is incorrect. The zip file should have a *.pgdl file in the parent directory along with either a Tensorflow or PyTorch model.", ErrorLevel.ERROR), ;
INCOMPATIBLE_ZIP("Incorrect Zip format", "The zip format is incorrect. The zip file should have a *.pgdl file in the parent directory along with either a Tensorflow or PyTorch model.", ErrorLevel.ERROR),
MODEL_ENGINE_FAIL("Deep learning engine failure", "The deep learning engine was not able to load. It is likely PAMGuard could not download the relevent libraries. Visit www.pamguard.org/deeplearning for a work around.", ErrorLevel.ERROR),
MODEL_META_FAIL("Model metadata failure", "PAMGuard could not locte the metadata within the model. if this is a custom model ensure the associated .pgdl file is present and JSON valid", ErrorLevel.ERROR);
/**

View File

@ -68,7 +68,7 @@ public class RawDLParams implements Serializable, Cloneable {
* contain a raw data chunk e.g. raw data, clicks, clips etc. By default the
* classifier saves new data units if the source is raw data. However, if the
* data unit is an already processed data unit, e.g. a click detection, then the
* results are saved as an annotation to that unit. If forceSave is st true then
* results are saved as an annotation to that unit. If forceSave is set true then
* new data units are created no matter what the source data is.
*/
public boolean forceSave = false;
@ -95,7 +95,7 @@ public class RawDLParams implements Serializable, Cloneable {
* data without messing up all the other classified detections which have used
* that module. So store the data in binary files? That is super inefficient as
* the same string is stored many times. So instead store a short which
* identifies the string that sits in this table. Everytime a new model is added
* identifies the string that sits in this table. Every time a new model is added
* add new classnames. Note that this means we have a maximum of 32k names - we
* will come to that issue when it arises...
*/

View File

@ -4,15 +4,24 @@ import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import PamView.GeneralProjector.ParameterType;
import PamguardMVC.PamDataBlock;
import PamguardMVC.PamDataUnit;
import dataPlotsFX.data.TDDataProviderFX;
import dataPlotsFX.data.generic.GenericDataPlotInfo;
import dataPlotsFX.data.generic.GenericSettingsPane;
import dataPlotsFX.layout.TDGraphFX;
import dataPlotsFX.projector.TDProjectorFX;
import javafx.scene.Node;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.shape.Polygon;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.dlClassification.DLGroupDetection;
/**
* Plot results from deep learning group detections.
*/
public class DLGroupDetectionInfoFX extends GenericDataPlotInfo {
@ -28,7 +37,54 @@ public class DLGroupDetectionInfoFX extends GenericDataPlotInfo {
}
((GenericSettingsPane) this.getGraphSettingsPane()).setShowingName("Deep Learning Group Detections");
}
/* (non-Javadoc)
* @see dataPlotsFX.data.TDDataInfoFX#drawDataUnit(int, PamguardMVC.PamDataUnit, javafx.scene.canvas.GraphicsContext, long, dataPlotsFX.projector.TDProjectorFX, int)
*/
@Override
public Polygon drawDataUnit(int plotNumber, PamDataUnit pamDataUnit, GraphicsContext g, double scrollStart,
TDProjectorFX tdProjector, int type) {
if (getCurrentScaleInfo().getDataType() == ParameterType.FREQUENCY) { // frequency data !
// System.out.println("Draw frequency: " + pamDataUnit.getFrequency()[0] + " " + pamDataUnit.getFrequency()[1]);
return drawFrequencyData(plotNumber, pamDataUnit, g, scrollStart, tdProjector, type);
}
else if (getCurrentScaleInfo().getDataType() == ParameterType.AMPLITUDE || getCurrentScaleInfo().getDataType() == ParameterType.AMPLITUDE_STEM) {
// System.out.println("Draw amplitude: ");
double[] amplitudes = getAmplitudes(pamDataUnit);
return super.drawBoxData(plotNumber, pamDataUnit, amplitudes, g, scrollStart, tdProjector, type);
}
return null;
}
/**
* Get the amplitude for a group data unit - this is the highest and lowest amplitude.
* @param pamDataUnit - the data unit.
* @return amplitude limits in dB.
*/
private double[] getAmplitudes(PamDataUnit pamDataUnit) {
double[] amplitudes = new double[2];
amplitudes[0] = Double.POSITIVE_INFINITY;
amplitudes[1] = Double.NEGATIVE_INFINITY;
DLGroupDetection groupDetection = (DLGroupDetection) pamDataUnit;
double amp;
for (int i=0; i<groupDetection.getSubDetectionsCount(); i++) {
amp = groupDetection.getSubDetection(i).getAmplitudeDB();
if (amp>amplitudes[1]) {
amplitudes[1] = amp;
}
if (amp<amplitudes[0]) {
amplitudes[0] = amp;
}
}
return amplitudes;
}
}

View File

@ -0,0 +1,33 @@
package rawDeepLearningClassifier.dataPlotFX;
import PamView.symbol.PamSymbolChooser;
import PamView.symbol.StandardSymbolManager;
import PamguardMVC.PamDataBlock;
import detectiongrouplocaliser.DetectionGroupGraphics;
public class DLGroupSymbolManager extends StandardSymbolManager {
public DLGroupSymbolManager(PamDataBlock pamDataBlock2) {
super(pamDataBlock2, DetectionGroupGraphics.defaultSymbol);
setSpecialColourName("DL Detection Group");
}
@Override
public void addSymbolModifiers(PamSymbolChooser psc) {
super.addSymbolModifiers(psc);
//add the peak frequency modifier that allows clicks to be coloured by peak frequency.
psc.addSymbolModifier(new DLGroupSymbolModifier(psc));
// we can also add some default behaviour here to match the old behaviour
// these will get overridden once user options are set, but it's good to give defaults.
// SymbolModifier eventMod = psc.hasSymbolModifier(SuperDetSymbolModifier.class);
// if (eventMod != null) {
// eventMod.getSymbolModifierParams().modBitMap = (SymbolModType.FILLCOLOUR | SymbolModType.LINECOLOUR);
// }
}
}

View File

@ -0,0 +1,40 @@
package rawDeepLearningClassifier.dataPlotFX;
import java.awt.Color;
import PamView.GeneralProjector;
import PamView.PamColors;
import PamView.PamSymbolType;
import PamView.symbol.PamSymbolChooser;
import PamView.symbol.SymbolData;
import PamView.symbol.modifier.SymbolModType;
import PamView.symbol.modifier.SymbolModifier;
import PamguardMVC.PamDataUnit;
/**
* Symbol modifier for DL groups
*/
public class DLGroupSymbolModifier extends SymbolModifier {
public final static String CLICK_TRAIN_MODIFIER_NAME = "Colour by DL Group";
public DLGroupSymbolModifier(PamSymbolChooser symbolChooser) {
super(CLICK_TRAIN_MODIFIER_NAME, symbolChooser, SymbolModType.FILLCOLOUR | SymbolModType.LINECOLOUR );
// TODO Auto-generated constructor stub
}
@Override
public SymbolData getSymbolData(GeneralProjector projector, PamDataUnit dataUnit) {
SymbolData symbolData=new SymbolData();
symbolData.symbol=PamSymbolType.SYMBOL_CIRCLE;
Color col = PamColors.getInstance().getWhaleColor(dataUnit.getColourIndex());
symbolData.setFillColor(col);
symbolData.setLineColor(col);
return symbolData;
}
}

View File

@ -313,6 +313,7 @@ public class DLSymbolOptionPane extends StandardSymbolModifierPane {
private int checkClassNamesBox(DLSymbolModifierParams symbolOptions, ComboBox<String> classNameBox) {
if (dlSymbolModifier.getDLAnnotType().getDlControl().getDLModel()==null) return 0;
DLClassName[] classNames = dlSymbolModifier.getDLAnnotType().getDlControl().getDLModel().getClassNames();
// for (int i =0; i<classNames.length; i++) {

View File

@ -206,11 +206,28 @@ public class DLSymbolOptionPanel implements PamDialogPanel, ActionListener {
* @param symbolOptions - the symbol options
*/
private void setPredictionColParams(DLSymbolModifierParams symbolOptions) {
if (symbolOptions.clims[0]==symbolOptions.clims[1]) {
if (symbolOptions.clims[0]>0 && symbolOptions.clims[0]<1.) {
symbolOptions.clims[0]=symbolOptions.clims[0]-0.1;
symbolOptions.clims[0]=symbolOptions.clims[0]+0.1;
}
else {
symbolOptions.clims[0] = 0.1;
symbolOptions.clims[1] = 0.9;
}
}
//System.out.println("Set upper value: " + symbolOptions.clims[0] + " " + symbolOptions.clims[1]);
//now set frequency parameters
colorRangeSlider.setValue((int) symbolOptions.clims[0]*100);
colorRangeSlider.setUpperValue((int) symbolOptions.clims[1]*100);
colorRangeSlider.setValue((int) (symbolOptions.clims[0]*100));
colorRangeSlider.setUpperValue((int) (symbolOptions.clims[1]*100));
// colorRangeSlider.setColourArrayType( symbolOptions.colArray);
//System.out.println("Set upper value: " + colorRangeSlider.getValue() + " " + colorRangeSlider.getUpperValue());
colorRangeSlider.setColourMap(PamUtilsFX.fxColArray2Swing(symbolOptions.colArray));

View File

@ -27,6 +27,7 @@ public class DLDefaultModelManager {
defaultModels.add(new RightWhaleModel1());
defaultModels.add(new HumpbackWhaleGoogle());
defaultModels.add(new HumpbackWhaleAtlantic());
defaultModels.add(new MultiSpeciesGoogle());
}

View File

@ -1,10 +1,8 @@
package rawDeepLearningClassifier.defaultModels;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import org.jamdev.jdl4pam.transforms.DLTransformsFactory;
@ -13,7 +11,6 @@ import org.jamdev.jdl4pam.transforms.SimpleTransformParams;
import org.jamdev.jdl4pam.transforms.DLTransform.DLTransformType;
import rawDeepLearningClassifier.dlClassification.DLClassName;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
import rawDeepLearningClassifier.dlClassification.genericModel.GenericModelParams;
import rawDeepLearningClassifier.layoutFX.exampleSounds.ExampleSoundFactory.ExampleSoundType;

View File

@ -0,0 +1,111 @@
package rawDeepLearningClassifier.defaultModels;
import java.io.Serializable;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import org.jamdev.jdl4pam.transforms.DLTransformsFactory;
import org.jamdev.jdl4pam.transforms.DLTransfromParams;
import org.jamdev.jdl4pam.transforms.SimpleTransformParams;
import org.jamdev.jdl4pam.transforms.DLTransform.DLTransformType;
import rawDeepLearningClassifier.dlClassification.DLClassName;
import rawDeepLearningClassifier.dlClassification.genericModel.GenericModelParams;
import rawDeepLearningClassifier.layoutFX.exampleSounds.ExampleSoundFactory.ExampleSoundType;
/**
* Atlantic version of Google's humpback whale network.
*/
public class MultiSpeciesGoogle implements DLModel {
@Override
public String getDescription() {
return "A model developed by Google to detect multiple cetacean species including Humpback, Minke, Bryde's, Blue, Fin and Right whales alongside Orca whistle, calls and echolocation clicks.";
}
@Override
public String getName() {
return "Multi Species Google";
}
@Override
public String getCitation() {
return "Allen, A.N. et al. (2024) Brydes whales produce Biotwang calls, which occur seasonally in long-term acoustic recordings from the central and western North Pacific, Frontiers in Marine Science, 11, p. 1394695";
}
@Override
public URI getModelURI() {
try {
// return new URI("https://github.com/PAMGuard/deeplearningmodels/raw/master/humpback_whale_2/humpback_whale_2.zip");
return new URI("https://github.com/PAMGuard/deeplearningmodels/releases/download/1.0/multispecies-whale-tensorflow2-default-v2.zip");
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
public String getModelName() {
return "saved_model.pb";
}
@Override
public URI getCitationLink() {
try {
return new URI("https://doi.org/10.3389/fmars.2024.1394695 ");
} catch (URISyntaxException e) {
e.printStackTrace();
return null;
}
}
@Override
public void setParams(Serializable dlModelSettings) {
GenericModelParams genericModelParams = (GenericModelParams) dlModelSettings;
//decimation value
float sr = 24000;
//create the transforms.
ArrayList<DLTransfromParams> dlTransformParamsArr = new ArrayList<DLTransfromParams>();
dlTransformParamsArr.add(new SimpleTransformParams(DLTransformType.DECIMATE_SCIPY, sr));
genericModelParams.dlTransfromParams = dlTransformParamsArr;
genericModelParams.defaultSegmentLen = 5. * 1000.;
genericModelParams.binaryClassification = new boolean[] {true};
genericModelParams.classNames= new DLClassName[] {
new DLClassName("Oo", (short) 0),
new DLClassName("Mn", (short) 1),
new DLClassName("Eg", (short) 2),
new DLClassName("Be", (short) 3),
new DLClassName("Upcall", (short) 4),
new DLClassName("Bp", (short) 5),
new DLClassName("Call", (short) 6),
new DLClassName("Gunshot", (short) 7),
new DLClassName("Echolocation", (short) 8),
new DLClassName("Bm", (short) 9),
new DLClassName("Whistle", (short) 10),
new DLClassName("Ba", (short) 12),
};
genericModelParams.numClasses = genericModelParams.classNames.length;
genericModelParams.defaultShape= new Long[] {-1L,-1L,-1L,1L};
genericModelParams.shape= new Long[] {-1L,-1L,-1L,1L};
genericModelParams.outputShape = new Long[] {-1L,12L};
//create the transforms.
genericModelParams.dlTransfroms = DLTransformsFactory.makeDLTransforms((ArrayList<DLTransfromParams>)genericModelParams.dlTransfromParams);
genericModelParams.setExampleSound(ExampleSoundType.HUMPBACK_WHALE);
}
}

View File

@ -36,14 +36,14 @@ public interface DLClassiferModel {
public ArrayList<? extends PredictionResult> runModel(ArrayList<? extends PamDataUnit> rawDataUnit);
/**
* Prepare the model. This is called on PAMGuard start up.
* @param file
* Prepare the model. This is called on PAMGuard start up and before processing in viewer mode.
*/
public void prepModel();
/**
* Called whenever PAMGuard stops.
* @return
* Set and load the model.
* @return the status of the model e.g. if there has been an error loading
*
*/
public DLStatus setModel(URI model);
@ -99,6 +99,14 @@ public interface DLClassiferModel {
* @return reference to the DL control.
*/
public DLControl getDLControl();
/**
* Get the allowed data types for the model.The can be null in which case only data units
* with raw data are allowed.
* @return a list of the allowed data types.
*/
public ArrayList<Class> getAllowedDataTypes();
/**
* Check whether a model has been selected and can be loaded successfully.

View File

@ -14,6 +14,7 @@ import PamguardMVC.PamDataUnit;
import PamguardMVC.PamInstantProcess;
import PamguardMVC.PamObservable;
import binaryFileStorage.DataUnitFileInformation;
import pamScrollSystem.AbstractScrollManager;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.RawDLParams;
import rawDeepLearningClassifier.layoutFX.DLDetectionGraphics;
@ -127,6 +128,7 @@ public class DLClassifyProcess extends PamInstantProcess {
dlGroupDetectionDataBlock.setNaturalLifetimeMillis(600*1000); //keep this data for a while.
dlGroupDetectionDataBlock.addDataAnnotationType(dlAnnotationType);
dlGroupDetectionDataBlock.setCanClipGenerate(true);
classificationBuffer = new ArrayList<PamDataUnit>();
@ -206,8 +208,9 @@ public class DLClassifyProcess extends PamInstantProcess {
*/
@Override
public void newData(PamObservable obs, PamDataUnit pamRawData) {
// System.out.println("NEW SEGMENTER DATA: " + PamCalendar.formatDateTime2(pamRawData.getTimeMilliseconds(), "dd MMM yyyy HH:mm:ss.SSS", false) + " " + pamRawData.getUID() + " " + pamRawData.getChannelBitmap() + " " + pamRawData);
//System.out.println("NEW SEGMENTER DATA: " + PamCalendar.formatDateTime2(pamRawData.getTimeMilliseconds(), "dd MMM yyyy HH:mm:ss.SSS", false) + " " + pamRawData.getUID() + " " + pamRawData.getChannelBitmap() + " " + pamRawData);
//if grouped data then just run the classifier on the group - do not try and create a buffer.
if (pamRawData instanceof SegmenterDetectionGroup) {
if (classificationBuffer.size()>=1) {
runDetectionGroupModel();
@ -218,6 +221,8 @@ public class DLClassifyProcess extends PamInstantProcess {
}
}
//if raw segmented data then add to a buffer so that we can pass chunks of data to a model which
//is more computationally efficient
if (pamRawData instanceof GroupedRawData) {
//the raw data units should appear in sequential channel order
GroupedRawData rawDataUnit = (GroupedRawData) pamRawData;
@ -235,6 +240,8 @@ public class DLClassifyProcess extends PamInstantProcess {
}
}
// System.out.println("New raw data in: chan: " + PamUtils.getSingleChannel(pamRawData.getChannelBitmap()) +
// " Size: " + pamRawData.getSampleDuration() + " first sample: " + rawDataUnit.getRawData()[0][0]
// + "Parent UID: " + rawDataUnit.getParentDataUnit().getUID());
@ -249,6 +256,8 @@ public class DLClassifyProcess extends PamInstantProcess {
ArrayList<PamDataUnit> classificationBufferTemp = (ArrayList<PamDataUnit>) classificationBuffer.clone();
ArrayList<? extends PredictionResult> modelResults = this.dlControl.getDLModel().runModel(classificationBufferTemp);
//System.out.println("MODEL RESULTS: " + modelResults);
for (int i=0; i<classificationBufferTemp.size(); i++) {
@ -271,10 +280,11 @@ public class DLClassifyProcess extends PamInstantProcess {
DLDataUnit dlDataUnit = predictionToDataUnit(detectionGroup, modelResult);
this.dlModelResultDataBlock.addPamData(dlDataUnit); //here
//System.out.println("Add predictions: " + dlDataUnit.getPredicitionResult().getPrediction());
//add to the model result.
this.dlModelResultDataBlock.addPamData(dlDataUnit);
// System.out.println("DELPHINID - we have a detection: " + detectionGroup.getUID() + " " + PamCalendar.formatDateTime(detectionGroup.getTimeMilliseconds()));
// //Now generate a detection of a decision threshold is reacheed.
// if (dlDataUnit.getPredicitionResult().isBinaryClassification()) {
// System.out.println("DELPHINID - we have a positive detection: " + detectionGroup.getUID() + " " + PamCalendar.formatDateTime(detectionGroup.getTimeMilliseconds()));
@ -600,10 +610,13 @@ public class DLClassifyProcess extends PamInstantProcess {
* run the deep learning algorithm and save the detections as annotation to a
* data unit.
*
* @param dataUnit - the data unit to add prediction annotations to
* @param dataUnit - the data unit to add prediction annotations to. NOT the data unit to be classified - this is is defined by adding
* new data to the process.
*
*/
public void forceRunClassifier(PamDataUnit dataUnit) {
// System.out.println("CLASSIFICATION BUFFER: " + classificationBuffer.size());
if (this.classificationBuffer.size()>0) {
if (classificationBuffer.get(0) instanceof GroupedRawData) {
@ -743,7 +756,7 @@ public class DLClassifyProcess extends PamInstantProcess {
private void addDLAnnotation(PamDataUnit parentDataUnit,
ArrayList<PredictionResult> modelResult) {
//System.out.println("DLClassifyProces: Add annnotation to " + parentDataUnit);
System.out.println("DLClassifyProces: Add annnotation to " + parentDataUnit);
parentDataUnit.addDataAnnotation(new DLAnnotation(dlAnnotationType, modelResult));
//parentDataUnit.updateDataUnit(System.currentTimeMillis());

View File

@ -25,6 +25,15 @@ public class DLGroupDataBlock extends SuperDetDataBlock<DLGroupDetection, PamDat
return super.getHoverText(generalProjector, dataUnit, iSide);
}
@Override
public boolean shouldNotify() {
/**
* Segments are not saved by PAMGuard as it's a waste of storage space but this means that reprocessing data requires the
* segments are remad with detections in viewer mode. There is
*/
return true;
}
}

View File

@ -18,5 +18,34 @@ public class DLGroupDetection extends SegmenterDetectionGroup implements PamDete
}
public DLGroupDetection(long timeMilliseconds, int channelBitmap, long startSample, double duration) {
super(timeMilliseconds, channelBitmap, startSample, duration);
}
@Override
public double[] getFrequency() {
if ((super.getFrequency()==null || super.getFrequency()[0] == super.getFrequency()[1]) && this.getSubDetectionsCount()>0) {
double minFreq = Double.POSITIVE_INFINITY;
double maxFreq = Double.NEGATIVE_INFINITY;
double[] freq;
for (int j=0; j<getSubDetectionsCount(); j++) {
freq = getSubDetection(j).getFrequency();
if (freq[0]<minFreq) {
minFreq = freq[0];
}
if (freq[1]>maxFreq) {
maxFreq = freq[1];
}
}
this.setFrequency(new double[] {minFreq, maxFreq});
}
return super.getFrequency();
}
}

View File

@ -60,6 +60,8 @@ public abstract class StandardClassifierModel implements DLClassiferModel, PamSe
* Sound spot warning.
*/
PamWarning dlClassifierWarning = new PamWarning(getName(), "",2);
private DLStatus status = DLStatus.NO_MODEL_LOADED;
@Override
@ -115,6 +117,9 @@ public abstract class StandardClassifierModel implements DLClassiferModel, PamSe
// System.out.println("STANDARD CLASSIFIER MODEL PREP MODEL! !!!: " + getDLParams().modelPath);
// StandardModelParams oldParams = getDLParams().clone();
//just incase group detections has been enabled
getDLControl().setGroupDetections(false);
getDLWorker().prepModel(getDLParams(), dlControl);
@ -168,37 +173,56 @@ public abstract class StandardClassifierModel implements DLClassiferModel, PamSe
@Override
public DLStatus getModelStatus() {
if (getDLWorker().isModelNull()) {
return DLStatus.MODEL_LOAD_FAILED;
}
File file = new File(getDLParams().modelPath);
if (getDLParams().modelPath == null || !file.isFile()) {
return DLStatus.NO_MODEL_LOADED;
}
// if continuous data is selected and all classes are false then this is a
// potential mistake...
if (dlControl.getSettingsPane().getSelectedParentDataBlock().getUnitClass() == RawDataUnit.class
&& (getDLParams().binaryClassification==null || PamArrayUtils.isAllFalse(getDLParams().binaryClassification))){
return DLStatus.NO_BINARY_CLASSIFICATION;
// warnings.add(new PamWarning("Generic classifier",
// "There are no prediction classes selected for classification. "
// + "Predicitons for each segment will be saved but there will be no detections generated",
// 1));
}
return DLStatus.MODEL_LOAD_SUCCESS;
return status;
}
@Override
public DLStatus setModel(URI uri) {
//will change the params if we do not clone.
StandardModelParams.setModel(uri, this.getDLParams());
this.getDLWorker().prepModel(getDLParams(), dlControl);
return getModelStatus();
status = this.getDLWorker().prepModel(getDLParams(), dlControl);
// System.out.println("----MODEL STATUS: " + status);
status = checkDLStatus(status);
return status;
}
/**
* The model status is returned by the prep model function but there may be other issues which override the returned status.
* This function chekcs those issues and returns a different status if necessary.
* @param status2 - the current model status.
* @return the current model status.
*/
private DLStatus checkDLStatus(DLStatus status2) {
if (getDLWorker().isModelNull() && !status2.isError()) {
return DLStatus.MODEL_LOAD_FAIL;
}
File file = new File(getDLParams().modelPath);
if (getDLParams().modelPath == null || !file.isFile()) {
return DLStatus.NO_MODEL_LOADED;
}
// if continuous data is selected and all classes are false then this is a
// potential mistake...
if (dlControl.getSegmenter().getParentDataBlock()!=null) {
if (dlControl.getSegmenter().getParentDataBlock().getUnitClass() == RawDataUnit.class
&& (getDLParams().binaryClassification==null || PamArrayUtils.isAllFalse(getDLParams().binaryClassification))){
return DLStatus.NO_BINARY_CLASSIFICATION;
// warnings.add(new PamWarning("Generic classifier",
// "There are no prediction classes selected for classification. "
// + "Predicitons for each segment will be saved but there will be no detections generated",
// 1));
}
}
return status2;
}
/**
* The task thread.
@ -365,6 +389,13 @@ public abstract class StandardClassifierModel implements DLClassiferModel, PamSe
return warnings;
}
@Override
public ArrayList<Class> getAllowedDataTypes(){
//null means default data types which is anything with raw data.
return null;
}

View File

@ -4,6 +4,7 @@ import java.io.File;
import java.util.ArrayList;
import javafx.stage.FileChooser.ExtensionFilter;
import rawDeepLearningClassifier.DLStatus;
public class SoundSpotModelPane extends StandardModelPane {
@ -27,7 +28,7 @@ public class SoundSpotModelPane extends StandardModelPane {
* @param file - the selected file.
*/
@Override
public void newModelSelected(File file) {
public DLStatus newModelSelected(File file) {
//System.out.println("New file model selected:");
@ -52,7 +53,7 @@ public class SoundSpotModelPane extends StandardModelPane {
* Note that the model prep will determine whether new transforms need to be loaded from the
* model or to use the existing transforms in the settings.
*/
soundSpotClassifier.getDLWorker().prepModel(params, soundSpotClassifier.getDLControl());
DLStatus status = soundSpotClassifier.getDLWorker().prepModel(params, soundSpotClassifier.getDLControl());
//get the model tansforms calculated from the model by SoundSpoyWorker and apply them to our temporary params clone.
getParamsClone().dlTransfroms = this.soundSpotClassifier.getDLWorker().getModelTransforms();
@ -63,6 +64,9 @@ public class SoundSpotModelPane extends StandardModelPane {
///set the advanced pane parameters.
getAdvSettingsPane().setParams(getParamsClone());
return status;
}

View File

@ -5,7 +5,9 @@ import java.nio.file.Paths;
import org.jamdev.jdl4pam.animalSpot.AnimalSpotModel;
import org.jamdev.jdl4pam.animalSpot.AnimalSpotParams;
import ai.djl.engine.EngineException;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.genericModel.DLModelWorker;
import rawDeepLearningClassifier.dlClassification.genericModel.StandardPrediction;
@ -41,7 +43,7 @@ public class SoundSpotWorker extends DLModelWorker<StandardPrediction> {
/**
* Prepare the model
*/
public void prepModel(StandardModelParams soundSpotParams, DLControl dlControl) {
public DLStatus prepModel(StandardModelParams soundSpotParams, DLControl dlControl) {
//ClassLoader origCL = Thread.currentThread().getContextClassLoader();
//System.out.println("prepModel: " + soundSpotParams.useDefaultTransfroms);
@ -64,8 +66,12 @@ public class SoundSpotWorker extends DLModelWorker<StandardPrediction> {
}
}
catch (EngineException e) {
return DLStatus.MODEL_ENGINE_FAIL;
}
catch (Exception e) {
e.printStackTrace();
return DLStatus.MODEL_LOAD_FAIL;
//WarnOnce.showWarning(null, "Model Load Error", "There was an error loading the model file.", WarnOnce.OK_OPTION);
}
@ -114,9 +120,13 @@ public class SoundSpotWorker extends DLModelWorker<StandardPrediction> {
catch (Exception e) {
soundSpotModel=null;
e.printStackTrace();
return DLStatus.MODEL_META_FAIL;
//WarnOnce.showWarning(null, "Model Metadata Error", "There was an error extracting the metadata from the model.", WarnOnce.OK_OPTION);
}
return DLStatus.MODEL_LOAD_SUCCESS;
//Thread.currentThread().setContextClassLoader(origCL);
}

View File

@ -31,6 +31,7 @@ import pamViewFX.fxNodes.PamHBox;
import pamViewFX.fxNodes.PamSpinner;
import pamViewFX.fxNodes.PamVBox;
import pamViewFX.validator.PamValidator;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.DLClassiferModel;
import rawDeepLearningClassifier.dlClassification.StandardClassifierModel;
@ -292,8 +293,9 @@ public abstract class StandardModelPane extends SettingsPane<StandardModelParams
/**
* Called whenever a new model has been selected
* @param file - the file.
* @return
*/
public abstract void newModelSelected(File file);
public abstract DLStatus newModelSelected(File file);
/**
* Sho0w the advanced settings.
@ -403,11 +405,10 @@ public abstract class StandardModelPane extends SettingsPane<StandardModelParams
this.getAdvSettingsPane().setParams(paramsClone);
if (paramsClone.modelPath!=null) {
//this might
currentSelectedFile = new File(paramsClone.modelPath);
//this might change the paramsClone values if the model contains pamguard compatible metadata
newModelSelected(currentSelectedFile);
DLStatus status = newModelSelected(currentSelectedFile);
}
setClassNames(paramsClone);

View File

@ -2,6 +2,7 @@ package rawDeepLearningClassifier.dlClassification.archiveModel;
import java.io.File;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelPane;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
import rawDeepLearningClassifier.dlClassification.ketos.KetosDLParams;
@ -17,7 +18,7 @@ public class ArchiveModelPane extends StandardModelPane {
}
@Override
public void newModelSelected(File file) {
public DLStatus newModelSelected(File file) {
//the model has to set some of the parameters for the UI .
@ -45,7 +46,7 @@ public class ArchiveModelPane extends StandardModelPane {
* Note that the model prep will determine whether new transforms need to be loaded from the
* model or to use the existing transforms in the settings.
*/
archiveModelClassifier.getDLWorker().prepModel(params, archiveModelClassifier.getDLControl());
DLStatus status = archiveModelClassifier.getDLWorker().prepModel(params, archiveModelClassifier.getDLControl());
//get the model transforms calculated from the model by the worker and apply them to our temporary params clone.
getParamsClone().dlTransfroms = this.archiveModelClassifier.getDLWorker().getModelTransforms();
@ -57,6 +58,8 @@ public class ArchiveModelPane extends StandardModelPane {
///set the advanced pane parameters.
getAdvSettingsPane().setParams(getParamsClone());
return status;
}
}

View File

@ -22,7 +22,9 @@ import org.json.JSONObject;
import PamUtils.PamArrayUtils;
import PamView.dialog.warn.WarnOnce;
import ai.djl.MalformedModelException;
import ai.djl.engine.EngineException;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
import rawDeepLearningClassifier.dlClassification.genericModel.DLModelWorker;
import rawDeepLearningClassifier.dlClassification.genericModel.GenericModelWorker;
@ -62,7 +64,7 @@ public class ArchiveModelWorker extends GenericModelWorker {
* Note it is important to put a synchonized here or the model loading can fail.
*/
@Override
public synchronized void prepModel(StandardModelParams dlParams, DLControl dlControl) {
public synchronized DLStatus prepModel(StandardModelParams dlParams, DLControl dlControl) {
//ClassLoader origCL = Thread.currentThread().getContextClassLoader();
try {
@ -92,8 +94,13 @@ public class ArchiveModelWorker extends GenericModelWorker {
//System.out.println(genericModel.getModel().getModelPath().getFileName());
}
}
catch (EngineException e) {
e.printStackTrace();
return DLStatus.MODEL_ENGINE_FAIL;
}
catch (Exception e) {
e.printStackTrace();
return DLStatus.MODEL_LOAD_FAIL;
//WarnOnce.showWarning(null, "Model Load Error", "There was an error loading the model file.", WarnOnce.OK_OPTION);
}
@ -188,8 +195,11 @@ public class ArchiveModelWorker extends GenericModelWorker {
catch (Exception e) {
dlModel=null;
e.printStackTrace();
return DLStatus.MODEL_META_FAIL;
//WarnOnce.showWarning(null, "Model Metadata Error", "There was an error extracting the metadata from the model.", WarnOnce.OK_OPTION);
}
return DLStatus.MODEL_LOAD_SUCCESS;
//Thread.currentThread().setContextClassLoader(origCL);
}
@ -200,7 +210,7 @@ public class ArchiveModelWorker extends GenericModelWorker {
* @throws MalformedModelException
* @throws IOException
*/
public ArchiveModel loadModel(String currentPath2) throws MalformedModelException, IOException {
public ArchiveModel loadModel(String currentPath2) throws MalformedModelException, IOException, EngineException {
return new SimpleArchiveModel(new File(currentPath2));
}

View File

@ -12,6 +12,7 @@ import java.util.stream.Stream;
import org.jamdev.jdl4pam.ArchiveModel;
import ai.djl.MalformedModelException;
import ai.djl.engine.EngineException;
/**
* A Tensorflow model packaged with a jar file.
@ -21,7 +22,7 @@ import ai.djl.MalformedModelException;
public class SimpleArchiveModel extends ArchiveModel {
public SimpleArchiveModel(File file) throws MalformedModelException, IOException {
public SimpleArchiveModel(File file) throws MalformedModelException, IOException, EngineException {
super(file);
}

View File

@ -1,7 +1,9 @@
package rawDeepLearningClassifier.dlClassification.delphinID;
import java.util.ArrayList;
import java.util.Arrays;
import org.jamdev.jpamutils.JamArr;
import org.jamdev.jpamutils.spectrum.Spectrum;
import PamUtils.PamArrayUtils;
@ -18,14 +20,14 @@ public class Clicks2Spectrum {
private Spectrum spectrum;
public Clicks2Spectrum(SegmenterDetectionGroup clickGroup, int fftLen) {
this.spectrum = clicks2Spectrum(clickGroup.getSubDetections(), clickGroup.getSampleRate(), fftLen);
public Clicks2Spectrum(SegmenterDetectionGroup clickGroup, int fftLen, boolean spectradB, boolean hann) {
this.spectrum = clicks2Spectrum(clickGroup.getSubDetections(), clickGroup.getSampleRate(), fftLen, spectradB, hann);
}
public Clicks2Spectrum(SegmenterDetectionGroup clickGroup, Clks2SpectrumParams transformParams) {
this(clickGroup, transformParams.fftLength);
this(clickGroup, transformParams.fftLength, transformParams.spectrumdB, transformParams.hann);
}
@ -37,9 +39,10 @@ public class Clicks2Spectrum {
* @param seglen - the segment length in seconds.
* @param freqLimits - the frequency limits for the spectrum.
* @param minFragSize - the minimum fragment length in seconds.
* @param spectrumdB - true to average the log spectra instead of linear spectra
* @return the average spectrum.
*/
public static Spectrum clicks2Spectrum(ArrayList<? extends PamDataUnit> arrayList, float sampleRate, int fftLen) {
public static Spectrum clicks2Spectrum(ArrayList<? extends PamDataUnit> arrayList, float sampleRate, int fftLen, boolean spectrumdB, boolean hann) {
//create an average spectrum
@ -47,19 +50,46 @@ public class Clicks2Spectrum {
double[] fftClk;
for (int i=0;i<arrayList.size(); i++) {
fftClk = ((RawDataHolder) arrayList.get(i)).getDataTransforms().getPowerSpectrum(0, fftLen);
fftClk = ((RawDataHolder) arrayList.get(i)).getDataTransforms().getPowerSpectrum(0, fftLen, hann);
// ComplexArray arr = RawDataTransforms.getComplexSpectrumHann(((RawDataHolder) arrayList.get(i)).getWaveData()[0], fftLen);
// PamArrayUtils.printArray(arr.getReal());
// PamArrayUtils.printArray(arr.getReal());
// System.out.println("fft len: " + i + " " + fftAverage.length + " " + fftClk.length);
if (spectrumdB) {
double fftClkdB = 0 ;
//important otherwise we alter the power spectrum stored within the click
fftClk = Arrays.copyOf(fftClk, fftClk.length);
//convert to log
for (int j=0; j<fftClk.length; j++) {
if (spectrumdB) {
fftClkdB=20*Math.log10(fftClk[j]);
}
else {
fftClkdB=fftClk[j];
}
// if (Double.isNaN(fftClkdB)) {
// System.out.println("Point is NaN: " + i + " " + j + " " + fftClk[j]);
// }
fftClk[j] = fftClkdB;
}
}
fftAverage = PamArrayUtils.sum(fftAverage, fftClk);
}
// System.out.println(fftAverage + " " + arrayList.size());
fftAverage = PamArrayUtils.divide(fftAverage, arrayList.size());
Spectrum spectrum = new Spectrum(fftAverage, null, sampleRate);
fftAverage = JamArr.subtract(fftAverage, JamArr.min(fftAverage));
Spectrum spectrum = new Spectrum(fftAverage, null, sampleRate);
return spectrum;
}
@ -72,8 +102,21 @@ public class Clicks2Spectrum {
public static class Clks2SpectrumParams extends DetectionGroupTransformParams {
/**
* The FFT length in samples.
*/
private int fftLength;
/**
* True to average log spectra instead of linear spectra
*/
public boolean spectrumdB = true;
/**
* True to apply a hanning window to click wave before FFT.
*/
public boolean hann = false;
/**
* Set the FFT length in samples
* @param fftLength

View File

@ -10,16 +10,19 @@ import org.jamdev.jdl4pam.transforms.DLTransfromParams;
import PamController.PamControlledUnitSettings;
import PamController.PamSettingManager;
import PamguardMVC.PamDataUnit;
import clickDetector.ClickDetection;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.dlClassification.DLClassiferModel;
import rawDeepLearningClassifier.dlClassification.PredictionResult;
import rawDeepLearningClassifier.dlClassification.StandardClassifierModel;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDParams.DelphinIDDataType;
import rawDeepLearningClassifier.dlClassification.genericModel.DLModelWorker;
import rawDeepLearningClassifier.dlClassification.genericModel.StandardPrediction;
import rawDeepLearningClassifier.layoutFX.DLCLassiferModelUI;
import rawDeepLearningClassifier.segmenter.SegmenterDetectionGroup;
import whistlesAndMoans.ConnectedRegionDataBlock;
import whistlesAndMoans.ConnectedRegionDataUnit;
/**
* A classifier based on the delphinID method which uses whistle contours to predict
@ -39,10 +42,12 @@ public class DelphinIDClassifier extends StandardClassifierModel {
private DelphinIDWorker delphinIDWorker;
private ArrayList<Class> allowedDataTypes;
public DelphinIDClassifier(DLControl dlControl) {
super(dlControl);
allowedDataTypes = new ArrayList<Class>();
//load the previous settings
PamSettingManager.getInstance().registerSettings(this);
}
@ -52,6 +57,13 @@ public class DelphinIDClassifier extends StandardClassifierModel {
return false;
}
@Override
public void prepModel() {
super.prepModel();
//set group detections to true.
getDLControl().setGroupDetections(true);
}
@Override
public String getName() {
return "delphinID";
@ -99,6 +111,8 @@ public class DelphinIDClassifier extends StandardClassifierModel {
public ArrayList<? extends PredictionResult> runModel(ArrayList<? extends PamDataUnit> groupedRawData) {
//add an extra test to see if the detection pre count has passed.
//System.out.println("Run delphinID model: " + (((SegmenterDetectionGroup) groupedRawData.get(0)).getSubDetectionsCount()) + " min clicks: " + delphinIDParams.minDetectionValue);
if (detectionPreFilter(groupedRawData)) {
return super.runModel(groupedRawData);
@ -122,38 +136,41 @@ public class DelphinIDClassifier extends StandardClassifierModel {
private boolean clickPreFilter(ArrayList<? extends PamDataUnit> groupedRawData) {
//TODO
// System.out.println("Check CLICK fragment density");
return true;
if (((SegmenterDetectionGroup) groupedRawData.get(0)).getSubDetectionsCount()>=delphinIDParams.minDetectionValue) {
return true;
}
return false;
}
private boolean whistlePreFilter(ArrayList<? extends PamDataUnit> groupedRawData) {
//TODO
// System.out.println("Check WHISTLE fragment density");
//
// 3. Within each time frame, the density of detection is calculated and used as a filter.
// - Density 2
// - where the length of frame = frame duration / mean time step across contour
// (time steps between time-frequency points in contour saved by ROCCA depend on FFT resolution but can vary slightly within contour)
//
// 4. If a detection frame has less than 0.30 detection density, it is not used for classification
// double density = DelphinIDUtils.getDensity(null);
// System.out.println("Check WHISTLE fragment density");
//
// 3. Within each time frame, the density of detection is calculated and used as a filter.
// - Density 2
// - where the length of frame = frame duration / mean time step across contour
// (time steps between time-frequency points in contour saved by ROCCA depend on FFT resolution but can vary slightly within contour)
//
// 4. If a detection frame has less than 0.30 detection density, it is not used for classification
// double density = DelphinIDUtils.getDensity(null);
if (groupedRawData==null || groupedRawData.size()<1) {
System.err.println("DelphinIDClassifier: + the grouped raw data is null or zero size:");
return false;
}
System.out.println("Run DelphinID model: " + groupedRawData.size() + " min density: " + delphinIDParams.minDetectionDensity);
//System.out.println("Run DelphinID model: " + groupedRawData.size() + " min density: " + delphinIDParams.minDetectionValue);
double density = DelphinIDUtils.getDensity((SegmenterDetectionGroup) groupedRawData.get(0));
if (density>=delphinIDParams.minDetectionDensity) {
if (density>=delphinIDParams.minDetectionValue) {
return true;
}
return true;
return false;
}
@Override
@ -206,4 +223,21 @@ public class DelphinIDClassifier extends StandardClassifierModel {
}
@Override
public ArrayList<Class> getAllowedDataTypes(){
allowedDataTypes.clear();
if (delphinIDParams.getDataType()==DelphinIDDataType.CLICKS) {
allowedDataTypes.add(ClickDetection.class);
}
if (delphinIDParams.getDataType()==DelphinIDDataType.WHISTLES) {
allowedDataTypes.add(ConnectedRegionDataUnit.class);
}
return allowedDataTypes;
}
}

View File

@ -10,32 +10,49 @@ import org.jamdev.jdl4pam.utils.DLMatFile;
import org.jamdev.jpamutils.spectrum.Spectrum;
import PamUtils.PamArrayUtils;
import PamUtils.PamCalendar;
import PamguardMVC.PamDataUnit;
import ai.djl.MalformedModelException;
import rawDeepLearningClassifier.dlClassification.archiveModel.SimpleArchiveModel;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDUtils.ClickDetectionMAT;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDUtils.DetectionGroupMAT;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDWhistleTest.DelphinIDWorkerTest;
import rawDeepLearningClassifier.dlClassification.genericModel.StandardPrediction;
import rawDeepLearningClassifier.segmenter.SegmenterDetectionGroup;
import us.hebi.matlab.mat.format.Mat5;
import us.hebi.matlab.mat.types.MatFile;
import us.hebi.matlab.mat.types.Matrix;
import us.hebi.matlab.mat.types.Struct;
public class DelphinIDClickTest {
public static void main(String args[]) {
//test a single segment.
// String clicksMatPath = "/Users/au671271/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/clicks_20200918_123234.mat";
// String modelFile = "/Users/au671271/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/clickclassifier.zip";
String clicksMatPath = "/Users/jdjm/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/clicks_20200918_123234_classified.mat";
String modelFile = "/Users/jdjm/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/clickClassifier_Jan25.zip";
String matclickSave = "/Users/jdjm/MATLAB-Drive/MATLAB/PAMGUARD/deep_learning/delphinID/click1D/click_spectrums.mat";
DetectionGroupMAT<ClickDetectionMAT> clicks = DelphinIDUtils.getClicksMAT(clicksMatPath);
// -----basic tests to check transforms----
// test a single segment.
String matFileout = "/Users/jdjm/MATLAB-Drive/MATLAB/PAMGUARD/deep_learning/delphinID/click1D/clickspectrum.mat";
float[][] output = testDelphinIDClickSegment(matFileout, clicks);
//
float[][] output = testDelphinIDClickSegment(matFileout);
// //produce a set of sequntial transforms
// String matFileout3 = "/Users/jdjm/MATLAB-Drive/MATLAB/PAMGUARD/deep_learning/delphinID/click1D/click_transform_example.mat";
// exportDelphinIDClickTransforms( matFileout3, clicks, 37);
//run the model
String modelFile = "/Users/jdjm/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/clickclassifier.zip";
// //run the model
String matFileout2 = "/Users/jdjm/MATLAB-Drive/MATLAB/PAMGUARD/deep_learning/delphinID/click1D/clickspectrum_results_predictions.mat";
float[][] predictions = testDelphinIDClickModel(modelFile, clicks, matFileout2);
String matFileout2 = "/Users/jdjm/MATLAB-Drive/MATLAB/PAMGUARD/deep_learning/delphinID/click1D/clickspectrum_results.mat";
testDelphinIDModelRaw(modelFile, output, matFileout2);
//---complete test on the model and transforms------
// float[][] results = testDelphinIDClickModel( modelFile, clicks, matclickSave );
}
@ -46,15 +63,138 @@ public class DelphinIDClickTest {
/*
/****------------------------------------------------------------------****/
public static float[][] testDelphinIDClickModel(String modelPath, DetectionGroupMAT<ClickDetectionMAT> clicks, String matClickSave) {
return testDelphinIDClickModel( modelPath, clicks, matClickSave, true);
}
private static void testDelphinIDModelRaw(String modelPath, float[][] rawModelInput, String matFileout) {
public static float[][] testDelphinIDClickModel(String modelPath, DetectionGroupMAT<ClickDetectionMAT> clicks, String matClickSave, boolean verbose) {
Path path = Paths.get(modelPath);
double segLen = 4000.;
double segHop = 1000.0;
int minclicks = 3;
//load the model
try {
//now feed segments directly into model to test.
float sampleRate = (float) clicks.getSampleRate();
long dataStartMillis = clicks.getFileDataStart();
Float hardSampleRate = Float.valueOf((float) clicks.sampleRate);
//segment the whistle detections
//Note, delphinID starts from the first whistle and NOT the first file.
ArrayList<SegmenterDetectionGroup> segments = DelphinIDUtils.segmentDetectionData(clicks.getDetections(), dataStartMillis, segLen, segHop, hardSampleRate);
if (verbose) {
for (int i=0; i<segments.size(); i++) {
System.out.println("Segment " + i + " contains " + segments.get(i).getSubDetectionsCount() + " clicks");
}
}
//prepare the model - this loads the zip file and loads the correct transforms.
DelphinIDWorkerTest model = DelphinIDUtils.prepDelphinIDModel(path.toAbsolutePath().toString());
model.setEnableSoftMax(false);
//initialise strcuture for image data
Struct imageStruct = Mat5.newStruct(segments.size(), 1);
float[][] outputs = new float[segments.size()][];
for (int i=0; i<segments.size(); i++) {
//remember that the input is a stack of detections to be run by the model at once - Here we want to do each one individually.
ArrayList<SegmenterDetectionGroup> aSegment = new ArrayList<SegmenterDetectionGroup>();
aSegment.add(segments.get(i));
if (segments.get(i).getSubDetectionsCount()>=minclicks) {
//the prediction.
ArrayList<StandardPrediction> predicition = model.runModel(aSegment, sampleRate, 1);
float[] output = predicition.get(0).getPrediction();
if (verbose) {
System.out.print(String.format("Segment: %d no. clicks %d %.4f s" , i , segments.get(i).getSubDetectionsCount() ,((aSegment.get(0).getSegmentStartMillis()-dataStartMillis)/1000.)));
for (int j=0; j<output.length; j++) {
System.out.print(String.format( " %.4f" , output[j]));
}
System.out.println();
}
outputs[i]=output;
Matrix modelinput = DLMatFile.array2Matrix(PamArrayUtils.float2Double(model.getLastModelInput()[0]));
imageStruct.set("modelinput", i, modelinput);
imageStruct.set("startmillis", i, Mat5.newScalar(aSegment.get(0).getSegmentStartMillis()));
imageStruct.set("startseconds", i, Mat5.newScalar((aSegment.get(0).getSegmentStartMillis()-dataStartMillis)/1000.));
imageStruct.set("prediction", i, DLMatFile.array2Matrix(PamArrayUtils.float2Double(output)));
}
else {
if (verbose) {
System.out.println(String.format("Segment: %d no. clicks %d %s" , i , segments.get(i).getSubDetectionsCount(), "-------------------------"));
}
}
imageStruct.set("nclicks", i, Mat5.newScalar(segments.get(i).getSubDetectionsCount()));
}
//create MatFile for saving the image data to.
MatFile matFile = Mat5.newMatFile();
matFile.addArray("click_model_inputs", imageStruct);
if (matClickSave!=null) {
// Serialize to disk using default configurations
try {
Mat5.writeToFile(matFile,matClickSave);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return outputs;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* Run the click classifier model on a set of predictions.
* @param modelPath - the model path to load.
* @param rawModelInput - the input into the model where each row is one input.
* @return predictions with the same number of rows as the input.
*/
private static float[][] testDelphinIDModelRaw(String modelPath, float[][] rawModelInput) {
// TODO Auto-generated method stub
Path path = Paths.get(modelPath);
//load the model
SimpleArchiveModel model;
float[][] predictions = new float[rawModelInput.length][];
try {
model = new SimpleArchiveModel(new File(path.toString()));
@ -63,14 +203,113 @@ public class DelphinIDClickTest {
float[][] input = new float[1][];
input[0] = rawModelInput[i];
outputJava = model.runModel(input);
System.out.println("Click spectrum output Java: ");
PamArrayUtils.printArray(outputJava);
}
predictions[i] = outputJava;
} catch (MalformedModelException | IOException e) {
System.out.print(i+" :");
PamArrayUtils.printArray(outputJava, true);
System.out.println("");
}
return predictions;
}
catch (MalformedModelException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public static void exportDelphinIDClickTransforms(String matFileout, DetectionGroupMAT<ClickDetectionMAT> clicks, int second ) {
// String clicksMatPath = "/Users/jdjm/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/clicks_20200918_123234.mat";
double segLen = 4000.;
double segHop = 1000.;
// double startSeconds = 1.50355; //seconds to start segments (so we can compare to Python)
double startSeconds = 0; //seconds to start segments (so we can compare to Python)
// double[] freqLimits = new double[] {10000., 40188};
double[] freqLimits = new double[] {10000., 40000};
int fftLen = 512;
// Create MAT file with a scalar in a nested struct
MatFile matFile;
int sum = 0;
System.out.println("Total clicks: " + clicks.getDetections().size() + " First click: " + (clicks.getDetections().get(0).getStartSample()/clicks.getSampleRate()) + "s");
long dataStartMillis = clicks.getFileDataStart();
dataStartMillis = (long) (dataStartMillis+(startSeconds*1000.));
//split the clicks into segments
ArrayList<SegmenterDetectionGroup> segments = DelphinIDUtils.segmentDetectionData(clicks.getDetections(), dataStartMillis, segLen, segHop);
Struct clkStruct = Mat5.newStruct(1, segments.size());
for (int i=0; i<segments.size(); i++) {
sum += segments.get(i).getSubDetectionsCount() ;
ArrayList<PamDataUnit<?, ?>> clicksSeg = segments.get(i).getSubDetections();
Spectrum spectrum = Clicks2Spectrum.clicks2Spectrum(clicksSeg, (float) clicks.getSampleRate(), fftLen, true, false);
clkStruct.set("averagespectrum", i, DLMatFile.array2Matrix(spectrum.getRealSpectrum()));
clkStruct.set("nclks", i, Mat5.newScalar(clicksSeg.size()));
clkStruct.set("startseconds", i, Mat5.newScalar(segments.get(i).getStartSecond()));
clkStruct.set("minfreq", i, Mat5.newScalar(freqLimits[0]));
clkStruct.set("maxfreq", i, Mat5.newScalar(freqLimits[1]));
//System.out.println("Segment average" + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
//convert to dB
//spectrum = spectrum.spectrumdB(true);
//System.out.println("Segment dB" + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
//smooth spectrum
spectrum = spectrum.smoothSpectrum(3);
clkStruct.set("smoothspectrum", i, DLMatFile.array2Matrix(spectrum.getRealSpectrum()));
//System.out.println("Segment smooth" + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
//trim spectrum
spectrum = spectrum.trimSpectrum(freqLimits);
clkStruct.set("trimspectrum", i, DLMatFile.array2Matrix(spectrum.getRealSpectrum()));
//System.out.println("Segment trim" + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
//down sample the spectrum.
spectrum.downSampleSpectrumMean(2);
clkStruct.set("downsamplespectrum", i,DLMatFile.array2Matrix(spectrum.getRealSpectrum()));
//normalise spectrum row sum
spectrum = spectrum.normaliseSpectrumSum();
clkStruct.set("normalisespectrum", i, DLMatFile.array2Matrix(spectrum.getRealSpectrum()));
System.out.println("Segment " + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
clkStruct.set("transformedspectrum", i, DLMatFile.array2Matrix(spectrum.getRealSpectrum()));
}
MatFile matFileWrite = Mat5.newMatFile()
.addArray("spectrumJava",clkStruct)
.addArray("filedate", Mat5.newScalar(PamCalendar.millistoDateNum(clicks.getFileDataStart())));
try {
Mat5.writeToFile(matFileWrite, matFileout);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
@ -79,21 +318,22 @@ public class DelphinIDClickTest {
/**
* This test runs delphinID on one 4 second window from whistle contours saved
* This test runs delphinID on one 4 second window from clicks saved
* in a mat file.
*
* @return true if the test is passed.
*/
public static float[][] testDelphinIDClickSegment(String matFileout) {
public static float[][] testDelphinIDClickSegment(String matFileout, DetectionGroupMAT<ClickDetectionMAT> clicks ) {
// String clicksMatPath = "/Users/jdjm/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/clicks_20200918_123234.mat";
String clicksMatPath = "/Users/jdjm/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/clicks_20200918_123234.mat";
double segLen = 4000.;
double segHop = 1000.0;
double startSeconds = 1.50355; //seconds to start segments (so we can compare to Python)
double[] freqLimits = new double[] {10000., 40188.};
double segHop = 1000.;
// double startSeconds = 1.50355; //seconds to start segments (so we can compare to Python)
double startSeconds = 0; //seconds to start segments (so we can compare to Python)
double[] freqLimits = new double[] {10000., 40000};
// double[] freqLimits = new double[] {10000., 40000};
int fftLen = 512;
// Create MAT file with a scalar in a nested struct
@ -101,7 +341,6 @@ public class DelphinIDClickTest {
int sum = 0;
try {
DetectionGroupMAT<ClickDetectionMAT> clicks = DelphinIDUtils.getClicksMAT(clicksMatPath);
System.out.println("Total clicks: " + clicks.getDetections().size() + " First click: " + (clicks.getDetections().get(0).getStartSample()/clicks.getSampleRate()) + "s");
@ -110,7 +349,7 @@ public class DelphinIDClickTest {
dataStartMillis = (long) (dataStartMillis+(startSeconds*1000.));
//split the clicks into segments
ArrayList<SegmenterDetectionGroup> segments = DelphinIDUtils.segmentDetectionData(clicks.getDetections(), dataStartMillis, segLen, segHop);
ArrayList<SegmenterDetectionGroup> segments = DelphinIDUtils.segmentDetectionData(clicks.getDetections(), dataStartMillis, segLen, segHop);
Struct clkStruct = Mat5.newStruct(1, segments.size());
@ -121,33 +360,36 @@ public class DelphinIDClickTest {
sum += segments.get(i).getSubDetectionsCount() ;
ArrayList<PamDataUnit<?, ?>> clicksSeg = segments.get(i).getSubDetections();
Spectrum spectrum = Clicks2Spectrum.clicks2Spectrum(clicksSeg, (float) clicks.getSampleRate(), fftLen);
Spectrum spectrum = Clicks2Spectrum.clicks2Spectrum(clicksSeg, (float) clicks.getSampleRate(), fftLen, true, false);
clkStruct.set("averagespectrum", i, DLMatFile.array2Matrix(spectrum.getRealSpectrum()));
clkStruct.set("nclks", i, Mat5.newScalar(clicksSeg.size()));
clkStruct.set("nclks", i, Mat5.newScalar(clicksSeg.size()));
clkStruct.set("startseconds", i, Mat5.newScalar(segments.get(i).getStartSecond()));
//System.out.println("Segment average" + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
//convert to dB
spectrum = spectrum.spectrumdB(true);
//spectrum = spectrum.spectrumdB(true);
//System.out.println("Segment dB" + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
//smooth spectrum
spectrum = spectrum.smoothSpectrum(3);
//System.out.println("Segment smooth" + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
//trim spectrum
spectrum = spectrum.trimSpectrum(freqLimits);
//System.out.println("Segment trim" + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
//normalise spectrum row sum
spectrum = spectrum.normaliseSpectrumSum();
//down sample the spectrum.
spectrum.downSampleSpectrumMean(2);
//normalise spectrum row sum
spectrum = spectrum.normaliseSpectrumSum();
System.out.println("Segment " + i + " time: " + (double)(segments.get(i).getSegmentStartMillis()-dataStartMillis)/1000. + "s no. clicks " + segments.get(i).getSubDetectionsCount() + " total: " + sum + " spectrum " + spectrum.length() + " " + spectrum.getRealSpectrum()[0]);
clkStruct.set("transformedspectrum", i, DLMatFile.array2Matrix(spectrum.getRealSpectrum()));
@ -164,7 +406,7 @@ public class DelphinIDClickTest {
if (matFileout!=null){
MatFile matFileWrite = Mat5.newMatFile()
.addArray("spectrumJava",clkStruct)
.addArray("file", Mat5.newString(clicksMatPath));
.addArray("filedate", Mat5.newScalar(PamCalendar.millistoDateNum(clicks.getFileDataStart())));
Mat5.writeToFile(matFileWrite, matFileout);
}

View File

@ -10,6 +10,8 @@ import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;
import javafx.scene.control.SpinnerValueFactory.DoubleSpinnerValueFactory;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
@ -21,6 +23,7 @@ import pamViewFX.fxNodes.PamHBox;
import pamViewFX.fxNodes.PamSpinner;
import pamViewFX.fxNodes.PamVBox;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelPane;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDParams.DelphinIDDataType;
/**
* Settings pane for delphin ID.
@ -48,6 +51,14 @@ public class DelphinIDPane extends SettingsPane<DelphinIDParams> {
private File currentSelectedFile;
private Label detectionDensity;
private DoubleSpinnerValueFactory whislteValueFactory;
private DoubleSpinnerValueFactory clickValueFactory;
private Label minDensityLabel;
public DelphinIDPane(DelphinIDClassifier delphinUIClassifier) {
super(null);
this.delphinUIClassifier = delphinUIClassifier;
@ -75,13 +86,17 @@ public class DelphinIDPane extends SettingsPane<DelphinIDParams> {
PamVBox vBox = new PamVBox();
vBox.setSpacing(5.);
clickValueFactory = new SpinnerValueFactory.DoubleSpinnerValueFactory(1., Double.MAX_VALUE, 5., 1.);
whislteValueFactory = new SpinnerValueFactory.DoubleSpinnerValueFactory(0.0, 1.0, 0.3, 0.1);
/**Classification thresholds etc to set.**/
Label detectionDensity = new Label("Detection Density");
detectionDensity = new Label("Detection Density");
detectionDensity.setFont(font);
String tooltip = "Set the minimum detection density to attempt to classify.";
detectionDensity.setTooltip(new Tooltip(tooltip));
detectionDensitySpinner = new PamSpinner<Double>(0.0, 1.0, 0.3, 0.1);
detectionDensitySpinner = new PamSpinner<Double>();
detectionDensitySpinner.setValueFactory(whislteValueFactory);
detectionDensitySpinner.setPrefWidth(70);
detectionDensitySpinner.setEditable(true);
detectionDensitySpinner.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
@ -89,8 +104,8 @@ public class DelphinIDPane extends SettingsPane<DelphinIDParams> {
PamHBox minDensityHolder = new PamHBox();
minDensityHolder.setAlignment(Pos.CENTER_RIGHT);
minDensityHolder.setSpacing(5);
Label minDensity = new Label("Min. detectection density");
minDensityHolder.getChildren().addAll(minDensity, detectionDensitySpinner);
minDensityLabel = new Label("Min. detectection density");
minDensityHolder.getChildren().addAll(minDensityLabel, detectionDensitySpinner);
/**Classification thresholds etc to set.**/
Label classiferInfoLabel2 = new Label("Decision Threshold");
@ -117,7 +132,7 @@ public class DelphinIDPane extends SettingsPane<DelphinIDParams> {
@Override
public DelphinIDParams getParams(DelphinIDParams currParams) {
currParams.threshold = decisionSlider.getValue();
currParams.minDetectionDensity = detectionDensitySpinner.getValue();
currParams.minDetectionValue = detectionDensitySpinner.getValue();
return currParams;
}
@ -125,7 +140,28 @@ public class DelphinIDPane extends SettingsPane<DelphinIDParams> {
public void setParams(DelphinIDParams input) {
this.currentParams = input;
decisionSlider.setValue(input.threshold);
detectionDensitySpinner.getValueFactory().setValue(input.minDetectionDensity);
detectionDensitySpinner.getValueFactory().setValue(input.minDetectionValue);
if (input.getDataType()==null) {
input.dataType = DelphinIDDataType.WHISTLES;
}
//set the correct label and minimum detection value
switch (input.getDataType()) {
case CLICKS:
this.minDensityLabel.setText("Minimum no. clicks");
minDensityLabel.setTooltip(new Tooltip("Set the minimum number of clicks before a segment is classified"));
detectionDensitySpinner.setValueFactory(clickValueFactory);
break;
case WHISTLES:
minDensityLabel.setTooltip(new Tooltip("Set the minimum whistle density before a segment is classified"));
this.minDensityLabel.setText("Minimum whistle density");
detectionDensitySpinner.setValueFactory(whislteValueFactory);
break;
default:
break;
}
if (input.modelPath!=null) {
//this might

View File

@ -3,16 +3,36 @@ package rawDeepLearningClassifier.dlClassification.delphinID;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
public class DelphinIDParams extends StandardModelParams {
/**
* Allowed data input types for DelphinID.
*/
public static enum DelphinIDDataType {CLICKS, WHISTLES}
/**
* The allowed input data type.
*/
public DelphinIDDataType dataType = DelphinIDDataType.WHISTLES;
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* The minimum detection density.
* The minimum detection density for whisltes and minimum number of clicks for clicks before
* a classification is attempted.
*/
public double minDetectionDensity = 0.3;
public double minDetectionValue = 0.3;
/**
* Get the allowed input data type for the delphinID classifier.
* @return the allowed data type.
*/
public DelphinIDDataType getDataType() {
return dataType;
}
}

View File

@ -7,6 +7,7 @@ import org.json.JSONArray;
import org.json.JSONObject;
import rawDeepLearningClassifier.dlClassification.delphinID.Clicks2Spectrum.Clks2SpectrumParams;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDParams.DelphinIDDataType;
import rawDeepLearningClassifier.dlClassification.delphinID.Whistles2Image.Whistle2ImageParams;
import rawDeepLearningClassifier.dlClassification.delphinID.Whsitle2Spectrum.Whistle2spectrumParams;
import rawDeepLearningClassifier.segmenter.SegmenterDetectionGroup;
@ -49,6 +50,11 @@ public class DelphinIDTransform {
*/
public Object transformParams = null;
/**
* The data type.
*/
private DelphinIDDataType dataType;
public DelphinIDTransform( ) {
@ -76,6 +82,7 @@ public class DelphinIDTransform {
transformParams = readWhistleImageTransform( jsonObjectParams);
delphinIDTransformType = WHISTLE_IMAGE;
dataType= DelphinIDDataType.WHISTLES;
return true;
}
@ -86,6 +93,7 @@ public class DelphinIDTransform {
transformParams = readWhistleSpectrumTransform( jsonObjectParams);
delphinIDTransformType = WHISTLE_SPECTRUM;
dataType= DelphinIDDataType.WHISTLES;
return true;
}
@ -96,7 +104,8 @@ public class DelphinIDTransform {
transformParams = readClickSpectrumTransform( jsonObjectParams);
delphinIDTransformType = WHISTLE_SPECTRUM;
delphinIDTransformType = CLICK_SPECTRUM;
dataType= DelphinIDDataType.CLICKS;
return true;
}
@ -110,14 +119,23 @@ public class DelphinIDTransform {
private Clks2SpectrumParams readClickSpectrumTransform(JSONObject jsonObjectParams ) {
Clks2SpectrumParams params = new Clks2SpectrumParams();
double[] freqLimits = new double[2];
freqLimits[0] = jsonObjectParams.getFloat("minfreq");
freqLimits[1] = jsonObjectParams.getFloat("maxfreq");
// double[] freqLimits = new double[2];
// freqLimits[0] = jsonObjectParams.getFloat("minfreq");
// freqLimits[1] = jsonObjectParams.getFloat("maxfreq");
double minfragmillis = jsonObjectParams.getDouble("minclks");
params.freqLimits = freqLimits;
int fftLen = jsonObjectParams.getInt("fft_len");
boolean spectrumdB = jsonObjectParams.getInt("spectrum_dB") == 1 ? true : false;
boolean hann = false;
if (jsonObjectParams.has("hann")) {
hann = jsonObjectParams.getInt("hann") == 1 ? true : false;
}
// params.freqLimits = freqLimits;
params.minFragSize = minfragmillis;
params.spectrumdB = spectrumdB;
params.hann = hann;
params.setFftLength(fftLen);
return params;
}
@ -217,5 +235,9 @@ public class DelphinIDTransform {
}
public DelphinIDDataType getDataType() {
return this.dataType;
}
}

View File

@ -34,6 +34,7 @@ import whistlesAndMoans.AbstractWhistleDataUnit;
/**
* A bunch of utility functions that a re useful for testing and running
* DelphinID models
*
*/
public class DelphinIDUtils {
@ -42,7 +43,7 @@ public class DelphinIDUtils {
//create the delphinID worker.
DelphinIDWorkerTest delphinIDWorker = new DelphinIDWorkerTest();
StandardModelParams params = new StandardModelParams();
StandardModelParams params = new DelphinIDParams();
params.modelPath = modelPath;
//prepare the model
@ -51,12 +52,8 @@ public class DelphinIDUtils {
return delphinIDWorker;
}
//record WhistleGroup(ArrayList<AbstractWhistleDataUnit> whistle, double sampleRate, double fftLen, double fftHop, long fileDataStart) { }
/**
* Holds a whistle group and some extra information on sample rate, fft length and hop and the start of the processed file.
* Keep Java 11 compliant so do not use record.
@ -166,7 +163,7 @@ public class DelphinIDUtils {
/**
* Load whistle contours from a MAT file. ()
* Load whistle contours from a MAT file.
*
* @param filePath - the file path.
*
@ -199,7 +196,7 @@ public class DelphinIDUtils {
/**
* Load clicks from a MATLAB struct
* Load clicks from a MATLAB struct.
* @param clicksStruct - a struct containing a list of whistle contours
* @param fftLen- the fft length in samples
@ -229,7 +226,7 @@ public class DelphinIDUtils {
/**
* Load whistle contours from a MAT file. ()
* Load whistle contours from a MAT file.
*
* @param filePath - the file path.
*
@ -268,8 +265,8 @@ public class DelphinIDUtils {
* Load whistle contours from a MATLAB struct
* @param whistlesStruct - a struct containing a list of whistle contours
* @param fftLen- the fft length in samples
* @param fftHop - the fft hop in samples.
* @param fftLen- the FFT length in samples
* @param fftHop - the FFT hop in samples.
* @param sampleRate - the sample rate in samples per second.
* @return a list of whistle contour objects from the struct.
*/
@ -316,14 +313,14 @@ public class DelphinIDUtils {
/**
* Segment the detections into groups. Note that segments are overlaps so each whistle may belong to multiple segments.
* @param whistles - a list of whistles - not necessarily sorted by time.
* @param detections - a list of whistles - not necessarily sorted by time.
* @param dataStartMillis - the start time of the data in millis i.e. where the first segment starts.
* @param segLen - the segment size in milliseconds.
* @param segHop - the segment hop in milliseconds.
* @param sampleRate - the sample rate to set.
* @return groups of data units within each segment.
*/
public static ArrayList<SegmenterDetectionGroup> segmentDetectionData(ArrayList<? extends PamDataUnit> whistles, long dataStartMillis,
public static ArrayList<SegmenterDetectionGroup> segmentDetectionData(ArrayList<? extends PamDataUnit> detections, long dataStartMillis,
double segLen, double segHop, Float sampleRate){
ArrayList<SegmenterDetectionGroup> group = new ArrayList<SegmenterDetectionGroup>();
@ -331,33 +328,37 @@ public class DelphinIDUtils {
//find the maximum whistle time
long maxTime = Long.MIN_VALUE;
long endTime = 0;
for (PamDataUnit whislte: whistles) {
endTime = (long) (whislte.getTimeMilliseconds()+whislte.getDurationInMilliseconds());
for (PamDataUnit det: detections) {
endTime = (long) (det.getTimeMilliseconds()+det.getDurationInMilliseconds());
if (endTime>maxTime) maxTime=endTime;
}
long segStart = dataStartMillis;
long segEnd = (long) (segStart+segLen);
long whistleStart;
long whistleEnd;
long detStart;
long detEnd;
AcousticDetectionGroup whistleGroup;
while (segStart<endTime){
whistleGroup = new AcousticDetectionGroup(segStart, 1, segEnd, segLen);
whistleGroup.setHardSampleRate(sampleRate);
whistleGroup.setStartSecond((segStart-dataStartMillis)/1000.);
for (PamDataUnit whislte: whistles) {
whistleStart = whislte.getTimeMilliseconds();
whistleEnd = (long) (whislte.getTimeMilliseconds() + whislte.getDurationInMilliseconds());
for (PamDataUnit aDet: detections) {
detStart = aDet.getTimeMilliseconds();
detEnd = (long) (aDet.getTimeMilliseconds() + aDet.getDurationInMilliseconds());
if ((whistleStart>=segStart && whistleStart<segEnd) || ((whistleEnd>=segStart && whistleEnd<segEnd))){
if ((detStart>=segStart && detStart<segEnd) || ((detEnd>=segStart && detEnd<segEnd))){
//some part of the whistle is in the segment.
whistleGroup.addSubDetection(whislte);
whistleGroup.addSubDetection(aDet);
//System.out.println("segStart: " + segStart + " Click UID: " + aDet.getUID() + " " + PamCalendar.formatDateTime2(aDet.getTimeMilliseconds(), "dd MMM yyyy HH:mm:ss.SSS", false) + " " + aDet.getDurationInMilliseconds());
}
}
//System.out.println("New click group: ----------------- " + whistleGroup.getSubDetectionsCount() + " " + (segStart-dataStartMillis)/1000. + "s" + " " + segEnd);
group.add(whistleGroup);
// System.out.println("SegStart: " + (segStart - dataStartMillis));
@ -367,7 +368,6 @@ public class DelphinIDUtils {
}
return group;
}
@ -384,7 +384,7 @@ public class DelphinIDUtils {
@Override
public float getSampleRate() {
if (super.getParentDataBlock()==null) {
return hardSampleRate;
return hardSampleRate;
}
else {
return super.getSampleRate();
@ -574,11 +574,8 @@ public class DelphinIDUtils {
if (listOfFiles[i].isDirectory()) {
//get a list of csv files
// ArrayList<File> csvFiles = filelist.getFileList(listOfFiles[i].getAbsolutePath(), ".mat" , true);
System.out.println("Directory " + listOfFiles[i].getName());
try {
File file = new File(listOfFiles[i].getPath() + File.separator + "whistles.mat");

View File

@ -50,7 +50,7 @@ public class DelphinIDWhistleTest {
//0.21068583 0.28237167 0.07045266 0.1493272 0.041739468 0.04061936 0.2048038
String matout = "/Users/au671271/MATLAB-Drive/MATLAB/PAMGUARD/deep_learning/delphinID/whistle1D/whistle_spectrums.mat";
String matout = "/Users/jdjm/MATLAB-Drive/MATLAB/PAMGUARD/deep_learning/delphinID/whistle1D/whistle_spectrums.mat";
testDelphinIDSpectrumModel(matout);
@ -101,7 +101,7 @@ public class DelphinIDWhistleTest {
* @param segHop - the segment hop in samples
* @return true if everything worked without throwing an error.
*/
public static boolean runWhistleModel(String modelPath, String whistleContourPath, String matImageSave, double startSeconds, double segLen, double segHop) {
public static float[][] runWhistleModel(String modelPath, String whistleContourPath, String matImageSave, double startSeconds, double segLen, double segHop) {
//create MatFile for saving the image data to.
MatFile matFile = Mat5.newMatFile();
@ -126,9 +126,10 @@ public class DelphinIDWhistleTest {
DelphinIDWorkerTest model = DelphinIDUtils.prepDelphinIDModel(path.toAbsolutePath().toString());
model.setEnableSoftMax(false);
//initialise strcuture for image data
Struct imageStruct = Mat5.newStruct(segments.size(), 1);
float[][] outputs = new float[segments.size()][];
for (int i=0; i<segments.size(); i++) {
@ -137,22 +138,24 @@ public class DelphinIDWhistleTest {
aSegment.add(segments.get(i));
if (segments.get(i).getSubDetectionsCount()>0) {
//the prediction.
ArrayList<StandardPrediction> predicition = model.runModel(aSegment, sampleRate, 1);
//the prediction.
ArrayList<StandardPrediction> predicition = model.runModel(aSegment, sampleRate, 1);
float[] output = predicition.get(0).getPrediction();
float[] output = predicition.get(0).getPrediction();
System.out.println();
System.out.print(String.format("Segment: %d %.4f s" , i ,((aSegment.get(0).getSegmentStartMillis()-dataStartMillis)/1000.)));
for (int j=0; j<output.length; j++) {
System.out.print(String.format( " %.4f" , output[j]));
}
System.out.println();
System.out.print(String.format("Segment: %d %.4f s" , i ,((aSegment.get(0).getSegmentStartMillis()-dataStartMillis)/1000.)));
for (int j=0; j<output.length; j++) {
System.out.print(String.format( " %.4f" , output[j]));
}
Matrix modelinput = DLMatFile.array2Matrix(PamArrayUtils.float2Double(model.getLastModelInput()[0]));
imageStruct.set("modelinput", i, modelinput);
imageStruct.set("startmillis", i, Mat5.newScalar(aSegment.get(0).getSegmentStartMillis()));
imageStruct.set("startseconds", i, Mat5.newScalar((aSegment.get(0).getSegmentStartMillis()-dataStartMillis)/1000.));
imageStruct.set("prediction", i, DLMatFile.array2Matrix(PamArrayUtils.float2Double(output)));
Matrix modelinput = DLMatFile.array2Matrix(PamArrayUtils.float2Double(model.getLastModelInput()[0]));
imageStruct.set("modelinput", i, modelinput);
imageStruct.set("startmillis", i, Mat5.newScalar(aSegment.get(0).getSegmentStartMillis()));
imageStruct.set("startseconds", i, Mat5.newScalar((aSegment.get(0).getSegmentStartMillis()-dataStartMillis)/1000.));
imageStruct.set("prediction", i, DLMatFile.array2Matrix(PamArrayUtils.float2Double(output)));
outputs[i] = output;
}
}
@ -172,7 +175,7 @@ public class DelphinIDWhistleTest {
// System.out.println("Whislte: " + i);
// PamArrayUtils.printArray(whistleContours.get(i).getFreqsHz());
// }
return true;
return outputs;
}
@ -205,9 +208,9 @@ public class DelphinIDWhistleTest {
String modelPath = "/Users/au671271/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Dde415/whistle_4s_415_model.zip";
// String modelPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/whistle_4s_415_model.zip";
boolean whistleOK = runWhistleModel( modelPath, whistleContourPath, matImageSave, startSeconds, segLen, segHop);
float[][] outputs = runWhistleModel( modelPath, whistleContourPath, matImageSave, startSeconds, segLen, segHop);
return whistleOK;
return outputs!=null;
}
@ -387,16 +390,16 @@ public class DelphinIDWhistleTest {
long dataStartMillis = 1340212413000L;
//path to the .mat containing whistle contours.
String whistleContourPath = "/Users/au671271/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/whistle_contours_20200918_123234.mat";
String whistleContourPath = "/Users/jdjm/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/whistle_contours_20200918_123234.mat";
//the path to the model
//String modelPath = "D:/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/testencounter415/whistle_model_2/whistle_4s_415.zip";
String modelPath = "/Users/au671271/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/whistleclassifier.zip";
//String modelPath = "D:/Dropbox/jdjm/Deep_Learning/delphinID/testencounter415/whistle_model_2/whistle_4s_415.zip";
String modelPath = "/Users/jdjm/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/whistleclassifier.zip";
// String modelPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/whistle_4s_415_model.zip";
boolean whistleOK = runWhistleModel( modelPath, whistleContourPath, matImageSave, startSeconds, segLen, segHop);
float[][] outputs = runWhistleModel( modelPath, whistleContourPath, matImageSave, startSeconds, segLen, segHop);
return whistleOK;
return outputs!=null;
}

View File

@ -22,6 +22,7 @@ import PamUtils.PamArrayUtils;
import PamguardMVC.PamDataUnit;
import ai.djl.Model;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
import rawDeepLearningClassifier.dlClassification.archiveModel.ArchiveModelWorker;
import rawDeepLearningClassifier.dlClassification.delphinID.Whistles2Image.Whistle2ImageParams;
@ -60,14 +61,17 @@ public class DelphinIDWorker extends ArchiveModelWorker {
@Override
public void prepModel(StandardModelParams dlParams, DLControl dlControl) {
public DLStatus prepModel(StandardModelParams dlParams, DLControl dlControl) {
//most of the model prep is done in the perent class.
super.prepModel(dlParams, dlControl);
DLStatus status = super.prepModel(dlParams, dlControl);
//now have to read the whsitle2image transform to get correct parameters for that.
String jsonString = DLTransformsParser.readJSONString(new File(this.getModel().getAudioReprFile()));
boolean transformOK = groupDataTransform.setJSONData(new JSONObject(jsonString));
JSONObject jsonObject = new JSONObject(jsonString);
boolean transformOK = groupDataTransform.setJSONData(jsonObject);
((DelphinIDParams) dlParams).dataType = groupDataTransform.getDataType();
if (!transformOK) {
System.err.println("Error: could not find whsitle or click group transform in DelphinID JSON file. Model will not work.");
@ -78,6 +82,8 @@ public class DelphinIDWorker extends ArchiveModelWorker {
for (int i=0; i<dlParams.numClasses; i++) {
dlParams.binaryClassification[i]=true;
}
return status;
}

View File

@ -98,4 +98,10 @@ public class DummyClassifier implements DLClassiferModel{
return null;
}
@Override
public ArrayList<Class> getAllowedDataTypes() {
// TODO Auto-generated method stub
return null;
}
}

View File

@ -13,6 +13,7 @@ import org.jamdev.jpamutils.wavFiles.AudioData;
import PamguardMVC.PamDataUnit;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
import rawDeepLearningClassifier.segmenter.GroupedRawData;
@ -136,6 +137,7 @@ public abstract class DLModelWorker<T> {
float[] prob;
float[] classOut;
for (int i=0; i<transformedDataStack.length; i++) {
/**
* This is super weird. Reading the documentation for copyOfRange the index from and index to are inclusive. So
* to copy the first two elements indexfrom =0 and indexto = 1. But actually it seems that this should be indexfrom =0 and indexto =2.
@ -143,7 +145,7 @@ public abstract class DLModelWorker<T> {
*/
classOut = Arrays.copyOfRange(output, i*numclasses, (i+1)*numclasses);
// System.out.println("The copyOfRange is: " + i*numclasses + " to " + ((i+1)*numclasses-1) + " class out len: " + classOut.length);
// System.out.println("The copyOfRange is: " + i*numclasses + " to " + ((i+1)*numclasses-1) + " class out len: " + classOut.length);
if (enableSoftMax) {
prob = new float[classOut.length];
@ -190,7 +192,7 @@ public abstract class DLModelWorker<T> {
public abstract T makeModelResult(float[] prob, double time);
public abstract void prepModel(StandardModelParams soundSpotParams, DLControl dlControl);
public abstract DLStatus prepModel(StandardModelParams soundSpotParams, DLControl dlControl);
/**

View File

@ -2,6 +2,7 @@ package rawDeepLearningClassifier.dlClassification.genericModel;
import java.io.File;
import pamViewFX.fxNodes.PamButton;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelPane;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
@ -84,7 +85,7 @@ public class GenericModelPane extends StandardModelPane {
}
@Override
public void newModelSelected(File file) {
public DLStatus newModelSelected(File file) {
this.setCurrentSelectedFile(file);
//this.setParamsClone(new GenericModelParams());
@ -93,11 +94,14 @@ public class GenericModelPane extends StandardModelPane {
// genericDLClassifier.getGenericDLWorker().prepModel(getParams(getParamsClone()), genericDLClassifier.getDLControl());
//do not have getParam here as it resets some of the setting before set params has been called.
genericDLClassifier.getGenericDLWorker().prepModel(getParamsClone(), genericDLClassifier.getDLControl());
DLStatus status = genericDLClassifier.getGenericDLWorker().prepModel(getParamsClone(), genericDLClassifier.getDLControl());
//now new parameters have been set in the prepModel functions so need to set new params now.
getAdvSettingsPane().setParams(getParamsClone());
return status;
}

View File

@ -11,7 +11,9 @@ import org.jamdev.jpamutils.JamArr;
import PamModel.PamModel;
import PamModel.PamModel.PluginClassloader;
import PamUtils.PamArrayUtils;
import ai.djl.engine.EngineException;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
/**
@ -47,7 +49,7 @@ public class GenericModelWorker extends DLModelWorker<StandardPrediction> {
waveStack[i] = transformedDataStack[i][0];
}
// System.out.println("RUN GENERIC MODEL WAVE: " + waveStack.length + " " + waveStack[0].length + " " + waveStack[0][0]);
// System.out.println("RUN GENERIC MODEL WAVE: " + waveStack.length + " " + waveStack[0].length + " " + waveStack[0][0] + " " + PamArrayUtils.max( waveStack[0]));
// PamArrayUtils.printArray(waveStack[0]);
results = getModel().runModel(waveStack);
}
@ -64,10 +66,10 @@ public class GenericModelWorker extends DLModelWorker<StandardPrediction> {
}
@Override
public void prepModel(StandardModelParams genericParams, DLControl dlControl) {
public DLStatus prepModel(StandardModelParams genericParams, DLControl dlControl) {
//ClassLoader origCL = Thread.currentThread().getContextClassLoader();
try {
if (genericParams.modelPath==null) return;
if (genericParams.modelPath==null) return DLStatus.NO_MODEL_LOADED;
// get the plugin class loader and set it as the context class loader
// NOTE THAT THIS IS REQUIRED TO MAKE THIS MODULE RUN AS A PLUGIN WHEN THE CLASS FILES
@ -108,6 +110,9 @@ public class GenericModelWorker extends DLModelWorker<StandardPrediction> {
//use softmax or not?
String extension = FilenameUtils.getExtension(genericParams.modelPath);
//TODO - need to add output transforms to models
if (extension.equals("pb")) {
//TensorFlow models don't need softmax?? Need to look into this more.
this.setEnableSoftMax(false);
@ -122,13 +127,22 @@ public class GenericModelWorker extends DLModelWorker<StandardPrediction> {
((GenericModelParams) genericParams).defualtOuput = longArr2Long(genericModel.getOutShape().getShape());
}
catch (EngineException e) {
return DLStatus.MODEL_ENGINE_FAIL;
}
catch (Exception e) {
genericModel=null;
e.printStackTrace();
return DLStatus.MODEL_LOAD_FAIL;
//WarnOnce.showWarning(null, "Model Load Error", "There was an error loading the model file.", WarnOnce.OK_OPTION);
}
return DLStatus.MODEL_LOAD_SUCCESS;
//Thread.currentThread().setContextClassLoader(origCL);
}

View File

@ -4,6 +4,7 @@ import java.io.File;
import java.util.ArrayList;
import javafx.stage.FileChooser.ExtensionFilter;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelPane;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
@ -29,7 +30,7 @@ public class KetosModelPane extends StandardModelPane {
@Override
public void newModelSelected(File file) {
public DLStatus newModelSelected(File file) {
//A ketos model contains information on the transforms, duration and the class names.
this.setCurrentSelectedFile(file);
@ -55,7 +56,7 @@ public class KetosModelPane extends StandardModelPane {
* Note that the model prep will determine whether new transforms need to be loaded from the
* model or to use the existing transforms in the settings.
*/
ketosClassifier.getKetosWorker().prepModel(params, ketosClassifier.getDLControl());
DLStatus status = ketosClassifier.getKetosWorker().prepModel(params, ketosClassifier.getDLControl());
//get the model transforms calculated from the model by SoundSpoyWorker and apply them to our temporary params clone.
// System.out.println("Ketos transforms 1: " + this.ketosClassifier.getKetosWorker().getModelTransforms());
getParamsClone().dlTransfroms = this.ketosClassifier.getKetosWorker().getModelTransforms();
@ -70,6 +71,8 @@ public class KetosModelPane extends StandardModelPane {
///set the advanced pane parameters.
getAdvSettingsPane().setParams(getParamsClone());
return status;
}
}

View File

@ -12,7 +12,9 @@ import org.jamdev.jdl4pam.transforms.DLTransformsFactory;
import org.jamdev.jdl4pam.transforms.jsonfile.DLTransformsParser;
import PamView.dialog.warn.WarnOnce;
import ai.djl.engine.EngineException;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
import rawDeepLearningClassifier.dlClassification.genericModel.DLModelWorker;
import rawDeepLearningClassifier.dlClassification.genericModel.StandardPrediction;
@ -48,8 +50,9 @@ public class KetosWorker extends DLModelWorker<StandardPrediction> {
/**
* Prepare the model
* @return
*/
public void prepModel(StandardModelParams ketosDLParams, DLControl dlControl) {
public DLStatus prepModel(StandardModelParams ketosDLParams, DLControl dlControl) {
//ClassLoader origCL = Thread.currentThread().getContextClassLoader();
try {
@ -79,8 +82,13 @@ public class KetosWorker extends DLModelWorker<StandardPrediction> {
//System.out.println(genericModel.getModel().getModelPath().getFileName());
}
}
catch (EngineException e) {
e.printStackTrace();
return DLStatus.MODEL_ENGINE_FAIL;
}
catch (Exception e) {
e.printStackTrace();
return DLStatus.MODEL_LOAD_FAIL;
//WarnOnce.showWarning(null, "Model Load Error", "There was an error loading the model file.", WarnOnce.OK_OPTION);
}
@ -176,9 +184,11 @@ public class KetosWorker extends DLModelWorker<StandardPrediction> {
catch (Exception e) {
ketosModel=null;
e.printStackTrace();
return DLStatus.MODEL_META_FAIL;
//WarnOnce.showWarning(null, "Model Metadata Error", "There was an error extracting the metadata from the model.", WarnOnce.OK_OPTION);
}
//Thread.currentThread().setContextClassLoader(origCL);
return DLStatus.MODEL_LOAD_SUCCESS;
}

View File

@ -364,6 +364,12 @@ public class OrcaSpotClassifier implements DLClassiferModel, PamSettings {
return null;
}
@Override
public ArrayList<Class> getAllowedDataTypes() {
// TODO Auto-generated method stub
return null;
}
}

View File

@ -374,12 +374,18 @@ public class DLModelSelectPane extends PamBorderPane {
if (currentClassifierModel!=null) {
try {
//we are loading model from a file - anything can happen so put in a try catch.
DLStatus status = currentClassifierModel.setModel(file);
File fileChck = new File(file);
if (!fileChck.exists()) {
return DLStatus.MODEL_LOAD_FAIL;
}
//we are loading model from a file - anything can happen so put in a try catch.
DLStatus status = currentClassifierModel.setModel(file);
if (status.isError()) {
System.err.println("Model load failed: " + currentClassifierModel.getModelStatus());
System.err.println("Model load failed: " + status);
currentClassifierModel=null;
return status;
}
@ -389,17 +395,17 @@ public class DLModelSelectPane extends PamBorderPane {
catch (Exception e) {
e.printStackTrace();
currentClassifierModel=null;
return DLStatus.MODEL_LOAD_FAILED;
return DLStatus.MODEL_LOAD_FAIL;
}
}
else {
currentClassifierModel=null;
return DLStatus.MODEL_LOAD_FAILED;
return DLStatus.MODEL_LOAD_FAIL;
}
}
private void showWarningDialog(DLStatus status) {
this.rawDLSettingsPane.showWarning(status);
this.rawDLSettingsPane.showWarningDialog(status);
// PamDialogFX.showError(status.getName(), status.getDescription());
}
@ -568,16 +574,17 @@ public class DLModelSelectPane extends PamBorderPane {
return result;
} catch (Exception e) {
System.out.println("UNABLE TO LOAD MODEL");
System.out.println("-----UNABLE TO LOAD MODEL-----");
currentClassifierModel=null; //this will reset the pane
e.printStackTrace();
return DLStatus.MODEL_LOAD_FAILED;
return DLStatus.MODEL_LOAD_FAIL;
}
}
private void finishedLoading() {
if (this.getValue().isError()) {
//show a warnign dialog
showWarningDialog(this.getValue());
}

View File

@ -3,8 +3,6 @@ package rawDeepLearningClassifier.layoutFX;
import java.util.ArrayList;
import org.controlsfx.control.PopOver;
import org.controlsfx.control.ToggleSwitch;
import PamController.PamGUIManager;
import PamController.SettingsPane;
import PamDetection.RawDataUnit;
@ -37,11 +35,12 @@ import pamViewFX.fxNodes.PamVBox;
import pamViewFX.fxNodes.pamDialogFX.PamDialogFX;
import pamViewFX.fxNodes.utilityPanes.GroupedSourcePaneFX;
import pamViewFX.fxNodes.utilityPanes.PamToggleSwitch;
import pamViewFX.validator.PamValidator;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.DLStatus;
import rawDeepLearningClassifier.RawDLParams;
import rawDeepLearningClassifier.dlClassification.DLClassiferModel;
import warnings.PamWarning;
import whistlesAndMoans.ConnectedRegionDataUnit;
/**
* The settings pane.
@ -123,6 +122,10 @@ public class DLSettingsPane extends SettingsPane<RawDLParams>{
private PamGridPane segmenterGridPane;
private ArrayList<Class> currentAllowedDataTypes;
private DLWarningDialog dlWarningDialog ;
public DLSettingsPane(DLControl dlControl){
super(null);
@ -147,7 +150,7 @@ public class DLSettingsPane extends SettingsPane<RawDLParams>{
mainPane.setPrefWidth(MAX_WIDTH);
}
//this.getAdvPane().setMaxWidth(MAX_WIDTH);
dlWarningDialog = new DLWarningDialog(this);
//mainPane.getStylesheets().add(PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getDialogCSS());
@ -163,11 +166,13 @@ public class DLSettingsPane extends SettingsPane<RawDLParams>{
PamVBox vBox=new PamVBox();
vBox.setSpacing(5);
sourcePane = new GroupedSourcePaneFX("Raw Sound Data", RawDataUnit.class, true, false, true);
sourcePane.addSourceType(ClickDetection.class, false);
sourcePane.addSourceType(ClipDataUnit.class, false);
sourcePane.addSourceType(ConnectedRegionDataUnit.class, false);
sourcePane = new GroupedSourcePaneFX("Raw Sound Data", null, true, false, true);
setDefaultSourceList();
// sourcePane.addSourceType(ClickDetection.class, false);
// sourcePane.addSourceType(ClipDataUnit.class, false);
// sourcePane.addSourceType(ConnectedRegionDataUnit.class, false);
vBox.getChildren().add(sourcePane);
sourcePane.prefWidthProperty().bind(vBox.widthProperty());
@ -396,27 +401,94 @@ public class DLSettingsPane extends SettingsPane<RawDLParams>{
* Set the classifier pane.
*/
protected void setClassifierPane() {
//set the classifier Pane.class
//System.out.println("SET CLASSIFIER PANE");
if (modelSelectPane.currentClassifierModel!=null && modelSelectPane.currentClassifierModel.getModelUI()!=null) {
classifierPane.setCenter(modelSelectPane.currentClassifierModel.getModelUI().getSettingsPane().getContentNode());
if (modelSelectPane.currentClassifierModel!=null) {
modelSelectPane.currentClassifierModel.getModelUI().setParams();
setSourceList(modelSelectPane.currentClassifierModel);
}
else {
classifierPane.setCenter(null);
setDefaultSourceList();
}
}
else {
classifierPane.setCenter(null);
setDefaultSourceList();
}
}
/**
* Set the allowed sources for this type of model.
* @param currentClassifierModel - the allowed sources.
*/
private void setSourceList(DLClassiferModel currentClassifierModel) {
//we don't want to set the source list again and gain if the model has changed.
if (currentClassifierModel==null) {
setDefaultSourceList();
currentAllowedDataTypes=null;
return;
}
//System.out.println("SET SOURCE LIST: " + currentClassifierModel.getAllowedDataTypes());
if (isNewDataType(currentAllowedDataTypes, currentClassifierModel.getAllowedDataTypes())) {
//set the source list for a given classifier model.
if (currentClassifierModel.getAllowedDataTypes()==null) {
//default is for models to require raw sound data
setDefaultSourceList() ;
}
else {
sourcePane.setTitleText("Detection data");
sourcePane.clearSourceTypeList();
sourcePane.setSourceIndex(-1);
for (@SuppressWarnings("rawtypes") Class type: currentClassifierModel.getAllowedDataTypes()) {
sourcePane.addSourceType(type, false);
}
}
currentAllowedDataTypes = currentClassifierModel.getAllowedDataTypes();
}
//System.out.println("SET SOURCE LIST: " + sourcePane.getSourceCount());
//something has gone wrong but at least have sound acquisition for sample rate.
if (sourcePane.getSourceCount()<=0) {
setDefaultSourceList();
}
}
private boolean isNewDataType(ArrayList<Class> currentAllowedDataTypes1, ArrayList<Class> currentAllowedDataTypes2) {
if (currentAllowedDataTypes1==null && currentAllowedDataTypes2!=null) return true;
if (currentAllowedDataTypes2==null && currentAllowedDataTypes1!=null) return true;
if (currentAllowedDataTypes2==null && currentAllowedDataTypes1==null) return false;
if (!currentAllowedDataTypes2.equals(currentAllowedDataTypes2)) return true;
return false;
}
/**
* Set the default data sources which are anything that contains raw acoustic data.
*/
private void setDefaultSourceList() {
sourcePane.setTitleText("Raw Sound Data");
sourcePane.clearSourceTypeList();
sourcePane.addSourceType(RawDataUnit.class, false);
sourcePane.addSourceType(ClickDetection.class, false);
sourcePane.addSourceType(ClipDataUnit.class, false);
}
@Override
public RawDLParams getParams(RawDLParams currParams) {
@ -426,7 +498,15 @@ public class DLSettingsPane extends SettingsPane<RawDLParams>{
PamDataBlock rawDataBlock = sourcePane.getSource();
if (rawDataBlock == null){
Platform.runLater(()->{
PamDialogFX.showWarning("There is no datablock set. The segmenter must have a datablock set.");
dlWarningDialog.showWarning("There is no datablock set. The segmenter must have a datablock set.");
});
return null;
}
if (sourcePane.getChannelValidator().containsErrors()) {
Platform.runLater(()->{
String content = PamValidator.list2String(sourcePane.getChannelValidator().getValidationResult().getMessages());
dlWarningDialog.showWarning(content);
});
return null;
}
@ -437,7 +517,7 @@ public class DLSettingsPane extends SettingsPane<RawDLParams>{
if (windowLength.getValue() == 0 || hopLength.getValue()==0){
Platform.runLater(()->{
PamDialogFX.showWarning("Neither the hop nor window length can be zero");
dlWarningDialog.showWarning("Neither the hop nor window length can be zero");
});
return null;
}
@ -498,55 +578,6 @@ public class DLSettingsPane extends SettingsPane<RawDLParams>{
return pamWarning;
}
/**
* Show a warning dialog for the status
* @param the status to show
*/
public void showWarning(DLStatus dlWarning) {
ArrayList<PamWarning> dlWarnings = new ArrayList<PamWarning>();
dlWarnings.add(statusToWarnings(dlWarning));
showWarning(dlWarnings);
}
/**
* Show a warning dialog.
* @param the warning to show.
*/
public void showWarning(PamWarning dlWarning) {
ArrayList<PamWarning> dlWarnings = new ArrayList<PamWarning>();
dlWarnings.add(dlWarning);
showWarning(dlWarnings);
}
/**
* Show a warning dialog.
* @param dlWarnings - list of warnings - the most important will be shown.
*/
public void showWarning(ArrayList<PamWarning> dlWarnings) {
if (dlWarnings==null || dlWarnings.size()<1) return;
String warnings ="";
boolean error = false;
for (int i=0; i<dlWarnings.size(); i++) {
warnings += dlWarnings.get(i).getWarningMessage() + "\n\n";
if (dlWarnings.get(i).getWarnignLevel()>1) {
error=true;
}
}
final String warningsF = warnings;
final boolean errorF = error;
Platform.runLater(()->{
WarnOnce.showWarningFX(null, "Deep Learning Settings Warning", warningsF , errorF ? AlertType.ERROR : AlertType.WARNING);
// WarnOnce.showWarning( "Deep Learning Settings Warning", warningsF , WarnOnce.WARNING_MESSAGE);
});
//user presses OK - these warnings are just a message - they do not prevent running the module.
}
@Override
public void setParams(RawDLParams currParams) {
@ -577,12 +608,13 @@ public class DLSettingsPane extends SettingsPane<RawDLParams>{
segEnableSwitch.setSelected(currParams.enableSegmentation);
enableControls();
// //set up the model and the custom pane if necessary.
this.modelSelectPane.loadNewModel(currParams.modelURI);
//this.modelSelectPane.updatePathLabel();
this.setClassifierPane();
enableControls();
//For some reason, in the FX GUI, this causes a root used in multiple scenes exceptions...not sure why.
Platform.runLater(()->{
@ -658,5 +690,11 @@ public class DLSettingsPane extends SettingsPane<RawDLParams>{
}
public void showWarningDialog(DLStatus status) {
dlWarningDialog.showWarningDialog(status);
}
}

View File

@ -0,0 +1,107 @@
package rawDeepLearningClassifier.layoutFX;
import java.util.ArrayList;
import PamView.dialog.warn.WarnOnce;
import PamView.dialog.warn.WarnOnceDialogFX;
import javafx.application.Platform;
import javafx.scene.control.Alert.AlertType;
import rawDeepLearningClassifier.DLStatus;
import warnings.PamWarning;
public class DLWarningDialog {
private boolean warningShow;
public DLWarningDialog(DLSettingsPane rawDLSettingsPane) {
}
/**
* Show a warning dialog for the status
* @param the status to show
*/
public void showWarningDialog(DLStatus dlWarning) {
switch(dlWarning) {
case MODEL_ENGINE_FAIL ->{
//special warning dialog
// show the warning
WarnOnceDialogFX wo = new WarnOnceDialogFX(null, dlWarning.getName(), dlWarning.getDescription(), AlertType.ERROR, null, null, "Ok", "Cancel", true);
wo.showDialog();
}
default -> {
//default for most warnings.
ArrayList<PamWarning> dlWarnings = new ArrayList<PamWarning>();
dlWarnings.add(DLSettingsPane.statusToWarnings(dlWarning));
showWarning(dlWarnings);
}
}
}
/**
* Show a warning dialog.
* @param the warning to show.
*/
public void showWarning(String dlWarning) {
this.warningShow = true;
Platform.runLater(()->{
WarnOnce.showWarningFX(null, "Deep Learning Settings Warning", dlWarning , AlertType.WARNING, true);
warningShow = false;
// WarnOnce.showWarning( "Deep Learning Settings Warning", warningsF , WarnOnce.WARNING_MESSAGE);
});
}
/**
* Show a warning dialog.
* @param the warning to show.
*/
public void showWarning(PamWarning dlWarning) {
ArrayList<PamWarning> dlWarnings = new ArrayList<PamWarning>();
dlWarnings.add(dlWarning);
showWarning(dlWarnings);
}
/**
* Show a warning dialog.
* @param dlWarnings - list of warnings - the most important will be shown.
*/
private void showWarning(ArrayList<PamWarning> dlWarnings) {
System.out.println("Show warning: " + dlWarnings);
if (warningShow) return; //not the best but don't show multiple dialogs on top of each other.
if (dlWarnings==null || dlWarnings.size()<1) return;
String warnings ="";
boolean error = false;
for (int i=0; i<dlWarnings.size(); i++) {
warnings += dlWarnings.get(i).getWarningMessage() + "\n\n";
if (dlWarnings.get(i).getWarnignLevel()>1) {
error=true;
}
}
this.warningShow = true;
final String warningsF = warnings;
final boolean errorF = error;
Platform.runLater(()->{
WarnOnce.showWarningFX(null, "Deep Learning Settings Warning", warningsF , errorF ? AlertType.ERROR : AlertType.WARNING, true);
warningShow = false;
// WarnOnce.showWarning( "Deep Learning Settings Warning", warningsF , WarnOnce.WARNING_MESSAGE);
});
//user presses OK - these warnings are just a message - they do not prevent running the module.
}
}

View File

@ -69,7 +69,7 @@ public class DLAnnotationSQL implements SQLLoggingAddon {
public boolean loadData(SQLTypes sqlTypes, EmptyTableDefinition pamTableDefinition, PamDataUnit pamDataUnit) {
String predictionsString = (String) predictionsItem.getValue();
Integer predicitonType = (Integer) predictionsItem.getValue();
Integer predicitonType = (Integer) typeTableItem.getValue();
if (predictionsString!=null) {
@ -95,7 +95,7 @@ public class DLAnnotationSQL implements SQLLoggingAddon {
* @param predicitonType - the prediction object type e.g.ModelResultBinaryFactory.GENERIC
* @return a list of prediction objects.
*/
private ArrayList<PredictionResult> string2Predictions(String predictionsString, int predicitonType) {
public static ArrayList<PredictionResult> string2Predictions(String predictionsString, int predicitonType) {
ArrayList<PredictionResult> modelResults = new ArrayList<PredictionResult>();
JSONObject jsonObject = new JSONObject(predictionsString);
@ -116,13 +116,15 @@ public class DLAnnotationSQL implements SQLLoggingAddon {
predictions= new float[array.getJSONArray(i).length()];
for(int j=0; j< array.getJSONArray(i).length(); j++) {
predictions[j] = array.getJSONArray(i).getFloat(j);
predictions[j] = array.getJSONArray(i).getBigDecimal(j).floatValue();
}
predicitonResult= ModelResultBinaryFactory.makePredictionResult(predicitonType, predictions, classIDs, true);
modelResults.add(predicitonResult);
}
return modelResults;
}
@ -132,7 +134,7 @@ public class DLAnnotationSQL implements SQLLoggingAddon {
* @param predictions - the spectrum.
* @return string representation for the predictions in JSON format
*/
private String prediction2String(ArrayList<PredictionResult> arrayList) {
public static String prediction2String(ArrayList<PredictionResult> arrayList) {
if (arrayList == null) {
return "null";
@ -145,7 +147,13 @@ public class DLAnnotationSQL implements SQLLoggingAddon {
for (PredictionResult result : arrayList) {
JSONArray rowArray = new JSONArray();
for (float element : result.getPrediction()) {
rowArray.put(element);
//JSON does not allow non finite numbers
if (Float.isFinite(element)) {
rowArray.put(element);
}
else {
rowArray.put(-1.0);
}
}
matrixArray.put(rowArray);
}

View File

@ -1,13 +1,21 @@
package rawDeepLearningClassifier.logging;
import java.sql.Types;
import PamguardMVC.PamDataUnit;
import PamguardMVC.superdet.SuperDetDataBlock;
import PamguardMVC.superdet.SuperDetection;
import cpod.CPODClassification;
import cpod.CPODClickTrainDataUnit;
import cpod.CPODUtils;
import cpod.CPODClassification.CPODSpeciesType;
import generalDatabase.PamTableDefinition;
import generalDatabase.PamTableItem;
import generalDatabase.SQLTypes;
import generalDatabase.SuperDetLogging;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.dlClassification.DLGroupDetection;
/**
@ -16,6 +24,10 @@ import rawDeepLearningClassifier.DLControl;
public class DLGroupDetectionLogging extends SuperDetLogging {
private DLControl dlControl;
private PamTableItem duration, startsample, nSubDet;
public DLGroupDetectionLogging(DLControl dlControl, SuperDetDataBlock pamDataBlock) {
super(pamDataBlock);
@ -26,6 +38,10 @@ public class DLGroupDetectionLogging extends SuperDetLogging {
@Override
public void setTableData(SQLTypes sqlTypes, PamDataUnit pamDataUnit) {
// System.out.println("Save deep learning group: " + ((SuperDetection) pamDataUnit).getSubDetectionsCount());
duration.setValue(pamDataUnit.getDurationInMilliseconds());
startsample.setValue(pamDataUnit.getStartSample());
nSubDet.setValue(((SuperDetection) pamDataUnit).getSubDetectionsCount());
}
public DLControl getDLControl() {
@ -38,8 +54,30 @@ public class DLGroupDetectionLogging extends SuperDetLogging {
* @return basic table - annotations will be added shortly !
*/
public PamTableDefinition createBaseTable() {
PamTableDefinition tableDef = new PamTableDefinition(dlControl.getUnitName(), UPDATE_POLICY_OVERWRITE);
PamTableDefinition tableDef = new PamTableDefinition(dlControl.getUnitName()+"_Group_Detections", UPDATE_POLICY_OVERWRITE);
tableDef.addTableItem(duration = new PamTableItem("Duration_millis", Types.DOUBLE));
tableDef.addTableItem(startsample = new PamTableItem("Start_sample", Types.LONGNVARCHAR));
tableDef.addTableItem(nSubDet = new PamTableItem("n_subdetections", Types.LONGNVARCHAR));
return tableDef;
}
@Override
protected DLGroupDetection createDataUnit(SQLTypes sqlTypes, long timeMilliseconds, int databaseIndex) {
int chan = this.getTableDefinition().getChannelBitmap().getIntegerValue();
double durationD = duration.getDoubleValue();
long startsampleL = startsample.getLongValue();
DLGroupDetection dlGroupDet = new DLGroupDetection(timeMilliseconds, chan, startsampleL, durationD);
return dlGroupDet;
}
}

View File

@ -19,7 +19,7 @@ public class DLGroupSubLogging extends SQLLogging {
public DLGroupSubLogging(DLGroupDetectionLogging dlGroupDetLogging, PamDataBlock pamDataBlock) {
super(pamDataBlock);
this.dlGroupLogging = dlGroupDetLogging;
setTableDefinition(new PamSubtableDefinition(dlGroupDetLogging.getDLControl().getUnitName()+"_Children"));
setTableDefinition(new PamSubtableDefinition(dlGroupDetLogging.getDLControl().getUnitName()+"Group_Detections_Children"));
}
@Override

View File

@ -1,62 +0,0 @@
package rawDeepLearningClassifier.logging;
import java.sql.Types;
import PamguardMVC.PamDataBlock;
import PamguardMVC.PamDataUnit;
import generalDatabase.PamTableDefinition;
import generalDatabase.PamTableItem;
import generalDatabase.SQLLogging;
import generalDatabase.SQLTypes;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.dlClassification.DLDataUnit;
/**
* Saves the classified DL data units to a database.
*
*
* @author Jamie Macaulay
*
*/
public class DLLogging extends SQLLogging {
/**
* The PAM items for saving.
*/
private PamTableItem analysisTime, predicition;
/**
* Reference to the DLControl.
*/
private DLControl dlControl;
public DLLogging(DLControl dlControl, PamDataBlock pamDataBlock) {
super(pamDataBlock);
this.dlControl=dlControl;
}
@Override
public void setTableData(SQLTypes sqlTypes, PamDataUnit pamDataUnit) {
DLDataUnit dgdu = (DLDataUnit) pamDataUnit;
analysisTime.setValue(dgdu.getPredicitionResult().getAnalysisTime());
predicition.setValue(dgdu.getPredicitionResult().getPrediction());
}
/**
* Create the basic table definition for the group detection.
* @return basic table - annotations will be added shortly !
*/
public PamTableDefinition createBaseTable() {
PamTableDefinition tableDef = new PamTableDefinition(dlControl.getUnitName(), UPDATE_POLICY_OVERWRITE);
tableDef.addTableItem(analysisTime = new PamTableItem("Analysis_Time", Types.DOUBLE));
tableDef.addTableItem(predicition = new PamTableItem("Predicition", Types.DOUBLE));
return tableDef;
}
//TODO viewer mode.
}

View File

@ -0,0 +1,102 @@
package rawDeepLearningClassifier.logging;
import java.sql.Types;
import java.util.ArrayList;
import PamguardMVC.PamDataBlock;
import PamguardMVC.PamDataUnit;
import generalDatabase.PamTableDefinition;
import generalDatabase.PamTableItem;
import generalDatabase.SQLLogging;
import generalDatabase.SQLTypes;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.dlClassification.DLDataUnit;
import rawDeepLearningClassifier.dlClassification.DLGroupDetection;
import rawDeepLearningClassifier.dlClassification.PredictionResult;
/**
* Saves the classified DL data units to a database.
* TODO
*
* @author Jamie Macaulay
*
*/
public class DLResultLogging extends SQLLogging {
/**
* The PAM items for saving.
*/
private PamTableItem analysisTime, predicition, startSample, typeTableItem;
/**
* Reference to the DLControl.
*/
private DLControl dlControl;
public DLResultLogging(DLControl dlControl, PamDataBlock pamDataBlock) {
super(pamDataBlock);
this.dlControl=dlControl;
setTableDefinition(createBaseTable());
}
@Override
public void setTableData(SQLTypes sqlTypes, PamDataUnit pamDataUnit) {
DLDataUnit dgdu = (DLDataUnit) pamDataUnit;
startSample.setValue(pamDataUnit.getStartSample());
analysisTime.setValue(dgdu.getPredicitionResult().getAnalysisTime());
typeTableItem.setValue(ModelResultBinaryFactory.getType(dgdu.getPredicitionResult()));
ArrayList<PredictionResult> predictionResult = new ArrayList<PredictionResult>();
predictionResult.add(dgdu.getPredicitionResult());
predicition.setValue(
DLAnnotationSQL.prediction2String(predictionResult));
}
/**
* Create the basic table definition for the group detection.
* @return basic table - annotations will be added shortly !
*/
public PamTableDefinition createBaseTable() {
PamTableDefinition tableDef = new PamTableDefinition(dlControl.getUnitName()+"_Predictions", UPDATE_POLICY_OVERWRITE);
tableDef.addTableItem(analysisTime = new PamTableItem("Processing_time", Types.DOUBLE));
tableDef.addTableItem(startSample = new PamTableItem("Start_sample", Types.LONGNVARCHAR));
tableDef.addTableItem(predicition = new PamTableItem("Predicition", Types.CHAR, 8128));
tableDef.addTableItem(typeTableItem = new PamTableItem("Prediction_Type", Types.INTEGER, "The type flag for the predictions"));
return tableDef;
}
@Override
protected DLDataUnit createDataUnit(SQLTypes sqlTypes, long timeMilliseconds, int databaseIndex) {
int chan = this.getTableDefinition().getChannelBitmap().getIntegerValue();
long startsampleL = startSample.getLongValue();
String predictionsString = (String) predicition.getValue();
Integer predicitonType = (Integer) typeTableItem.getValue();
if (predictionsString!=null) {
ArrayList<PredictionResult> modelResults = DLAnnotationSQL.string2Predictions( predictionsString, predicitonType);
DLDataUnit dlDataUnit = new DLDataUnit(timeMilliseconds, chan, startsampleL, dlControl.getDLParams().rawSampleSize, modelResults.get(0));
return dlDataUnit;
}
return null;
}
}

View File

@ -184,7 +184,7 @@ public class ModelResultBinaryFactory {
break;
default:
//ideally should never be used.
result = new StandardPrediction(data, isBinary);
result = new StandardPrediction(data, classID, isBinary);
break;
}
return result;

View File

@ -2,10 +2,13 @@ package rawDeepLearningClassifier.offline;
import PamController.PamController;
import PamguardMVC.PamDataUnit;
import PamguardMVC.PamObservable;
import PamguardMVC.PamObserverAdapter;
import dataMap.OfflineDataMapPoint;
import matchedTemplateClassifer.MTClassifierControl;
import offlineProcessing.OfflineTask;
import rawDeepLearningClassifier.DLControl;
import rawDeepLearningClassifier.segmenter.SegmenterDetectionGroup;
import rawDeepLearningClassifier.segmenter.SegmenterProcess;
public class DLOfflineTask extends OfflineTask<PamDataUnit<?,?>>{
@ -26,9 +29,16 @@ public class DLOfflineTask extends OfflineTask<PamDataUnit<?,?>>{
this.dlControl.getDLClassifyProcess().clearOldData();
super.addAffectedDataBlock(this.dlControl.getDLClassifyProcess().getDLDetectionDatablock());
super.addAffectedDataBlock(this.dlControl.getDLClassifyProcess().getDLGroupDetectionDataBlock()); //important so data are deleted.
//prediction data block may also be affected.
super.addAffectedDataBlock(this.dlControl.getDLClassifyProcess().getDLPredictionDataBlock());
// //group detections are a little difficult because they only appear after
// dlControl.getDLClassifyProcess().getDLGroupDetectionDataBlock().addInstantObserver(new GroupObserver(this));
}
@Override
public String getName() {
@ -37,28 +47,66 @@ public class DLOfflineTask extends OfflineTask<PamDataUnit<?,?>>{
@Override
public boolean processDataUnit(PamDataUnit<?, ?> dataUnit) {
// System.out.println("--------------");
// System.out.println("Offline task start: " + dataUnit.getUpdateCount() + " UID " + dataUnit.getUID());
// System.out.println("--------------");
// System.out.println("Offline task start: " + dataUnit.getUpdateCount() + " UID " + dataUnit.getUID());
boolean saveBinary = false;
try {
//Process a data unit
dlControl.getSegmenter().newData(dataUnit);
if (dlControl.isGroupDetections()) {
//once a segment is created we need to process it but this is handled by the GroupObserver and not here....
//Group segment data is saved to the database.
boolean newGroup = dlControl.getSegmenter().newGroupData(dataUnit);
//force click data save
dlControl.getDLClassifyProcess().forceRunClassifier(dataUnit);
//must be called or can result in memory leak.
dlControl.getSegmenter().getSegmenterDataBlock().clearAll();
// System.out.println("Added data to group: " + dataUnit.getUID());
if (newGroup) {
//must be called or can result in memory leak.
dlControl.getDLClassifyProcess().getDLPredictionDataBlock().clearAll();
//have to manually add this as the group data is a multiplex data block.
dlControl.getDLClassifyProcess().newData(null, dlControl.getSegmenter().getSegmenteGroupDataBlock().getFirstUnit());
//run the classifier - if group detection data is present the classifier will run
dlControl.getDLClassifyProcess().forceRunClassifier( dlControl.getSegmenter().getSegmenteGroupDataBlock().getFirstUnit());
// //clear the data block
dlControl.getSegmenter().getSegmenteGroupDataBlock().clearAll();
}
saveBinary = false; //very important or binary files become messed up and clicks/whistles are deleted.
}
else {
//Classifying one detection - there may be multiple segments in one detection but once a
//detection has been added we force the classifier to run on all the segments generated from
//the raw data.
//Process a data unit
dlControl.getSegmenter().newData(dataUnit);
/**
* So the issue here is that the classification is not on the same thread...
*/
// System.out.println("Offline task complete: " + dataUnit.getUpdateCount() + " data " + dataUnit + " no. annotations: " + dataUnit.getNumDataAnnotations() );
return true;
//force click data save
dlControl.getDLClassifyProcess().forceRunClassifier(dataUnit);
//must be called or can result in memory leak.
dlControl.getSegmenter().getSegmenterDataBlock().clearAll();
//must be called or can result in memory leak.
dlControl.getDLClassifyProcess().getDLPredictionDataBlock().clearAll();
saveBinary = true;
};
// /**
// * So the issue here is that the classification is not on the same thread...
// */
// System.out.println("Offline task complete: " + dataUnit.getUpdateCount() + " data " + dataUnit + " no. annotations: " + dataUnit.getNumDataAnnotations() );
}
catch (Exception e) {
e.printStackTrace();
}
return saveBinary;
}
/**
@ -69,10 +117,11 @@ public class DLOfflineTask extends OfflineTask<PamDataUnit<?,?>>{
count=0;
prepProcess();
//this is important so that the offline taks knows that the
//this is important so that the offline tasks knows that the
//parent datablock (e.g. if clicks or clips) needs to be saved because
// an annotation has been added to it.
super.addAffectedDataBlock(dlControl.getParentDataBlock());
super.getOfflineTaskGroup().setSummaryLists();
// for (int i=0; i<super.getNumAffectedDataBlocks(); i++) {
@ -80,13 +129,16 @@ public class DLOfflineTask extends OfflineTask<PamDataUnit<?,?>>{
// }
this.setParentDataBlock(dlControl.getParentDataBlock());
//dlControl.setNotifyProcesses(true);
this.dlControl.getDLModel().prepModel();
dlControl.update(MTClassifierControl.PROCESSING_START);
// System.out.println("Waveform match: " + mtClassifierControl.getMTParams().classifiers.get(0).waveformMatch.toString());
// System.out.println("Waveform reject: " + mtClassifierControl.getMTParams().classifiers.get(0).waveformReject.toString());
}
/**
* Called at the end of the thread which executes this task.
@ -100,6 +152,7 @@ public class DLOfflineTask extends OfflineTask<PamDataUnit<?,?>>{
@Override
public void newDataLoad(long startTime, long endTime, OfflineDataMapPoint mapPoint) {
prepProcess();
dlControl.update(MTClassifierControl.PROCESSING_START);
// called whenever new data is loaded.
@ -149,6 +202,38 @@ public class DLOfflineTask extends OfflineTask<PamDataUnit<?,?>>{
boolean can = getDataBlock() != null;
return can;
}
// /**
// * An observer which waits until all detections within a segment have been added before passing the
// * segment to a deep learning classifier.
// */
// public class GroupObserver extends PamObserverAdapter{
//
// private DLOfflineTask dlOfflinetask;
//
// public GroupObserver( DLOfflineTask dlOfflinetask) {
// this.dlOfflinetask=dlOfflinetask;
// }
//
//
// @Override
// public void addData(PamObservable observable, PamDataUnit pamDataUnit) {
// SegmenterDetectionGroup segmenterDetectionGroup = (SegmenterDetectionGroup) pamDataUnit;
//
// System.out.println("HELLO NEW GROUP DATA!!" + segmenterDetectionGroup.getSubDetectionsCount());
// }
//
//
// @Override
// public String getObserverName() {
// return "Deep Learning Offline Group Process";
// }
//
//
//
//
// }
}

View File

@ -35,6 +35,8 @@ public class SegmenterProcess extends PamProcess {
*/
private static final double MAX_MILLIS_DRIFT = 2;
private static final long MAX_SEGMENT_GAP_MILLIS = 3600*1000L;
/**
* Reference to the deep learning control.
*/
@ -201,6 +203,8 @@ public class SegmenterProcess extends PamProcess {
setParentDataBlock(rawDataBlock);
this.dlControl.createDataSelector(rawDataBlock);
this.firstClockUpdate = -1;
}
@ -228,21 +232,23 @@ public class SegmenterProcess extends PamProcess {
*/
public void newData(PamDataUnit pamRawData) {
// System.out.println("New data for segmenter: " + pamRawData);
// System.out.println("New data for segmenter: " + pamRawData + " isGroup: " + dlControl.isGroupDetections());
if (!dlControl.getDLParams().useDataSelector || dlControl.getDataSelector().scoreData(pamRawData)>0) {
if (pamRawData instanceof RawDataUnit) {
newRawDataUnit(pamRawData);
if (!dlControl.isGroupDetections()){
if (pamRawData instanceof RawDataUnit) {
newRawDataUnit(pamRawData);
}
else if (pamRawData instanceof ClickDetection) {
newClickData( pamRawData);
}
else if (pamRawData instanceof ClipDataUnit) {
newClipData(pamRawData);
}
}
else if (pamRawData instanceof ClickDetection) {
newClickData( pamRawData);
}
else if (pamRawData instanceof ClipDataUnit) {
newClipData(pamRawData);
}
else if (pamRawData instanceof ConnectedRegionDataUnit) {
newWhistleData(pamRawData);
else {
newGroupData(pamRawData);
}
}
@ -251,12 +257,11 @@ public class SegmenterProcess extends PamProcess {
/**
* A new detection data unit i.e. this is only if we have detection data which is being grouped into segments.
* @param dataUnit - the whistle data unit.
* @param detection - the whistle data unit.
*/
private synchronized void newWhistleData(PamDataUnit dataUnit) {
public synchronized boolean newGroupData(PamDataUnit detection) {
ConnectedRegionDataUnit whistle = (ConnectedRegionDataUnit) dataUnit;
// PamDataUnit detection = dataUnit;
//TODO
//this contains no raw data so we are branching off on a completely different processing path here.
@ -265,8 +270,8 @@ public class SegmenterProcess extends PamProcess {
int[] chanGroups = dlControl.getDLParams().groupedSourceParams.getChannelGroups();
int index = -1;
for (int i=0; i<chanGroups.length; i++) {
if (dlControl.getDLParams().groupedSourceParams.getGroupChannels(chanGroups[i])==dataUnit.getChannelBitmap()) {
for (int i=0; i<chanGroups.length; i++) {
if (PamUtils.hasChannelMap(dlControl.getDLParams().groupedSourceParams.getGroupChannels(chanGroups[i]), detection.getChannelBitmap())) {
index=i;
break;
}
@ -275,45 +280,80 @@ public class SegmenterProcess extends PamProcess {
// //FIXME - TWEMP
// index =0;
// System.out.println("Whistle data: " + ((dataUnit.getTimeMilliseconds()-firstClockUpdate)/1000.) + "s " + chanGroups.length + " " + index + " " + dataUnit.getChannelBitmap());
// PamArrayUtils.printArray(chanGroups);
// System.out.println("Group data: " + ((detection.getTimeMilliseconds()-firstClockUpdate)/1000.) + "s " + chanGroups.length + " " + index + " " + detection.getChannelBitmap());
//PamArrayUtils.printArray(chanGroups);
if (index<0) {
return;
return false;
}
boolean segSaved = false;
if (segmenterDetectionGroup[index] == null || !detectionInSegment(dataUnit, segmenterDetectionGroup[index])) {
if (segmenterDetectionGroup[index] == null || !detectionInSegment(detection, segmenterDetectionGroup[index])) {
//System.out.println("Whiste not in segment");
//iterate until we find the correct time for this detection. This keeps the segments consist no matter
//the data units. What we do not want is the first data unit defining the start of the first segment.
if (segmentStart <0) {
segmentStart= firstClockUpdate;
if (segmentStart < 0) {
//FIXME - seems like the master clock update is slightly after the start of a file - this needs sorted but for now
//this is a fix that will work - just means segments miss being completely lined up with the start of files but
//will always include all data units.
segmentStart= detection.getTimeMilliseconds()< firstClockUpdate ? detection.getTimeMilliseconds() : firstClockUpdate;
segmenterEnd = (long) (segmentStart + getSegmentLenMillis());
newGroupSegment(index);
}
while(!detectionInSegment(dataUnit, segmentStart, segmenterEnd)) {
//System.out.println("Detection in segment: " + segmentStart);
nextGroupSegment(index);
//sometimes if a detection is a long time after the previous then we don't want to iterate through new segments so start again
if ((detection.getTimeMilliseconds() - segmentStart)>MAX_SEGMENT_GAP_MILLIS) {
segmentStart = detection.getTimeMilliseconds();
segmenterEnd = (long) (segmentStart + getSegmentLenMillis());
newGroupSegment(index);
}
while(!detectionInSegment(detection, segmentStart, segmenterEnd)) {
//System.out.println("Detection in segment: " + segmentStart + " det millis: " + detection.getTimeMilliseconds());
if (detection.getTimeMilliseconds()<segmentStart) {
//something has gone quite wrong
System.err.println("rawdeepLearningClassifier.segmenterProcess: Detection: " + detection.getUID() +
" was detected before the segment? " + "seg start: " + segmentStart + " det start: " +detection.getTimeMilliseconds() );
return false;
}
segSaved = nextGroupSegment(index);
}
}
segmenterDetectionGroup[index].addSubDetection(whistle);
// System.out.println("Segment sub detection count: " + segmenterDetectionGroup[index].getSubDetectionsCount());
segmenterDetectionGroup[index].addSubDetection(detection);
//System.out.println("Segment sub detection count: " + segmenterDetectionGroup[index].getSubDetectionsCount());
return segSaved;
}
/**
* Iterate to the next group segment
* @param index - the group index;
*/
private void nextGroupSegment(int index) {
private boolean nextGroupSegment(int index) {
// System.out.println("----------------------------------");
segmentStart = (long) (segmentStart+ getSegmentHopMillis());
segmenterEnd = (long) (segmentStart + getSegmentLenMillis());
return newGroupSegment(index);
}
/**
* Create a new group segment based on the current segmentStart and segmentEnd fields. Will saved the previous segment if
* it exists and contains more than one sub detection.
* @param index - the segment group index (i.e. channel group index)
* @return true of a segment has completed and saved to the segment group data block.
*/
private boolean newGroupSegment(int index) {
boolean segSaved = false;
int[] chanGroups = dlControl.getDLParams().groupedSourceParams.getChannelGroups();
long startSample = this.absMillisecondsToSamples(segmentStart);
@ -333,18 +373,20 @@ public class SegmenterProcess extends PamProcess {
}
}
// System.out.println("SAVE WHISTLE SEGMENT!: " + ((segmenterDetectionGroup[index].getSegmentStartMillis()-firstClockUpdate)/1000.) + "s" + " " + " no. whistles: "
// System.out.println("SAVE GROUP SEGMENT!: " + ((segmenterDetectionGroup[index].getSegmentStartMillis()-firstClockUpdate)/1000.) + "s" + " " + " no. whistles: "
// + segmenterDetectionGroup[index].getSubDetectionsCount() + " " + PamCalendar.formatDateTime(segmenterDetectionGroup[index].getSegmentStartMillis()) + " "
// + segmenterDetectionGroup[index]);
//save the data unit to the data block
if (segmenterDetectionGroup[index].getSubDetectionsCount()>0) {
this.segmenterGroupDataBlock.addPamData(segmenterDetectionGroup[index]);
segSaved=true;
}
}
segmenterDetectionGroup[index] = aSegment;
// System.out.println("NEW SEGMENT START!: " + (segmentStart-firstClockUpdate)/1000. + "s" + " " + segmenterDetectionGroup[index].getSegmentStartMillis()+ " " +segmenterDetectionGroup[index]);
return segSaved;
}
private boolean detectionInSegment(PamDataUnit dataUnit, SegmenterDetectionGroup segmenterDetectionGroup2) {
@ -381,6 +423,7 @@ public class SegmenterProcess extends PamProcess {
int count=0;
public void masterClockUpdate(long milliSeconds, long sampleNumber) {
super.masterClockUpdate(milliSeconds, sampleNumber);
if (firstClockUpdate<0) {
firstClockUpdate = milliSeconds;
}
@ -870,8 +913,17 @@ public class SegmenterProcess extends PamProcess {
}
public SegmenterGroupDataBlock getSegmenteGrouprDataBlock() {
public SegmenterGroupDataBlock getSegmenteGroupDataBlock() {
return this.segmenterGroupDataBlock;
}
/**
* Set the first clock update which helps the segmenter work out where to start segmenting from.
* @param startTime - the start time in millis.
*/
public void setFirstClockUpdate(long startTime) {
this.firstClockUpdate = startTime;
}
}

View File

@ -3,148 +3,308 @@ package test.rawDeepLearningClassifier;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import org.jamdev.jdl4pam.transforms.DLTransform;
import org.jamdev.jdl4pam.transforms.FreqTransform;
import org.jamdev.jdl4pam.transforms.DLTransform.DLTransformType;
import org.jamdev.jdl4pam.utils.DLMatFile;
import org.jamdev.jdl4pam.utils.DLUtils;
import org.jamdev.jpamutils.JamArr;
import org.jamdev.jpamutils.interpolation.Bicubic;
import org.jamdev.jpamutils.interpolation.Bilinear;
import org.jamdev.jpamutils.interpolation.NearestNeighbor;
import org.jamdev.jpamutils.spectrogram.SpecTransform;
import org.junit.jupiter.api.Test;
import PamUtils.PamArrayUtils;
import ai.djl.MalformedModelException;
import rawDeepLearningClassifier.dlClassification.archiveModel.SimpleArchiveModel;
import rawDeepLearningClassifier.dlClassification.delphinID.Whistles2Image;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDClickTest;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDUtils;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDUtils.ClickDetectionMAT;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDUtils.DetectionGroupMAT;
import rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDWhistleTest;
import us.hebi.matlab.mat.format.Mat5;
import us.hebi.matlab.mat.types.MatFile;
import us.hebi.matlab.mat.format.Mat5File;
import us.hebi.matlab.mat.types.Matrix;
public class DelphinIDTest {
// @Test
// public void whistle2ImageTest() {
//
// System.out.println("Whislte2Image test started");
//
// /**
// * Test whether the Whistles2Image transform works properly
// */
// String relMatPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/whistle_image_example.mat";
//
// Path path = Paths.get(relMatPath);
//
// // Create MAT file with a scalar in a nested struct
// try {
// MatFile matFile = Mat5.readFromFile(path.toString());
// Matrix array = matFile.getArray("tfvalues");
//
// //the values for the whistle detector.
// double[][] whistleValues = DLMatFile.matrix2array(array);
//
//// //the image after compression
//// array = matFile.getArray("image1compressedgrayscale");
//// double[][] compressedWhistleImage = DLMatFile.matrix2array(array);
////
//// //the whistle2Image transform image
//// array = matFile.getArray("image1originalgrayscalenorm");
//// double[][] whislteImage = DLMatFile.matrix2array(array);
//
// //now perform the image transform in Java
// double[] freqLimits = new double[] {2000., 20000.};
// double[] size = new double[] {680., 480.};
//
// ArrayList<double[][]> whistleImageArr = new ArrayList<double[][]>();
// whistleImageArr.add(whistleValues);
//
// BufferedImage canvas = Whistles2Image.makeScatterImage(whistleImageArr, size, new double[]{50, 50. + 4.}, freqLimits, 10.);
//
// double[][] imaged = new double[(int) size[0]][(int) size[1]];
//
// float[] color = new float[3];
// Raster raster = canvas.getData();
// for (int i=0; i<imaged.length; i++) {
// for (int j=0; j<imaged[0].length; j++) {
// color = raster.getPixel(i,j, color);
// imaged[i][imaged[0].length-j-1] = (255-color[0])/255.; //normalize
// }
// }
//
// //imaged = PamArrayUtils.transposeMatrix(imaged);
//
// //create the model transforms
// ArrayList<DLTransform> modelTransforms = new ArrayList<DLTransform>();
//// modelTransforms.add(new FreqTransform(DLTransformType.SPECFLIP));
//// modelTransforms.add(new FreqTransform(DLTransformType.SPECNORMALISE_MINIMAX));
// modelTransforms.add(new FreqTransform(DLTransformType.SPECRESIZE, new Number[] {Integer.valueOf(60), Integer.valueOf(80), SpecTransform.RESIZE_BICUBIC}));
// modelTransforms.add(new FreqTransform(DLTransformType.GAUSSIAN_FILTER, new Number[] {Double.valueOf(0.5)}));
//
//
// SpecTransform specTransform = new SpecTransform();
// specTransform.setSpecData(imaged);
// specTransform.setSampleRate((float) (freqLimits[1]*2));
//
//
// //set the spec transform
// ((FreqTransform) modelTransforms.get(0)).setSpecTransfrom(specTransform);
//
// //process all the transforms.
// DLTransform transform = modelTransforms.get(0);
// for (int i =0; i<modelTransforms.size(); i++) {
// transform = modelTransforms.get(i).transformData(transform);
// }
//
// double[][] transformedData2 = ((FreqTransform) transform).getSpecTransfrom().getTransformedData();
//
//// Bilinear interpolation1 = new Bilinear(JamArr.doubleToFloat(transformedData2));
//// Bicubic interpolation2 = new Bicubic(JamArr.doubleToFloat(imaged));
////
//// System.out.println("Len input: " + imaged.length);
////
//// float[][] resizeArr = interpolation2.resize(Integer.valueOf(80), Integer.valueOf(60));
////
//// System.out.println("Len resize: " + resizeArr.length);
//
// System.out.println("Size Java: " + transformedData2.length + " x " + transformedData2[0].length);
//
// //now save this image to a MATFILE
// // Create MAT file with a scalar in a nested struct
// MatFile matFileWrite = Mat5.newMatFile()
// .addArray("image1originalgrayscalenorm",DLMatFile.array2Matrix(imaged))
// .addArray("imagecompressedgrayscalenorm",DLMatFile.array2Matrix(transformedData2));
//// .addArray("imagecompressedgrayscalenorm_nearest",DLMatFile.array2Matrix(JamArr.floatToDouble(resizeArr)));
//
// // Serialize to disk using default configurations
// Mat5.writeToFile(matFileWrite, "/Users/au671271/MATLAB-Drive/MATLAB/PAMGUARD/deep_learning/delphinID/whistle_image_example_java.mat");
//
// System.out.println("Whislte2Image test finished");
//
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// assertEquals(false, false);
// }
//
// }
/**
* The slop allowed when comparing prediction values
*/
public static double predSlop = 0.05;
@Test
public static void modelInputTest() {
//test whether a single segment gives the correct answer.
// boolean result = rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDTest.testDelphinIDImage(null);
// assertTrue(result);
public void clickModelTest() {
System.out.println("DelphinID: click2Spectrum test");
String relModelPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/clickClassifier_Jan25.zip";
Path modelPath = Paths.get(relModelPath);
String clicksMatPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/clicks_20200918_123234_classified.mat";
Path clickPath = Paths.get(clicksMatPath);
//load the clicks
DetectionGroupMAT<ClickDetectionMAT> clicks = DelphinIDUtils.getClicksMAT(clicksMatPath);
//run the model
float[][] predictions = DelphinIDClickTest.testDelphinIDClickModel(modelPath.toString(), clicks, null, false);
String predRelPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/click_preds_PAM_20200918_123234_366.mat";
Path predPath = Paths.get(predRelPath);
Mat5File matFile;
try {
matFile = Mat5.readFromFile(predPath.toString());
Matrix clickPredsMAT = matFile.getArray("predspython");
double[][] clickPreds = DLMatFile.matrix2array(clickPredsMAT);
//now iterate through and check against true predictions.
int classIndex = 1; //the class to use as the test.
double calcPred;
double truePred;
for (int i=0; i<predictions.length; i++) {
if (predictions[i]==null || clickPreds[i]==null) {
continue;
}
System.out.print(String.format("Click segment: %d" , i));
for (int j=0; j<predictions[i].length; j++) {
System.out.print(String.format( " %.4f" , predictions[i][j]));
}
System.out.println();
calcPred = predictions[i][classIndex];
truePred = clickPreds[i][classIndex];
boolean passed = (calcPred - predSlop) < truePred && (calcPred + predSlop) > truePred;
if (!passed) {
System.out.print(String.format("SEGMENT FAIL: %d - true predictions" , i));
for (int j=0; j<predictions[i].length; j++) {
System.out.print(String.format( " %.4f" , clickPreds[i][j]));
}
System.out.println();
}
assertTrue(passed);
}
} catch (IOException e) {
// TODO Auto-generated catch block
assertTrue(false);
e.printStackTrace();
}
}
// @Test
// public void whistle2SpectrumTest() {
// System.out.println("DelphinID: whistle2Spectrum test");
//
// assertEquals(false, false);
// }
//
//
// @Test
// public void click2SpectrumTest() {
// System.out.println("DelphinID: click model test");
//
// assertEquals(false, false);
// }
@Test
public void whistleModelTest() {
System.out.println("DelphinID: whistle model test");
double segLen = 4000.;
double segHop = 1000.0;
double startSeconds = 9.898656 + 0.1; //seconds to start segments (so we can compare to Python) - note if this is wrong predicitons are slightly off...
String relModelPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/whistleclassifier.zip";
Path modelPath = Paths.get(relModelPath);
String whistlesMatPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/whistle_contours_20200918_123234.mat";
Path whisltePath = Paths.get(whistlesMatPath);
float[][] predictions = DelphinIDWhistleTest.runWhistleModel(modelPath.toString(), whisltePath.toString(), null, startSeconds, segLen, segHop);
//the true whistle values
String predRelPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/whistle_preds_PAM_20200918_123234_366.mat";
Path predPath = Paths.get(predRelPath);
Mat5File matFile;
try {
matFile = Mat5.readFromFile(predPath.toString());
Matrix whistlesPredsMAT = matFile.getArray("predspython");
double[][] whistlePreds = DLMatFile.matrix2array(whistlesPredsMAT);
Matrix startTimesMAT = matFile.getArray("starttimes");
double[] startTimes = DelphinIDWhistleTest.matrix2array1D(startTimesMAT);
System.out.println("");
//now iterate through and check against true predictions.
int classIndex = 1; //the class to use as the test.
double calcPred;
double truePred;
for (int i=0; i<startTimes.length; i++) {
int index = (int) startTimes[i];
if (predictions[index]==null || whistlePreds[i]==null) {
continue;
}
System.out.print(String.format("Whistle segment: %d" , index));
for (int j=0; j<predictions[index].length; j++) {
System.out.print(String.format( " %.4f" , predictions[index][j]));
}
System.out.println();
calcPred = predictions[index][classIndex];
truePred = whistlePreds[i][classIndex];
boolean passed = (calcPred - predSlop) < truePred && (calcPred + predSlop) > truePred;
if (!passed) {
System.out.print(String.format("SEGMENT FAIL: %.0f s index %d- true predictions" , startTimes[i], index));
for (int j=0; j<predictions[index].length; j++) {
System.out.print(String.format( " %.4f" , whistlePreds[i][j]));
}
System.out.println();
}
assertTrue(passed);
}
} catch (IOException e) {
// TODO Auto-generated catch block
assertTrue(false);
e.printStackTrace();
}
assertEquals(false, false);
}
// @Test
// public void whistle2ImageTest() {
//
// System.out.println("Whislte2Image test started");
//
// /**
// * Test whether the Whistles2Image transform works properly
// */
// String relMatPath = "./src/test/resources/rawDeepLearningClassifier/DelphinID/whistle_image_example.mat";
//
// Path path = Paths.get(relMatPath);
//
// // Create MAT file with a scalar in a nested struct
// try {
// MatFile matFile = Mat5.readFromFile(path.toString());
// Matrix array = matFile.getArray("tfvalues");
//
// //the values for the whistle detector.
// double[][] whistleValues = DLMatFile.matrix2array(array);
//
//// //the image after compression
//// array = matFile.getArray("image1compressedgrayscale");
//// double[][] compressedWhistleImage = DLMatFile.matrix2array(array);
////
//// //the whistle2Image transform image
//// array = matFile.getArray("image1originalgrayscalenorm");
//// double[][] whislteImage = DLMatFile.matrix2array(array);
//
// //now perform the image transform in Java
// double[] freqLimits = new double[] {2000., 20000.};
// double[] size = new double[] {680., 480.};
//
// ArrayList<double[][]> whistleImageArr = new ArrayList<double[][]>();
// whistleImageArr.add(whistleValues);
//
// BufferedImage canvas = Whistles2Image.makeScatterImage(whistleImageArr, size, new double[]{50, 50. + 4.}, freqLimits, 10.);
//
// double[][] imaged = new double[(int) size[0]][(int) size[1]];
//
// float[] color = new float[3];
// Raster raster = canvas.getData();
// for (int i=0; i<imaged.length; i++) {
// for (int j=0; j<imaged[0].length; j++) {
// color = raster.getPixel(i,j, color);
// imaged[i][imaged[0].length-j-1] = (255-color[0])/255.; //normalize
// }
// }
//
// //imaged = PamArrayUtils.transposeMatrix(imaged);
//
// //create the model transforms
// ArrayList<DLTransform> modelTransforms = new ArrayList<DLTransform>();
//// modelTransforms.add(new FreqTransform(DLTransformType.SPECFLIP));
//// modelTransforms.add(new FreqTransform(DLTransformType.SPECNORMALISE_MINIMAX));
// modelTransforms.add(new FreqTransform(DLTransformType.SPECRESIZE, new Number[] {Integer.valueOf(60), Integer.valueOf(80), SpecTransform.RESIZE_BICUBIC}));
// modelTransforms.add(new FreqTransform(DLTransformType.GAUSSIAN_FILTER, new Number[] {Double.valueOf(0.5)}));
//
//
// SpecTransform specTransform = new SpecTransform();
// specTransform.setSpecData(imaged);
// specTransform.setSampleRate((float) (freqLimits[1]*2));
//
//
// //set the spec transform
// ((FreqTransform) modelTransforms.get(0)).setSpecTransfrom(specTransform);
//
// //process all the transforms.
// DLTransform transform = modelTransforms.get(0);
// for (int i =0; i<modelTransforms.size(); i++) {
// transform = modelTransforms.get(i).transformData(transform);
// }
//
// double[][] transformedData2 = ((FreqTransform) transform).getSpecTransfrom().getTransformedData();
//
//// Bilinear interpolation1 = new Bilinear(JamArr.doubleToFloat(transformedData2));
//// Bicubic interpolation2 = new Bicubic(JamArr.doubleToFloat(imaged));
////
//// System.out.println("Len input: " + imaged.length);
////
//// float[][] resizeArr = interpolation2.resize(Integer.valueOf(80), Integer.valueOf(60));
////
//// System.out.println("Len resize: " + resizeArr.length);
//
// System.out.println("Size Java: " + transformedData2.length + " x " + transformedData2[0].length);
//
// //now save this image to a MATFILE
// // Create MAT file with a scalar in a nested struct
// MatFile matFileWrite = Mat5.newMatFile()
// .addArray("image1originalgrayscalenorm",DLMatFile.array2Matrix(imaged))
// .addArray("imagecompressedgrayscalenorm",DLMatFile.array2Matrix(transformedData2));
//// .addArray("imagecompressedgrayscalenorm_nearest",DLMatFile.array2Matrix(JamArr.floatToDouble(resizeArr)));
//
// // Serialize to disk using default configurations
// Mat5.writeToFile(matFileWrite, "/Users/au671271/MATLAB-Drive/MATLAB/PAMGUARD/deep_learning/delphinID/whistle_image_example_java.mat");
//
// System.out.println("Whislte2Image test finished");
//
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// assertEquals(false, false);
// }
//
// }
}

View File

@ -1,27 +1,169 @@
package test.rawDeepLearningClassifier;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import org.jamdev.jdl4pam.genericmodel.GenericModel;
import org.jamdev.jdl4pam.utils.DLUtils;
import org.jamdev.jpamutils.wavFiles.AudioData;
import org.junit.jupiter.api.Test;
import PamUtils.PamArrayUtils;
import rawDeepLearningClassifier.defaultModels.HumpbackWhaleAtlantic;
import rawDeepLearningClassifier.defaultModels.MultiSpeciesGoogle;
import rawDeepLearningClassifier.dlClassification.genericModel.GenericModelParams;
import rawDeepLearningClassifier.dlClassification.genericModel.GenericModelWorker;
import rawDeepLearningClassifier.dlClassification.genericModel.StandardPrediction;
import rawDeepLearningClassifier.segmenter.GroupedRawData;
/**
* Test models that are zipped with a PMAGuard pgdl settings file.
*/
public class PamZipDLClassifierTest {
/**
* Test the koogu classifier and tests are working properly for a PAMGuard zip model - i.e. this is a very similar model to Koogu but zipped with a .zip
* filename instead of .kgu.
*/
// @Test
// public void blueWhaleKooguTest() {
// //relative paths to the resource folders.
// String relModelPath = "./src/test/resources/rawDeepLearningClassifier/PamZip/blue_whale_24.zip";
//
// //the zip classifier is the same as the
// String relWavPath = "./src/test/resources/rawDeepLearningClassifier/Koogu/blue_whale_24/20190527_190000.wav";
// String relMatPath = "./src/test/resources/rawDeepLearningClassifier/Koogu/blue_whale_24/rawScores_20190527_190000.mat";
//
// //metadata says it should be used with Koogu classifier.
// KooguDLClassifierTest.runKooguClassifier( relModelPath, relWavPath, relMatPath);
// }
/**
* Test Google's humpback whale model.
*/
@Test
public void zipClassifierTest() {
public void multiSpeciesGoogleTest() {
System.out.println("*****Generic DL: Humpback whale test*****");
//relative paths to the resource folders.
String relModelPath = "./src/test/resources/rawDeepLearningClassifier/PamZip/blue_whale_24.zip";
//the zip classifier is the same as the
String relWavPath = "./src/test/resources/rawDeepLearningClassifier/Koogu/blue_whale_24/20190527_190000.wav";
String relMatPath = "./src/test/resources/rawDeepLearningClassifier/Koogu/blue_whale_24/rawScores_20190527_190000.mat";
//metadata says it should be used with Koogu classifier.
KooguDLClassifierTest.runKooguClassifier( relModelPath, relWavPath, relMatPath);
String relModelPath = "./src/test/resources/rawDeepLearningClassifier/Generic/multi-species-Google/multispecies-whale-tensorflow2-default-v2/saved_model.pb";
String relWavPath = "./src/test/resources/rawDeepLearningClassifier/Generic/multi-species-Google/Cross_24kHz.wav";
String resultsPath = "./src/test/resources/rawDeepLearningClassifier/Generic/multi-species-Google/Cross_24kHz_scores.csv";
Path path = Paths.get(relModelPath);
GenericModelWorker genericModelWorker = new GenericModelWorker();
GenericModelParams genericModelParams = new GenericModelParams();
genericModelParams.modelPath = path.toAbsolutePath().normalize().toString();
path = Paths.get(relWavPath);
String wavFilePath = path.toAbsolutePath().normalize().toString();
MultiSpeciesGoogle multiSpeciesGoogle = new MultiSpeciesGoogle();
multiSpeciesGoogle.setParams(genericModelParams);
System.out.println(genericModelParams);
//TEMP
try {
//load audio
AudioData soundData = DLUtils.loadWavFile(wavFilePath);
// double[] amplitudes = soundData.getScaledSampleAmplitudes();
//
//
// float[] ampltiudesf = PamArrayUtils.double2Float(amplitudes);
// float[] ampltiudesfchunk = new float[120000];
// int offset = 24000;
// System.arraycopy(ampltiudesf, 0+offset, ampltiudesfchunk, 0, 120000);
//
// // System.out.println("MAX AMPLITUDE: " + PamArrayUtils.max(amplitudes));
//
// GenericModel genericModel = new GenericModel( genericModelParams.modelPath) ;
// float[][] input = new float[][]{ampltiudesfchunk};
// float[] output2 = genericModel.runModel(input);
//
// System.out.println("----TEST OUT----");
// PamArrayUtils.printArray(output2);
//prep the model
genericModelWorker.prepModel(genericModelParams, null);
//load true predictions file.
File file = new File(resultsPath);
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
int ind=0;
int startChunk=0;
int classIndex = 1;
while((line = br.readLine()) != null){
if (ind>0) {
//read the data from the text file
String[] data = line.split(",");
double[] predictions = new double[data.length];
for (int i=0; i<data.length; i++) {
predictions[i] = Double.valueOf(data[i]);
}
//each line is a list of prediction for each class;
int chunkSize=120000;
GroupedRawData groupedRawData = new GroupedRawData(0, 1, 0, chunkSize, chunkSize);
groupedRawData.copyRawData(soundData.getScaledSampleAmplitudes(), startChunk, chunkSize, 0);
// System.out.println("MAX AMPLITUDE: " + PamArrayUtils.max(groupedRawData.getRawData()[0]));
ArrayList<GroupedRawData> groupedData = new ArrayList<GroupedRawData>();
groupedData.add(groupedRawData);
ArrayList<StandardPrediction> genericPrediction = genericModelWorker.runModel(groupedData, soundData.sampleRate, 0);
float[] output = genericPrediction.get(0).getPrediction();
boolean passed = (output[classIndex]>predictions[classIndex]-0.05 && output[classIndex]<predictions[classIndex]+0.05);
System.out.println(String.format("Chunk %d %d Predicted output: %.5f true output: %.5f passed: %b -- sum %.2f ", ind, startChunk,
output[classIndex], predictions[classIndex], passed, PamArrayUtils.sum(output)));
//PamArrayUtils.printArray(output);
//allow 10% scrumph to take account of slight differences in Java input.
//assertTrue(passed); //humpback whale detection
startChunk+=24000; //one second step
}
ind++;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

View File

@ -0,0 +1,206 @@
site,startrec,endrec,starttime,dur,n,SNR,Dde,Ggr,Gme,Lal,Ttr,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,0,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,1,4,4,16.35191824,0.000098,0.979193,0.000081,0.000007,0.020621,0.005069907,0.005253806,0.007566674,0.006775802,0.006469298,0.008056406,0.009046132,0.008351148,0.007888746,0.007958923,0.008388212,0.00716322,0.004672727,0.006759528,0.006305709,0.00606099,0.00786046,0.008258889,0.007057891,0.006424046,0.00569706,0.004693258,0.003695848,0.003726392,0.005251941,0.006311158,0.007569007,0.006503552,0.008916757,0.007104804,0.006489193,0.009254214,0.012101181,0.016200699,0.022042349,0.023739434,0.018740897,0.016529624,0.016330001,0.016388903,0.019278994,0.023902546,0.025794335,0.020241379,0.015466004,0.014523507,0.011985581,0.01232651,0.012130101,0.011962963,0.014117556,0.016544259,0.020772552,0.021042292,0.016748615,0.014304275,0.014328061,0.014487608,0.01599805,0.019139254,0.02240908,0.022361794,0.020080502,0.019292127,0.016792161,0.01724846,0.018088945,0.014976816,0.012119271,0.011949564,0.012609539,0.013334557,0.014558869,0.014790457,0.013790207,0.01115628,0.012455085,0.014204374,0.013275988,0.010736697
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,2,4,3,16.42040253,0.000060,0.968242,0.000070,0.000013,0.031615,0.00461354,0.004839571,0.007963229,0.007735814,0.008065378,0.00870563,0.010598393,0.008974944,0.007974109,0.008773356,0.008292091,0.007492244,0.005067324,0.006003788,0.005872915,0.005647414,0.007393435,0.008356517,0.006517856,0.00672012,0.005572206,0.003836513,0.003705629,0.003469967,0.006125255,0.005931975,0.007062724,0.005765261,0.007456384,0.006347531,0.004737318,0.00759338,0.010694536,0.013419816,0.020060793,0.022606224,0.018031503,0.016022755,0.015241598,0.016109766,0.018564858,0.023371941,0.026047799,0.020737061,0.016662863,0.015175734,0.014487548,0.014184351,0.013629966,0.014054705,0.015139668,0.017003807,0.02138977,0.021129371,0.015776871,0.013356169,0.013081114,0.012785746,0.014254148,0.017349184,0.021210928,0.021780295,0.020178048,0.019564947,0.016131944,0.016821427,0.018278012,0.015657175,0.013342433,0.01293362,0.014253077,0.01522274,0.016494672,0.016916564,0.015215598,0.01105458,0.012424849,0.014673272,0.013465771,0.010798573
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,3,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,4,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,5,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,6,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,7,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,8,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,9,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,10,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,11,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,12,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,13,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,14,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,15,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,16,4,3,17.14642945,0.000001,0.991651,0.000000,0.006282,0.002067,0.006254464,0.006973831,0.008302591,0.008981867,0.007787682,0.006028867,0.008094193,0.009424763,0.00675093,0.003609533,0.004082085,0.002038438,0.00432704,0.005341576,0.004324454,0.003255474,0.003048022,0.002455053,0.003423101,0.003838201,0.003976668,0.004611721,0.002585313,0.003309128,0.005994985,0.004917635,0.002527967,0.003187736,0.005301933,0.005759768,0.007187649,0.007470951,0.012934011,0.018283386,0.01915246,0.014661615,0.010055649,0.01104746,0.010709789,0.011922671,0.015621124,0.021153991,0.024198887,0.022686242,0.018475853,0.017352482,0.017373532,0.015068478,0.014519027,0.015087669,0.015344192,0.016455945,0.017127583,0.015810439,0.011424716,0.008970738,0.011003949,0.010329376,0.010419146,0.013412983,0.015006414,0.014445576,0.016123123,0.019747913,0.023069106,0.025318105,0.025989398,0.025477323,0.024575862,0.023805229,0.023095641,0.02237303,0.021458067,0.020222545,0.019356942,0.01951785,0.019424556,0.018907127,0.018511806,0.017797378
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,17,4,3,17.14642945,0.000001,0.991651,0.000000,0.006282,0.002067,0.006254464,0.006973831,0.008302591,0.008981867,0.007787682,0.006028867,0.008094193,0.009424763,0.00675093,0.003609533,0.004082085,0.002038438,0.00432704,0.005341576,0.004324454,0.003255474,0.003048022,0.002455053,0.003423101,0.003838201,0.003976668,0.004611721,0.002585313,0.003309128,0.005994985,0.004917635,0.002527967,0.003187736,0.005301933,0.005759768,0.007187649,0.007470951,0.012934011,0.018283386,0.01915246,0.014661615,0.010055649,0.01104746,0.010709789,0.011922671,0.015621124,0.021153991,0.024198887,0.022686242,0.018475853,0.017352482,0.017373532,0.015068478,0.014519027,0.015087669,0.015344192,0.016455945,0.017127583,0.015810439,0.011424716,0.008970738,0.011003949,0.010329376,0.010419146,0.013412983,0.015006414,0.014445576,0.016123123,0.019747913,0.023069106,0.025318105,0.025989398,0.025477323,0.024575862,0.023805229,0.023095641,0.02237303,0.021458067,0.020222545,0.019356942,0.01951785,0.019424556,0.018907127,0.018511806,0.017797378
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,18,4,3,17.14642945,0.000001,0.991651,0.000000,0.006282,0.002067,0.006254464,0.006973831,0.008302591,0.008981867,0.007787682,0.006028867,0.008094193,0.009424763,0.00675093,0.003609533,0.004082085,0.002038438,0.00432704,0.005341576,0.004324454,0.003255474,0.003048022,0.002455053,0.003423101,0.003838201,0.003976668,0.004611721,0.002585313,0.003309128,0.005994985,0.004917635,0.002527967,0.003187736,0.005301933,0.005759768,0.007187649,0.007470951,0.012934011,0.018283386,0.01915246,0.014661615,0.010055649,0.01104746,0.010709789,0.011922671,0.015621124,0.021153991,0.024198887,0.022686242,0.018475853,0.017352482,0.017373532,0.015068478,0.014519027,0.015087669,0.015344192,0.016455945,0.017127583,0.015810439,0.011424716,0.008970738,0.011003949,0.010329376,0.010419146,0.013412983,0.015006414,0.014445576,0.016123123,0.019747913,0.023069106,0.025318105,0.025989398,0.025477323,0.024575862,0.023805229,0.023095641,0.02237303,0.021458067,0.020222545,0.019356942,0.01951785,0.019424556,0.018907127,0.018511806,0.017797378
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,19,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,20,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,21,4,4,14.48926457,0.002943,0.952999,0.001842,0.000019,0.042197,0.008995515,0.006224511,0.003694226,0.006764536,0.006779819,0.006043542,0.006929517,0.007949187,0.007117731,0.004610915,0.004293066,0.003046989,0.003620354,0.006833153,0.007233188,0.006815353,0.005580232,0.006724579,0.006356895,0.007128611,0.007656273,0.006328766,0.00726717,0.005587808,0.00385193,0.004455619,0.006800247,0.004364007,0.006232757,0.008818397,0.009126974,0.013443046,0.017844088,0.018368381,0.01758243,0.016677352,0.019628254,0.021794266,0.02107961,0.019511865,0.020618371,0.019295005,0.014493981,0.010923532,0.014300725,0.019042622,0.019864602,0.019563724,0.015112743,0.012246552,0.013264873,0.015932287,0.014864063,0.015418942,0.014500764,0.013240811,0.015089065,0.015510152,0.018011815,0.0186561,0.018394939,0.01895621,0.019988005,0.020537215,0.017649954,0.015644875,0.016629864,0.015597734,0.016336405,0.017969998,0.017500957,0.014741244,0.011531836,0.011405649,0.01238476,0.014628601,0.016529484,0.01675526,0.01490423,0.012800892
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,22,4,5,12.37550011,0.000191,0.981966,0.000035,0.001756,0.016052,0.00868842,0.005281273,0.002701143,0.00691129,0.007338648,0.006088033,0.006366143,0.007532272,0.006782003,0.004559064,0.004381249,0.002405907,0.003040075,0.007195978,0.007573596,0.005993723,0.003847721,0.005237627,0.004399379,0.003684683,0.00400771,0.003928739,0.005393435,0.004156725,0.002414723,0.002750131,0.00555258,0.003142615,0.004043881,0.007280601,0.007723566,0.010627638,0.015749249,0.0167375,0.015180955,0.013836491,0.017338571,0.021317416,0.021447483,0.019642144,0.01999247,0.01888787,0.014261481,0.010701252,0.0149466,0.020428863,0.021593187,0.021106909,0.015851858,0.012129406,0.013429549,0.01572639,0.013391099,0.01363575,0.013064868,0.012236879,0.015135068,0.016551017,0.019256104,0.019217605,0.018084043,0.019525943,0.021566946,0.022690314,0.020163166,0.017801651,0.017184809,0.016960826,0.019481911,0.021771586,0.021489526,0.018522304,0.014622405,0.013770223,0.014788942,0.017002425,0.018659149,0.019053726,0.017580649,0.015454851
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,23,4,5,12.37550011,0.000191,0.981966,0.000035,0.001756,0.016052,0.00868842,0.005281273,0.002701143,0.00691129,0.007338648,0.006088033,0.006366143,0.007532272,0.006782003,0.004559064,0.004381249,0.002405907,0.003040075,0.007195978,0.007573596,0.005993723,0.003847721,0.005237627,0.004399379,0.003684683,0.00400771,0.003928739,0.005393435,0.004156725,0.002414723,0.002750131,0.00555258,0.003142615,0.004043881,0.007280601,0.007723566,0.010627638,0.015749249,0.0167375,0.015180955,0.013836491,0.017338571,0.021317416,0.021447483,0.019642144,0.01999247,0.01888787,0.014261481,0.010701252,0.0149466,0.020428863,0.021593187,0.021106909,0.015851858,0.012129406,0.013429549,0.01572639,0.013391099,0.01363575,0.013064868,0.012236879,0.015135068,0.016551017,0.019256104,0.019217605,0.018084043,0.019525943,0.021566946,0.022690314,0.020163166,0.017801651,0.017184809,0.016960826,0.019481911,0.021771586,0.021489526,0.018522304,0.014622405,0.013770223,0.014788942,0.017002425,0.018659149,0.019053726,0.017580649,0.015454851
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,24,4,4,13.16246135,0.000005,0.480398,0.000000,0.517373,0.002225,0.009736343,0.00569875,0.001728656,0.005924739,0.007306504,0.006601084,0.006690848,0.008888172,0.007926465,0.005169132,0.005493003,0.003733136,0.004888699,0.007641291,0.006404964,0.00495465,0.003489149,0.003859148,0.002344967,0.002479208,0.004002718,0.003831346,0.004469526,0.002510586,0.001931812,0.002348618,0.004133439,0.002568361,0.002795439,0.005494492,0.006645507,0.007749106,0.011851604,0.012490056,0.01108735,0.011224208,0.01632321,0.020326098,0.021179306,0.018566485,0.01767993,0.016290638,0.011953011,0.010692523,0.016308482,0.022635362,0.024543182,0.022836179,0.016109488,0.012126116,0.013686513,0.014966883,0.011155683,0.011234159,0.010650009,0.009539853,0.012787568,0.014347753,0.017346896,0.017219265,0.01618702,0.018337404,0.02088863,0.022591596,0.020903702,0.019354428,0.019388178,0.021466447,0.024017251,0.026419799,0.025906515,0.02198673,0.01751309,0.016338807,0.018137886,0.02132899,0.021812441,0.022087364,0.020934665,0.017801393
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,25,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,26,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,27,4,3,14.15976347,0.000127,0.911919,0.000002,0.005452,0.082500,0.002477536,0.003146347,0.005618222,0.0055397,0.00466911,0.005354523,0.005963641,0.004869122,0.005981674,0.00819237,0.007560925,0.007329113,0.008565153,0.007421479,0.006260325,0.006458239,0.008267589,0.008989363,0.009012259,0.009579529,0.007094095,0.003624003,0.00248972,0.004093904,0.006591455,0.008022546,0.008982551,0.005616866,0.006015763,0.008425525,0.007802484,0.005983743,0.006463827,0.008847224,0.012672583,0.015985242,0.014158529,0.012510124,0.014443863,0.016039008,0.014282082,0.013271155,0.014328306,0.016154036,0.018921383,0.018457322,0.012355999,0.009976158,0.013014937,0.01352464,0.011772966,0.010821647,0.009318597,0.009500524,0.012649915,0.013925521,0.013440822,0.012334752,0.013809409,0.017096358,0.016684464,0.018632372,0.019388146,0.02042668,0.022667237,0.023480155,0.023946937,0.023791635,0.022357977,0.020035894,0.019548862,0.021624569,0.023057667,0.023044401,0.022426743,0.021348004,0.019307313,0.019698617,0.021000509,0.021456015
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,28,4,6,14.94354917,0.000000,0.580585,0.000000,0.019459,0.399956,0.003035254,0.003935339,0.005629617,0.005944196,0.006115236,0.007522775,0.007415606,0.006686289,0.005893753,0.006433873,0.007446015,0.006793143,0.008456043,0.007660992,0.005773271,0.006366888,0.008146861,0.008428084,0.006706278,0.007275682,0.008031357,0.00600324,0.002849871,0.002580821,0.005089588,0.005928256,0.006001028,0.003759515,0.004066959,0.004949076,0.003572264,0.003862083,0.005361699,0.007291431,0.008611334,0.011062571,0.011163303,0.012191655,0.014559895,0.015788196,0.014125445,0.011751001,0.011394688,0.011650672,0.014196125,0.015395301,0.013452659,0.014520583,0.017073161,0.018356154,0.017993758,0.016824173,0.013354307,0.011801163,0.012745848,0.01291605,0.012976287,0.012317279,0.014466132,0.016667097,0.01783768,0.019824931,0.020196483,0.019792345,0.020222297,0.02156908,0.022165462,0.021152774,0.019421186,0.017755868,0.018101536,0.019784049,0.021817247,0.024042485,0.026221821,0.027594434,0.027186722,0.026885828,0.02606328,0.023997272
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,29,4,9,14.33696824,0.000000,0.855185,0.000000,0.002465,0.142349,0.003900571,0.004663966,0.00509245,0.004847855,0.005864747,0.007270676,0.007239503,0.006751786,0.006003114,0.006983995,0.0076549,0.00641154,0.007789749,0.007033156,0.004634649,0.005341314,0.00654879,0.007262856,0.006664895,0.006763143,0.006642945,0.00515685,0.002399017,0.002778235,0.004310125,0.005986688,0.006544962,0.003763062,0.00314506,0.004025846,0.003673342,0.003787976,0.005618906,0.007911132,0.008725291,0.013780483,0.015830748,0.016465097,0.016058296,0.015129066,0.01315263,0.011026096,0.01041768,0.010617641,0.012705312,0.015826501,0.015218219,0.015263931,0.015103381,0.016168013,0.015739921,0.013453863,0.011554413,0.009848781,0.009620486,0.010639166,0.011701292,0.012533712,0.013986541,0.013974149,0.015758351,0.018461594,0.020702798,0.022199485,0.023309573,0.024257002,0.024279968,0.023417395,0.022706488,0.021918238,0.021496249,0.020902825,0.021522488,0.023524253,0.025612185,0.026999656,0.027341445,0.027549693,0.027276307,0.025755496
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,30,4,10,13.66869782,0.000000,0.861443,0.000000,0.000715,0.137842,0.002936,0.004031963,0.004253501,0.004447095,0.005339625,0.006312469,0.005827992,0.005882215,0.005352051,0.006255983,0.00687816,0.005726398,0.007168422,0.006525703,0.004612415,0.004643604,0.00590469,0.006393716,0.00572341,0.00613994,0.006185078,0.005169545,0.002355165,0.002376871,0.003957946,0.005120743,0.005716209,0.003327534,0.00319712,0.003714165,0.003800708,0.003781969,0.005266913,0.008035118,0.008862372,0.01420134,0.017050083,0.017639052,0.01660086,0.015483902,0.013144919,0.011033863,0.010564193,0.010907839,0.012625974,0.01572053,0.015212934,0.014456105,0.014301306,0.015275878,0.014940008,0.012319079,0.010529844,0.008965642,0.009476061,0.010452709,0.011712221,0.013093,0.014602451,0.014304379,0.015967753,0.018709241,0.021280863,0.023280365,0.024500559,0.025363193,0.025469933,0.024823228,0.024478229,0.023953924,0.023379945,0.022361983,0.022610158,0.024224499,0.026133373,0.027406772,0.027816676,0.028090583,0.027849335,0.02646241
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,31,4,7,13.55065335,0.000000,0.818793,0.000000,0.000981,0.180226,0.003231437,0.004529395,0.00364288,0.00396885,0.005721723,0.006828767,0.005810145,0.006428777,0.005094815,0.005349629,0.006583622,0.004987978,0.006520721,0.006129014,0.00385993,0.003808917,0.004791203,0.005162213,0.004155986,0.004495351,0.005784372,0.005983117,0.002363283,0.001606768,0.00272566,0.003748031,0.004159904,0.002269086,0.00187938,0.00146204,0.001896833,0.002763245,0.004731379,0.007668517,0.007015627,0.013311787,0.01843847,0.020123183,0.017631373,0.015189125,0.012581084,0.009944581,0.008727653,0.008340081,0.009529768,0.014351344,0.016597749,0.016644454,0.014920591,0.016116591,0.016479293,0.013056651,0.011139805,0.008728531,0.007937702,0.00876021,0.010868083,0.013461469,0.014976975,0.012918428,0.015589976,0.018701575,0.022147173,0.024604518,0.025314092,0.026194855,0.026123791,0.02524021,0.025433002,0.025796455,0.025183929,0.022652346,0.022316109,0.024718881,0.027856008,0.030276567,0.031888361,0.032102542,0.03110434,0.028821696
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,32,4,5,14.85503212,0.000001,0.933641,0.000000,0.000530,0.065828,0.004514242,0.005730502,0.003287131,0.002029472,0.003583453,0.004045851,0.004802421,0.006559843,0.00668401,0.007794879,0.007521578,0.005613224,0.005632983,0.004673896,0.003486706,0.002836533,0.003099328,0.004422088,0.006042313,0.006189122,0.005267257,0.005973525,0.004787166,0.004941928,0.003930266,0.005118005,0.006184132,0.004393041,0.004055847,0.003792571,0.005184539,0.005186504,0.007672759,0.01200074,0.012021945,0.017680773,0.02245716,0.022068641,0.016991908,0.014010692,0.012048338,0.013090151,0.013148204,0.012913647,0.012219129,0.016579732,0.018026353,0.015245472,0.011786735,0.012054014,0.011999034,0.008905219,0.010109241,0.008521868,0.006413629,0.007116449,0.010324888,0.01459262,0.014930482,0.011346164,0.012557061,0.014978397,0.019199731,0.022812502,0.024411928,0.024549958,0.024585289,0.025133289,0.027199397,0.02876486,0.027619315,0.023959346,0.02216923,0.022695517,0.023698075,0.024521768,0.026037652,0.026940509,0.027326195,0.027199637
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,33,4,4,17.72752031,0.000004,0.841744,0.000006,0.000795,0.157451,0.005443343,0.006502129,0.004935689,0.004058425,0.004673477,0.002712087,0.002063671,0.005951006,0.007335072,0.006721563,0.005492617,0.004088793,0.004057366,0.004197816,0.00582051,0.004957641,0.005925936,0.006119121,0.006956456,0.00775248,0.008049962,0.00781243,0.007182568,0.007383427,0.006208853,0.005577807,0.004536596,0.004266412,0.006095141,0.006192357,0.006439728,0.007747272,0.011495325,0.018156576,0.019323989,0.017272533,0.018084476,0.017792795,0.016691602,0.017732289,0.018967671,0.02295009,0.022926445,0.020246522,0.017834519,0.017292768,0.017159401,0.015253661,0.01500182,0.015179108,0.016320501,0.016741721,0.016983366,0.014277495,0.012836409,0.011219835,0.011661441,0.01343592,0.013764609,0.012268394,0.011142135,0.011404292,0.01257975,0.013116157,0.013312083,0.014239149,0.016217265,0.017680096,0.019026994,0.020485405,0.020990103,0.020898882,0.02097742,0.020957569,0.020975812,0.021026898,0.021249483,0.021108211,0.020578024,0.019905243
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,34,4,7,12.41665751,0.000002,0.935240,0.000002,0.038913,0.025844,0.00707238,0.006036227,0.005478332,0.003878331,0.003192864,0.001535105,0.002238122,0.004212266,0.005133528,0.005010244,0.003773665,0.003688224,0.002096244,0.001926892,0.004053168,0.004057029,0.003117498,0.005794289,0.007644912,0.006302139,0.006524828,0.005037631,0.004531195,0.005132518,0.003351852,0.005224674,0.004015317,0.002884958,0.002366522,0.002644626,0.002904333,0.005090637,0.008846787,0.015113114,0.016711318,0.015979014,0.015973886,0.016362602,0.016755342,0.017923501,0.019965682,0.024012157,0.024021164,0.022656188,0.021291909,0.021138806,0.021065906,0.02285029,0.024445927,0.024514202,0.023923374,0.023281851,0.022853786,0.020628592,0.018358704,0.017332123,0.017415257,0.018486982,0.018874398,0.017268893,0.014495481,0.011646352,0.010986281,0.008428584,0.007849167,0.009141633,0.011178991,0.012913213,0.01521362,0.017114577,0.016672214,0.016089691,0.016784854,0.018475045,0.019334038,0.020636961,0.021874087,0.022394688,0.022550065,0.02221815
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,35,4,11,11.66687305,0.000002,0.974577,0.000003,0.001003,0.024415,0.005705324,0.004425374,0.004828356,0.004610666,0.002999734,0.001995331,0.004386742,0.004475098,0.003731847,0.005184754,0.005683513,0.006180584,0.004629844,0.004151098,0.005010473,0.005234681,0.005283705,0.00667147,0.006682078,0.005222765,0.005492122,0.00402054,0.004117499,0.005206414,0.002711036,0.003952539,0.005141288,0.004387325,0.00328802,0.003643947,0.00403721,0.006236678,0.010077589,0.016542344,0.019219222,0.018723025,0.017493466,0.016601467,0.017493472,0.018669776,0.02083521,0.025642668,0.026686815,0.025496253,0.023115106,0.020729392,0.019529553,0.020477764,0.021819685,0.022004673,0.021916009,0.021448985,0.021446701,0.020184602,0.018205481,0.016695821,0.016286388,0.017015211,0.017413806,0.016618233,0.015162137,0.012815848,0.011926807,0.0093661,0.008916915,0.010111711,0.012250959,0.014140064,0.015110601,0.015937846,0.015629015,0.015311959,0.015911798,0.017332424,0.017564841,0.018091366,0.019151398,0.019403688,0.018936476,0.01921128
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,36,4,11,12.40862144,0.000006,0.969607,0.000016,0.000261,0.030110,0.006433066,0.005166207,0.006089975,0.006420673,0.004122789,0.002338375,0.004545353,0.004359175,0.003407905,0.004739549,0.005415949,0.006148601,0.004770517,0.004151168,0.005382066,0.006144775,0.006123077,0.007029073,0.007017956,0.005817167,0.005978327,0.004426908,0.004573255,0.005742944,0.003576634,0.004641251,0.006109734,0.005791606,0.004785622,0.004982323,0.005155476,0.007830516,0.01141263,0.017018114,0.019603188,0.019809039,0.018712273,0.01761947,0.018339031,0.019356053,0.021429909,0.024919498,0.025520175,0.024393584,0.021993435,0.019250569,0.018275924,0.019337879,0.020720513,0.021182616,0.021316416,0.020814258,0.020669903,0.019608015,0.018436087,0.017317645,0.016474424,0.016678897,0.016782613,0.016069424,0.014987229,0.012898525,0.011895854,0.009183843,0.008326593,0.009765962,0.011576439,0.012515979,0.013192033,0.014675256,0.014706305,0.014585305,0.015301955,0.016725044,0.017017522,0.017479796,0.018297195,0.018406176,0.01795605,0.018227346
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,37,4,12,11.31361904,0.000001,0.987274,0.000002,0.000430,0.012293,0.006566867,0.004734812,0.005697657,0.00652867,0.004612874,0.003404893,0.00638479,0.005385316,0.003653006,0.005058099,0.006585135,0.007649759,0.004916143,0.003644358,0.005002611,0.005694305,0.004917755,0.00641662,0.006805521,0.004925947,0.004099626,0.002929515,0.004007987,0.004464129,0.001895792,0.003419676,0.006703751,0.007033285,0.004871091,0.003556991,0.003820167,0.006607655,0.01079287,0.016078993,0.01896057,0.020255839,0.01907647,0.017073124,0.017446691,0.019554744,0.021887625,0.025047592,0.026329912,0.026298162,0.023851474,0.020417384,0.018758585,0.019785652,0.020628377,0.021295268,0.021430524,0.020593813,0.020446155,0.020191784,0.018943262,0.017672394,0.016848415,0.016016719,0.015514437,0.015840394,0.015494894,0.013409678,0.012196519,0.009661655,0.00875592,0.009430877,0.010972011,0.012029018,0.013546632,0.01514648,0.015019204,0.014819337,0.015368332,0.016120722,0.016738662,0.017986,0.01903813,0.019011467,0.018086216,0.018136213
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,38,4,11,11.22125228,0.000001,0.997220,0.000000,0.000005,0.002774,0.005002798,0.004348398,0.004685281,0.006168839,0.004491526,0.003695139,0.006682982,0.00600214,0.005354873,0.005911868,0.006730472,0.006496906,0.004303985,0.002633665,0.003373895,0.006103217,0.006555791,0.00603619,0.005695873,0.004437268,0.002086636,0.002662704,0.004066515,0.00436359,0.002047785,0.002541992,0.00729535,0.008189151,0.00714937,0.006670837,0.00646129,0.008843878,0.014912051,0.021766506,0.025554209,0.025838935,0.02321931,0.019642881,0.019800475,0.021875594,0.023526083,0.026209351,0.027859343,0.026625632,0.022648618,0.0178794,0.01607444,0.016950803,0.017837038,0.019186235,0.020535877,0.020996535,0.021106634,0.019911572,0.017210689,0.014414312,0.011907416,0.010086638,0.0091811,0.009705957,0.009207163,0.009673494,0.00945107,0.006915453,0.00723649,0.010330004,0.014111942,0.01581996,0.016607751,0.017616686,0.018254223,0.018797619,0.019152039,0.018982752,0.018791304,0.018381487,0.01710286,0.015198774,0.014441347,0.014373742
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,39,4,7,13.37060723,0.000005,0.997152,0.000000,0.000013,0.002829,0.0068099,0.006728894,0.006146003,0.00698426,0.006299385,0.00511478,0.006512322,0.007239011,0.008184554,0.006881857,0.006209242,0.005164023,0.002915434,0.001191435,0.002908626,0.006226096,0.005929342,0.005763705,0.006935182,0.006021875,0.002749912,0.004153269,0.005434548,0.004912152,0.00358952,0.004249235,0.007891023,0.009076633,0.008703203,0.007842739,0.007272375,0.009435224,0.015681969,0.021701318,0.024569377,0.024958253,0.023120902,0.019916863,0.019287172,0.021502811,0.022614616,0.023353884,0.024157841,0.022900695,0.019595876,0.016319394,0.015460776,0.016937835,0.017737883,0.019337943,0.020719612,0.021382799,0.021153132,0.019281769,0.016330962,0.013728972,0.011028924,0.008598116,0.007212477,0.00754509,0.006368365,0.007584992,0.007888624,0.005675012,0.006184618,0.009833326,0.013796454,0.015079388,0.016865724,0.018782039,0.019645137,0.020270677,0.020557087,0.019939233,0.020136349,0.020046049,0.018038785,0.015643823,0.015399691,0.014651606
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,40,4,6,13.22034625,0.000003,0.999382,0.000000,0.000042,0.000573,0.006956479,0.00674567,0.005786171,0.006918724,0.007363705,0.007053998,0.007419925,0.008081919,0.009495817,0.007953531,0.006973938,0.005784066,0.003575663,0.002486615,0.003727295,0.006638388,0.006306839,0.006121681,0.006903707,0.005510038,0.001905677,0.003763474,0.005017162,0.004347082,0.00325668,0.004142389,0.007755286,0.008575337,0.00785698,0.007193411,0.00727456,0.00842216,0.014366259,0.020787458,0.023883051,0.024366991,0.022547986,0.019430662,0.01900966,0.021153741,0.02205066,0.022829446,0.023961846,0.023001024,0.020080971,0.017102952,0.015891122,0.017326942,0.018012253,0.019361988,0.02050456,0.021057425,0.020832832,0.01895868,0.016008326,0.013287151,0.010141955,0.007396425,0.006073026,0.006630631,0.005193221,0.006658176,0.00743759,0.005960982,0.007416833,0.010954359,0.015378362,0.017812066,0.019808257,0.020465969,0.020625765,0.020747229,0.02057334,0.019465927,0.019456828,0.019279984,0.017036606,0.014454861,0.014355777,0.01354748
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,41,4,3,18.96515322,0.000407,0.999097,0.000001,0.000143,0.000352,0.007367413,0.008285896,0.007426953,0.008379004,0.007337183,0.007544017,0.007849129,0.008100927,0.010779818,0.0092404,0.007134879,0.005763302,0.005420114,0.004518209,0.004904916,0.008756243,0.009299409,0.007935666,0.007744064,0.00723432,0.004425274,0.007357255,0.007430646,0.006895322,0.006965248,0.007006001,0.009281543,0.009667524,0.010530648,0.012105715,0.012068174,0.012079596,0.015893579,0.020925724,0.023463235,0.023715634,0.021891949,0.01971332,0.019588223,0.01910784,0.017705115,0.017084067,0.017944819,0.016910436,0.014329191,0.012751304,0.012896724,0.015415181,0.017944588,0.019122336,0.01967044,0.020136446,0.019825296,0.017943775,0.015090431,0.012483886,0.009185464,0.007976635,0.007667505,0.006862867,0.003897764,0.005722838,0.006725064,0.004139946,0.006230328,0.011988779,0.017326455,0.019692931,0.020331757,0.020317239,0.020359431,0.020236468,0.019886825,0.019623562,0.018863529,0.016845775,0.013398188,0.010467967,0.011850757,0.012013583
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,42,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,43,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,44,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,45,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,46,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,47,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,48,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,49,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,50,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,51,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,52,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,53,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,54,4,3,20.41886963,0.000002,0.815750,0.000000,0.168870,0.015377,0.009640026,0.010028871,0.006559854,0.004835385,0.007136989,0.008242652,0.008743466,0.007948083,0.007632809,0.006964622,0.007358792,0.006970867,0.005075107,0.005534198,0.006026174,0.007043847,0.006827318,0.007125413,0.00855641,0.007333937,0.003298602,0.004179954,0.007605955,0.006163751,0.006475189,0.007803252,0.007828014,0.007307689,0.00664528,0.004930173,0.002603108,0.004494046,0.007086686,0.009092001,0.01385937,0.017064513,0.014801921,0.012508941,0.012747087,0.012097618,0.011817185,0.012609031,0.014158298,0.019052418,0.020208262,0.016183382,0.013568098,0.010773257,0.009794452,0.008578965,0.009201883,0.010334784,0.012843371,0.017030231,0.019746514,0.016477438,0.013798021,0.012140485,0.013428253,0.01719254,0.018158698,0.014013981,0.010565079,0.011792379,0.016160411,0.020585583,0.025084391,0.025622322,0.022535382,0.019602261,0.018178557,0.019292642,0.021334853,0.024137256,0.026550723,0.026854408,0.024869542,0.02298796,0.020750278,0.017808457
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,55,4,7,15.13832213,0.000000,0.309261,0.000000,0.688674,0.002065,0.008143789,0.008335313,0.005046197,0.005085569,0.00525128,0.005733515,0.006582163,0.005286886,0.005059785,0.003786028,0.003404703,0.003291815,0.002546534,0.00372906,0.004009611,0.00471625,0.004959901,0.003887915,0.005732753,0.004701651,0.003557004,0.0027196,0.003306702,0.002628947,0.00259881,0.0021187,0.00393146,0.003372566,0.002280653,0.002324287,0.001504455,0.001963881,0.003491851,0.00642363,0.013368043,0.016565731,0.011904221,0.008570723,0.008877767,0.010576899,0.012292894,0.01344411,0.015764644,0.021272365,0.021501727,0.015954057,0.012891,0.009819473,0.00980823,0.010865054,0.012847662,0.013857598,0.015680792,0.018593806,0.020072839,0.0163945,0.013492248,0.013526796,0.016931269,0.022799261,0.024011263,0.018404669,0.012569091,0.011012586,0.013170549,0.018052228,0.024911483,0.028105879,0.028508725,0.026645068,0.024282076,0.022838759,0.022917417,0.026083159,0.029614159,0.032787546,0.032600251,0.030716336,0.028022466,0.025559317
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,56,4,15,14.94141042,0.000000,0.728111,0.000000,0.237778,0.034111,0.007417245,0.007600104,0.004983696,0.004930824,0.005729231,0.006200322,0.005587819,0.00491164,0.004951933,0.004737824,0.002776822,0.001834901,0.002345782,0.003732255,0.003933094,0.003819786,0.004410177,0.004337478,0.00555623,0.004935983,0.004237881,0.003578686,0.004584022,0.004043643,0.002699226,0.002031586,0.00353915,0.003012243,0.001686731,0.002877597,0.002744253,0.002957571,0.003543207,0.005348651,0.009241244,0.011475968,0.011407285,0.010770429,0.011747574,0.013654942,0.013910587,0.012510569,0.012036535,0.015614553,0.017273123,0.016660872,0.016543241,0.015902449,0.015613772,0.015511432,0.016080256,0.015897942,0.016688766,0.019060423,0.020810265,0.019769679,0.018613164,0.017466226,0.018706455,0.022147291,0.023587399,0.019606427,0.01567004,0.014368376,0.013766023,0.014502904,0.017702891,0.019877512,0.0223684,0.023401817,0.023964432,0.024518679,0.023821921,0.025598549,0.028455984,0.030918609,0.030938368,0.029072611,0.026303006,0.024823418
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,57,4,35,12.20465881,0.000000,0.004123,0.000000,0.995877,0.000000,0.005349264,0.005900284,0.003936938,0.00410848,0.004926589,0.004844476,0.003944635,0.003149142,0.003901333,0.003837164,0.002685888,0.002382394,0.002361785,0.003734776,0.003524048,0.003251751,0.003256207,0.003187834,0.004643659,0.004331364,0.003351122,0.002278533,0.003017651,0.002576642,0.001410503,0.001064459,0.001512154,0.001895655,0.001739974,0.001860041,0.002774446,0.002392858,0.000884661,0.002528072,0.004735456,0.00652963,0.011220786,0.015018794,0.016957145,0.018244383,0.01747447,0.013471758,0.012176445,0.014165353,0.015858391,0.020362746,0.024001345,0.025785504,0.025025685,0.023548602,0.021518989,0.020130896,0.018198793,0.016775696,0.016344218,0.017786867,0.022607399,0.025182879,0.027346237,0.027929503,0.025920184,0.018436714,0.012482404,0.011521356,0.009998563,0.010031233,0.013571917,0.018029285,0.022166615,0.024109318,0.023342331,0.021361517,0.022282825,0.02449649,0.024401301,0.026065664,0.028811099,0.027759758,0.025334376,0.024934299
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,58,4,36,12.43211873,0.000000,0.002559,0.000000,0.997441,0.000000,0.005685713,0.006329454,0.004547783,0.004476202,0.005063568,0.005219862,0.004302875,0.003482302,0.0040649,0.004198406,0.003289826,0.003069035,0.00304433,0.004419114,0.004104038,0.003618347,0.003561632,0.003337715,0.004675464,0.00445888,0.004127198,0.003265468,0.003036381,0.002654591,0.002147485,0.001953514,0.002219724,0.002284184,0.002186793,0.002054916,0.003059499,0.002944284,0.001116121,0.00246357,0.004603081,0.005941182,0.010302881,0.014442175,0.016719994,0.018073111,0.017160556,0.01329163,0.011931726,0.013399445,0.014846878,0.019128759,0.022693653,0.025150421,0.02521411,0.024701996,0.023052805,0.021461563,0.018895233,0.016732988,0.015788131,0.017070915,0.021708914,0.024960678,0.027202764,0.027771577,0.025957036,0.018825426,0.012519375,0.011297907,0.009861928,0.009409593,0.012446678,0.017021315,0.021282698,0.023434017,0.023124554,0.021247997,0.022094859,0.02412303,0.023648579,0.025279538,0.028262081,0.027422448,0.025165928,0.024864674
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,59,4,37,11.53052199,0.000000,0.001372,0.000000,0.998628,0.000000,0.005013177,0.005451666,0.003924331,0.00356726,0.004382997,0.004768867,0.003803445,0.002863863,0.003470969,0.003582486,0.00268148,0.002426054,0.002371932,0.003239405,0.003357359,0.003133115,0.003252546,0.003078406,0.004135557,0.003673739,0.003069276,0.002995255,0.002749294,0.002168035,0.001535097,0.001742074,0.001851454,0.001701879,0.00164823,0.001473467,0.002293687,0.00253527,0.000947469,0.001965294,0.003645923,0.004486689,0.009637306,0.014594488,0.017569179,0.018793587,0.017228601,0.012703784,0.010908883,0.011288811,0.013005787,0.018665353,0.023088488,0.026402865,0.027150309,0.026611245,0.024605023,0.022683718,0.019297574,0.016840999,0.015762689,0.017269956,0.022494976,0.026156661,0.028722061,0.029072677,0.02729957,0.020118921,0.01378053,0.012683506,0.010873319,0.009441312,0.0114265,0.015506351,0.019621692,0.0221795,0.022596079,0.0217434,0.0237594,0.025874472,0.025236607,0.026337921,0.029266213,0.028812809,0.027012972,0.026886857
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,60,4,33,10.70381013,0.000000,0.001267,0.000000,0.998733,0.000000,0.004492723,0.004529178,0.00321062,0.002338499,0.003220309,0.003584347,0.003032761,0.002058009,0.002346754,0.001782542,0.002325362,0.003024209,0.00233996,0.002931346,0.002718796,0.003187114,0.003393105,0.00242816,0.004065726,0.003559295,0.00296826,0.002648959,0.001636779,0.001268263,0.001379765,0.00205533,0.001521163,0.001471555,0.001946573,0.00074097,0.001981885,0.002606342,0.001278703,0.003033134,0.005344417,0.005584979,0.01017997,0.015540892,0.018702664,0.019275124,0.017717454,0.013611782,0.012605854,0.01223021,0.013267382,0.018998505,0.023575084,0.026817611,0.027171877,0.026953017,0.024739745,0.022784926,0.019333353,0.016267216,0.014385834,0.016007903,0.022650477,0.028087075,0.031387249,0.0309893,0.028253182,0.020235859,0.012991541,0.011553181,0.010380937,0.009754808,0.011830971,0.01621582,0.019707106,0.021669243,0.021409617,0.020246201,0.023590635,0.026371616,0.024959138,0.025708573,0.029115903,0.028938667,0.027804013,0.027946593
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,61,4,12,13.30393541,0.000000,0.193783,0.000000,0.727709,0.078508,0.00674965,0.006088774,0.005506483,0.003318694,0.003548404,0.004672032,0.005092688,0.004231705,0.002733643,0.001256341,0.003055571,0.004260633,0.003772771,0.003610013,0.004072239,0.005254889,0.006441812,0.004780212,0.006084425,0.004666841,0.004862153,0.005998371,0.003493353,0.003120946,0.004405926,0.005861693,0.00526368,0.003513515,0.003420081,0.002287634,0.002623375,0.005256785,0.006808681,0.008372074,0.012021396,0.010464212,0.008703545,0.010456565,0.013631957,0.014018245,0.012995923,0.012070795,0.012254287,0.010392793,0.010695678,0.011509625,0.012343474,0.014476278,0.01672863,0.019677229,0.02056351,0.01954206,0.017913341,0.017935264,0.01743169,0.016327776,0.016497211,0.020128777,0.023232765,0.025086776,0.02621985,0.023605103,0.018901715,0.016309255,0.016257935,0.014893155,0.013548395,0.014245208,0.014847075,0.016114647,0.018850008,0.022053359,0.025739778,0.028004998,0.028731379,0.029335175,0.029890651,0.030025829,0.030525952,0.030314642
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,62,4,9,14.73836895,0.000000,0.541751,0.000000,0.083076,0.375172,0.007049878,0.005120085,0.004920378,0.003567622,0.004173096,0.0048676,0.005229928,0.004651621,0.003689314,0.001714587,0.002802083,0.004035434,0.004020743,0.003051741,0.003635231,0.005832899,0.007628106,0.005562034,0.00675986,0.005700926,0.005985101,0.006525115,0.0046473,0.004735567,0.004386617,0.005115666,0.005256318,0.004295861,0.004029987,0.00401384,0.004822362,0.006324673,0.008639633,0.010801205,0.013908482,0.012233194,0.01082163,0.011267687,0.013534054,0.013950851,0.013411443,0.012774494,0.013145052,0.010805262,0.010892393,0.012690774,0.013967168,0.014633213,0.015345482,0.016870497,0.017135949,0.016433266,0.015955944,0.016943306,0.016688669,0.016543407,0.018056946,0.020531501,0.02322201,0.024118281,0.024807365,0.022777501,0.019794405,0.017363403,0.016024846,0.015009724,0.013505844,0.013173315,0.013721516,0.014802635,0.016723867,0.02027244,0.024221648,0.026416593,0.02778015,0.028199711,0.028249089,0.028416414,0.02946102,0.029805147
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,63,4,4,17.54566663,0.000073,0.716818,0.000080,0.001763,0.281266,0.008078267,0.006004943,0.005283565,0.002930851,0.004610219,0.004864237,0.00477538,0.005292442,0.003622925,0.001403207,0.003931537,0.006135862,0.005701034,0.006011126,0.004513624,0.006740539,0.00845155,0.006085176,0.008921505,0.008741017,0.008901866,0.007005915,0.005707714,0.006623332,0.006868793,0.007621452,0.006360409,0.006201088,0.006393463,0.005058585,0.00705453,0.008661424,0.011018582,0.014867918,0.018178164,0.016661823,0.01540686,0.015425198,0.015983598,0.014970979,0.014853006,0.015396324,0.0162587,0.015191181,0.014886823,0.015794042,0.016270935,0.015173933,0.011739468,0.012017315,0.011839376,0.011546988,0.014229325,0.016576935,0.016848072,0.018013901,0.020522206,0.022171369,0.022224883,0.020312486,0.019924275,0.01868753,0.016773533,0.014479382,0.014475937,0.01509916,0.013595913,0.013208431,0.013131223,0.013498881,0.014799428,0.017752436,0.020074503,0.022138942,0.022555431,0.022695973,0.022559043,0.021416444,0.021867994,0.022327574
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,64,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,65,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,66,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,67,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,68,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,69,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,70,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,71,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,72,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,73,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,74,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,75,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,76,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,77,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,78,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,79,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,80,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,81,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,82,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,83,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,84,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,85,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,86,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,87,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,88,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,89,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,90,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,91,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,92,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,93,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,94,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,95,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,96,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,97,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,98,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,99,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,100,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,101,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,102,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,103,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,104,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,105,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,106,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,107,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,108,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,109,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,110,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,111,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,112,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,113,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,114,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,115,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,116,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,117,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,118,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,119,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,120,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,121,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,122,4,3,20.28114831,0.000000,0.968107,0.000001,0.000073,0.031819,0.008481208,0.007267937,0.008093628,0.010995826,0.009578554,0.009477686,0.010079606,0.009601551,0.009133557,0.006199112,0.006449285,0.00832631,0.008205877,0.008944182,0.008559578,0.007674549,0.006355588,0.007851341,0.007209153,0.005631625,0.002819511,0.002346299,0.002241918,0.003620184,0.005191686,0.00363431,0.004249042,0.00499322,0.0062713,0.009057567,0.008405222,0.009462508,0.013597954,0.01692631,0.018648795,0.017833592,0.015833619,0.012579136,0.010394578,0.014757516,0.018624479,0.021346005,0.021463406,0.019069665,0.014927856,0.011337968,0.008979191,0.007751702,0.009086079,0.012583392,0.01726251,0.018440354,0.016553639,0.015138281,0.014839827,0.013155538,0.01065084,0.009740008,0.00962161,0.010387995,0.014109942,0.017356798,0.019667836,0.02075813,0.020347978,0.019328914,0.019224582,0.019196906,0.01865697,0.018101235,0.017625276,0.017443961,0.018378273,0.019547852,0.019750869,0.019393042,0.018701927,0.017859762,0.018156053,0.018452935
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,123,4,3,20.28114831,0.000000,0.968107,0.000001,0.000073,0.031819,0.008481208,0.007267937,0.008093628,0.010995826,0.009578554,0.009477686,0.010079606,0.009601551,0.009133557,0.006199112,0.006449285,0.00832631,0.008205877,0.008944182,0.008559578,0.007674549,0.006355588,0.007851341,0.007209153,0.005631625,0.002819511,0.002346299,0.002241918,0.003620184,0.005191686,0.00363431,0.004249042,0.00499322,0.0062713,0.009057567,0.008405222,0.009462508,0.013597954,0.01692631,0.018648795,0.017833592,0.015833619,0.012579136,0.010394578,0.014757516,0.018624479,0.021346005,0.021463406,0.019069665,0.014927856,0.011337968,0.008979191,0.007751702,0.009086079,0.012583392,0.01726251,0.018440354,0.016553639,0.015138281,0.014839827,0.013155538,0.01065084,0.009740008,0.00962161,0.010387995,0.014109942,0.017356798,0.019667836,0.02075813,0.020347978,0.019328914,0.019224582,0.019196906,0.01865697,0.018101235,0.017625276,0.017443961,0.018378273,0.019547852,0.019750869,0.019393042,0.018701927,0.017859762,0.018156053,0.018452935
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,124,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,125,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,126,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,127,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,128,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,129,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,130,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,131,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,132,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,133,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,134,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,135,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,136,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,137,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,138,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,139,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,140,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,141,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,142,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,143,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,144,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,145,4,3,23.5818428,0.000070,0.972885,0.000270,0.000133,0.026642,0.009222771,0.009660355,0.008995888,0.010426419,0.011368754,0.011118309,0.00936622,0.008138199,0.010272534,0.01011709,0.008144321,0.004540743,0.004814015,0.007280157,0.009042908,0.01074764,0.011652335,0.011902921,0.01073633,0.008964895,0.010351931,0.009714063,0.007937948,0.008877708,0.008477063,0.005698715,0.005247471,0.006246599,0.005879262,0.003589238,0.004752403,0.006540576,0.008643738,0.012090186,0.01530966,0.016016589,0.013898216,0.010819653,0.010672886,0.012362962,0.014541818,0.015962594,0.017236092,0.017984324,0.017511096,0.015872769,0.015084758,0.014166619,0.013288672,0.013329849,0.013525986,0.013268583,0.012597044,0.013359798,0.01253662,0.011532479,0.011510583,0.009864743,0.008287869,0.01152445,0.014388948,0.014634189,0.014470753,0.016771823,0.019145186,0.019641895,0.018859358,0.017048211,0.017823247,0.017598811,0.016869254,0.017319808,0.01787883,0.019798117,0.020381421,0.019642228,0.018222741,0.017937224,0.018758897,0.020182637
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,146,4,3,23.5818428,0.000070,0.972885,0.000270,0.000133,0.026642,0.009222771,0.009660355,0.008995888,0.010426419,0.011368754,0.011118309,0.00936622,0.008138199,0.010272534,0.01011709,0.008144321,0.004540743,0.004814015,0.007280157,0.009042908,0.01074764,0.011652335,0.011902921,0.01073633,0.008964895,0.010351931,0.009714063,0.007937948,0.008877708,0.008477063,0.005698715,0.005247471,0.006246599,0.005879262,0.003589238,0.004752403,0.006540576,0.008643738,0.012090186,0.01530966,0.016016589,0.013898216,0.010819653,0.010672886,0.012362962,0.014541818,0.015962594,0.017236092,0.017984324,0.017511096,0.015872769,0.015084758,0.014166619,0.013288672,0.013329849,0.013525986,0.013268583,0.012597044,0.013359798,0.01253662,0.011532479,0.011510583,0.009864743,0.008287869,0.01152445,0.014388948,0.014634189,0.014470753,0.016771823,0.019145186,0.019641895,0.018859358,0.017048211,0.017823247,0.017598811,0.016869254,0.017319808,0.01787883,0.019798117,0.020381421,0.019642228,0.018222741,0.017937224,0.018758897,0.020182637
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,147,4,4,19.0951844,0.000016,0.975064,0.000112,0.000028,0.024780,0.007439882,0.008640393,0.007968963,0.009094201,0.009299037,0.009810438,0.008775744,0.00719943,0.008866134,0.008429907,0.006698506,0.004071012,0.003228212,0.006025383,0.007346537,0.009414155,0.009905567,0.010126756,0.009326965,0.007694084,0.009338718,0.008959429,0.006905136,0.007802083,0.006925079,0.004805227,0.005135805,0.006179794,0.004845614,0.002195137,0.004442394,0.007255148,0.009782102,0.013118365,0.016451826,0.017587148,0.015531518,0.012222019,0.01084239,0.01203778,0.015554049,0.018794261,0.020022308,0.018782225,0.015613813,0.015410767,0.0156474,0.01444474,0.012292526,0.011516996,0.013043064,0.014302905,0.014378678,0.014004851,0.012614376,0.012746383,0.013649849,0.012201485,0.009818387,0.012939303,0.017517067,0.018086415,0.017609226,0.018669714,0.019983531,0.02149732,0.020933217,0.018688466,0.017563466,0.015878379,0.016652283,0.017378343,0.016753777,0.017698485,0.019901051,0.020532158,0.019404617,0.017572033,0.017578145,0.020599925
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,148,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,149,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,150,4,2,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,151,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,152,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,153,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,154,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,155,4,5,12.92686969,0.233149,0.608310,0.053102,0.003719,0.101721,0.006220691,0.008026336,0.0057538,0.006200504,0.007578411,0.006992004,0.008412528,0.009994639,0.01112147,0.011897951,0.011321909,0.011116582,0.010481965,0.007938792,0.007170713,0.009770436,0.010175086,0.00813417,0.007792453,0.010287847,0.010588479,0.009331093,0.009429877,0.010510992,0.011424843,0.011882782,0.011533866,0.010916774,0.011800584,0.013563498,0.014719346,0.015144342,0.015143082,0.015199692,0.015629012,0.016350086,0.017212367,0.018042215,0.01863368,0.018900402,0.018834657,0.018570918,0.018404041,0.018543224,0.018846103,0.019111302,0.019303463,0.019401038,0.01935058,0.019163961,0.018962789,0.018864725,0.018849222,0.018812273,0.01866458,0.018412632,0.018068886,0.01759337,0.017026668,0.016325905,0.015377017,0.014187394,0.012717519,0.011078197,0.009745229,0.008864025,0.008015423,0.00691937,0.006030884,0.006392346,0.007496279,0.007995911,0.008132989,0.00857258,0.008961416,0.008531174,0.006389399,0.004814942,0.007217524,0.009104742
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,156,4,5,12.92686969,0.233149,0.608310,0.053102,0.003719,0.101721,0.006220691,0.008026336,0.0057538,0.006200504,0.007578411,0.006992004,0.008412528,0.009994639,0.01112147,0.011897951,0.011321909,0.011116582,0.010481965,0.007938792,0.007170713,0.009770436,0.010175086,0.00813417,0.007792453,0.010287847,0.010588479,0.009331093,0.009429877,0.010510992,0.011424843,0.011882782,0.011533866,0.010916774,0.011800584,0.013563498,0.014719346,0.015144342,0.015143082,0.015199692,0.015629012,0.016350086,0.017212367,0.018042215,0.01863368,0.018900402,0.018834657,0.018570918,0.018404041,0.018543224,0.018846103,0.019111302,0.019303463,0.019401038,0.01935058,0.019163961,0.018962789,0.018864725,0.018849222,0.018812273,0.01866458,0.018412632,0.018068886,0.01759337,0.017026668,0.016325905,0.015377017,0.014187394,0.012717519,0.011078197,0.009745229,0.008864025,0.008015423,0.00691937,0.006030884,0.006392346,0.007496279,0.007995911,0.008132989,0.00857258,0.008961416,0.008531174,0.006389399,0.004814942,0.007217524,0.009104742
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,157,4,5,12.92686969,0.233149,0.608310,0.053102,0.003719,0.101721,0.006220691,0.008026336,0.0057538,0.006200504,0.007578411,0.006992004,0.008412528,0.009994639,0.01112147,0.011897951,0.011321909,0.011116582,0.010481965,0.007938792,0.007170713,0.009770436,0.010175086,0.00813417,0.007792453,0.010287847,0.010588479,0.009331093,0.009429877,0.010510992,0.011424843,0.011882782,0.011533866,0.010916774,0.011800584,0.013563498,0.014719346,0.015144342,0.015143082,0.015199692,0.015629012,0.016350086,0.017212367,0.018042215,0.01863368,0.018900402,0.018834657,0.018570918,0.018404041,0.018543224,0.018846103,0.019111302,0.019303463,0.019401038,0.01935058,0.019163961,0.018962789,0.018864725,0.018849222,0.018812273,0.01866458,0.018412632,0.018068886,0.01759337,0.017026668,0.016325905,0.015377017,0.014187394,0.012717519,0.011078197,0.009745229,0.008864025,0.008015423,0.00691937,0.006030884,0.006392346,0.007496279,0.007995911,0.008132989,0.00857258,0.008961416,0.008531174,0.006389399,0.004814942,0.007217524,0.009104742
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,158,4,5,12.92686969,0.233149,0.608310,0.053102,0.003719,0.101721,0.006220691,0.008026336,0.0057538,0.006200504,0.007578411,0.006992004,0.008412528,0.009994639,0.01112147,0.011897951,0.011321909,0.011116582,0.010481965,0.007938792,0.007170713,0.009770436,0.010175086,0.00813417,0.007792453,0.010287847,0.010588479,0.009331093,0.009429877,0.010510992,0.011424843,0.011882782,0.011533866,0.010916774,0.011800584,0.013563498,0.014719346,0.015144342,0.015143082,0.015199692,0.015629012,0.016350086,0.017212367,0.018042215,0.01863368,0.018900402,0.018834657,0.018570918,0.018404041,0.018543224,0.018846103,0.019111302,0.019303463,0.019401038,0.01935058,0.019163961,0.018962789,0.018864725,0.018849222,0.018812273,0.01866458,0.018412632,0.018068886,0.01759337,0.017026668,0.016325905,0.015377017,0.014187394,0.012717519,0.011078197,0.009745229,0.008864025,0.008015423,0.00691937,0.006030884,0.006392346,0.007496279,0.007995911,0.008132989,0.00857258,0.008961416,0.008531174,0.006389399,0.004814942,0.007217524,0.009104742
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,159,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,160,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,161,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,162,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,163,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,164,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,165,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,166,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,167,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,168,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,169,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,170,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,171,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,172,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,173,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,174,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,175,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,176,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,177,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,178,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,179,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,180,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,181,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,182,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,183,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,184,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,185,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,186,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,187,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,188,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,189,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,190,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,191,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,192,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,193,4,0,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,194,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,195,4,4,12.51956428,0.057946,0.748460,0.021853,0.010191,0.161550,0.002911719,0.00350914,0.006307069,0.008078172,0.007304614,0.004237207,0.0023327,0.003877557,0.003384699,0.004979839,0.005300322,0.004853516,0.005693305,0.006859038,0.008249482,0.007089815,0.003468407,0.004508834,0.006829655,0.007518427,0.006992411,0.006683763,0.008605091,0.009490363,0.009986735,0.01044832,0.010863435,0.011169697,0.011170199,0.011605864,0.013104292,0.014652028,0.015924393,0.016899735,0.017459301,0.01743421,0.016163855,0.015281896,0.017901121,0.019718813,0.020713738,0.021184977,0.021220441,0.02083616,0.020011665,0.018939693,0.018534953,0.018847118,0.019136185,0.019608794,0.020287897,0.020755617,0.020780315,0.020312114,0.019298474,0.017714265,0.017125622,0.017702781,0.01776941,0.017547023,0.017711003,0.018039682,0.017894462,0.01724126,0.016346657,0.015498661,0.014703241,0.013627473,0.011998201,0.010162345,0.009340609,0.009335968,0.008978209,0.008141558,0.007737223,0.00829487,0.00888277,0.009049035,0.009561671,0.010278825
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,196,4,8,13.44523815,0.159350,0.428536,0.091355,0.011010,0.309749,0.004184995,0.004848172,0.005809845,0.006163274,0.006162725,0.004480667,0.003104188,0.003092449,0.003118428,0.004698191,0.005065976,0.004948582,0.005602707,0.006468994,0.00721142,0.006620544,0.005096566,0.006039817,0.007661242,0.008537441,0.009025107,0.009502476,0.010597248,0.010991752,0.011216999,0.011561,0.011967717,0.012321568,0.012555381,0.01304223,0.014064742,0.01510645,0.015950395,0.016558,0.016905394,0.017002767,0.016607251,0.016407662,0.01772766,0.018624015,0.019167014,0.019532819,0.019712379,0.019660883,0.019376638,0.018978913,0.018872718,0.019040036,0.01913644,0.019288855,0.019547254,0.019734092,0.019729882,0.019489921,0.018957681,0.018096034,0.01763329,0.017694831,0.017551587,0.017283126,0.017146578,0.017027104,0.016654209,0.016010087,0.015173063,0.014233786,0.013220512,0.012082318,0.010791337,0.009568848,0.008900725,0.008688293,0.00847748,0.008196964,0.008281309,0.009035783,0.009804024,0.010176877,0.010510592,0.010883677
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,197,4,11,12.16072966,0.209185,0.423218,0.099278,0.005254,0.263065,0.005428691,0.005765205,0.006143651,0.005498495,0.005712526,0.00457687,0.003684677,0.004067112,0.004273399,0.005826421,0.006559571,0.006773341,0.007328996,0.007882817,0.00833611,0.007690928,0.006247271,0.006925009,0.008433219,0.009523116,0.010229682,0.01079228,0.011768814,0.012085258,0.011971,0.0119085,0.012752473,0.013544191,0.013941583,0.014369474,0.015135222,0.015960268,0.016748409,0.017361942,0.017654542,0.017606473,0.017053209,0.016515611,0.016935655,0.017660799,0.018596507,0.019010296,0.019107664,0.019085275,0.018851962,0.018372555,0.018057729,0.018163113,0.018484079,0.018901029,0.019324406,0.019586558,0.019604574,0.019359756,0.018815114,0.017956854,0.017414278,0.017349002,0.017169863,0.016840802,0.016399237,0.01557759,0.015100762,0.014895477,0.014186583,0.013121381,0.011660053,0.010629476,0.009975641,0.008707782,0.007751805,0.00808303,0.007721608,0.006850688,0.007363713,0.008377074,0.008579395,0.008092426,0.008730458,0.009471593
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,198,4,12,12.82361209,0.200629,0.404911,0.117348,0.005881,0.271231,0.006821248,0.006602415,0.006006835,0.005246423,0.005135832,0.00467021,0.004530257,0.004834942,0.004884781,0.006529,0.007328202,0.006818032,0.007013962,0.00731501,0.007764565,0.007763536,0.007116437,0.007930992,0.009344708,0.010388797,0.010786292,0.011016704,0.011771027,0.011946851,0.011754899,0.011869526,0.012930876,0.013787113,0.014082385,0.014320469,0.014908947,0.015660677,0.016448099,0.017044446,0.017292728,0.017247244,0.016839321,0.016496043,0.016934178,0.017552107,0.018321149,0.018669465,0.018802666,0.018856798,0.018690231,0.018242306,0.017897582,0.017948716,0.018264576,0.018710582,0.019139907,0.019365032,0.019321812,0.019032927,0.018497823,0.017706376,0.017190518,0.017080594,0.016863956,0.016507696,0.016029464,0.015197514,0.014688387,0.014484578,0.013865882,0.012836543,0.011309536,0.010141024,0.009530414,0.008695165,0.007988474,0.008053437,0.007683072,0.00717296,0.0077768,0.00870067,0.008861766,0.008443256,0.009037183,0.009657048
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,199,4,10,12.59106734,0.247869,0.376117,0.107388,0.006517,0.262108,0.006963875,0.006365118,0.005013171,0.003413472,0.003604771,0.004634732,0.005219561,0.005318094,0.005983289,0.00735776,0.007718757,0.006431731,0.006958255,0.00764143,0.007746289,0.008209173,0.00871867,0.009139486,0.009648402,0.01042636,0.011486464,0.012433758,0.012982043,0.013004178,0.012616746,0.012640224,0.013845338,0.01483927,0.015256193,0.015426364,0.015668166,0.016123369,0.016694382,0.017099172,0.017204985,0.0171735,0.01718454,0.017133351,0.016743473,0.016907336,0.017580271,0.017931246,0.018145012,0.018375928,0.018489347,0.01837183,0.01815186,0.018143587,0.018440464,0.018795922,0.019032859,0.019089144,0.018973396,0.018729491,0.01837998,0.017931928,0.017458104,0.017063153,0.016741857,0.01633665,0.015590548,0.014317815,0.013601866,0.013458856,0.012935164,0.011926959,0.010308932,0.009187456,0.008818691,0.008076012,0.007077878,0.007059678,0.006976531,0.006868748,0.007814885,0.008793449,0.008933452,0.008517115,0.00908076,0.009517929
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,200,4,11,14.46336438,0.293794,0.429502,0.044550,0.002297,0.229858,0.007748423,0.006531708,0.004801583,0.004815026,0.005468745,0.006585047,0.007825317,0.008812327,0.009189457,0.008895095,0.008575404,0.008057586,0.008963806,0.009671919,0.009794234,0.010435313,0.010720554,0.010859806,0.011117082,0.011584577,0.012391788,0.012883551,0.013021339,0.012981986,0.01287727,0.013122636,0.014170897,0.015010985,0.015475751,0.015759833,0.015962565,0.016197712,0.01652785,0.016852926,0.017068197,0.017183407,0.017242405,0.017184999,0.01688077,0.017077805,0.017691246,0.018004348,0.01814917,0.018258435,0.018258184,0.018107775,0.017932647,0.017949092,0.0181826,0.018421668,0.018544966,0.018513329,0.018296323,0.017898471,0.01738332,0.016851143,0.01640249,0.016053198,0.015711839,0.01524174,0.014490123,0.013326841,0.012529043,0.012048573,0.011149739,0.009882093,0.008396689,0.007504502,0.007602277,0.007579381,0.007058792,0.006798635,0.00640137,0.006111153,0.006705933,0.006950413,0.006465608,0.005960927,0.007013671,0.007844571
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,201,4,9,15.18346638,0.328008,0.325078,0.040291,0.001883,0.304741,0.007222363,0.005734932,0.00405511,0.005379398,0.005811243,0.006492441,0.007578124,0.008172049,0.008317944,0.00774439,0.007347283,0.006170913,0.007454505,0.008771029,0.00897963,0.009687699,0.010333693,0.010600419,0.010438293,0.010944182,0.011656629,0.011479994,0.011527697,0.011690996,0.01146486,0.012193014,0.01298283,0.013615112,0.014015729,0.01394218,0.014420903,0.014226677,0.014918934,0.016016342,0.016767514,0.017182421,0.017106779,0.017133578,0.017314122,0.01754259,0.017994647,0.018275638,0.018908799,0.019005308,0.018182778,0.01782387,0.017875957,0.018151969,0.018329385,0.018649635,0.018482066,0.018384384,0.018281087,0.018321563,0.018182489,0.017627153,0.016676701,0.016169281,0.015569044,0.015707443,0.015590248,0.014898319,0.014299651,0.013581783,0.012925084,0.012044722,0.0108525,0.009494545,0.008919495,0.00896607,0.008470233,0.007477759,0.006889405,0.00721044,0.007720571,0.007708518,0.00742459,0.007560465,0.008230401,0.008701462
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,202,4,7,16.77507435,0.385612,0.286998,0.047583,0.001358,0.278448,0.007284997,0.005929768,0.004367721,0.005901951,0.006811247,0.007167136,0.00778807,0.00840718,0.008713674,0.007862691,0.00748274,0.007008375,0.008548653,0.01004074,0.010140788,0.010397247,0.01064021,0.010823525,0.010627734,0.011130173,0.011929982,0.011710185,0.011647953,0.011814502,0.011607521,0.012263551,0.012806438,0.013311383,0.01375977,0.013758643,0.014370953,0.014067996,0.014707326,0.015849875,0.016677864,0.017143284,0.016973108,0.016862058,0.016943708,0.017133092,0.017626063,0.017921489,0.018604699,0.018648264,0.017644829,0.017241208,0.017353295,0.017697071,0.017848581,0.018129507,0.017874452,0.017788357,0.017775737,0.017962459,0.017920496,0.017364659,0.016335994,0.015825785,0.01519848,0.015451768,0.015460632,0.014861708,0.014370726,0.013650591,0.012944498,0.0120677,0.011013944,0.009824306,0.009326795,0.009216471,0.008622951,0.007776148,0.00711309,0.007135104,0.00753368,0.007481683,0.007156268,0.007269621,0.007978563,0.008568515
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,203,4,6,17.9366666,0.405886,0.282383,0.084636,0.000895,0.226200,0.007764617,0.006726204,0.005415314,0.007458969,0.008406369,0.007976782,0.008396936,0.008833352,0.008696432,0.007531009,0.007363539,0.007882479,0.009228833,0.010277303,0.010366995,0.010424078,0.010442242,0.010665468,0.010702477,0.011482596,0.012248358,0.01171954,0.011485361,0.011671677,0.011481575,0.012107573,0.012546013,0.013020671,0.013535815,0.013579901,0.014200508,0.013742977,0.01436946,0.015635398,0.016597666,0.017123413,0.016883344,0.01669609,0.016754759,0.016950515,0.017454696,0.017703433,0.018370245,0.018359026,0.017232282,0.016786338,0.016904802,0.017264976,0.017409969,0.017707461,0.017432727,0.017359325,0.017378372,0.01762858,0.017640682,0.01709347,0.016017266,0.01549791,0.014854737,0.015210156,0.015332576,0.014795467,0.014352812,0.013632215,0.012924044,0.012043057,0.010974499,0.009760206,0.009370907,0.00955531,0.009286705,0.008446961,0.007489217,0.007307924,0.007649815,0.007477041,0.006930208,0.006919691,0.007678921,0.008373363
test,PAM_20200918_123234_366.wav,PAM_20200918_123234_366.wav,204,4,1,0,0.000000,0.000000,0.000000,0.000000,0.000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
1 site startrec endrec starttime dur n SNR Dde Ggr Gme Lal Ttr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
2 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 0 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 1 4 4 16.35191824 0.000098 0.979193 0.000081 0.000007 0.020621 0.005069907 0.005253806 0.007566674 0.006775802 0.006469298 0.008056406 0.009046132 0.008351148 0.007888746 0.007958923 0.008388212 0.00716322 0.004672727 0.006759528 0.006305709 0.00606099 0.00786046 0.008258889 0.007057891 0.006424046 0.00569706 0.004693258 0.003695848 0.003726392 0.005251941 0.006311158 0.007569007 0.006503552 0.008916757 0.007104804 0.006489193 0.009254214 0.012101181 0.016200699 0.022042349 0.023739434 0.018740897 0.016529624 0.016330001 0.016388903 0.019278994 0.023902546 0.025794335 0.020241379 0.015466004 0.014523507 0.011985581 0.01232651 0.012130101 0.011962963 0.014117556 0.016544259 0.020772552 0.021042292 0.016748615 0.014304275 0.014328061 0.014487608 0.01599805 0.019139254 0.02240908 0.022361794 0.020080502 0.019292127 0.016792161 0.01724846 0.018088945 0.014976816 0.012119271 0.011949564 0.012609539 0.013334557 0.014558869 0.014790457 0.013790207 0.01115628 0.012455085 0.014204374 0.013275988 0.010736697
4 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 2 4 3 16.42040253 0.000060 0.968242 0.000070 0.000013 0.031615 0.00461354 0.004839571 0.007963229 0.007735814 0.008065378 0.00870563 0.010598393 0.008974944 0.007974109 0.008773356 0.008292091 0.007492244 0.005067324 0.006003788 0.005872915 0.005647414 0.007393435 0.008356517 0.006517856 0.00672012 0.005572206 0.003836513 0.003705629 0.003469967 0.006125255 0.005931975 0.007062724 0.005765261 0.007456384 0.006347531 0.004737318 0.00759338 0.010694536 0.013419816 0.020060793 0.022606224 0.018031503 0.016022755 0.015241598 0.016109766 0.018564858 0.023371941 0.026047799 0.020737061 0.016662863 0.015175734 0.014487548 0.014184351 0.013629966 0.014054705 0.015139668 0.017003807 0.02138977 0.021129371 0.015776871 0.013356169 0.013081114 0.012785746 0.014254148 0.017349184 0.021210928 0.021780295 0.020178048 0.019564947 0.016131944 0.016821427 0.018278012 0.015657175 0.013342433 0.01293362 0.014253077 0.01522274 0.016494672 0.016916564 0.015215598 0.01105458 0.012424849 0.014673272 0.013465771 0.010798573
5 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 3 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 4 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 5 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 6 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 7 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 8 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 9 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 10 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
13 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 11 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
14 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 12 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 13 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 14 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 15 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 16 4 3 17.14642945 0.000001 0.991651 0.000000 0.006282 0.002067 0.006254464 0.006973831 0.008302591 0.008981867 0.007787682 0.006028867 0.008094193 0.009424763 0.00675093 0.003609533 0.004082085 0.002038438 0.00432704 0.005341576 0.004324454 0.003255474 0.003048022 0.002455053 0.003423101 0.003838201 0.003976668 0.004611721 0.002585313 0.003309128 0.005994985 0.004917635 0.002527967 0.003187736 0.005301933 0.005759768 0.007187649 0.007470951 0.012934011 0.018283386 0.01915246 0.014661615 0.010055649 0.01104746 0.010709789 0.011922671 0.015621124 0.021153991 0.024198887 0.022686242 0.018475853 0.017352482 0.017373532 0.015068478 0.014519027 0.015087669 0.015344192 0.016455945 0.017127583 0.015810439 0.011424716 0.008970738 0.011003949 0.010329376 0.010419146 0.013412983 0.015006414 0.014445576 0.016123123 0.019747913 0.023069106 0.025318105 0.025989398 0.025477323 0.024575862 0.023805229 0.023095641 0.02237303 0.021458067 0.020222545 0.019356942 0.01951785 0.019424556 0.018907127 0.018511806 0.017797378
19 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 17 4 3 17.14642945 0.000001 0.991651 0.000000 0.006282 0.002067 0.006254464 0.006973831 0.008302591 0.008981867 0.007787682 0.006028867 0.008094193 0.009424763 0.00675093 0.003609533 0.004082085 0.002038438 0.00432704 0.005341576 0.004324454 0.003255474 0.003048022 0.002455053 0.003423101 0.003838201 0.003976668 0.004611721 0.002585313 0.003309128 0.005994985 0.004917635 0.002527967 0.003187736 0.005301933 0.005759768 0.007187649 0.007470951 0.012934011 0.018283386 0.01915246 0.014661615 0.010055649 0.01104746 0.010709789 0.011922671 0.015621124 0.021153991 0.024198887 0.022686242 0.018475853 0.017352482 0.017373532 0.015068478 0.014519027 0.015087669 0.015344192 0.016455945 0.017127583 0.015810439 0.011424716 0.008970738 0.011003949 0.010329376 0.010419146 0.013412983 0.015006414 0.014445576 0.016123123 0.019747913 0.023069106 0.025318105 0.025989398 0.025477323 0.024575862 0.023805229 0.023095641 0.02237303 0.021458067 0.020222545 0.019356942 0.01951785 0.019424556 0.018907127 0.018511806 0.017797378
20 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 18 4 3 17.14642945 0.000001 0.991651 0.000000 0.006282 0.002067 0.006254464 0.006973831 0.008302591 0.008981867 0.007787682 0.006028867 0.008094193 0.009424763 0.00675093 0.003609533 0.004082085 0.002038438 0.00432704 0.005341576 0.004324454 0.003255474 0.003048022 0.002455053 0.003423101 0.003838201 0.003976668 0.004611721 0.002585313 0.003309128 0.005994985 0.004917635 0.002527967 0.003187736 0.005301933 0.005759768 0.007187649 0.007470951 0.012934011 0.018283386 0.01915246 0.014661615 0.010055649 0.01104746 0.010709789 0.011922671 0.015621124 0.021153991 0.024198887 0.022686242 0.018475853 0.017352482 0.017373532 0.015068478 0.014519027 0.015087669 0.015344192 0.016455945 0.017127583 0.015810439 0.011424716 0.008970738 0.011003949 0.010329376 0.010419146 0.013412983 0.015006414 0.014445576 0.016123123 0.019747913 0.023069106 0.025318105 0.025989398 0.025477323 0.024575862 0.023805229 0.023095641 0.02237303 0.021458067 0.020222545 0.019356942 0.01951785 0.019424556 0.018907127 0.018511806 0.017797378
21 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 19 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 20 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 21 4 4 14.48926457 0.002943 0.952999 0.001842 0.000019 0.042197 0.008995515 0.006224511 0.003694226 0.006764536 0.006779819 0.006043542 0.006929517 0.007949187 0.007117731 0.004610915 0.004293066 0.003046989 0.003620354 0.006833153 0.007233188 0.006815353 0.005580232 0.006724579 0.006356895 0.007128611 0.007656273 0.006328766 0.00726717 0.005587808 0.00385193 0.004455619 0.006800247 0.004364007 0.006232757 0.008818397 0.009126974 0.013443046 0.017844088 0.018368381 0.01758243 0.016677352 0.019628254 0.021794266 0.02107961 0.019511865 0.020618371 0.019295005 0.014493981 0.010923532 0.014300725 0.019042622 0.019864602 0.019563724 0.015112743 0.012246552 0.013264873 0.015932287 0.014864063 0.015418942 0.014500764 0.013240811 0.015089065 0.015510152 0.018011815 0.0186561 0.018394939 0.01895621 0.019988005 0.020537215 0.017649954 0.015644875 0.016629864 0.015597734 0.016336405 0.017969998 0.017500957 0.014741244 0.011531836 0.011405649 0.01238476 0.014628601 0.016529484 0.01675526 0.01490423 0.012800892
24 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 22 4 5 12.37550011 0.000191 0.981966 0.000035 0.001756 0.016052 0.00868842 0.005281273 0.002701143 0.00691129 0.007338648 0.006088033 0.006366143 0.007532272 0.006782003 0.004559064 0.004381249 0.002405907 0.003040075 0.007195978 0.007573596 0.005993723 0.003847721 0.005237627 0.004399379 0.003684683 0.00400771 0.003928739 0.005393435 0.004156725 0.002414723 0.002750131 0.00555258 0.003142615 0.004043881 0.007280601 0.007723566 0.010627638 0.015749249 0.0167375 0.015180955 0.013836491 0.017338571 0.021317416 0.021447483 0.019642144 0.01999247 0.01888787 0.014261481 0.010701252 0.0149466 0.020428863 0.021593187 0.021106909 0.015851858 0.012129406 0.013429549 0.01572639 0.013391099 0.01363575 0.013064868 0.012236879 0.015135068 0.016551017 0.019256104 0.019217605 0.018084043 0.019525943 0.021566946 0.022690314 0.020163166 0.017801651 0.017184809 0.016960826 0.019481911 0.021771586 0.021489526 0.018522304 0.014622405 0.013770223 0.014788942 0.017002425 0.018659149 0.019053726 0.017580649 0.015454851
25 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 23 4 5 12.37550011 0.000191 0.981966 0.000035 0.001756 0.016052 0.00868842 0.005281273 0.002701143 0.00691129 0.007338648 0.006088033 0.006366143 0.007532272 0.006782003 0.004559064 0.004381249 0.002405907 0.003040075 0.007195978 0.007573596 0.005993723 0.003847721 0.005237627 0.004399379 0.003684683 0.00400771 0.003928739 0.005393435 0.004156725 0.002414723 0.002750131 0.00555258 0.003142615 0.004043881 0.007280601 0.007723566 0.010627638 0.015749249 0.0167375 0.015180955 0.013836491 0.017338571 0.021317416 0.021447483 0.019642144 0.01999247 0.01888787 0.014261481 0.010701252 0.0149466 0.020428863 0.021593187 0.021106909 0.015851858 0.012129406 0.013429549 0.01572639 0.013391099 0.01363575 0.013064868 0.012236879 0.015135068 0.016551017 0.019256104 0.019217605 0.018084043 0.019525943 0.021566946 0.022690314 0.020163166 0.017801651 0.017184809 0.016960826 0.019481911 0.021771586 0.021489526 0.018522304 0.014622405 0.013770223 0.014788942 0.017002425 0.018659149 0.019053726 0.017580649 0.015454851
26 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 24 4 4 13.16246135 0.000005 0.480398 0.000000 0.517373 0.002225 0.009736343 0.00569875 0.001728656 0.005924739 0.007306504 0.006601084 0.006690848 0.008888172 0.007926465 0.005169132 0.005493003 0.003733136 0.004888699 0.007641291 0.006404964 0.00495465 0.003489149 0.003859148 0.002344967 0.002479208 0.004002718 0.003831346 0.004469526 0.002510586 0.001931812 0.002348618 0.004133439 0.002568361 0.002795439 0.005494492 0.006645507 0.007749106 0.011851604 0.012490056 0.01108735 0.011224208 0.01632321 0.020326098 0.021179306 0.018566485 0.01767993 0.016290638 0.011953011 0.010692523 0.016308482 0.022635362 0.024543182 0.022836179 0.016109488 0.012126116 0.013686513 0.014966883 0.011155683 0.011234159 0.010650009 0.009539853 0.012787568 0.014347753 0.017346896 0.017219265 0.01618702 0.018337404 0.02088863 0.022591596 0.020903702 0.019354428 0.019388178 0.021466447 0.024017251 0.026419799 0.025906515 0.02198673 0.01751309 0.016338807 0.018137886 0.02132899 0.021812441 0.022087364 0.020934665 0.017801393
27 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 25 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 26 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
29 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 27 4 3 14.15976347 0.000127 0.911919 0.000002 0.005452 0.082500 0.002477536 0.003146347 0.005618222 0.0055397 0.00466911 0.005354523 0.005963641 0.004869122 0.005981674 0.00819237 0.007560925 0.007329113 0.008565153 0.007421479 0.006260325 0.006458239 0.008267589 0.008989363 0.009012259 0.009579529 0.007094095 0.003624003 0.00248972 0.004093904 0.006591455 0.008022546 0.008982551 0.005616866 0.006015763 0.008425525 0.007802484 0.005983743 0.006463827 0.008847224 0.012672583 0.015985242 0.014158529 0.012510124 0.014443863 0.016039008 0.014282082 0.013271155 0.014328306 0.016154036 0.018921383 0.018457322 0.012355999 0.009976158 0.013014937 0.01352464 0.011772966 0.010821647 0.009318597 0.009500524 0.012649915 0.013925521 0.013440822 0.012334752 0.013809409 0.017096358 0.016684464 0.018632372 0.019388146 0.02042668 0.022667237 0.023480155 0.023946937 0.023791635 0.022357977 0.020035894 0.019548862 0.021624569 0.023057667 0.023044401 0.022426743 0.021348004 0.019307313 0.019698617 0.021000509 0.021456015
30 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 28 4 6 14.94354917 0.000000 0.580585 0.000000 0.019459 0.399956 0.003035254 0.003935339 0.005629617 0.005944196 0.006115236 0.007522775 0.007415606 0.006686289 0.005893753 0.006433873 0.007446015 0.006793143 0.008456043 0.007660992 0.005773271 0.006366888 0.008146861 0.008428084 0.006706278 0.007275682 0.008031357 0.00600324 0.002849871 0.002580821 0.005089588 0.005928256 0.006001028 0.003759515 0.004066959 0.004949076 0.003572264 0.003862083 0.005361699 0.007291431 0.008611334 0.011062571 0.011163303 0.012191655 0.014559895 0.015788196 0.014125445 0.011751001 0.011394688 0.011650672 0.014196125 0.015395301 0.013452659 0.014520583 0.017073161 0.018356154 0.017993758 0.016824173 0.013354307 0.011801163 0.012745848 0.01291605 0.012976287 0.012317279 0.014466132 0.016667097 0.01783768 0.019824931 0.020196483 0.019792345 0.020222297 0.02156908 0.022165462 0.021152774 0.019421186 0.017755868 0.018101536 0.019784049 0.021817247 0.024042485 0.026221821 0.027594434 0.027186722 0.026885828 0.02606328 0.023997272
31 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 29 4 9 14.33696824 0.000000 0.855185 0.000000 0.002465 0.142349 0.003900571 0.004663966 0.00509245 0.004847855 0.005864747 0.007270676 0.007239503 0.006751786 0.006003114 0.006983995 0.0076549 0.00641154 0.007789749 0.007033156 0.004634649 0.005341314 0.00654879 0.007262856 0.006664895 0.006763143 0.006642945 0.00515685 0.002399017 0.002778235 0.004310125 0.005986688 0.006544962 0.003763062 0.00314506 0.004025846 0.003673342 0.003787976 0.005618906 0.007911132 0.008725291 0.013780483 0.015830748 0.016465097 0.016058296 0.015129066 0.01315263 0.011026096 0.01041768 0.010617641 0.012705312 0.015826501 0.015218219 0.015263931 0.015103381 0.016168013 0.015739921 0.013453863 0.011554413 0.009848781 0.009620486 0.010639166 0.011701292 0.012533712 0.013986541 0.013974149 0.015758351 0.018461594 0.020702798 0.022199485 0.023309573 0.024257002 0.024279968 0.023417395 0.022706488 0.021918238 0.021496249 0.020902825 0.021522488 0.023524253 0.025612185 0.026999656 0.027341445 0.027549693 0.027276307 0.025755496
32 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 30 4 10 13.66869782 0.000000 0.861443 0.000000 0.000715 0.137842 0.002936 0.004031963 0.004253501 0.004447095 0.005339625 0.006312469 0.005827992 0.005882215 0.005352051 0.006255983 0.00687816 0.005726398 0.007168422 0.006525703 0.004612415 0.004643604 0.00590469 0.006393716 0.00572341 0.00613994 0.006185078 0.005169545 0.002355165 0.002376871 0.003957946 0.005120743 0.005716209 0.003327534 0.00319712 0.003714165 0.003800708 0.003781969 0.005266913 0.008035118 0.008862372 0.01420134 0.017050083 0.017639052 0.01660086 0.015483902 0.013144919 0.011033863 0.010564193 0.010907839 0.012625974 0.01572053 0.015212934 0.014456105 0.014301306 0.015275878 0.014940008 0.012319079 0.010529844 0.008965642 0.009476061 0.010452709 0.011712221 0.013093 0.014602451 0.014304379 0.015967753 0.018709241 0.021280863 0.023280365 0.024500559 0.025363193 0.025469933 0.024823228 0.024478229 0.023953924 0.023379945 0.022361983 0.022610158 0.024224499 0.026133373 0.027406772 0.027816676 0.028090583 0.027849335 0.02646241
33 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 31 4 7 13.55065335 0.000000 0.818793 0.000000 0.000981 0.180226 0.003231437 0.004529395 0.00364288 0.00396885 0.005721723 0.006828767 0.005810145 0.006428777 0.005094815 0.005349629 0.006583622 0.004987978 0.006520721 0.006129014 0.00385993 0.003808917 0.004791203 0.005162213 0.004155986 0.004495351 0.005784372 0.005983117 0.002363283 0.001606768 0.00272566 0.003748031 0.004159904 0.002269086 0.00187938 0.00146204 0.001896833 0.002763245 0.004731379 0.007668517 0.007015627 0.013311787 0.01843847 0.020123183 0.017631373 0.015189125 0.012581084 0.009944581 0.008727653 0.008340081 0.009529768 0.014351344 0.016597749 0.016644454 0.014920591 0.016116591 0.016479293 0.013056651 0.011139805 0.008728531 0.007937702 0.00876021 0.010868083 0.013461469 0.014976975 0.012918428 0.015589976 0.018701575 0.022147173 0.024604518 0.025314092 0.026194855 0.026123791 0.02524021 0.025433002 0.025796455 0.025183929 0.022652346 0.022316109 0.024718881 0.027856008 0.030276567 0.031888361 0.032102542 0.03110434 0.028821696
34 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 32 4 5 14.85503212 0.000001 0.933641 0.000000 0.000530 0.065828 0.004514242 0.005730502 0.003287131 0.002029472 0.003583453 0.004045851 0.004802421 0.006559843 0.00668401 0.007794879 0.007521578 0.005613224 0.005632983 0.004673896 0.003486706 0.002836533 0.003099328 0.004422088 0.006042313 0.006189122 0.005267257 0.005973525 0.004787166 0.004941928 0.003930266 0.005118005 0.006184132 0.004393041 0.004055847 0.003792571 0.005184539 0.005186504 0.007672759 0.01200074 0.012021945 0.017680773 0.02245716 0.022068641 0.016991908 0.014010692 0.012048338 0.013090151 0.013148204 0.012913647 0.012219129 0.016579732 0.018026353 0.015245472 0.011786735 0.012054014 0.011999034 0.008905219 0.010109241 0.008521868 0.006413629 0.007116449 0.010324888 0.01459262 0.014930482 0.011346164 0.012557061 0.014978397 0.019199731 0.022812502 0.024411928 0.024549958 0.024585289 0.025133289 0.027199397 0.02876486 0.027619315 0.023959346 0.02216923 0.022695517 0.023698075 0.024521768 0.026037652 0.026940509 0.027326195 0.027199637
35 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 33 4 4 17.72752031 0.000004 0.841744 0.000006 0.000795 0.157451 0.005443343 0.006502129 0.004935689 0.004058425 0.004673477 0.002712087 0.002063671 0.005951006 0.007335072 0.006721563 0.005492617 0.004088793 0.004057366 0.004197816 0.00582051 0.004957641 0.005925936 0.006119121 0.006956456 0.00775248 0.008049962 0.00781243 0.007182568 0.007383427 0.006208853 0.005577807 0.004536596 0.004266412 0.006095141 0.006192357 0.006439728 0.007747272 0.011495325 0.018156576 0.019323989 0.017272533 0.018084476 0.017792795 0.016691602 0.017732289 0.018967671 0.02295009 0.022926445 0.020246522 0.017834519 0.017292768 0.017159401 0.015253661 0.01500182 0.015179108 0.016320501 0.016741721 0.016983366 0.014277495 0.012836409 0.011219835 0.011661441 0.01343592 0.013764609 0.012268394 0.011142135 0.011404292 0.01257975 0.013116157 0.013312083 0.014239149 0.016217265 0.017680096 0.019026994 0.020485405 0.020990103 0.020898882 0.02097742 0.020957569 0.020975812 0.021026898 0.021249483 0.021108211 0.020578024 0.019905243
36 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 34 4 7 12.41665751 0.000002 0.935240 0.000002 0.038913 0.025844 0.00707238 0.006036227 0.005478332 0.003878331 0.003192864 0.001535105 0.002238122 0.004212266 0.005133528 0.005010244 0.003773665 0.003688224 0.002096244 0.001926892 0.004053168 0.004057029 0.003117498 0.005794289 0.007644912 0.006302139 0.006524828 0.005037631 0.004531195 0.005132518 0.003351852 0.005224674 0.004015317 0.002884958 0.002366522 0.002644626 0.002904333 0.005090637 0.008846787 0.015113114 0.016711318 0.015979014 0.015973886 0.016362602 0.016755342 0.017923501 0.019965682 0.024012157 0.024021164 0.022656188 0.021291909 0.021138806 0.021065906 0.02285029 0.024445927 0.024514202 0.023923374 0.023281851 0.022853786 0.020628592 0.018358704 0.017332123 0.017415257 0.018486982 0.018874398 0.017268893 0.014495481 0.011646352 0.010986281 0.008428584 0.007849167 0.009141633 0.011178991 0.012913213 0.01521362 0.017114577 0.016672214 0.016089691 0.016784854 0.018475045 0.019334038 0.020636961 0.021874087 0.022394688 0.022550065 0.02221815
37 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 35 4 11 11.66687305 0.000002 0.974577 0.000003 0.001003 0.024415 0.005705324 0.004425374 0.004828356 0.004610666 0.002999734 0.001995331 0.004386742 0.004475098 0.003731847 0.005184754 0.005683513 0.006180584 0.004629844 0.004151098 0.005010473 0.005234681 0.005283705 0.00667147 0.006682078 0.005222765 0.005492122 0.00402054 0.004117499 0.005206414 0.002711036 0.003952539 0.005141288 0.004387325 0.00328802 0.003643947 0.00403721 0.006236678 0.010077589 0.016542344 0.019219222 0.018723025 0.017493466 0.016601467 0.017493472 0.018669776 0.02083521 0.025642668 0.026686815 0.025496253 0.023115106 0.020729392 0.019529553 0.020477764 0.021819685 0.022004673 0.021916009 0.021448985 0.021446701 0.020184602 0.018205481 0.016695821 0.016286388 0.017015211 0.017413806 0.016618233 0.015162137 0.012815848 0.011926807 0.0093661 0.008916915 0.010111711 0.012250959 0.014140064 0.015110601 0.015937846 0.015629015 0.015311959 0.015911798 0.017332424 0.017564841 0.018091366 0.019151398 0.019403688 0.018936476 0.01921128
38 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 36 4 11 12.40862144 0.000006 0.969607 0.000016 0.000261 0.030110 0.006433066 0.005166207 0.006089975 0.006420673 0.004122789 0.002338375 0.004545353 0.004359175 0.003407905 0.004739549 0.005415949 0.006148601 0.004770517 0.004151168 0.005382066 0.006144775 0.006123077 0.007029073 0.007017956 0.005817167 0.005978327 0.004426908 0.004573255 0.005742944 0.003576634 0.004641251 0.006109734 0.005791606 0.004785622 0.004982323 0.005155476 0.007830516 0.01141263 0.017018114 0.019603188 0.019809039 0.018712273 0.01761947 0.018339031 0.019356053 0.021429909 0.024919498 0.025520175 0.024393584 0.021993435 0.019250569 0.018275924 0.019337879 0.020720513 0.021182616 0.021316416 0.020814258 0.020669903 0.019608015 0.018436087 0.017317645 0.016474424 0.016678897 0.016782613 0.016069424 0.014987229 0.012898525 0.011895854 0.009183843 0.008326593 0.009765962 0.011576439 0.012515979 0.013192033 0.014675256 0.014706305 0.014585305 0.015301955 0.016725044 0.017017522 0.017479796 0.018297195 0.018406176 0.01795605 0.018227346
39 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 37 4 12 11.31361904 0.000001 0.987274 0.000002 0.000430 0.012293 0.006566867 0.004734812 0.005697657 0.00652867 0.004612874 0.003404893 0.00638479 0.005385316 0.003653006 0.005058099 0.006585135 0.007649759 0.004916143 0.003644358 0.005002611 0.005694305 0.004917755 0.00641662 0.006805521 0.004925947 0.004099626 0.002929515 0.004007987 0.004464129 0.001895792 0.003419676 0.006703751 0.007033285 0.004871091 0.003556991 0.003820167 0.006607655 0.01079287 0.016078993 0.01896057 0.020255839 0.01907647 0.017073124 0.017446691 0.019554744 0.021887625 0.025047592 0.026329912 0.026298162 0.023851474 0.020417384 0.018758585 0.019785652 0.020628377 0.021295268 0.021430524 0.020593813 0.020446155 0.020191784 0.018943262 0.017672394 0.016848415 0.016016719 0.015514437 0.015840394 0.015494894 0.013409678 0.012196519 0.009661655 0.00875592 0.009430877 0.010972011 0.012029018 0.013546632 0.01514648 0.015019204 0.014819337 0.015368332 0.016120722 0.016738662 0.017986 0.01903813 0.019011467 0.018086216 0.018136213
40 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 38 4 11 11.22125228 0.000001 0.997220 0.000000 0.000005 0.002774 0.005002798 0.004348398 0.004685281 0.006168839 0.004491526 0.003695139 0.006682982 0.00600214 0.005354873 0.005911868 0.006730472 0.006496906 0.004303985 0.002633665 0.003373895 0.006103217 0.006555791 0.00603619 0.005695873 0.004437268 0.002086636 0.002662704 0.004066515 0.00436359 0.002047785 0.002541992 0.00729535 0.008189151 0.00714937 0.006670837 0.00646129 0.008843878 0.014912051 0.021766506 0.025554209 0.025838935 0.02321931 0.019642881 0.019800475 0.021875594 0.023526083 0.026209351 0.027859343 0.026625632 0.022648618 0.0178794 0.01607444 0.016950803 0.017837038 0.019186235 0.020535877 0.020996535 0.021106634 0.019911572 0.017210689 0.014414312 0.011907416 0.010086638 0.0091811 0.009705957 0.009207163 0.009673494 0.00945107 0.006915453 0.00723649 0.010330004 0.014111942 0.01581996 0.016607751 0.017616686 0.018254223 0.018797619 0.019152039 0.018982752 0.018791304 0.018381487 0.01710286 0.015198774 0.014441347 0.014373742
41 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 39 4 7 13.37060723 0.000005 0.997152 0.000000 0.000013 0.002829 0.0068099 0.006728894 0.006146003 0.00698426 0.006299385 0.00511478 0.006512322 0.007239011 0.008184554 0.006881857 0.006209242 0.005164023 0.002915434 0.001191435 0.002908626 0.006226096 0.005929342 0.005763705 0.006935182 0.006021875 0.002749912 0.004153269 0.005434548 0.004912152 0.00358952 0.004249235 0.007891023 0.009076633 0.008703203 0.007842739 0.007272375 0.009435224 0.015681969 0.021701318 0.024569377 0.024958253 0.023120902 0.019916863 0.019287172 0.021502811 0.022614616 0.023353884 0.024157841 0.022900695 0.019595876 0.016319394 0.015460776 0.016937835 0.017737883 0.019337943 0.020719612 0.021382799 0.021153132 0.019281769 0.016330962 0.013728972 0.011028924 0.008598116 0.007212477 0.00754509 0.006368365 0.007584992 0.007888624 0.005675012 0.006184618 0.009833326 0.013796454 0.015079388 0.016865724 0.018782039 0.019645137 0.020270677 0.020557087 0.019939233 0.020136349 0.020046049 0.018038785 0.015643823 0.015399691 0.014651606
42 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 40 4 6 13.22034625 0.000003 0.999382 0.000000 0.000042 0.000573 0.006956479 0.00674567 0.005786171 0.006918724 0.007363705 0.007053998 0.007419925 0.008081919 0.009495817 0.007953531 0.006973938 0.005784066 0.003575663 0.002486615 0.003727295 0.006638388 0.006306839 0.006121681 0.006903707 0.005510038 0.001905677 0.003763474 0.005017162 0.004347082 0.00325668 0.004142389 0.007755286 0.008575337 0.00785698 0.007193411 0.00727456 0.00842216 0.014366259 0.020787458 0.023883051 0.024366991 0.022547986 0.019430662 0.01900966 0.021153741 0.02205066 0.022829446 0.023961846 0.023001024 0.020080971 0.017102952 0.015891122 0.017326942 0.018012253 0.019361988 0.02050456 0.021057425 0.020832832 0.01895868 0.016008326 0.013287151 0.010141955 0.007396425 0.006073026 0.006630631 0.005193221 0.006658176 0.00743759 0.005960982 0.007416833 0.010954359 0.015378362 0.017812066 0.019808257 0.020465969 0.020625765 0.020747229 0.02057334 0.019465927 0.019456828 0.019279984 0.017036606 0.014454861 0.014355777 0.01354748
43 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 41 4 3 18.96515322 0.000407 0.999097 0.000001 0.000143 0.000352 0.007367413 0.008285896 0.007426953 0.008379004 0.007337183 0.007544017 0.007849129 0.008100927 0.010779818 0.0092404 0.007134879 0.005763302 0.005420114 0.004518209 0.004904916 0.008756243 0.009299409 0.007935666 0.007744064 0.00723432 0.004425274 0.007357255 0.007430646 0.006895322 0.006965248 0.007006001 0.009281543 0.009667524 0.010530648 0.012105715 0.012068174 0.012079596 0.015893579 0.020925724 0.023463235 0.023715634 0.021891949 0.01971332 0.019588223 0.01910784 0.017705115 0.017084067 0.017944819 0.016910436 0.014329191 0.012751304 0.012896724 0.015415181 0.017944588 0.019122336 0.01967044 0.020136446 0.019825296 0.017943775 0.015090431 0.012483886 0.009185464 0.007976635 0.007667505 0.006862867 0.003897764 0.005722838 0.006725064 0.004139946 0.006230328 0.011988779 0.017326455 0.019692931 0.020331757 0.020317239 0.020359431 0.020236468 0.019886825 0.019623562 0.018863529 0.016845775 0.013398188 0.010467967 0.011850757 0.012013583
44 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 42 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
45 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 43 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
46 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 44 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
47 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 45 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
48 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 46 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
49 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 47 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
50 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 48 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
51 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 49 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
52 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 50 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
53 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 51 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
54 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 52 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
55 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 53 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
56 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 54 4 3 20.41886963 0.000002 0.815750 0.000000 0.168870 0.015377 0.009640026 0.010028871 0.006559854 0.004835385 0.007136989 0.008242652 0.008743466 0.007948083 0.007632809 0.006964622 0.007358792 0.006970867 0.005075107 0.005534198 0.006026174 0.007043847 0.006827318 0.007125413 0.00855641 0.007333937 0.003298602 0.004179954 0.007605955 0.006163751 0.006475189 0.007803252 0.007828014 0.007307689 0.00664528 0.004930173 0.002603108 0.004494046 0.007086686 0.009092001 0.01385937 0.017064513 0.014801921 0.012508941 0.012747087 0.012097618 0.011817185 0.012609031 0.014158298 0.019052418 0.020208262 0.016183382 0.013568098 0.010773257 0.009794452 0.008578965 0.009201883 0.010334784 0.012843371 0.017030231 0.019746514 0.016477438 0.013798021 0.012140485 0.013428253 0.01719254 0.018158698 0.014013981 0.010565079 0.011792379 0.016160411 0.020585583 0.025084391 0.025622322 0.022535382 0.019602261 0.018178557 0.019292642 0.021334853 0.024137256 0.026550723 0.026854408 0.024869542 0.02298796 0.020750278 0.017808457
57 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 55 4 7 15.13832213 0.000000 0.309261 0.000000 0.688674 0.002065 0.008143789 0.008335313 0.005046197 0.005085569 0.00525128 0.005733515 0.006582163 0.005286886 0.005059785 0.003786028 0.003404703 0.003291815 0.002546534 0.00372906 0.004009611 0.00471625 0.004959901 0.003887915 0.005732753 0.004701651 0.003557004 0.0027196 0.003306702 0.002628947 0.00259881 0.0021187 0.00393146 0.003372566 0.002280653 0.002324287 0.001504455 0.001963881 0.003491851 0.00642363 0.013368043 0.016565731 0.011904221 0.008570723 0.008877767 0.010576899 0.012292894 0.01344411 0.015764644 0.021272365 0.021501727 0.015954057 0.012891 0.009819473 0.00980823 0.010865054 0.012847662 0.013857598 0.015680792 0.018593806 0.020072839 0.0163945 0.013492248 0.013526796 0.016931269 0.022799261 0.024011263 0.018404669 0.012569091 0.011012586 0.013170549 0.018052228 0.024911483 0.028105879 0.028508725 0.026645068 0.024282076 0.022838759 0.022917417 0.026083159 0.029614159 0.032787546 0.032600251 0.030716336 0.028022466 0.025559317
58 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 56 4 15 14.94141042 0.000000 0.728111 0.000000 0.237778 0.034111 0.007417245 0.007600104 0.004983696 0.004930824 0.005729231 0.006200322 0.005587819 0.00491164 0.004951933 0.004737824 0.002776822 0.001834901 0.002345782 0.003732255 0.003933094 0.003819786 0.004410177 0.004337478 0.00555623 0.004935983 0.004237881 0.003578686 0.004584022 0.004043643 0.002699226 0.002031586 0.00353915 0.003012243 0.001686731 0.002877597 0.002744253 0.002957571 0.003543207 0.005348651 0.009241244 0.011475968 0.011407285 0.010770429 0.011747574 0.013654942 0.013910587 0.012510569 0.012036535 0.015614553 0.017273123 0.016660872 0.016543241 0.015902449 0.015613772 0.015511432 0.016080256 0.015897942 0.016688766 0.019060423 0.020810265 0.019769679 0.018613164 0.017466226 0.018706455 0.022147291 0.023587399 0.019606427 0.01567004 0.014368376 0.013766023 0.014502904 0.017702891 0.019877512 0.0223684 0.023401817 0.023964432 0.024518679 0.023821921 0.025598549 0.028455984 0.030918609 0.030938368 0.029072611 0.026303006 0.024823418
59 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 57 4 35 12.20465881 0.000000 0.004123 0.000000 0.995877 0.000000 0.005349264 0.005900284 0.003936938 0.00410848 0.004926589 0.004844476 0.003944635 0.003149142 0.003901333 0.003837164 0.002685888 0.002382394 0.002361785 0.003734776 0.003524048 0.003251751 0.003256207 0.003187834 0.004643659 0.004331364 0.003351122 0.002278533 0.003017651 0.002576642 0.001410503 0.001064459 0.001512154 0.001895655 0.001739974 0.001860041 0.002774446 0.002392858 0.000884661 0.002528072 0.004735456 0.00652963 0.011220786 0.015018794 0.016957145 0.018244383 0.01747447 0.013471758 0.012176445 0.014165353 0.015858391 0.020362746 0.024001345 0.025785504 0.025025685 0.023548602 0.021518989 0.020130896 0.018198793 0.016775696 0.016344218 0.017786867 0.022607399 0.025182879 0.027346237 0.027929503 0.025920184 0.018436714 0.012482404 0.011521356 0.009998563 0.010031233 0.013571917 0.018029285 0.022166615 0.024109318 0.023342331 0.021361517 0.022282825 0.02449649 0.024401301 0.026065664 0.028811099 0.027759758 0.025334376 0.024934299
60 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 58 4 36 12.43211873 0.000000 0.002559 0.000000 0.997441 0.000000 0.005685713 0.006329454 0.004547783 0.004476202 0.005063568 0.005219862 0.004302875 0.003482302 0.0040649 0.004198406 0.003289826 0.003069035 0.00304433 0.004419114 0.004104038 0.003618347 0.003561632 0.003337715 0.004675464 0.00445888 0.004127198 0.003265468 0.003036381 0.002654591 0.002147485 0.001953514 0.002219724 0.002284184 0.002186793 0.002054916 0.003059499 0.002944284 0.001116121 0.00246357 0.004603081 0.005941182 0.010302881 0.014442175 0.016719994 0.018073111 0.017160556 0.01329163 0.011931726 0.013399445 0.014846878 0.019128759 0.022693653 0.025150421 0.02521411 0.024701996 0.023052805 0.021461563 0.018895233 0.016732988 0.015788131 0.017070915 0.021708914 0.024960678 0.027202764 0.027771577 0.025957036 0.018825426 0.012519375 0.011297907 0.009861928 0.009409593 0.012446678 0.017021315 0.021282698 0.023434017 0.023124554 0.021247997 0.022094859 0.02412303 0.023648579 0.025279538 0.028262081 0.027422448 0.025165928 0.024864674
61 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 59 4 37 11.53052199 0.000000 0.001372 0.000000 0.998628 0.000000 0.005013177 0.005451666 0.003924331 0.00356726 0.004382997 0.004768867 0.003803445 0.002863863 0.003470969 0.003582486 0.00268148 0.002426054 0.002371932 0.003239405 0.003357359 0.003133115 0.003252546 0.003078406 0.004135557 0.003673739 0.003069276 0.002995255 0.002749294 0.002168035 0.001535097 0.001742074 0.001851454 0.001701879 0.00164823 0.001473467 0.002293687 0.00253527 0.000947469 0.001965294 0.003645923 0.004486689 0.009637306 0.014594488 0.017569179 0.018793587 0.017228601 0.012703784 0.010908883 0.011288811 0.013005787 0.018665353 0.023088488 0.026402865 0.027150309 0.026611245 0.024605023 0.022683718 0.019297574 0.016840999 0.015762689 0.017269956 0.022494976 0.026156661 0.028722061 0.029072677 0.02729957 0.020118921 0.01378053 0.012683506 0.010873319 0.009441312 0.0114265 0.015506351 0.019621692 0.0221795 0.022596079 0.0217434 0.0237594 0.025874472 0.025236607 0.026337921 0.029266213 0.028812809 0.027012972 0.026886857
62 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 60 4 33 10.70381013 0.000000 0.001267 0.000000 0.998733 0.000000 0.004492723 0.004529178 0.00321062 0.002338499 0.003220309 0.003584347 0.003032761 0.002058009 0.002346754 0.001782542 0.002325362 0.003024209 0.00233996 0.002931346 0.002718796 0.003187114 0.003393105 0.00242816 0.004065726 0.003559295 0.00296826 0.002648959 0.001636779 0.001268263 0.001379765 0.00205533 0.001521163 0.001471555 0.001946573 0.00074097 0.001981885 0.002606342 0.001278703 0.003033134 0.005344417 0.005584979 0.01017997 0.015540892 0.018702664 0.019275124 0.017717454 0.013611782 0.012605854 0.01223021 0.013267382 0.018998505 0.023575084 0.026817611 0.027171877 0.026953017 0.024739745 0.022784926 0.019333353 0.016267216 0.014385834 0.016007903 0.022650477 0.028087075 0.031387249 0.0309893 0.028253182 0.020235859 0.012991541 0.011553181 0.010380937 0.009754808 0.011830971 0.01621582 0.019707106 0.021669243 0.021409617 0.020246201 0.023590635 0.026371616 0.024959138 0.025708573 0.029115903 0.028938667 0.027804013 0.027946593
63 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 61 4 12 13.30393541 0.000000 0.193783 0.000000 0.727709 0.078508 0.00674965 0.006088774 0.005506483 0.003318694 0.003548404 0.004672032 0.005092688 0.004231705 0.002733643 0.001256341 0.003055571 0.004260633 0.003772771 0.003610013 0.004072239 0.005254889 0.006441812 0.004780212 0.006084425 0.004666841 0.004862153 0.005998371 0.003493353 0.003120946 0.004405926 0.005861693 0.00526368 0.003513515 0.003420081 0.002287634 0.002623375 0.005256785 0.006808681 0.008372074 0.012021396 0.010464212 0.008703545 0.010456565 0.013631957 0.014018245 0.012995923 0.012070795 0.012254287 0.010392793 0.010695678 0.011509625 0.012343474 0.014476278 0.01672863 0.019677229 0.02056351 0.01954206 0.017913341 0.017935264 0.01743169 0.016327776 0.016497211 0.020128777 0.023232765 0.025086776 0.02621985 0.023605103 0.018901715 0.016309255 0.016257935 0.014893155 0.013548395 0.014245208 0.014847075 0.016114647 0.018850008 0.022053359 0.025739778 0.028004998 0.028731379 0.029335175 0.029890651 0.030025829 0.030525952 0.030314642
64 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 62 4 9 14.73836895 0.000000 0.541751 0.000000 0.083076 0.375172 0.007049878 0.005120085 0.004920378 0.003567622 0.004173096 0.0048676 0.005229928 0.004651621 0.003689314 0.001714587 0.002802083 0.004035434 0.004020743 0.003051741 0.003635231 0.005832899 0.007628106 0.005562034 0.00675986 0.005700926 0.005985101 0.006525115 0.0046473 0.004735567 0.004386617 0.005115666 0.005256318 0.004295861 0.004029987 0.00401384 0.004822362 0.006324673 0.008639633 0.010801205 0.013908482 0.012233194 0.01082163 0.011267687 0.013534054 0.013950851 0.013411443 0.012774494 0.013145052 0.010805262 0.010892393 0.012690774 0.013967168 0.014633213 0.015345482 0.016870497 0.017135949 0.016433266 0.015955944 0.016943306 0.016688669 0.016543407 0.018056946 0.020531501 0.02322201 0.024118281 0.024807365 0.022777501 0.019794405 0.017363403 0.016024846 0.015009724 0.013505844 0.013173315 0.013721516 0.014802635 0.016723867 0.02027244 0.024221648 0.026416593 0.02778015 0.028199711 0.028249089 0.028416414 0.02946102 0.029805147
65 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 63 4 4 17.54566663 0.000073 0.716818 0.000080 0.001763 0.281266 0.008078267 0.006004943 0.005283565 0.002930851 0.004610219 0.004864237 0.00477538 0.005292442 0.003622925 0.001403207 0.003931537 0.006135862 0.005701034 0.006011126 0.004513624 0.006740539 0.00845155 0.006085176 0.008921505 0.008741017 0.008901866 0.007005915 0.005707714 0.006623332 0.006868793 0.007621452 0.006360409 0.006201088 0.006393463 0.005058585 0.00705453 0.008661424 0.011018582 0.014867918 0.018178164 0.016661823 0.01540686 0.015425198 0.015983598 0.014970979 0.014853006 0.015396324 0.0162587 0.015191181 0.014886823 0.015794042 0.016270935 0.015173933 0.011739468 0.012017315 0.011839376 0.011546988 0.014229325 0.016576935 0.016848072 0.018013901 0.020522206 0.022171369 0.022224883 0.020312486 0.019924275 0.01868753 0.016773533 0.014479382 0.014475937 0.01509916 0.013595913 0.013208431 0.013131223 0.013498881 0.014799428 0.017752436 0.020074503 0.022138942 0.022555431 0.022695973 0.022559043 0.021416444 0.021867994 0.022327574
66 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 64 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
67 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 65 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
68 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 66 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
69 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 67 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
70 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 68 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
71 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 69 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
72 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 70 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
73 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 71 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
74 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 72 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
75 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 73 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
76 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 74 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
77 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 75 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
78 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 76 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
79 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 77 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
80 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 78 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
81 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 79 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
82 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 80 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
83 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 81 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
84 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 82 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
85 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 83 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
86 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 84 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
87 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 85 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
88 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 86 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
89 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 87 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
90 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 88 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
91 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 89 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
92 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 90 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
93 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 91 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
94 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 92 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
95 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 93 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
96 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 94 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
97 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 95 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
98 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 96 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
99 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 97 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
100 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 98 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
101 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 99 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
102 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 100 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
103 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 101 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
104 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 102 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
105 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 103 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
106 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 104 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
107 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 105 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
108 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 106 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
109 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 107 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
110 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 108 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
111 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 109 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
112 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 110 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
113 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 111 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
114 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 112 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
115 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 113 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
116 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 114 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
117 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 115 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
118 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 116 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
119 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 117 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
120 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 118 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
121 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 119 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
122 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 120 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
123 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 121 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
124 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 122 4 3 20.28114831 0.000000 0.968107 0.000001 0.000073 0.031819 0.008481208 0.007267937 0.008093628 0.010995826 0.009578554 0.009477686 0.010079606 0.009601551 0.009133557 0.006199112 0.006449285 0.00832631 0.008205877 0.008944182 0.008559578 0.007674549 0.006355588 0.007851341 0.007209153 0.005631625 0.002819511 0.002346299 0.002241918 0.003620184 0.005191686 0.00363431 0.004249042 0.00499322 0.0062713 0.009057567 0.008405222 0.009462508 0.013597954 0.01692631 0.018648795 0.017833592 0.015833619 0.012579136 0.010394578 0.014757516 0.018624479 0.021346005 0.021463406 0.019069665 0.014927856 0.011337968 0.008979191 0.007751702 0.009086079 0.012583392 0.01726251 0.018440354 0.016553639 0.015138281 0.014839827 0.013155538 0.01065084 0.009740008 0.00962161 0.010387995 0.014109942 0.017356798 0.019667836 0.02075813 0.020347978 0.019328914 0.019224582 0.019196906 0.01865697 0.018101235 0.017625276 0.017443961 0.018378273 0.019547852 0.019750869 0.019393042 0.018701927 0.017859762 0.018156053 0.018452935
125 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 123 4 3 20.28114831 0.000000 0.968107 0.000001 0.000073 0.031819 0.008481208 0.007267937 0.008093628 0.010995826 0.009578554 0.009477686 0.010079606 0.009601551 0.009133557 0.006199112 0.006449285 0.00832631 0.008205877 0.008944182 0.008559578 0.007674549 0.006355588 0.007851341 0.007209153 0.005631625 0.002819511 0.002346299 0.002241918 0.003620184 0.005191686 0.00363431 0.004249042 0.00499322 0.0062713 0.009057567 0.008405222 0.009462508 0.013597954 0.01692631 0.018648795 0.017833592 0.015833619 0.012579136 0.010394578 0.014757516 0.018624479 0.021346005 0.021463406 0.019069665 0.014927856 0.011337968 0.008979191 0.007751702 0.009086079 0.012583392 0.01726251 0.018440354 0.016553639 0.015138281 0.014839827 0.013155538 0.01065084 0.009740008 0.00962161 0.010387995 0.014109942 0.017356798 0.019667836 0.02075813 0.020347978 0.019328914 0.019224582 0.019196906 0.01865697 0.018101235 0.017625276 0.017443961 0.018378273 0.019547852 0.019750869 0.019393042 0.018701927 0.017859762 0.018156053 0.018452935
126 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 124 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
127 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 125 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
128 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 126 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
129 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 127 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
130 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 128 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
131 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 129 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
132 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 130 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
133 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 131 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
134 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 132 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
135 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 133 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
136 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 134 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
137 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 135 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
138 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 136 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
139 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 137 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
140 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 138 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
141 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 139 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
142 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 140 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
143 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 141 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
144 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 142 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
145 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 143 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
146 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 144 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
147 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 145 4 3 23.5818428 0.000070 0.972885 0.000270 0.000133 0.026642 0.009222771 0.009660355 0.008995888 0.010426419 0.011368754 0.011118309 0.00936622 0.008138199 0.010272534 0.01011709 0.008144321 0.004540743 0.004814015 0.007280157 0.009042908 0.01074764 0.011652335 0.011902921 0.01073633 0.008964895 0.010351931 0.009714063 0.007937948 0.008877708 0.008477063 0.005698715 0.005247471 0.006246599 0.005879262 0.003589238 0.004752403 0.006540576 0.008643738 0.012090186 0.01530966 0.016016589 0.013898216 0.010819653 0.010672886 0.012362962 0.014541818 0.015962594 0.017236092 0.017984324 0.017511096 0.015872769 0.015084758 0.014166619 0.013288672 0.013329849 0.013525986 0.013268583 0.012597044 0.013359798 0.01253662 0.011532479 0.011510583 0.009864743 0.008287869 0.01152445 0.014388948 0.014634189 0.014470753 0.016771823 0.019145186 0.019641895 0.018859358 0.017048211 0.017823247 0.017598811 0.016869254 0.017319808 0.01787883 0.019798117 0.020381421 0.019642228 0.018222741 0.017937224 0.018758897 0.020182637
148 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 146 4 3 23.5818428 0.000070 0.972885 0.000270 0.000133 0.026642 0.009222771 0.009660355 0.008995888 0.010426419 0.011368754 0.011118309 0.00936622 0.008138199 0.010272534 0.01011709 0.008144321 0.004540743 0.004814015 0.007280157 0.009042908 0.01074764 0.011652335 0.011902921 0.01073633 0.008964895 0.010351931 0.009714063 0.007937948 0.008877708 0.008477063 0.005698715 0.005247471 0.006246599 0.005879262 0.003589238 0.004752403 0.006540576 0.008643738 0.012090186 0.01530966 0.016016589 0.013898216 0.010819653 0.010672886 0.012362962 0.014541818 0.015962594 0.017236092 0.017984324 0.017511096 0.015872769 0.015084758 0.014166619 0.013288672 0.013329849 0.013525986 0.013268583 0.012597044 0.013359798 0.01253662 0.011532479 0.011510583 0.009864743 0.008287869 0.01152445 0.014388948 0.014634189 0.014470753 0.016771823 0.019145186 0.019641895 0.018859358 0.017048211 0.017823247 0.017598811 0.016869254 0.017319808 0.01787883 0.019798117 0.020381421 0.019642228 0.018222741 0.017937224 0.018758897 0.020182637
149 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 147 4 4 19.0951844 0.000016 0.975064 0.000112 0.000028 0.024780 0.007439882 0.008640393 0.007968963 0.009094201 0.009299037 0.009810438 0.008775744 0.00719943 0.008866134 0.008429907 0.006698506 0.004071012 0.003228212 0.006025383 0.007346537 0.009414155 0.009905567 0.010126756 0.009326965 0.007694084 0.009338718 0.008959429 0.006905136 0.007802083 0.006925079 0.004805227 0.005135805 0.006179794 0.004845614 0.002195137 0.004442394 0.007255148 0.009782102 0.013118365 0.016451826 0.017587148 0.015531518 0.012222019 0.01084239 0.01203778 0.015554049 0.018794261 0.020022308 0.018782225 0.015613813 0.015410767 0.0156474 0.01444474 0.012292526 0.011516996 0.013043064 0.014302905 0.014378678 0.014004851 0.012614376 0.012746383 0.013649849 0.012201485 0.009818387 0.012939303 0.017517067 0.018086415 0.017609226 0.018669714 0.019983531 0.02149732 0.020933217 0.018688466 0.017563466 0.015878379 0.016652283 0.017378343 0.016753777 0.017698485 0.019901051 0.020532158 0.019404617 0.017572033 0.017578145 0.020599925
150 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 148 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
151 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 149 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
152 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 150 4 2 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
153 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 151 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
154 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 152 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
155 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 153 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
156 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 154 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
157 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 155 4 5 12.92686969 0.233149 0.608310 0.053102 0.003719 0.101721 0.006220691 0.008026336 0.0057538 0.006200504 0.007578411 0.006992004 0.008412528 0.009994639 0.01112147 0.011897951 0.011321909 0.011116582 0.010481965 0.007938792 0.007170713 0.009770436 0.010175086 0.00813417 0.007792453 0.010287847 0.010588479 0.009331093 0.009429877 0.010510992 0.011424843 0.011882782 0.011533866 0.010916774 0.011800584 0.013563498 0.014719346 0.015144342 0.015143082 0.015199692 0.015629012 0.016350086 0.017212367 0.018042215 0.01863368 0.018900402 0.018834657 0.018570918 0.018404041 0.018543224 0.018846103 0.019111302 0.019303463 0.019401038 0.01935058 0.019163961 0.018962789 0.018864725 0.018849222 0.018812273 0.01866458 0.018412632 0.018068886 0.01759337 0.017026668 0.016325905 0.015377017 0.014187394 0.012717519 0.011078197 0.009745229 0.008864025 0.008015423 0.00691937 0.006030884 0.006392346 0.007496279 0.007995911 0.008132989 0.00857258 0.008961416 0.008531174 0.006389399 0.004814942 0.007217524 0.009104742
158 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 156 4 5 12.92686969 0.233149 0.608310 0.053102 0.003719 0.101721 0.006220691 0.008026336 0.0057538 0.006200504 0.007578411 0.006992004 0.008412528 0.009994639 0.01112147 0.011897951 0.011321909 0.011116582 0.010481965 0.007938792 0.007170713 0.009770436 0.010175086 0.00813417 0.007792453 0.010287847 0.010588479 0.009331093 0.009429877 0.010510992 0.011424843 0.011882782 0.011533866 0.010916774 0.011800584 0.013563498 0.014719346 0.015144342 0.015143082 0.015199692 0.015629012 0.016350086 0.017212367 0.018042215 0.01863368 0.018900402 0.018834657 0.018570918 0.018404041 0.018543224 0.018846103 0.019111302 0.019303463 0.019401038 0.01935058 0.019163961 0.018962789 0.018864725 0.018849222 0.018812273 0.01866458 0.018412632 0.018068886 0.01759337 0.017026668 0.016325905 0.015377017 0.014187394 0.012717519 0.011078197 0.009745229 0.008864025 0.008015423 0.00691937 0.006030884 0.006392346 0.007496279 0.007995911 0.008132989 0.00857258 0.008961416 0.008531174 0.006389399 0.004814942 0.007217524 0.009104742
159 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 157 4 5 12.92686969 0.233149 0.608310 0.053102 0.003719 0.101721 0.006220691 0.008026336 0.0057538 0.006200504 0.007578411 0.006992004 0.008412528 0.009994639 0.01112147 0.011897951 0.011321909 0.011116582 0.010481965 0.007938792 0.007170713 0.009770436 0.010175086 0.00813417 0.007792453 0.010287847 0.010588479 0.009331093 0.009429877 0.010510992 0.011424843 0.011882782 0.011533866 0.010916774 0.011800584 0.013563498 0.014719346 0.015144342 0.015143082 0.015199692 0.015629012 0.016350086 0.017212367 0.018042215 0.01863368 0.018900402 0.018834657 0.018570918 0.018404041 0.018543224 0.018846103 0.019111302 0.019303463 0.019401038 0.01935058 0.019163961 0.018962789 0.018864725 0.018849222 0.018812273 0.01866458 0.018412632 0.018068886 0.01759337 0.017026668 0.016325905 0.015377017 0.014187394 0.012717519 0.011078197 0.009745229 0.008864025 0.008015423 0.00691937 0.006030884 0.006392346 0.007496279 0.007995911 0.008132989 0.00857258 0.008961416 0.008531174 0.006389399 0.004814942 0.007217524 0.009104742
160 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 158 4 5 12.92686969 0.233149 0.608310 0.053102 0.003719 0.101721 0.006220691 0.008026336 0.0057538 0.006200504 0.007578411 0.006992004 0.008412528 0.009994639 0.01112147 0.011897951 0.011321909 0.011116582 0.010481965 0.007938792 0.007170713 0.009770436 0.010175086 0.00813417 0.007792453 0.010287847 0.010588479 0.009331093 0.009429877 0.010510992 0.011424843 0.011882782 0.011533866 0.010916774 0.011800584 0.013563498 0.014719346 0.015144342 0.015143082 0.015199692 0.015629012 0.016350086 0.017212367 0.018042215 0.01863368 0.018900402 0.018834657 0.018570918 0.018404041 0.018543224 0.018846103 0.019111302 0.019303463 0.019401038 0.01935058 0.019163961 0.018962789 0.018864725 0.018849222 0.018812273 0.01866458 0.018412632 0.018068886 0.01759337 0.017026668 0.016325905 0.015377017 0.014187394 0.012717519 0.011078197 0.009745229 0.008864025 0.008015423 0.00691937 0.006030884 0.006392346 0.007496279 0.007995911 0.008132989 0.00857258 0.008961416 0.008531174 0.006389399 0.004814942 0.007217524 0.009104742
161 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 159 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
162 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 160 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
163 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 161 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
164 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 162 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
165 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 163 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
166 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 164 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
167 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 165 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
168 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 166 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
169 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 167 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
170 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 168 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
171 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 169 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
172 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 170 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
173 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 171 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
174 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 172 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
175 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 173 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
176 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 174 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
177 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 175 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
178 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 176 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
179 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 177 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
180 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 178 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
181 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 179 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
182 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 180 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
183 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 181 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
184 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 182 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
185 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 183 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
186 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 184 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
187 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 185 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
188 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 186 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
189 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 187 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
190 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 188 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
191 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 189 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
192 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 190 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
193 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 191 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
194 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 192 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
195 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 193 4 0 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
196 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 194 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
197 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 195 4 4 12.51956428 0.057946 0.748460 0.021853 0.010191 0.161550 0.002911719 0.00350914 0.006307069 0.008078172 0.007304614 0.004237207 0.0023327 0.003877557 0.003384699 0.004979839 0.005300322 0.004853516 0.005693305 0.006859038 0.008249482 0.007089815 0.003468407 0.004508834 0.006829655 0.007518427 0.006992411 0.006683763 0.008605091 0.009490363 0.009986735 0.01044832 0.010863435 0.011169697 0.011170199 0.011605864 0.013104292 0.014652028 0.015924393 0.016899735 0.017459301 0.01743421 0.016163855 0.015281896 0.017901121 0.019718813 0.020713738 0.021184977 0.021220441 0.02083616 0.020011665 0.018939693 0.018534953 0.018847118 0.019136185 0.019608794 0.020287897 0.020755617 0.020780315 0.020312114 0.019298474 0.017714265 0.017125622 0.017702781 0.01776941 0.017547023 0.017711003 0.018039682 0.017894462 0.01724126 0.016346657 0.015498661 0.014703241 0.013627473 0.011998201 0.010162345 0.009340609 0.009335968 0.008978209 0.008141558 0.007737223 0.00829487 0.00888277 0.009049035 0.009561671 0.010278825
198 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 196 4 8 13.44523815 0.159350 0.428536 0.091355 0.011010 0.309749 0.004184995 0.004848172 0.005809845 0.006163274 0.006162725 0.004480667 0.003104188 0.003092449 0.003118428 0.004698191 0.005065976 0.004948582 0.005602707 0.006468994 0.00721142 0.006620544 0.005096566 0.006039817 0.007661242 0.008537441 0.009025107 0.009502476 0.010597248 0.010991752 0.011216999 0.011561 0.011967717 0.012321568 0.012555381 0.01304223 0.014064742 0.01510645 0.015950395 0.016558 0.016905394 0.017002767 0.016607251 0.016407662 0.01772766 0.018624015 0.019167014 0.019532819 0.019712379 0.019660883 0.019376638 0.018978913 0.018872718 0.019040036 0.01913644 0.019288855 0.019547254 0.019734092 0.019729882 0.019489921 0.018957681 0.018096034 0.01763329 0.017694831 0.017551587 0.017283126 0.017146578 0.017027104 0.016654209 0.016010087 0.015173063 0.014233786 0.013220512 0.012082318 0.010791337 0.009568848 0.008900725 0.008688293 0.00847748 0.008196964 0.008281309 0.009035783 0.009804024 0.010176877 0.010510592 0.010883677
199 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 197 4 11 12.16072966 0.209185 0.423218 0.099278 0.005254 0.263065 0.005428691 0.005765205 0.006143651 0.005498495 0.005712526 0.00457687 0.003684677 0.004067112 0.004273399 0.005826421 0.006559571 0.006773341 0.007328996 0.007882817 0.00833611 0.007690928 0.006247271 0.006925009 0.008433219 0.009523116 0.010229682 0.01079228 0.011768814 0.012085258 0.011971 0.0119085 0.012752473 0.013544191 0.013941583 0.014369474 0.015135222 0.015960268 0.016748409 0.017361942 0.017654542 0.017606473 0.017053209 0.016515611 0.016935655 0.017660799 0.018596507 0.019010296 0.019107664 0.019085275 0.018851962 0.018372555 0.018057729 0.018163113 0.018484079 0.018901029 0.019324406 0.019586558 0.019604574 0.019359756 0.018815114 0.017956854 0.017414278 0.017349002 0.017169863 0.016840802 0.016399237 0.01557759 0.015100762 0.014895477 0.014186583 0.013121381 0.011660053 0.010629476 0.009975641 0.008707782 0.007751805 0.00808303 0.007721608 0.006850688 0.007363713 0.008377074 0.008579395 0.008092426 0.008730458 0.009471593
200 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 198 4 12 12.82361209 0.200629 0.404911 0.117348 0.005881 0.271231 0.006821248 0.006602415 0.006006835 0.005246423 0.005135832 0.00467021 0.004530257 0.004834942 0.004884781 0.006529 0.007328202 0.006818032 0.007013962 0.00731501 0.007764565 0.007763536 0.007116437 0.007930992 0.009344708 0.010388797 0.010786292 0.011016704 0.011771027 0.011946851 0.011754899 0.011869526 0.012930876 0.013787113 0.014082385 0.014320469 0.014908947 0.015660677 0.016448099 0.017044446 0.017292728 0.017247244 0.016839321 0.016496043 0.016934178 0.017552107 0.018321149 0.018669465 0.018802666 0.018856798 0.018690231 0.018242306 0.017897582 0.017948716 0.018264576 0.018710582 0.019139907 0.019365032 0.019321812 0.019032927 0.018497823 0.017706376 0.017190518 0.017080594 0.016863956 0.016507696 0.016029464 0.015197514 0.014688387 0.014484578 0.013865882 0.012836543 0.011309536 0.010141024 0.009530414 0.008695165 0.007988474 0.008053437 0.007683072 0.00717296 0.0077768 0.00870067 0.008861766 0.008443256 0.009037183 0.009657048
201 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 199 4 10 12.59106734 0.247869 0.376117 0.107388 0.006517 0.262108 0.006963875 0.006365118 0.005013171 0.003413472 0.003604771 0.004634732 0.005219561 0.005318094 0.005983289 0.00735776 0.007718757 0.006431731 0.006958255 0.00764143 0.007746289 0.008209173 0.00871867 0.009139486 0.009648402 0.01042636 0.011486464 0.012433758 0.012982043 0.013004178 0.012616746 0.012640224 0.013845338 0.01483927 0.015256193 0.015426364 0.015668166 0.016123369 0.016694382 0.017099172 0.017204985 0.0171735 0.01718454 0.017133351 0.016743473 0.016907336 0.017580271 0.017931246 0.018145012 0.018375928 0.018489347 0.01837183 0.01815186 0.018143587 0.018440464 0.018795922 0.019032859 0.019089144 0.018973396 0.018729491 0.01837998 0.017931928 0.017458104 0.017063153 0.016741857 0.01633665 0.015590548 0.014317815 0.013601866 0.013458856 0.012935164 0.011926959 0.010308932 0.009187456 0.008818691 0.008076012 0.007077878 0.007059678 0.006976531 0.006868748 0.007814885 0.008793449 0.008933452 0.008517115 0.00908076 0.009517929
202 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 200 4 11 14.46336438 0.293794 0.429502 0.044550 0.002297 0.229858 0.007748423 0.006531708 0.004801583 0.004815026 0.005468745 0.006585047 0.007825317 0.008812327 0.009189457 0.008895095 0.008575404 0.008057586 0.008963806 0.009671919 0.009794234 0.010435313 0.010720554 0.010859806 0.011117082 0.011584577 0.012391788 0.012883551 0.013021339 0.012981986 0.01287727 0.013122636 0.014170897 0.015010985 0.015475751 0.015759833 0.015962565 0.016197712 0.01652785 0.016852926 0.017068197 0.017183407 0.017242405 0.017184999 0.01688077 0.017077805 0.017691246 0.018004348 0.01814917 0.018258435 0.018258184 0.018107775 0.017932647 0.017949092 0.0181826 0.018421668 0.018544966 0.018513329 0.018296323 0.017898471 0.01738332 0.016851143 0.01640249 0.016053198 0.015711839 0.01524174 0.014490123 0.013326841 0.012529043 0.012048573 0.011149739 0.009882093 0.008396689 0.007504502 0.007602277 0.007579381 0.007058792 0.006798635 0.00640137 0.006111153 0.006705933 0.006950413 0.006465608 0.005960927 0.007013671 0.007844571
203 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 201 4 9 15.18346638 0.328008 0.325078 0.040291 0.001883 0.304741 0.007222363 0.005734932 0.00405511 0.005379398 0.005811243 0.006492441 0.007578124 0.008172049 0.008317944 0.00774439 0.007347283 0.006170913 0.007454505 0.008771029 0.00897963 0.009687699 0.010333693 0.010600419 0.010438293 0.010944182 0.011656629 0.011479994 0.011527697 0.011690996 0.01146486 0.012193014 0.01298283 0.013615112 0.014015729 0.01394218 0.014420903 0.014226677 0.014918934 0.016016342 0.016767514 0.017182421 0.017106779 0.017133578 0.017314122 0.01754259 0.017994647 0.018275638 0.018908799 0.019005308 0.018182778 0.01782387 0.017875957 0.018151969 0.018329385 0.018649635 0.018482066 0.018384384 0.018281087 0.018321563 0.018182489 0.017627153 0.016676701 0.016169281 0.015569044 0.015707443 0.015590248 0.014898319 0.014299651 0.013581783 0.012925084 0.012044722 0.0108525 0.009494545 0.008919495 0.00896607 0.008470233 0.007477759 0.006889405 0.00721044 0.007720571 0.007708518 0.00742459 0.007560465 0.008230401 0.008701462
204 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 202 4 7 16.77507435 0.385612 0.286998 0.047583 0.001358 0.278448 0.007284997 0.005929768 0.004367721 0.005901951 0.006811247 0.007167136 0.00778807 0.00840718 0.008713674 0.007862691 0.00748274 0.007008375 0.008548653 0.01004074 0.010140788 0.010397247 0.01064021 0.010823525 0.010627734 0.011130173 0.011929982 0.011710185 0.011647953 0.011814502 0.011607521 0.012263551 0.012806438 0.013311383 0.01375977 0.013758643 0.014370953 0.014067996 0.014707326 0.015849875 0.016677864 0.017143284 0.016973108 0.016862058 0.016943708 0.017133092 0.017626063 0.017921489 0.018604699 0.018648264 0.017644829 0.017241208 0.017353295 0.017697071 0.017848581 0.018129507 0.017874452 0.017788357 0.017775737 0.017962459 0.017920496 0.017364659 0.016335994 0.015825785 0.01519848 0.015451768 0.015460632 0.014861708 0.014370726 0.013650591 0.012944498 0.0120677 0.011013944 0.009824306 0.009326795 0.009216471 0.008622951 0.007776148 0.00711309 0.007135104 0.00753368 0.007481683 0.007156268 0.007269621 0.007978563 0.008568515
205 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 203 4 6 17.9366666 0.405886 0.282383 0.084636 0.000895 0.226200 0.007764617 0.006726204 0.005415314 0.007458969 0.008406369 0.007976782 0.008396936 0.008833352 0.008696432 0.007531009 0.007363539 0.007882479 0.009228833 0.010277303 0.010366995 0.010424078 0.010442242 0.010665468 0.010702477 0.011482596 0.012248358 0.01171954 0.011485361 0.011671677 0.011481575 0.012107573 0.012546013 0.013020671 0.013535815 0.013579901 0.014200508 0.013742977 0.01436946 0.015635398 0.016597666 0.017123413 0.016883344 0.01669609 0.016754759 0.016950515 0.017454696 0.017703433 0.018370245 0.018359026 0.017232282 0.016786338 0.016904802 0.017264976 0.017409969 0.017707461 0.017432727 0.017359325 0.017378372 0.01762858 0.017640682 0.01709347 0.016017266 0.01549791 0.014854737 0.015210156 0.015332576 0.014795467 0.014352812 0.013632215 0.012924044 0.012043057 0.010974499 0.009760206 0.009370907 0.00955531 0.009286705 0.008446961 0.007489217 0.007307924 0.007649815 0.007477041 0.006930208 0.006919691 0.007678921 0.008373363
206 test PAM_20200918_123234_366.wav PAM_20200918_123234_366.wav 204 4 1 0 0.000000 0.000000 0.000000 0.000000 0.000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

View File

@ -0,0 +1,72 @@
0,1,2,3,4,5,6,7,8,9,10,11
0.17577599,0.06939087,4.0765575e-05,0.0002881006,0.00018309923,0.0037399624,0.00484566,5.8907076e-06,0.00020740317,0.0005475284,0.003910678,1.8796809e-05
0.12134998,0.0452549,9.203215e-05,6.106747e-05,0.00011356388,0.007522046,0.0019039916,2.6653722e-06,0.0001205435,0.0023370755,0.0010755587,1.410594e-05
4.9778093e-05,0.48127228,0.00067260134,1.1338762e-05,6.6813986e-06,0.013890178,4.4261105e-06,7.161947e-07,1.2533595e-06,0.0061409,2.0035611e-06,8.8392454e-07
5.47298e-07,0.22382887,0.0003612544,2.3930239e-05,2.5705365e-06,0.011263198,3.6400306e-07,2.6399513e-07,1.219394e-07,0.0046477295,2.2039742e-07,2.09958e-07
4.288036e-05,0.31589574,0.00023784858,0.00025497508,3.077997e-05,0.012559328,2.962434e-05,7.5721664e-07,2.3117693e-06,0.0010935054,4.7344365e-06,1.6327084e-06
0.020145541,0.03074267,0.0028023466,0.00073693745,0.00028266342,0.005045984,0.00013074338,6.0220685e-07,1.0367147e-05,0.0015687827,4.1986943e-05,1.6945913e-05
0.009552513,0.0030180695,8.824046e-05,4.650866e-05,8.299547e-06,0.0016920523,2.9329853e-05,4.3706373e-07,5.621946e-06,0.0004396474,8.066213e-06,1.2293907e-06
0.00044141975,0.20943537,0.0030042513,0.00013729495,6.616487e-05,0.0020272348,0.000113031914,7.188758e-06,1.0763081e-05,0.0006483929,2.710338e-05,4.3990444e-06
0.00069717836,0.10983792,0.0007054794,0.0020053294,0.00018470333,0.0018362027,0.00035991776,4.432294e-06,1.6566473e-05,0.00013971668,4.423122e-05,1.2555861e-06
0.0050139767,0.29272327,0.0004998942,0.00036060016,7.281238e-05,0.0029723274,0.0013773341,1.3075941e-05,6.867808e-05,0.00036174082,0.00019994803,1.409486e-05
0.0017596433,0.25337175,0.000103463186,3.442073e-05,3.355492e-05,0.007654757,0.000107356136,7.714922e-06,3.2462587e-05,0.002449178,1.7112177e-05,6.2273225e-06
8.988725e-06,0.59267575,0.00018885538,5.1856246e-06,4.881175e-06,0.015215663,1.4397422e-06,1.5563406e-06,8.6111065e-08,0.0006478191,2.1160392e-07,3.8976935e-07
2.7352002e-07,0.44767833,2.2463077e-05,2.6857402e-05,1.1074902e-06,0.029194066,2.2991392e-07,2.1500671e-07,1.2196339e-08,0.00062920095,4.7683937e-08,5.773021e-07
3.5449877e-05,0.1907422,5.3209675e-05,0.00015418744,4.018717e-05,0.08104086,1.3004113e-05,2.5809513e-06,1.1955262e-06,0.0011627469,3.5274911e-06,2.4211628e-05
0.0021694184,0.40491036,9.338964e-05,0.00018201704,0.00026156235,0.048863955,0.0005687415,5.5441375e-05,7.1669056e-05,0.0043333652,9.684925e-05,6.226602e-05
0.0006335464,0.3359909,0.00037379484,0.00088786747,9.250568e-05,0.031195106,0.00014324662,1.722812e-05,3.0285883e-05,0.0028994258,2.27597e-05,3.3219458e-05
0.00014453182,0.6839848,0.0004741817,8.523672e-06,8.906555e-05,0.005643163,1.9025234e-05,1.5286753e-06,4.573082e-06,0.0036089919,1.1729753e-06,6.925799e-07
1.4089174e-05,0.79771835,0.0018127938,3.6665476e-06,4.286948e-05,0.010763819,1.1884295e-06,1.0042011e-06,6.615374e-08,0.0013166448,7.300864e-08,6.917899e-08
8.8483794e-05,0.56834227,5.8748028e-05,2.1050637e-05,2.3188226e-05,0.019722067,5.814333e-06,2.2946674e-06,4.6233612e-07,0.0006220055,6.636307e-07,8.9003777e-07
0.017391194,0.57917744,8.369133e-05,8.913632e-05,9.752393e-05,0.012386402,0.00016493106,1.9780211e-05,2.3030743e-05,0.00051371136,0.00011011217,3.253886e-05
0.0062785842,0.13769141,0.001743125,1.2185119e-05,0.00017068045,0.004754985,0.0002688594,3.1589884e-06,1.8877507e-05,0.0022611273,3.9709605e-05,9.727585e-06
3.335644e-05,0.34319195,0.00018843701,8.7069793e-07,8.516928e-06,0.0058070365,3.6556264e-06,2.3076667e-07,1.463309e-07,0.00048413855,2.9394914e-07,1.0016057e-07
2.7598245e-08,0.71729684,2.1495255e-06,1.2138136e-06,9.157232e-08,0.02594131,4.9092947e-09,5.1478743e-08,2.434345e-10,0.00093547354,4.089916e-10,6.905019e-09
8.673179e-06,0.5651511,3.3687338e-06,1.8361585e-05,1.7100099e-06,0.018923532,2.021362e-07,2.1672487e-07,1.5572724e-08,0.00023248923,1.5759085e-08,1.5963591e-08
0.0006819258,0.79936177,1.9983901e-05,6.7489964e-05,1.8786935e-05,0.0026585748,1.945028e-05,3.091401e-06,2.672494e-06,0.0001374258,4.931991e-06,1.3976714e-06
0.00016227354,0.7289602,0.00011640962,2.6306365e-05,5.504931e-05,0.020159643,4.0718947e-05,6.56836e-06,3.3905508e-06,0.002157479,1.6543283e-05,1.3760472e-06
1.9469524e-05,0.776153,0.002854284,6.50028e-06,2.462434e-05,0.010021779,5.2028386e-06,2.4023468e-06,2.4731176e-07,0.0003689484,6.4354674e-07,1.9555088e-07
6.0379157e-06,0.891646,0.0011463211,2.9813857e-05,9.033136e-06,0.005687247,3.996265e-06,1.0447734e-06,1.9478404e-07,0.000997302,5.129792e-07,4.895105e-07
0.00066666945,0.38497317,0.000327523,0.0015100732,0.0001482992,0.0030872056,7.169503e-05,6.2907006e-06,5.3814592e-06,0.0007899641,1.5226983e-05,1.934541e-05
0.001517156,0.10020319,7.100856e-05,5.175042e-05,1.439992e-05,0.008214117,6.399485e-05,6.4281976e-06,8.467307e-06,0.0012375154,1.34898155e-05,3.4099015e-05
6.195241e-05,0.45361155,0.00011185612,1.272702e-05,1.7560022e-05,0.014166645,4.806677e-06,1.228255e-06,2.6536827e-07,0.0016344256,4.016004e-07,5.374191e-07
1.6371848e-07,0.1747091,1.7991993e-05,5.208662e-06,1.2182946e-06,0.020926258,4.8648353e-08,1.2519452e-07,1.4686861e-09,0.00148135,5.054844e-09,5.4048133e-08
9.087821e-09,0.13886137,5.5594105e-06,8.545174e-06,1.05196655e-07,0.03809376,1.0566997e-08,1.2856449e-08,3.9731052e-10,9.6103344e-05,2.1998403e-09,7.432107e-08
8.179886e-06,0.4955629,4.5628535e-06,0.00015468517,1.0014027e-05,0.008238238,2.9689993e-06,5.58282e-07,5.0182723e-07,0.00010325257,5.652486e-07,3.1147894e-07
0.00015601357,0.03689768,5.2684216e-05,0.00022993557,9.870855e-06,0.0031463304,1.1348379e-05,2.568777e-07,1.8572352e-06,0.0008612714,2.4646579e-06,5.3215945e-07
0.00062411267,0.7375373,0.0012276277,3.7191956e-05,5.0330895e-05,0.011613357,1.900886e-05,2.3045711e-06,2.531913e-06,0.0010202706,8.8967645e-06,1.5277177e-06
0.00034310055,0.8034205,0.0008709528,0.00011021426,0.00016985618,0.0046230205,5.2749224e-06,7.2337747e-07,7.233306e-07,0.0019488796,2.3278083e-06,3.7971338e-07
0.0030299767,0.564029,0.00020218997,0.00050834235,6.528403e-05,0.00357279,8.316438e-06,4.707665e-07,7.5085126e-07,0.001211637,8.139127e-07,1.8590215e-06
0.016430598,0.260464,6.673995e-05,8.26663e-05,4.1097475e-05,0.00390321,0.00048708738,2.3679545e-06,1.6745185e-05,0.00041038985,3.486261e-05,6.8871254e-06
0.0034231204,0.2467563,0.0007192856,2.9893274e-06,9.176304e-06,0.0038868738,2.5519308e-05,7.766853e-07,2.811172e-06,0.00065538887,3.9840397e-06,2.088092e-06
4.6644423e-06,0.6746519,0.002378825,3.1858963e-06,1.4669812e-06,0.0006923369,1.7428092e-06,4.9207495e-07,7.133414e-08,0.00015848925,3.8554543e-08,1.8472215e-07
4.025913e-07,0.07405859,0.0026503906,6.193203e-05,5.7060083e-07,0.004681185,1.2890305e-07,6.4071095e-08,1.0678657e-08,0.00074449583,9.595429e-09,3.207071e-06
1.5834895e-07,0.27261728,0.0012426871,0.00015186626,2.0747293e-06,0.0073613725,8.1475605e-07,5.8062954e-09,1.8146311e-08,9.7854914e-05,3.8686178e-08,1.1429735e-06
0.00011900487,0.1357508,0.0074050264,0.0016564731,8.266913e-05,0.019860057,5.1897896e-05,8.4100094e-07,5.9661897e-06,0.0027308636,2.0539079e-05,3.306737e-05
0.00013929048,0.077199414,0.0018817156,0.00022644213,2.4973138e-05,0.020461094,6.313834e-05,2.7674384e-06,8.666142e-06,0.007912762,1.8890452e-05,1.9462026e-05
0.0017591835,0.26169106,0.008810699,7.374904e-05,8.532419e-05,0.022266181,0.00017233359,1.9170078e-05,3.5879464e-05,0.02105717,0.00015649723,2.2087888e-05
0.0006948613,0.5702558,0.0042178724,0.00012821674,6.357128e-05,0.015376499,8.4764375e-05,3.6126446e-06,4.997995e-06,0.001590069,2.1643911e-05,5.1321763e-06
0.00028662255,0.6015283,0.00063866586,0.00011794866,2.8462466e-05,0.0030768772,8.31749e-05,1.5488706e-05,1.8909253e-05,0.001386963,1.3627991e-05,9.000784e-06
0.0012443978,0.2464135,0.0005627789,4.4343473e-05,1.3085959e-05,0.0051072,4.2748645e-05,9.2358205e-06,2.328782e-05,0.0020071361,8.526419e-06,5.6215968e-06
0.0023246128,0.67543083,0.002677279,7.3809686e-05,5.0589202e-05,0.0042211046,2.2117418e-05,1.7687742e-06,1.796384e-05,0.009677429,7.5620383e-06,3.6224195e-05
2.4141234e-05,0.6530479,0.00048561677,0.000149909,4.9959026e-06,0.012700983,1.6229764e-06,1.259696e-06,4.1232764e-07,0.011251882,3.3164542e-07,1.3413297e-06
2.8481045e-07,0.756934,1.5635016e-05,7.0437876e-05,1.9774902e-07,0.013885954,3.515015e-08,2.1299199e-07,4.5614748e-09,0.0031635282,5.2874483e-09,1.3713891e-08
3.1481734e-06,0.59144396,1.0858301e-05,3.1711275e-05,3.1551194e-06,0.008727435,1.7318606e-06,5.4061816e-06,1.89266e-07,0.0008336721,7.803813e-07,1.858022e-07
0.0006521682,0.15055217,0.0005959595,0.00045696262,3.3729833e-05,0.017323263,0.00012108124,2.4464824e-05,1.5345207e-05,0.002089023,4.7696834e-05,5.8882583e-06
0.00068137416,0.60419613,0.00806375,7.5360884e-05,6.596553e-05,0.004378758,1.7899423e-05,2.178996e-05,3.2394635e-06,0.00037622126,7.465761e-06,6.919477e-06
3.6199675e-05,0.7511591,0.000712229,0.0003553234,3.8558745e-05,0.036236793,2.4336962e-06,6.5986483e-06,1.4783924e-06,0.0010109893,1.2337739e-06,4.1176972e-06
1.5187739e-05,0.65192324,0.0009791763,0.0007681369,1.2886759e-05,0.0032672517,6.6723696e-06,4.310435e-06,2.1143464e-06,0.00073100696,5.3043073e-06,1.0640143e-05
2.2962515e-05,0.21694599,0.00018304738,7.238323e-05,1.4976154e-05,0.012731089,1.730705e-05,7.251395e-06,3.8867233e-06,0.003344151,5.5895275e-06,6.7470805e-06
0.00020507941,0.5401167,0.00048882567,5.0320865e-05,4.304034e-05,0.0108627565,2.7524222e-05,3.8708284e-05,8.567842e-06,0.0053218296,1.4509261e-05,2.6525613e-06
7.566493e-07,0.584689,5.4627915e-05,0.0004652954,1.1395005e-06,0.015062643,1.4429904e-07,3.3632364e-07,5.320208e-08,0.002181108,5.7332382e-08,2.4920814e-07
5.649889e-06,0.6404879,0.00023549638,0.00038246595,3.9890915e-06,0.024792697,2.5240581e-06,1.5147046e-07,6.403931e-07,0.0015972962,5.253265e-07,1.4419244e-06
6.0010614e-05,0.81722015,0.00012455546,6.141238e-05,2.4246076e-05,0.008644608,2.0608715e-05,6.290942e-07,3.9214015e-06,0.00068868534,3.082031e-06,8.702288e-07
2.1709237e-05,0.54693127,8.166146e-05,8.626133e-05,4.0849563e-06,0.02420306,9.812627e-06,2.0188363e-06,2.3619957e-06,0.0033924016,5.433642e-06,1.0196975e-06
5.2920195e-06,0.50160635,0.00254506,1.8723546e-05,4.1029584e-06,0.014586123,2.7632557e-06,1.3539902e-06,5.1664375e-07,0.00532491,7.2773395e-07,1.1196528e-06
4.826802e-06,0.6000666,0.0033851678,7.521388e-06,3.8796834e-06,0.03862062,1.6187392e-06,8.608067e-07,3.751017e-07,0.0028895433,4.482253e-07,8.9079697e-07
3.9219253e-06,0.6900702,0.0011904631,4.1594314e-05,3.016439e-05,0.006129761,2.2342062e-06,1.3396525e-06,6.1242446e-07,0.0021204043,9.947836e-07,3.2273832e-07
0.0050234795,0.48052213,0.0006477987,0.00016532217,0.0005695884,0.013440274,0.00026325864,9.319689e-06,3.3497694e-05,0.0032552083,5.709763e-05,3.9514154e-05
0.009926768,0.35068285,0.00026277165,0.0005224699,0.00011402145,0.010900033,0.0005328492,9.764466e-06,7.158211e-05,0.0011159758,9.557291e-05,4.3749293e-05
6.101281e-06,0.6653127,6.731141e-05,2.5789748e-05,2.4885505e-06,0.0035001289,4.889528e-06,1.1407442e-06,3.969879e-07,0.0003278927,8.7886605e-07,8.2221436e-07
2.2242143e-06,0.69842005,0.000120197314,0.00044051962,2.1138744e-06,0.011991097,9.827477e-07,3.3675573e-08,1.3316698e-07,0.0006891328,2.446208e-07,2.1849071e-07
3.8870377e-05,0.674022,0.00029916878,0.00026114276,7.772191e-06,0.017075207,8.899336e-06,5.3932445e-07,1.6343162e-06,0.000820524,7.741157e-07,2.0777447e-06
1 0 1 2 3 4 5 6 7 8 9 10 11
2 0.17577599 0.06939087 4.0765575e-05 0.0002881006 0.00018309923 0.0037399624 0.00484566 5.8907076e-06 0.00020740317 0.0005475284 0.003910678 1.8796809e-05
3 0.12134998 0.0452549 9.203215e-05 6.106747e-05 0.00011356388 0.007522046 0.0019039916 2.6653722e-06 0.0001205435 0.0023370755 0.0010755587 1.410594e-05
4 4.9778093e-05 0.48127228 0.00067260134 1.1338762e-05 6.6813986e-06 0.013890178 4.4261105e-06 7.161947e-07 1.2533595e-06 0.0061409 2.0035611e-06 8.8392454e-07
5 5.47298e-07 0.22382887 0.0003612544 2.3930239e-05 2.5705365e-06 0.011263198 3.6400306e-07 2.6399513e-07 1.219394e-07 0.0046477295 2.2039742e-07 2.09958e-07
6 4.288036e-05 0.31589574 0.00023784858 0.00025497508 3.077997e-05 0.012559328 2.962434e-05 7.5721664e-07 2.3117693e-06 0.0010935054 4.7344365e-06 1.6327084e-06
7 0.020145541 0.03074267 0.0028023466 0.00073693745 0.00028266342 0.005045984 0.00013074338 6.0220685e-07 1.0367147e-05 0.0015687827 4.1986943e-05 1.6945913e-05
8 0.009552513 0.0030180695 8.824046e-05 4.650866e-05 8.299547e-06 0.0016920523 2.9329853e-05 4.3706373e-07 5.621946e-06 0.0004396474 8.066213e-06 1.2293907e-06
9 0.00044141975 0.20943537 0.0030042513 0.00013729495 6.616487e-05 0.0020272348 0.000113031914 7.188758e-06 1.0763081e-05 0.0006483929 2.710338e-05 4.3990444e-06
10 0.00069717836 0.10983792 0.0007054794 0.0020053294 0.00018470333 0.0018362027 0.00035991776 4.432294e-06 1.6566473e-05 0.00013971668 4.423122e-05 1.2555861e-06
11 0.0050139767 0.29272327 0.0004998942 0.00036060016 7.281238e-05 0.0029723274 0.0013773341 1.3075941e-05 6.867808e-05 0.00036174082 0.00019994803 1.409486e-05
12 0.0017596433 0.25337175 0.000103463186 3.442073e-05 3.355492e-05 0.007654757 0.000107356136 7.714922e-06 3.2462587e-05 0.002449178 1.7112177e-05 6.2273225e-06
13 8.988725e-06 0.59267575 0.00018885538 5.1856246e-06 4.881175e-06 0.015215663 1.4397422e-06 1.5563406e-06 8.6111065e-08 0.0006478191 2.1160392e-07 3.8976935e-07
14 2.7352002e-07 0.44767833 2.2463077e-05 2.6857402e-05 1.1074902e-06 0.029194066 2.2991392e-07 2.1500671e-07 1.2196339e-08 0.00062920095 4.7683937e-08 5.773021e-07
15 3.5449877e-05 0.1907422 5.3209675e-05 0.00015418744 4.018717e-05 0.08104086 1.3004113e-05 2.5809513e-06 1.1955262e-06 0.0011627469 3.5274911e-06 2.4211628e-05
16 0.0021694184 0.40491036 9.338964e-05 0.00018201704 0.00026156235 0.048863955 0.0005687415 5.5441375e-05 7.1669056e-05 0.0043333652 9.684925e-05 6.226602e-05
17 0.0006335464 0.3359909 0.00037379484 0.00088786747 9.250568e-05 0.031195106 0.00014324662 1.722812e-05 3.0285883e-05 0.0028994258 2.27597e-05 3.3219458e-05
18 0.00014453182 0.6839848 0.0004741817 8.523672e-06 8.906555e-05 0.005643163 1.9025234e-05 1.5286753e-06 4.573082e-06 0.0036089919 1.1729753e-06 6.925799e-07
19 1.4089174e-05 0.79771835 0.0018127938 3.6665476e-06 4.286948e-05 0.010763819 1.1884295e-06 1.0042011e-06 6.615374e-08 0.0013166448 7.300864e-08 6.917899e-08
20 8.8483794e-05 0.56834227 5.8748028e-05 2.1050637e-05 2.3188226e-05 0.019722067 5.814333e-06 2.2946674e-06 4.6233612e-07 0.0006220055 6.636307e-07 8.9003777e-07
21 0.017391194 0.57917744 8.369133e-05 8.913632e-05 9.752393e-05 0.012386402 0.00016493106 1.9780211e-05 2.3030743e-05 0.00051371136 0.00011011217 3.253886e-05
22 0.0062785842 0.13769141 0.001743125 1.2185119e-05 0.00017068045 0.004754985 0.0002688594 3.1589884e-06 1.8877507e-05 0.0022611273 3.9709605e-05 9.727585e-06
23 3.335644e-05 0.34319195 0.00018843701 8.7069793e-07 8.516928e-06 0.0058070365 3.6556264e-06 2.3076667e-07 1.463309e-07 0.00048413855 2.9394914e-07 1.0016057e-07
24 2.7598245e-08 0.71729684 2.1495255e-06 1.2138136e-06 9.157232e-08 0.02594131 4.9092947e-09 5.1478743e-08 2.434345e-10 0.00093547354 4.089916e-10 6.905019e-09
25 8.673179e-06 0.5651511 3.3687338e-06 1.8361585e-05 1.7100099e-06 0.018923532 2.021362e-07 2.1672487e-07 1.5572724e-08 0.00023248923 1.5759085e-08 1.5963591e-08
26 0.0006819258 0.79936177 1.9983901e-05 6.7489964e-05 1.8786935e-05 0.0026585748 1.945028e-05 3.091401e-06 2.672494e-06 0.0001374258 4.931991e-06 1.3976714e-06
27 0.00016227354 0.7289602 0.00011640962 2.6306365e-05 5.504931e-05 0.020159643 4.0718947e-05 6.56836e-06 3.3905508e-06 0.002157479 1.6543283e-05 1.3760472e-06
28 1.9469524e-05 0.776153 0.002854284 6.50028e-06 2.462434e-05 0.010021779 5.2028386e-06 2.4023468e-06 2.4731176e-07 0.0003689484 6.4354674e-07 1.9555088e-07
29 6.0379157e-06 0.891646 0.0011463211 2.9813857e-05 9.033136e-06 0.005687247 3.996265e-06 1.0447734e-06 1.9478404e-07 0.000997302 5.129792e-07 4.895105e-07
30 0.00066666945 0.38497317 0.000327523 0.0015100732 0.0001482992 0.0030872056 7.169503e-05 6.2907006e-06 5.3814592e-06 0.0007899641 1.5226983e-05 1.934541e-05
31 0.001517156 0.10020319 7.100856e-05 5.175042e-05 1.439992e-05 0.008214117 6.399485e-05 6.4281976e-06 8.467307e-06 0.0012375154 1.34898155e-05 3.4099015e-05
32 6.195241e-05 0.45361155 0.00011185612 1.272702e-05 1.7560022e-05 0.014166645 4.806677e-06 1.228255e-06 2.6536827e-07 0.0016344256 4.016004e-07 5.374191e-07
33 1.6371848e-07 0.1747091 1.7991993e-05 5.208662e-06 1.2182946e-06 0.020926258 4.8648353e-08 1.2519452e-07 1.4686861e-09 0.00148135 5.054844e-09 5.4048133e-08
34 9.087821e-09 0.13886137 5.5594105e-06 8.545174e-06 1.05196655e-07 0.03809376 1.0566997e-08 1.2856449e-08 3.9731052e-10 9.6103344e-05 2.1998403e-09 7.432107e-08
35 8.179886e-06 0.4955629 4.5628535e-06 0.00015468517 1.0014027e-05 0.008238238 2.9689993e-06 5.58282e-07 5.0182723e-07 0.00010325257 5.652486e-07 3.1147894e-07
36 0.00015601357 0.03689768 5.2684216e-05 0.00022993557 9.870855e-06 0.0031463304 1.1348379e-05 2.568777e-07 1.8572352e-06 0.0008612714 2.4646579e-06 5.3215945e-07
37 0.00062411267 0.7375373 0.0012276277 3.7191956e-05 5.0330895e-05 0.011613357 1.900886e-05 2.3045711e-06 2.531913e-06 0.0010202706 8.8967645e-06 1.5277177e-06
38 0.00034310055 0.8034205 0.0008709528 0.00011021426 0.00016985618 0.0046230205 5.2749224e-06 7.2337747e-07 7.233306e-07 0.0019488796 2.3278083e-06 3.7971338e-07
39 0.0030299767 0.564029 0.00020218997 0.00050834235 6.528403e-05 0.00357279 8.316438e-06 4.707665e-07 7.5085126e-07 0.001211637 8.139127e-07 1.8590215e-06
40 0.016430598 0.260464 6.673995e-05 8.26663e-05 4.1097475e-05 0.00390321 0.00048708738 2.3679545e-06 1.6745185e-05 0.00041038985 3.486261e-05 6.8871254e-06
41 0.0034231204 0.2467563 0.0007192856 2.9893274e-06 9.176304e-06 0.0038868738 2.5519308e-05 7.766853e-07 2.811172e-06 0.00065538887 3.9840397e-06 2.088092e-06
42 4.6644423e-06 0.6746519 0.002378825 3.1858963e-06 1.4669812e-06 0.0006923369 1.7428092e-06 4.9207495e-07 7.133414e-08 0.00015848925 3.8554543e-08 1.8472215e-07
43 4.025913e-07 0.07405859 0.0026503906 6.193203e-05 5.7060083e-07 0.004681185 1.2890305e-07 6.4071095e-08 1.0678657e-08 0.00074449583 9.595429e-09 3.207071e-06
44 1.5834895e-07 0.27261728 0.0012426871 0.00015186626 2.0747293e-06 0.0073613725 8.1475605e-07 5.8062954e-09 1.8146311e-08 9.7854914e-05 3.8686178e-08 1.1429735e-06
45 0.00011900487 0.1357508 0.0074050264 0.0016564731 8.266913e-05 0.019860057 5.1897896e-05 8.4100094e-07 5.9661897e-06 0.0027308636 2.0539079e-05 3.306737e-05
46 0.00013929048 0.077199414 0.0018817156 0.00022644213 2.4973138e-05 0.020461094 6.313834e-05 2.7674384e-06 8.666142e-06 0.007912762 1.8890452e-05 1.9462026e-05
47 0.0017591835 0.26169106 0.008810699 7.374904e-05 8.532419e-05 0.022266181 0.00017233359 1.9170078e-05 3.5879464e-05 0.02105717 0.00015649723 2.2087888e-05
48 0.0006948613 0.5702558 0.0042178724 0.00012821674 6.357128e-05 0.015376499 8.4764375e-05 3.6126446e-06 4.997995e-06 0.001590069 2.1643911e-05 5.1321763e-06
49 0.00028662255 0.6015283 0.00063866586 0.00011794866 2.8462466e-05 0.0030768772 8.31749e-05 1.5488706e-05 1.8909253e-05 0.001386963 1.3627991e-05 9.000784e-06
50 0.0012443978 0.2464135 0.0005627789 4.4343473e-05 1.3085959e-05 0.0051072 4.2748645e-05 9.2358205e-06 2.328782e-05 0.0020071361 8.526419e-06 5.6215968e-06
51 0.0023246128 0.67543083 0.002677279 7.3809686e-05 5.0589202e-05 0.0042211046 2.2117418e-05 1.7687742e-06 1.796384e-05 0.009677429 7.5620383e-06 3.6224195e-05
52 2.4141234e-05 0.6530479 0.00048561677 0.000149909 4.9959026e-06 0.012700983 1.6229764e-06 1.259696e-06 4.1232764e-07 0.011251882 3.3164542e-07 1.3413297e-06
53 2.8481045e-07 0.756934 1.5635016e-05 7.0437876e-05 1.9774902e-07 0.013885954 3.515015e-08 2.1299199e-07 4.5614748e-09 0.0031635282 5.2874483e-09 1.3713891e-08
54 3.1481734e-06 0.59144396 1.0858301e-05 3.1711275e-05 3.1551194e-06 0.008727435 1.7318606e-06 5.4061816e-06 1.89266e-07 0.0008336721 7.803813e-07 1.858022e-07
55 0.0006521682 0.15055217 0.0005959595 0.00045696262 3.3729833e-05 0.017323263 0.00012108124 2.4464824e-05 1.5345207e-05 0.002089023 4.7696834e-05 5.8882583e-06
56 0.00068137416 0.60419613 0.00806375 7.5360884e-05 6.596553e-05 0.004378758 1.7899423e-05 2.178996e-05 3.2394635e-06 0.00037622126 7.465761e-06 6.919477e-06
57 3.6199675e-05 0.7511591 0.000712229 0.0003553234 3.8558745e-05 0.036236793 2.4336962e-06 6.5986483e-06 1.4783924e-06 0.0010109893 1.2337739e-06 4.1176972e-06
58 1.5187739e-05 0.65192324 0.0009791763 0.0007681369 1.2886759e-05 0.0032672517 6.6723696e-06 4.310435e-06 2.1143464e-06 0.00073100696 5.3043073e-06 1.0640143e-05
59 2.2962515e-05 0.21694599 0.00018304738 7.238323e-05 1.4976154e-05 0.012731089 1.730705e-05 7.251395e-06 3.8867233e-06 0.003344151 5.5895275e-06 6.7470805e-06
60 0.00020507941 0.5401167 0.00048882567 5.0320865e-05 4.304034e-05 0.0108627565 2.7524222e-05 3.8708284e-05 8.567842e-06 0.0053218296 1.4509261e-05 2.6525613e-06
61 7.566493e-07 0.584689 5.4627915e-05 0.0004652954 1.1395005e-06 0.015062643 1.4429904e-07 3.3632364e-07 5.320208e-08 0.002181108 5.7332382e-08 2.4920814e-07
62 5.649889e-06 0.6404879 0.00023549638 0.00038246595 3.9890915e-06 0.024792697 2.5240581e-06 1.5147046e-07 6.403931e-07 0.0015972962 5.253265e-07 1.4419244e-06
63 6.0010614e-05 0.81722015 0.00012455546 6.141238e-05 2.4246076e-05 0.008644608 2.0608715e-05 6.290942e-07 3.9214015e-06 0.00068868534 3.082031e-06 8.702288e-07
64 2.1709237e-05 0.54693127 8.166146e-05 8.626133e-05 4.0849563e-06 0.02420306 9.812627e-06 2.0188363e-06 2.3619957e-06 0.0033924016 5.433642e-06 1.0196975e-06
65 5.2920195e-06 0.50160635 0.00254506 1.8723546e-05 4.1029584e-06 0.014586123 2.7632557e-06 1.3539902e-06 5.1664375e-07 0.00532491 7.2773395e-07 1.1196528e-06
66 4.826802e-06 0.6000666 0.0033851678 7.521388e-06 3.8796834e-06 0.03862062 1.6187392e-06 8.608067e-07 3.751017e-07 0.0028895433 4.482253e-07 8.9079697e-07
67 3.9219253e-06 0.6900702 0.0011904631 4.1594314e-05 3.016439e-05 0.006129761 2.2342062e-06 1.3396525e-06 6.1242446e-07 0.0021204043 9.947836e-07 3.2273832e-07
68 0.0050234795 0.48052213 0.0006477987 0.00016532217 0.0005695884 0.013440274 0.00026325864 9.319689e-06 3.3497694e-05 0.0032552083 5.709763e-05 3.9514154e-05
69 0.009926768 0.35068285 0.00026277165 0.0005224699 0.00011402145 0.010900033 0.0005328492 9.764466e-06 7.158211e-05 0.0011159758 9.557291e-05 4.3749293e-05
70 6.101281e-06 0.6653127 6.731141e-05 2.5789748e-05 2.4885505e-06 0.0035001289 4.889528e-06 1.1407442e-06 3.969879e-07 0.0003278927 8.7886605e-07 8.2221436e-07
71 2.2242143e-06 0.69842005 0.000120197314 0.00044051962 2.1138744e-06 0.011991097 9.827477e-07 3.3675573e-08 1.3316698e-07 0.0006891328 2.446208e-07 2.1849071e-07
72 3.8870377e-05 0.674022 0.00029916878 0.00026114276 7.772191e-06 0.017075207 8.899336e-06 5.3932445e-07 1.6343162e-06 0.000820524 7.741157e-07 2.0777447e-06

Some files were not shown because too many files have changed in this diff Show More