specan
measures acoustic parameters on acoustic signals for which the start and end times
are provided.
specan(X, bp = c(0,22), wl = 512, wl.freq = NULL, threshold = 15,
parallel = 1, fast = TRUE, path = NULL, pb = TRUE, ovlp = 50, ff.method = "seewave",
wn = "hanning", fsmooth = 0.1)
A numeric vector of length 2 for the lower and upper limits of a frequency bandpass filter (in kHz) or "frange" to indicate that values in bottom.freq and top.freq columns will be used as bandpass limits. Default is c(0, 22).Lower limit of bandpass is not applied to fundamental frequencies.
A numeric vector of length 1 specifying the spectrogram window length. Default is 512. See 'wl.freq' for setting windows length independenlty in the frequency domain.
A numeric vector of length 1 specifying the window length of the spectrogram
for measurements on the frecuency spectrum. Default is 512. Higher values would provide
more accurate measurements. Note that this allows to increase measurement precision independently in the time and frequency domain. If NULL
(default) then the 'wl' value is used.
amplitude threshold (%) for fundamental frequency and dominant frequency detection. Default is 15.
Numeric. Controls whether parallel computing is applied. It specifies the number of cores to be used. Default is 1 (i.e. no parallel computing).
Logical. If TRUE
(default) then the peakf acoustic parameter (see below) is not computed, which
substantially increases performance (~9 times faster).
Character string containing the directory path where the sound files are located.
If NULL
(default) then the current working directory is used.
Logical argument to control progress bar and messages. Default is TRUE
.
Character vector of length 1 specifying window name. Default is hanning'.
See function ftwindow
for more options.
A numeric vector of length 1 to smooth the frequency spectrum with a mean sliding window (in kHz) used for mean peak frequency detection. This help to average amplitude "hills" to minimize the effect of amplitude modulation. Default is 0.1.
Data frame with 'sound.files' and 'selec' as in the input data frame, plus the following acoustic parameters:
duration
: length of signal (in s)
meanfreq
: mean frequency. Weighted average of frequency by amplitude (in kHz)
sd
: standard deviation of frequency weighted by amplitude
freq.median
: median frequency. The frequency at which the signal is divided in two frequency
intervals of equal energy (in kHz)
freq.Q25
: first quartile frequency. The frequency at which the signal is divided in two
frequency intervals of 25% and 75% energy respectively (in kHz)
freq.Q75
: third quartile frequency. The frequency at which the signal is divided in two
frequency intervals of 75% and 25% energy respectively (in kHz)
freq.IQR
: interquartile frequency range. Frequency range between 'freq.Q25' and 'freq.Q75'
(in kHz)
time.median
: median time. The time at which the signal is divided in two time
intervals of equal energy (in s)
time.Q25
: first quartile time. The time at which the signal is divided in two
time intervals of 25% and 75% energy respectively (in s). See acoustat
time.Q75
: third quartile time. The time at which the signal is divided in two
time intervals of 75% and 25% energy respectively (in s). See acoustat
time.IQR
: interquartile time range. Time range between 'time.Q25' and 'time.Q75'
(in s). See acoustat
skew
: skewness. Asymmetry of the spectrum (see note in specprop
description)
kurt
: kurtosis. Peakedness of the spectrum (see note in specprop
description)
sp.ent
: spectral entropy. Energy distribution of the frequency spectrum. Pure tone ~ 0;
noisy ~ 1. See sh
time.ent
: time entropy. Energy distribution on the time envelope. Pure tone ~ 0;
noisy ~ 1. See th
entropy
: spectral entropy. Product of time and spectral entropy sp.ent * time.ent
.
See H
sfm
: spectral flatness. Similar to sp.ent (Pure tone ~ 0;
noisy ~ 1). See sfm
meanfun
: average of fundamental frequency measured across the acoustic signal
minfun
: minimum fundamental frequency measured across the acoustic signal
maxfun
: maximum fundamental frequency measured across the acoustic signal
meandom
: average of dominant frequency measured across the acoustic signal
mindom
: minimum of dominant frequency measured across the acoustic signal
maxdom
: maximum of dominant frequency measured across the acoustic signal
dfrange
: range of dominant frequency measured across the acoustic signal
modindx
: modulation index. Calculated as the cumulative absolute
difference between adjacent measurements of dominant frequencies divided
by the dominant frequency range. 1 means the signals is not modulated.
startdom
: dominant frequency measurement at the start of the signal
enddom
: dominant frequency measurement at the end of the signal
dfslope
: slope of the change in dominant through time ((enddom-startdom)/duration). Units are kHz/s.
peakf
: peak frequency. Frequency with highest energy (only generated if fast = FALSE
)
meanpeakf
: Mean peak frequency. Frequency with highest energy from the
mean spectrum (see meanspec
). Typically more consistent than peakf.
bottom.freq
: low frequency. Low limit of frequency range (only generated if frange.detec = TRUE
)
top.freq
: high frequency. High limit of frequency range (only generated if frange.detec = TRUE
)
The ouptut of manualoc
or autodetec
can be used
directly without any additional modification. The function measures 29 acoustic parameters (if fast = TRUE
) on
each selection in the data frame. Most parameters are produced internally by
specprop
, fpeaks
, fund
,
and dfreq
from the package seewave and FF
from the package tuneR. NAs are produced for fundamental and dominant
frequency measures when there are no amplitude values above the threshold.
# NOT RUN {
{
# First set temporary folder
# setwd(tempdir())
data(list = c("Phae.long1", "Phae.long2", "Phae.long3", "Phae.long4", "selec.table"))
writeWave(Phae.long1,"Phae.long1.wav")
writeWave(Phae.long2,"Phae.long2.wav")
writeWave(Phae.long3,"Phae.long3.wav")
writeWave(Phae.long4,"Phae.long4.wav")
a <- specan(X = selec.table, bp = c(0, 22))
# using a diferent threshold
a <- specan(X = selec.table, bp = c(0, 22), threshold = 20)
# View(a)
}
# }
Run the code above in your browser using DataLab