DOI: 10.5061/dryad.4qrfj6qf0
title: Data for: PerchPicker classifier model v7: A catalog of American silver perch (Bairdiella chrysoura) calls for machine learning

description: This data repository contains labeled passive underwater acoustic data
 used to train and test the machine-learning model of Bohnenstiehl (in prep
 - 2023), Automated cataloging of American silver perch (Bairdiella
 chrysoura) calls using machine learning. The software accompanying this
 paper is known as PerchPicker (GitHub - drbohnen/PerchPicker), and the
 classifier model presented in the paper is v7. It consists of more than
 6000 labeled perch and 6000 labeled other signals. Labeled scalogram
 images are provided, along with pressure-corrected waveforms
 (micro-Pascals) sampled at 24 kHz. Each waveform sample is 90 ms long. The
 center 30 ms of these waveform segments represent the portion of the
 signal used in training and testing the classifier model. Waveform data
 are provided in multiple formats: 1)  MATLAB (.mat) files
 containing the 'perch' and 'other' waveforms stored in
 column format, and 2) individual .wav files, each containing a labeled
 waveform example.  Codes are provided to demonstrate how these
 .wav files can be read into MATLAB and PYTHON.  These labeled
 data can be used to re-train the PerchPicker model or develop alternative
 classifiers. 
description: Labeled signals were extracted from passive acoustic data
 collected at eight sites within southwestern Pamlico Sound near its
 confluence with the Pamlico and Neuse River estuaries. As part of a larger
 effort to monitor the evolution of these reef habitats, each site was
 outfitted with a SoundTrap 300 hydrophone affixed ~0.5 m above the seabed
 a the top of a metal stake anchored with a concrete block. Monitoring
 extended from the fall of 2016 through the fall of 2017, and from the
 Spring of 2018 through the Fall of 2018. Over most of the monitoring
 period, the recorders were programmed to capture a 2-minute-duration
 recording every 20 minutes. Acoustic data were collected at a rate of
 96,000 samples/second. They were subsequently resampled to a rate of 24
 kHz with the application of an anti-aliasing filter.
 PerchPicker's kurtosis-SNR detector was deployed on hundreds
 of randomly selected files over the 2+ year monitoring period and from all
 eight sites. This approach ensured that the training and test datasets
 captured calls from estuarine soundscapes across various seasons and with
 varying anthropogenic, geophysical (wind, waves, rain) and biological
 noise. A spectrogram, filter waveform and scalogram image were displayed
 for each detection, and signals labeled as ‘perch’ or ‘other’ scalogram
 images were retained for training and testing purposes. The final labeled
 catalog consisted of more than 6000 signals within the ‘perch’ class and
 more than 6000 signals within the ‘other’ class.
 For each detection, a
 30-ms-duration sample, beginning 3 ms before the detection time, is
 extracted from the unfiltered waveform data. A scalogram is made using the symmetric (gamm=3)
 Morse wavelet with 16 wavelet bandpass filters (voices) per octave and a
 time-bandwidth product of 120. The frequency range of the scalogram is set
 to between 1 and 12 kHz, and the amplitude information is rescaled using
 the range of values in the 2.0-3.5 kHz and 0-20 ms region of the
 scalogram. Each scalogram is
 converted to an RGB image and resized to 224-by-224 pixels. These
 scalogram images are stored './perch' and './other'
 folders in the compressed folder
 perchpicker_training_scalograms.zip. 
 Waveform data snippets are also
 provided for these labeled signals. Each snippet is 90 ms
 long, with the training and test data (used in generating the scalograms)
 representing the center 30 ms of data (points 721 through 1440) These
 waveforms are unfiltered, pressure corrected and sampled at 24 kHz. These
 waveform snippets are provided in two formats. For those working in
 MATLAB, two .mat files are included (perch_wavefrom_database_v7.mat and
 other_wavefrom_database_v7.mat). Each contains a 2161 x N matrix with the
 snippets stored in columns, and variables indicating station names, UTC
 times, sample rate and a time vector for plotting. For those working in
 other software, these snippets are also saved as individual wavfiles
 stored in './perch' and './other' folders within the
 perchpicker_training_wavclips.zip file. Scripts for reading these wavfiles
 in MATLAB and PYTHON are provided.  The MATLAB-based
 PerchPicker software is available here: GitHub -
 drbohnen/PerchPicker.
description: <strong>To read the pre-made scalogram
 images </strong> For each detection, a 30-ms-duration sample is
 extracted from the unfiltered waveform data. A scalogram is made using the symmetric (gamm=3)
 Morse wavelet with 16 wavelet bandpass filters (voices) per octave and a
 time-bandwidth product of 120. The frequency range of the scalogram is set
 to between 1 and 12 kHz, and the amplitude information is rescaled using
 the range of values in the 2.0-3.5 kHz and 0-20 ms region of the
 scalogram. Each scalogram is
 converted to an RGB image and resized to 224-by-224
 pixels.  For example:
 Unzip the perchpicker_training_scalograms_v7.zip file 
 Images are stored in perch and other folders.   They can be read
 into MATLAB as:           &gt;&gt; 
 im=imread('p_DB_335589429.180508212002_078.7066250.jpg');          &gt;&gt;  figure; imshow(im) <strong>To read the waveform snippets into MATLAB: </strong> Waveform data snippets are also provided for these labeled signals. Each snippet is 90 ms long, with the training and test data (used in generating the scalograms) representing the center 30 ms of data (points 721 through 1440) These waveforms are unfiltered, pressure corrected and sampled at 24 kHz.   For example:         &gt;&gt; load perch_wavefrom_database_v7.mat        &gt;&gt; whos         fs                     1x1                         8  double                         % sample rate   = 24,000 Hz          perchcalls       2161x6009             103883592  double         % each column is a call example          station             6009x1                   649846  cell                    % name of stations          t                       2161x1                   17288  double                % time vector for plotting          utc                   6009x1                   96144  datetime             % approximate UTC time  Station names and locations are given below:   Site Full Site Name Latitude Longitude Water depth (m) BB Bonner Bay 35.15680 -76.59548 1.75 CB Caffee Bay 35.36784 -76.30710 1.75 DB Deep Bay 35.37786 -76.41677 2.75 JB Jones Bay 35.23139 -76.53770 1.25 DC Jones Bay, Ditch Creek 35.21988 -76.55731 1.25 RB Rose Bay 35.39286 -76.38895 2.50 U1 Unstructured Site 1 35.36726 -76.35072 2.25 U2 Unstructured Site 2 35.19028 -76.54290 1.80             &gt;&gt; figure; plot(t,perchcalls(:,1);  % show first waveform              &gt;&gt; figure; plot(t(721:1440), perchcalls(721:1440,1)); % show portion used in scalogram generation To recreate the scalograms, use the function provided as part of PerchPicker                  &gt;&gt; ppMakescalo(perchcall(721:1140,1));  loading 'other_waveform_database_v7.mat will similarly load the other signal class.  <strong>To access the waveform snippets in wavfile format: </strong> The snippets are also saved as individual (32-bit) wavfiles.  Each file contains 90 ms of data, with the training and test data representing the center 30 ms of data (points 721 through 1440 within each column). These waveforms are unfiltered, pressure corrected and sampled at 24 kHz.          For example:        Unzip the perchpicker_training_wavclips.zip file to reveal './<em>perch</em> and './<em>other'</em> folders.        The readwavfiles.mlx (MATLAB) and readwavfiles.ipynb (PYTHON) scripts demonstrate how to load the data. If using MATLAB audioread function, specify 'native' format.