Normalize vowel formant frequencies {phonR}R Documentation

Normalize formant frequency values using a variety of algorithms

Description

Functions for transforming vowel formant frequency data measured in Hertz, using one of several normalization schemes commonly used in phonetic and sociolinguistic research. normVowels is a convenience function wrapping to the individual norm[Method] functions.

Usage

    normBark(f)
    normErb(f)
    normLog(f)
    normMel(f)
    normLobanov(f, group=NULL)
    normLogmean(f, group=NULL, exp=FALSE, ...)
    normNearey1(f, group=NULL, exp=FALSE, ...)
    normNearey2(f, group=NULL, exp=FALSE, ...)
    normSharedLogmean(f, group=NULL, exp=FALSE, ...)
    normWattFabricius(f, vowel, group=NULL)
    normVowels(method, f0=NULL, f1=NULL, f2=NULL, f3=NULL,
               vowel=NULL, group=NULL, ...)

Arguments

f

Vector or matrix of formant frequencies. For normNearey, f must be an N-by-4 matrix of frequencies, with column order “f0”, “F1”, “F2”, “F3”. For normWattFabricius, f must be an N-by-2 matrix or data frame of F1 and F2 values. If passing a matrix to normLogmean, formants must be grouped within columns, not rows.

vowel

Vector or factor of vowel symbols, with length(vowel)==nrow(f). Used only in normVowels(method="wattfabricius", ...) or normWattFabricius(...).

group

Vector or factor indicating rows of f that should be normalized together. This is useful for, e.g., calculating talker-intrinsic normalizations when group encodes talker identity.

exp

Logical; should the result of the logmeans calculation be passed through the exp function before being returned?

f0, f1, f2, f3

Separate vectors of formant or fundamental frequency values used in the convenience method plotVowels. f1 and f2 are required when method is "wattfabricius", "logmean", "shared", "nearey1", or "nearey2".

method

Specification of the normalization method to use when calling the convenience method normVowels. Possible values are “bark”, “erb”, “lobanov”, “log”, “logmean”, “mel”, “shared”, and “wattfabricius”. “zscore” is an accepted synonym for “lobanov”; “nearey1” is an accepted synonym for “logmean”; “nearey2” is an accepted synonym for “shared”; and “scentroid”, is an accepted synonym for “wattfabricius”.

...

Additional arguments passed to colMeans by functions normLogmean and normSharedLogmean (useful for specifying the value of na.rm).

Details

normLogmean is a synonym for normNearey1, which is also sometimes confusingly called “single logmean”. normSharedLogmean is a synonym for normNearey2. The argument exp=TRUE for these functions will yield values that are consistent with the norm.nearey implementation, which takes the result of Nearey's original formulae and uses it as the exponent of the base of the natural logarithm (presumably so that the function always yields positive values).

Note that normErb returns the “ERB-rate scale” value (i.e., the number of ERBs below the given frequency), not the ERB of the auditory filter centered at the given frequency.

The implementation of the Watt-Fabricius method varies slightly from the formula in Watt & Fabricius (2002), since normWattFabricius simply calculates which vowel has the highest mean F1 value and designates it as the low corner of the triangle, rather than asking the user to expressly specify the “TRAP” or “START” vowel. Similarly, normWattFabricius simply calculates which vowel has the highest mean F2 value and uses that to calculate the upper left corner, rather than expressly looking for the mean of the “point-vowel” /i/. The upper right corner is, as in the original method, derived from the other two. If the vowels with the highest mean F1 and highest mean F2 are not the same pair of vowels for all members of group, normWattFabricius returns an error.

Value

Most of the functions return a vector or matrix of the same dimensions as were passed in. The exceptions are normVowels, which returns an n-by-m matrix of n data points by m formants with formants in ascending order with fundamental frequency first (if present), and normWattFabricius (or normVowels with method=wattfabricius), which only and always returns F1 and F2, regardless of whether f0 and F3 were supplied.

Author(s)

McCloy, Daniel drmccloy@uw.edu

References

Glasberg, B. R., & Moore, B. C. J. 1990 “Derivation of auditory filter shapes from notched-noise data.” Hearing Research, 47(1-2), 103-138. http://dx.doi.org/10.1016/0378-5955(90)90170-T

Lobanov, B. M. 1971 “Classification of Russian vowels spoken by different speakers.” The Journal of the Acoustical Society of America, 49(2), 606-608. http://dx.doi.org/10.1121/1.1912396

McCloy, D. R. 2012 “Normalizing and plotting vowels with the phonR package.” Technical Reports of the UW Linguistic Phonetics Laboratory. http://dan.mccloy.info/pubs/McCloy2012_phonR.pdf

Nearey, T. M. 1978 “Phonetic feature systems for vowels” (Doctoral dissertation, University of Alberta). Reprinted by the Indiana University Linguistics Club. http://www.ualberta.ca/~tnearey/Nearey1978_compressed.pdf

Stevens, S. S., & Volkmann, J. 1940 “The relation of pitch to frequency: A revised scale.” The American Journal of Psychology, 53(3), pp. 329-353.

Traunmuller, H. 1990 “Analytical expressions for the tonotopic sensory scale.” The Journal of the Acoustical Society of America, 88(1), 97-100. http://dx.doi.org/10.1121/1.399849

Watt, D., & Fabricius, A. H. 2002 “Evaluation of a technique for improving the mapping of multiple speakers' vowel spaces in the F1 ~ F2 plane.” Leeds Working Papers in Linguistics and Phonetics, 9, 159-173.

Examples

    data(indoVowels)
    bark <- with(indo, normBark(cbind(f1, f2)))
    erbn <- with(indo, normErb(cbind(f1, f2)))
    mel <- with(indo, normMel(cbind(f1, f2)))
    lobanov <- with(indo, normLobanov(cbind(f1, f2), group=subj))
    lognormed <- with(indo, normLog(cbind(f1, f2)))
    # using the convenience wrapper:
    bark <- with(indo, normVowels('bark', f1=f1, f2=f2))
    wattfab <- with(indo, normVowels('wattfabricius', f1=f1, f2=f2,
                    vowel=vowel, group=subj))

[Package phonR version 1.0-7 Index]