Splits sound files and associated annotations
Source:R/split_acoustic_data.R
split_acoustic_data.Rd
split_acoustic_data
splits sound files (and corresponding selection tables) in shorter segments
Usage
split_acoustic_data(path = ".", sgmt.dur = 10, sgmts = NULL, files = NULL,
cores = 1, pb = TRUE, only.sels = FALSE, X = NULL)
Arguments
- path
Directory path where sound files are found. The current working directory is used as default.
- sgmt.dur
Numeric. Duration (in s) of segments in which sound files would be split. Sound files shorter than 'sgmt.dur' won't be split. Ignored if 'sgmts' is supplied.
- sgmts
Numeric. Number of segments in which to split each sound file. If supplied 'sgmt.dur' is ignored.
- files
Character vector indicating the subset of files that will be split. Supported file formats:'.wav', '.mp3', '.flac' and '.wac'. If not supplied the function will work on all sound files (in the supported format) in 'path'.
- cores
Numeric. Controls whether parallel computing is applied. It specifies the number of cores to be used. Default is 1 (i.e. no parallel computing).
- pb
Logical argument to control progress bar. Default is
TRUE
. Only used when- only.sels
Logical argument to control if only the data frame is returned (no wave files are saved). Default is
FALSE
.- X
'selection_table' object or a data frame with columns for sound file name (sound.files), selection number (selec), and start and end time of signal (start and end). If supplied the data frame/selection table is modified to reflect the position of the selections in the new sound files. Note that some selections could split between 2 segments. To deal with this, a 'split.sels' column is added to the data frame in which those selection are labeled as 'split'. Default is
NULL
.
Value
Wave files for each segment in the working directory (if only.sels = FALSE
, named as 'sound.file.name-#.wav') and a data frame in the R environment containing the name of the original sound files (original.sound.files), the name of the clips (sound.files) and the start and end of clips in the original files. Clips are saved in .wav format. If 'X' is supplied then a data frame with the position of the selections in the newly created clips is returned instead. In this case the output data frame contains an additional column, 'split.sels', that inform users whether selections have been split into multiple clips ('split') or not (NA
). Sound files in 'path' that are not referenced in 'X' will stil be split.
Details
This function aims to reduce the size of sound files in order to simplify some processes that are limited by sound file size (big files can be manipulated, e.g. energy_detector
).
References
Araya-Salas, M., Smith-Vidaurre, G., Chaverri, G., Brenes, J. C., Chirino, F., Elizondo-Calvo, J., & Rico-Guevara, A. 2022. ohun: an R package for diagnosing and optimizing automatic sound event detection. BioRxiv, 2022.12.13.520253. https://doi.org/10.1101/2022.12.13.520253
Author
Marcelo Araya-Salas (marcelo.araya@ucr.ac.cr)
Examples
{
# load data and save to temporary working directory
data("lbh1", "lbh2")
tuneR::writeWave(lbh1, file.path(tempdir(), "lbh1.wav"))
tuneR::writeWave(lbh2, file.path(tempdir(), "lbh2.wav"))
# split files in 1 s files
split_acoustic_data(sgmt.dur = 1, path = tempdir())
# Check this folder
tempdir()
}
#> [1] "/tmp/Rtmpc1ERJx"