larana | R Documentation |
Linear Prediction analysis of listOfFiles
using the
autocorrelation method and the Durbin recursion.
This program calculates the RMS amplitudes of the input
and residual signal in dB and, and log area ratios using algorithms implmented in libassp \insertCites5hsuperassp.
Input signals not in a file format natively
supported will be converted before the autocorrelation functions are
computed. The conversion process will display warnings about input files
that are not in known losslessly encoded formats.
larana(listOfFiles = NULL,
beginTime = 0.0,
centerTime = FALSE,
endTime = 0.0,
windowShift = 5.0,
windowSize = 20.0,
effectiveLength = TRUE,
window = 'BLACKMAN',
order = 0,
preemphasis = -0.95,
toFile = TRUE,
explicitExt=NULL,
outputDirectory = NULL,
assertLossless = NULL,
logToFile = FALSE,
keepConverted=FALSE,
verbose = TRUE)
listOfFiles |
vector of file paths to be processed by function |
beginTime |
the time point (in seconds) of the start of the analysed
interval. A NULL or 0 is interpreted as the start of the signal file.
If a vector of time points is supplied, the length of that vector needs
to correspond with the length of |
centerTime |
sets a single-frame analysis time point (in seconds).
Overrides |
endTime |
the time point (in seconds) of the end of the analysed
interval. A NULL or 0 is interpreted as the end of the signal file.
If a vector of time points is supplied, the length of that vector needs
to correspond with the length of |
windowShift |
the amount of time (in ms) that the analysis window will be shifted between analysis frames |
windowSize |
the analysis window size (in ms); overrides the effect of
the |
effectiveLength |
make window size effective rather than exact |
window |
= the analysis window function type ("BLACKMAN" by default). See AsspWindowTypes for a list of supported window types. |
analysisOrder |
the analysis order. The |
preemphasis |
= |
toFile |
Should the function write the results to a file, with the
(default) file extension ( |
explicitExt |
the file extension will be used when
result files are written ( |
outputDirectory |
directory in which output files are stored. Defaults to NULL which means that the result file will be stored in the same directory as the input file. |
verbose |
display verbose information about processing steps taken, as well as progress bars. |
assertLossless |
an optional list of file extensions that the user wants to assert contains losslessly encoded signals data. |
logToFile |
whether to log commands to a separate logfile in the
|
The results will be will be written to an SSFF formated file with the base
name of the input file and extension .lar
with tracks RMS[dB]
,gain[dB]
,and LAR
.
The function is a re-write of the wrassp::rfcana function with log area ratio output, but with media pre-conversion, better checking of preconditions such as the input file existance, structured logging, and the use of a more modern framework for user feedback.
The native file type of this function is "wav" files (in "pcm_s16le" format), SUNs "au", NIST, or CSL formats (kay or NSP extension). Input signal conversion, when needed, is done by libavcodec and the excellent av::av_audio_convert wrapper function
The number of successfully written files (if toFile=TRUE
), or a vector of AsspDataObj
objects (if toFile=FALSE
).
This function is not considered computationally expensive enough to require caching of results if applied to many signals. However, if the number of signals it will be applied to is very large, then caching of results may be warranted.
Raphael Winkelmann
Lasse Bombien
Fredrik Nylén
wrassp::rfcana
AsspWindowTypes
av::av_audio_convert
# get path to audio file
path2wav <- list.files(system.file("samples","sustained", package = "superassp"), pattern = glob2rx("a1.wav"), full.names = TRUE)
# perform linear prediction analysis
res <- rfcana(path2wav, toFile=FALSE)
# plot reflection coefficients
matplot(seq(0,numRecs.AsspDataObj(res) - 1) / rate.AsspDataObj(res) +
attr(res, 'startTime'),
res$LAR,
type='l',
xlab='time (s)',
ylab='Log area ratios')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.