Internal soundgen function
.analyze(
audio,
dynamicRange = 80,
silence = 0.04,
windowLength = 50,
step = NULL,
overlap = 50,
wn = "gaussian",
zp = 0,
cutFreq = NULL,
nFormants = 3,
formants = NULL,
loudness = NULL,
roughness = NULL,
novelty = NULL,
pitchMethods = c("dom", "autocor"),
pitchManual_list = NULL,
entropyThres = 0.6,
pitchFloor = 75,
pitchCeiling = 3500,
priorMean = 300,
priorSD = 6,
priorAdapt = TRUE,
nCands = 1,
minVoicedCands = NULL,
pitchDom = list(),
pitchAutocor = list(),
pitchCep = list(),
pitchSpec = list(),
pitchHps = list(),
pitchZc = list(),
harmHeight = list(),
subh = list(),
flux = list(),
shortestSyl = 20,
shortestPause = 60,
interpol = NULL,
pathfinding = c("none", "fast", "slow")[2],
annealPars = list(maxit = 5000, temp = 1000),
certWeight = 0.5,
snakeStep = 0.05,
snakePlot = FALSE,
smooth = 1,
smoothVars = c("pitch", "dom"),
returnPitchCands = FALSE,
plot = TRUE,
showLegend = TRUE,
osc = "linear",
pitchPlot = list(col = rgb(0, 0, 1, 0.75), lwd = 3, showPrior = TRUE),
pitchDom_plotPars = list(),
pitchAutocor_plotPars = list(),
pitchCep_plotPars = list(),
pitchSpec_plotPars = list(),
pitchHps_plotPars = list(),
pitchZc_plotPars = list(),
extraContour = NULL,
ylim = NULL,
xlab = NULL,
ylab = NULL,
main = NULL,
width = 900,
height = 500,
units = "px",
res = NA,
...
)
a list returned by readAudio
dynamic range, dB. All values more than one dynamicRange under maximum are treated as zero
(0 to 1 as proportion of max amplitude) frames with RMS
amplitude below silence * max_ampl adjusted by scale
are not
analyzed at all.
length of FFT window, ms
you can override overlap
by specifying FFT step, ms (NB:
because digital audio is sampled at discrete time intervals of
1/samplingRate, the actual step and thus the time stamps of STFT frames
may be slightly different, eg 24.98866 instead of 25.0 ms)
overlap between successive FFT frames, %
window type accepted by ftwindow
, currently
gaussian, hanning, hamming, bartlett, rectangular, blackman, flattop
window length after zero padding, points
if specified, spectral descriptives (peakFreq, specCentroid,
specSlope, and quartiles) are calculated only between cutFreq[1]
and
cutFreq[2]
. If a single number is given, analyzes frequencies from 0
to cutFreq
. For ex., when analyzing recordings with varying sampling
rates, set to half the lowest sampling rate to make the spectra more
comparable. Note that "entropyThres" applies only to this frequency range,
which also affects which frames will not be analyzed with pitchAutocor.
the number of formants to extract per STFT frame (0 = no formant analysis, NULL = as many as possible)
a list of arguments passed to
findformants
- an external function called to
perform LPC analysis
a list of parameters passed to getLoudness
for
measuring subjective loudness, namely SPL_measured, Pref,
spreadSpectrum
. NULL = skip loudness analysis
a list of parameters passed to
modulationSpectrum
for measuring roughness. NULL = skip
roughness analysis
a list of parameters passed to ssm
for measuring
spectral novelty. NULL = skip novelty analysis
methods of pitch estimation to consider for determining pitch contour: 'autocor' = autocorrelation (~PRAAT), 'cep' = cepstral, 'spec' = spectral (~BaNa), 'dom' = lowest dominant frequency band, 'hps' = harmonic product spectrum, NULL = no pitch analysis
pitch tracking is only performed for frames with Weiner
entropy below entropyThres
, but other spectral descriptives are
still calculated (NULL = analyze everything)
absolute bounds for pitch candidates (Hz)
absolute bounds for pitch candidates (Hz)
specifies the mean (Hz) and standard deviation
(semitones) of gamma distribution describing our prior knowledge about the
most likely pitch values for this file. For ex., priorMean = 300,
priorSD = 6
gives a prior with mean = 300 Hz and SD = 6 semitones (half
an octave)
specifies the mean (Hz) and standard deviation
(semitones) of gamma distribution describing our prior knowledge about the
most likely pitch values for this file. For ex., priorMean = 300,
priorSD = 6
gives a prior with mean = 300 Hz and SD = 6 semitones (half
an octave)
adaptive second-pass prior: if TRUE, optimal pitch contours
are estimated first with a prior determined by priorMean,priorSD
, and
then with a new prior adjusted according to this first-pass pitch contour
maximum number of pitch candidates per method, normally 1...4
(except for dom
, which returns at most one candidate per frame)
minimum number of pitch candidates that have to be
defined to consider a frame voiced (if NULL, defaults to 2 if dom
is
among other candidates and 1 otherwise)
a list of control parameters for pitch tracking using the
lowest dominant frequency band or "dom" method; see details and
?soundgen:::getDom
a list of control parameters for pitch tracking using the
autocorrelation or "autocor" method; see details and
?soundgen:::getPitchAutocor
a list of control parameters for pitch tracking using the
cepstrum or "cep" method; see details and ?soundgen:::getPitchCep
a list of control parameters for pitch tracking using the
BaNa or "spec" method; see details and ?soundgen:::getPitchSpec
a list of control parameters for pitch tracking using the
harmonic product spectrum or "hps" method; see details and
?soundgen:::getPitchHps
a list of control parameters for pitch tracking based on zero
crossings in bandpass-filtered audio or "zc" method; see
getPitchZc
a list of control parameters for estimating how high
harmonics reach in the spectrum; see details and ?soundgen:::harmHeight
a list of control parameters for estimating the strength of
subharmonics per frame - that is, spectral energy at integer ratios of f0:
see ?soundgen:::subhToHarm
a list of control parameters for calculating feature-based flux
(not spectral flux) passed to getFeatureFlux
the smallest length of a voiced segment (ms) that constitutes a voiced syllable (shorter segments will be replaced by NA, as if unvoiced)
the smallest gap between voiced syllables (ms): large value = interpolate and merge, small value = treat as separate syllables separated by an unvoiced gap
a list of parameters (currently win, tol, cert
) passed
to soundgen:::pathfinder
for interpolating missing pitch candidates
(NULL = no interpolation)
method of finding the optimal path through pitch
candidates: 'none' = best candidate per frame, 'fast' = simple heuristic,
'slow' = annealing. See soundgen:::pathfinder
a list of control parameters for postprocessing of
pitch contour with SANN algorithm of optim
. This is
only relevant if pathfinding = 'slow'
(0 to 1) in pitch postprocessing, specifies how much we prioritize the certainty of pitch candidates vs. pitch jumps / the internal tension of the resulting pitch curve
optimized path through pitch candidates is further
processed to minimize the elastic force acting on pitch contour. To
disable, set snakeStep = 0
if TRUE, plots the snake
if smooth
is a positive number, outliers of
the variables in smoothVars
are adjusted with median smoothing.
smooth
of 1 corresponds to a window of ~100 ms and tolerated
deviation of ~4 semitones. To disable, set smooth = 0
if smooth
is a positive number, outliers of
the variables in smoothVars
are adjusted with median smoothing.
smooth
of 1 corresponds to a window of ~100 ms and tolerated
deviation of ~4 semitones. To disable, set smooth = 0
if TRUE, produces a spectrogram with pitch contour overlaid
if TRUE, adds a legend with pitch tracking methods
"none" = no oscillogram; "linear" = on the original scale; "dB" = in decibels
a list of graphical parameters for displaying the final
pitch contour. Set to list(type = 'n')
to suppress
name of an output variable to overlapy on the pitch
contour plot, eg 'peakFreq' or 'loudness'; can also be a list with extra
graphical parameters, eg extraContour = list(x = 'harmHeight', col =
'red')
frequency range to plot, kHz (defaults to 0 to Nyquist frequency). NB: still in kHz, even if yScale = bark or mel
plotting parameters
plotting parameters
plotting parameters
parameters passed to
png
if the plot is saved
parameters passed to
png
if the plot is saved
parameters passed to
png
if the plot is saved
parameters passed to
png
if the plot is saved
other graphical parameters passed to spectrogram