From help(scalevowels)
Scaling is necessary to convert the output from some normalization methods to values that appear Hertz-like (and are thus more familiar). However, scaling is rarely recommended as in someways it undoes the process of normalization. See NORM: Vowel Normalization Suite | About NORM for some important details.
That said, looking at the source for scalevowel()
it's not obvious how treatment of F3 is supposed to work. I don't see any difference whether or not the normed object has the attribute no.f3
function (normed.vowels)
{
f3.plus <- 0
if (is.null(attributes(normed.vowels)$no.f3s)) {
f3.plus <- 1
min.f3 <- min(c(normed.vowels[, 6], normed.vowels[, 9]),
na.rm = TRUE)
max.f3 <- max(c(normed.vowels[, 6], normed.vowels[, 9]),
na.rm = TRUE)
}
min.f1 <- min(c(normed.vowels[, 4], normed.vowels[, 6 + f3.plus]),
na.rm = TRUE)
max.f1 <- max(c(normed.vowels[, 4], normed.vowels[, 6 + f3.plus]),
na.rm = TRUE)
min.f2 <- min(c(normed.vowels[, 5], normed.vowels[, 7 + f3.plus]),
na.rm = TRUE)
max.f2 <- max(c(normed.vowels[, 5], normed.vowels[, 7 + f3.plus]),
na.rm = TRUE)
normed.vowels[, 4] <- round((500 * (normed.vowels[, 4] -
min.f1)/(max.f1 - min.f1)) + 250, 3)
normed.vowels[, 6 + f3.plus] <- round((500 * (normed.vowels[,
6 + f3.plus] - min.f1)/(max.f1 - min.f1)) + 250, 3)
normed.vowels[, 5] <- round((1400 * (normed.vowels[, 5] -
min.f2)/(max.f2 - min.f2)) + 850, 3)
normed.vowels[, 7 + f3.plus] <- round((1400 * (normed.vowels[,
7 + f3.plus] - min.f2)/(max.f2 - min.f2)) + 850, 3)
if (f3.plus > 0) {
normed.vowels[, 6] <- round((1200 * (normed.vowels[,
6] - min.f1)/(max.f3 - min.f3)) + 2000, 3)
normed.vowels[, 9] <- round((1200 * (normed.vowels[,
9] - min.f1)/(max.f3 - min.f3)) + 2000, 3)
}
attr(normed.vowels, "scaled.values") <- TRUE
normed.vowels
}