Splitter Dataset

class opensoundscape.datasets.SplitterDataset(wavs, annotations=False, label_corrections=None, overlap=1, duration=5, output_directory='segments', include_last_segment=False, column_separator='t', species_separator='|')

A PyTorch Dataset for splitting a WAV files

Segments will be written to the output_directory

  • wavs – A list of WAV files to split
  • annotations – Should we search for corresponding annotations files? (default: False)
  • label_corrections – Specify a correction labels CSV file w/ column headers “raw” and “corrected” (default: None)
  • overlap – How much overlap should there be between samples (units: seconds, default: 1)
  • duration – How long should each segment be? (units: seconds, default: 5)
  • Where should segments be written? (default (output_directory) – segments/)
  • include_last_segment – Do you want to include the last segment? (default: False)
  • column_separator – What character should we use to separate columns (default: ” “)
  • species_separator – What character should we use to separate species (default: “|”)

A list of CSV rows (separated by column_separator) containing

the source audio, segment begin time (seconds), segment end time (seconds), segment audio, and present classes separated by species_separator if annotations were requested

Return type:


opensoundscape.datasets.annotations_with_overlaps_with_clip(df, begin, end)

Determine if any rows overlap with current segment

  • df – A dataframe containing a Raven annotation file
  • begin – The begin time of the current segment (unit: seconds)
  • end – The end time of the current segment (unit: seconds)

A dataframe of annotations which overlap with the begin/end times

Return type:



Generate MD5 sum for a string

Parameters:input_string – An input string
Returns:A string containing the md5 hash of input string
Return type:output



Run a command returning output, error

Parameters:cmd – A string containing some command
Returns:A tuple of standard out and standard error
Return type:(stdout, stderr)

Run a command returning the return code

Parameters:cmd – A string containing some command
Returns:The return code of the function
Return type:return_code


opensoundscape.helpers.binarize(x, threshold)

return a list of 0, 1 by thresholding vector x

opensoundscape.helpers.bound(x, bounds)

restrict x to a range of bounds = [min, max]


get file name without extension from a path


convert a hexidecimal, Unix time string to a datetime timestamp in utc

Example usage: ``` # Get the UTC timestamp t = hex_to_time(‘5F16A04E’)

# Convert it to a desired timezone my_timezone = pytz.timezone(“US/Mountain”) t = t.astimezone(my_timezone) ```

Parameters:s (string) – hexadecimal Unix epoch time string, e.g. ‘5F16A04E’
Returns:datetime.datetime object representing the date and time in UTC

check for nan by equating x to itself

opensoundscape.helpers.jitter(x, width, distribution='gaussian')

Jitter (add random noise to) each value of x

  • x – scalar, array, or nd-array of numeric type
  • width – multiplier for random variable (stdev for ‘gaussian’ or r for ‘uniform’)
  • distribution – ‘gaussian’ (default) or ‘uniform’ if ‘gaussian’: draw jitter from gaussian with mu = 0, std = width if ‘uniform’: draw jitter from uniform on [-width, width]

x + random jitter

Return type:


opensoundscape.helpers.linear_scale(array, in_range=(0, 1), out_range=(0, 255))

Translate from range in_range to out_range

in_range: The starting range [default: (0, 1)] out_range: The output range [default: (0, 255)]
new_array: A translated array
opensoundscape.helpers.min_max_scale(array, feature_range=(0, 1))

rescale vaues in an a array linearly to feature_range

opensoundscape.helpers.rescale_features(X, rescaling_vector=None)

rescale all features by dividing by the max value for each feature

optionally provide the rescaling vector (1xlen(X) np.array), so that you can rescale a new dataset consistently with an old one

returns rescaled feature set and rescaling vector


run a bash command with Popen, return response


sigmoid function