The JSON file used by DeepSqueakFeed must follow a specific structure that mirrors the internal .mat file format. It consists of two primary objects: audiodata and Calls.
audiodata object
Contains metadata describing the source .wav file:
Filename: Full path to the .wav file (string).CompressionMethod: Compression method used (string).NumChannels: Number of audio channels (number).SampleRate: Samples per second (number).TotalSamples: Total number of samples (number).Duration: Duration in seconds (number).Title: Title of the audio file (string).Comment: File comment (string).Artist: The artist or rodent that produced the file (string).BitsPerSample: Number of bits per sample (number).
Calls object
Contains arrays representing labeled calls. Crucially, the arrays Box, Score, Type, and Accept must all have the same length.
Box: An array of arrays, where each inner array defines a spectrogram box: [lower_time, lower_frequency, time_extent, frequency_extent].Score: An array of confidence scores (numbers).Type: An array of call labels/types (strings).Accept: An array of booleans determining if the call is used for training.
{
"audiodata": {
"Filename": "..\\Annotated audio files\\example\\audio.wav",
"CompressionMethod": "NONE",
"NumChannels": 2,
"SampleRate": 48000,
"TotalSamples": 140393039,
"Duration": 2924.8549791666665,
"Title": "audio.wav",
"Comment": "",
"Artist": "",
"BitsPerSample": 16
},
"Calls": {
"Box": [
[1801.644187, 0.0, 0.147222999993993, 60.0],
[1801.79141, 0.0, 0.20243099999332, 60.0]
],
"Score": [1.0, 1.0],
"Type": ["Call", "Call"],
"Accept": [true, true]
}
}