Nearey Normalize
Usage
norm_nearey(
.data,
...,
.by = NULL,
.by_formant = FALSE,
.drop_orig = FALSE,
.keep_params = FALSE,
.names = "{.formant}_lm",
.silent = FALSE
)
Arguments
- .data
A data frame containing vowel formant data
- ...
<tidy-select>
One or more unquoted expressions separated by commas. These should target the vowel formant data columns.- .by
<tidy-select>
A selection of columns to group by. Typically a column of speaker IDs.- .by_formant
Whether or not the normalization method is formant intrinsic.
- .drop_orig
Whether or not to drop the original formant data columns.
- .keep_params
Whether or not to keep the Location (
*_.L
) and Scale (*_.S
) normalization parameters- .names
A
glue::glue()
expression for naming the normalized data columns. The"{.formant}"
portion corresponds to the name of the original formant columns.- .silent
Whether or not the informational message should be printed.
Details
When formant extrinsic: $$ \hat{F}_{ij} = \log(F_{ij}) - L $$ $$ L = \frac{1}{MN}\sum_{i=1}^M\sum_{j=1}^N \log(F_{ij}) $$
When formant intrinsic: $$ \hat{F}_{ij} = \log(F_{ij}) - L_{i} $$
$$ L_i = \frac{1}{N}\sum_{j=1}^{N}\log(F_{ij}) $$
Where
\(\hat{F}\) is the normalized formant
\(i\) is the formant number
\(j\) is the token number
References
Nearey, T. M. (1978). Phonetic Feature Systems for Vowels [Ph.D.]. University of Alberta.
Examples
library(tidynorm)
ggplot2_inst <- require(ggplot2)
speaker_data_nearey <- speaker_data |>
norm_nearey(
F1:F3,
.by = speaker,
.by_formant = FALSE,
.names = "{.formant}_nearey"
)
#> Normalization info
#> • normalized `F1`, `F2`, and `F3`
#> • normalized values in `F1_nearey`, `F2_nearey`, and `F3_nearey`
#> • grouped by `speaker`
#> • formant extrinsic
#>
## this is equivalent to
# speaker_data |>
# norm_generic(
# F1:F3,
# .by = speaker,
# .by_formant = FALSE,
# .pre_trans = log,
# .L = mean(.formant, na.rm = T)
# )
if(ggplot2_inst){
ggplot(
speaker_data_nearey,
aes(
F2_nearey,
F1_nearey,
color = speaker
)
)+
stat_density_2d(
bins = 4
)+
scale_color_brewer(
palette = "Dark2"
)+
scale_x_reverse()+
scale_y_reverse()+
coord_fixed()+
labs(
title = "Formant extrinsic"
)
}
speaker_data_nearey2 <- speaker_data |>
norm_nearey(
F1:F3,
.by = speaker,
.by_formant = TRUE,
.names = "{.formant}_nearey"
)
#> Normalization info
#> • normalized `F1`, `F2`, and `F3`
#> • normalized values in `F1_nearey`, `F2_nearey`, and `F3_nearey`
#> • grouped by `speaker`
#> • formant intrinsic
#>
if(ggplot2_inst){
ggplot(
speaker_data_nearey2,
aes(
F2_nearey,
F1_nearey,
color = speaker
)
)+
stat_density_2d(
bins = 4
)+
scale_color_brewer(
palette = "Dark2"
)+
scale_x_reverse()+
scale_y_reverse()+
coord_fixed()+
labs(
title = "Formant intrinsic"
)
}