Learn R Programming

wrassp

Out of funding

Unfortunately, the EMU-SDMS is currently out of funding.

We at the IPS will do what we can to fix bugs, security issues or necessary adjustments to new versions of R; but we cannot currently work on new features or performance improvements.

We would be very glad if funding in academia allowed for more technical staff to maintain software used by the research community.

Introduction

wrassp is a wrapper for R around Michel Scheffers's libassp (Advanced Speech Signal Processor). The libassp library aims at providing functionality for handling speech signal files in most common audio formats and for performing analyses common in phonetic science/speech science. This includes the calculation of formants, fundamental frequency, root mean square, auto correlation, a variety of spectral analyses, zero crossing rate, filtering etc. This wrapper provides R with a large subset of libassp's signal processing functions and provides them to the user in a (hopefully) user-friendly manner.

This package is part of the next iteration of the EMU Speech Database Management System which aims to be as close to an all-in-one solution for generating, manipulating, querying, analyzing and managing speech databases as possible. For an overview of the system please visit this URL: https://ips-lmu.github.io/EMU.html.

Installation

install.packages("wrassp")
  • or install the latest development version from GitHub (as large parts of wrassp are written in C make sure your system fulfills the requirements for package development (see here)):
library(devtools)
install_github("IPS-LMU/wrassp", build_vignettes = TRUE)

Quick start

  • load the library:
library("wrassp")
  • get path to an audio file:
path2wav <- list.files(system.file("extdata", package = "wrassp"), pattern = glob2rx("*.wav"), full.names = TRUE)[1]
  • calculate formants from audio file:
res=forest(path2wav, toFile=FALSE)
  • plot the first 100 F1 values over time:
plot(res$fm[1:100,1],type='l')
  • for more information see the An introduction to the wraspp package vignette:
vignette('wrassp_intro')

Available signal processing functions

  • acfana(): Analysis of short-term autocorrelation function
  • afdiff(): Computes the first difference of the signal
  • affilter(): Filters the audio signal (see docs for types)
  • cepstrum(): Short-term cepstral analysis
  • cssSpectrum(): Cepstral smoothed version of dftSpectrum()
  • dftSpectrum(): Short-term DFT spectral analysis
  • forest(): Formant estimation
  • ksvF0(): F0 analysis of the signal
  • lpsSpectrum(): Linear Predictive smoothed version of dftSpectrum()
  • mhsF0(): Pitch analysis of the speech signal using Michel's/Modified Harmonic Sieve algorithm
  • rfcana(): Linear Prediction analysis
  • rmsana(): Analysis of short-term Root Mean Square amplitude
  • zcrana(): Analysis of the averages of the short-term positive and negative zero-crossing rates

(see the respective R documentation for more details on all of these functions)

Available file handling functions

  • read.AsspDataObj(): read an existing SSFF file into a AsspDataObj which is its in-memory equivalent.
  • write.AsspDataObj(): write a AsspDataObj out to a SSFF file.

For Developers

Prerequisite: docker is installed on your machine

Build and check package using rocker/r-devel docker image

  • pull current r-devel image: docker pull rocker/r-devel
  • check if pull worked: docker images
  • check R version in image: docker run --rm rocker/r-devel:latest R --version
  • run the container with an interactive shell, mounting wrassp project folder (==current directory) and a named docker volume for the output tarball: docker run --rm -ti -v $(pwd):/wrassp -v wrassp_packages:/output rocker/r-devel:latest bash

In the interactive shell you just started:

  • manually install OS deps (this might need a bit of tweaking): apt update && apt install --yes pandoc tidy qpdf
  • manually install R deps (this might need a bit of tweaking): RD -e 'install.packages(c("tibble","compare", "rmarkdown", "knitr", "testthat"))'
  • build: RD CMD build --resave-data wrassp
  • check: RD CMD check --as-cran wrassp_*.tar.gz
  • copy built package to the named docker volume so it can be retrieved from outside this container: cp wrassp_*.tar.gz /output

Additional checks using kalibera/rchk

  • pull current rchk image: docker pull kalibera/rchk
  • run the checks: docker run --rm -v wrassp_packages:/rchk/packages kalibera/rchk:latest /rchk/packages/wrassp_x.y.z.tar.gz
  • rchk results are printed to stdout and also stored in libsonly/wrassp/libs/wrassp.so{maa|b|ffi}check on the named docker volume
  • see also: https://github.com/kalibera/rchk/blob/master/doc/DOCKER.md (Checking a package from a tarball)

Authors

Raphael Winkelmann

Lasse Bombien

Markus Jochim (current maintainer)

Affiliations

INSTITUTE OF PHONETICS AND SPEECH PROCESSING

Copy Link

Version

Install

install.packages('wrassp')

Monthly Downloads

346

Version

1.0.5

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

January 9th, 2024

Functions in wrassp (1.0.5)

is.AsspDataObj

Checks whether x is a valid AsspDataObj
cssSpectrum

cssSpectrum
dur.AsspDataObj

Timing information on AsspDataObj
isAsspLpType

isAsspLpType
isAsspSpectType

isAsspSpectType
isAsspWindowType

isAsspWindowType
delTrack

Remove track from an AsspDataObj
cepstrum

cepstrum
dftSpectrum

dftSpectrum
forest

forest
rmsana

rmsana
lpsSpectrum

lpsSpectrum
prepareFiles

Normalise a list of filenames so that they can be passed to a signal processing function
tracks.AsspDataObj

tracks.AsspDataObj
useWrasspLogger

package variable to force the usage of the logger set to FALSE by default
rfcana

rfcana
ksvF0

ksvF0
read.AsspDataObj

read.AsspDataObj from a signal/parameter file
mhsF0

mhsF0
print.AsspDataObj

print a summary of an AsspDataObj
write.AsspDataObj

write.AsspDataObj to file
wrassp-package

wrassp - Interface to the ASSP Library
wrassp.logger

wrassp.logger
zcrana

zcrana
wrasspOutputInfos

list of default output extensions, track names and output type for each signal processing function in wrassp
AsspSpectTypes

AsspSpectTypes
AsspDataFormat

Get/set data format of an AsspDataObj
afdiff

afdiff
affilter

affilter
AsspFileFormats

list of possibly useful file formats for AsspDataObj corresponding to the first element of the fileInfo attribute
AsspFileFormat

Get and set AsspFileFormat
acfana

acfana
AsspLpTypes

AsspLpTypes
addTrack

Add a track to an AsspDataObj
AsspWindowTypes

AsspWindowTypes