norm_deltaF: ∆F Normalization

View source: R/normalizations.R

norm_deltaFR Documentation

∆F Normalization

Description

Normalize vowel formant measurements with ∆F (see Johnson 2020). This function is intended to be used within a tidyverse pipeline.

Usage

norm_deltaF(df, .F1, .F2, .F3, .F4, suffix = "_deltaF", return = "formants")

Arguments

df

The data frame containing the formant measurements you want to normalize

.F1, .F2, .F3, .F4

The (unquoted) name of the column containing the F1 measurements. The first three are required, but you may leave off F4. It is recommended that you include F4 if the data is available and reliable since it produces more accurate results.

suffix

A string. The suffix you'd like to append to column names in new normalized columns. By default, it's "_deltaF" so if your original F1 column was called F1 then the normalized one will be F1_deltaF.

return

A string. By default, it's "formants" so it'll return the normalized values for you. If you'd like to see the actual ΔF values, you can do so by putting "deltaF" instead.

Details

The ∆F is a normalization technique that is based on a single, interpretable parameter for each speaker. The parameter is called ∆F and is "an estimate of formant spacing in a vocal tract with no constrictions" (Johnson 2020:10).

You will need to group the data by speaker with group_by() before applying this function if you want to normalize the data by speaker.

The data must be numeric, and there cannot be any NAs. So, if you're using data extracted from Praat, you may have to filter out bad F3 and F4 data and then convert the column to numeric.

Note that this is a new function and has not been tested very robustly yet.

Value

The original dataframe with new columns containing the normalized measurements.

References

Johnson, Keith. 2020. The ΔF Method of Vocal Tract Length Normalization for Vowels. Laboratory Phonology: Journal of the Association for Laboratory Phonology 11(1). https://doi.org/10.5334/labphon.196.

Examples

library(tidyverse)
df <- joeysvowels::idahoans

# Basic usage
df %>%
   group_by(speaker) %>%
   norm_deltaF(F1, F2, F3, F4)

# F4 is not required
df %>%
   group_by(speaker) %>%
   norm_deltaF(F1, F2, F3)

# Change the new columns' suffix
df %>%
   group_by(speaker) %>%
   norm_deltaF(F1, F2, F3, suffix = "_norm")

# Return ∆F instead
df %>%
   group_by(speaker) %>%
   norm_deltaF(F1, F2, F3, F4, return = "deltaF")


JoeyStanley/joeyr documentation built on April 7, 2023, 8:37 p.m.