Analysis of a stop continuum#

[5]

LING 497 Phonetic Analysis: Articulation, Acoustics, Audition

The Pennsylvania State University

Prof. Deborah Morton


Revised

25 May 2023


Programming Environment#

Hide code cell source
R.version.string # R.Version()
.libPaths()

packages <- c(
  'gridExtra',
  'magrittr',
  'phonR',
  'repr',
  'scales',
  'tidyverse',
  'vowels'
)

# Install packages not yet installed
installed_packages <- packages %in% rownames(installed.packages())
if (any(installed_packages == FALSE)) {
  install.packages(packages[!installed_packages])
}

# Load packages
invisible(lapply(packages, library, character.only = TRUE))
'R version 4.3.0 (2023-04-21)'
'/Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library'
── Attaching core tidyverse packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse 2.0.0 ──
 dplyr     1.1.2      readr     2.1.4
 forcats   1.0.0      stringr   1.5.0
 ggplot2   3.4.3      tibble    3.2.1
 lubridate 1.9.2      tidyr     1.3.0
 purrr     1.0.2     
── Conflicts ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
 readr::col_factor() masks scales::col_factor()
 dplyr::combine()    masks gridExtra::combine()
 purrr::discard()    masks scales::discard()
 tidyr::extract()    masks magrittr::extract()
 dplyr::filter()     masks stats::filter()
 dplyr::lag()        masks stats::lag()
 purrr::set_names()  masks magrittr::set_names()
 Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Measuring VOT along the [pa]-[ba] stimulus continuum#

Hide code cell source
vot <- tribble(
  ~stimulus,~vot_ms,
       'pa',  0.072,
      'pa1',  0.061,
      'pa2',  0.050,
      'pa3',  0.039,
      'pa4',  0.028,
      'pa5',  0.017,
      'pa6',  0.006,
       'ba', -0.084
)
vot
A tibble: 8 × 2
stimulusvot_ms
<chr><dbl>
pa 0.072
pa1 0.061
pa2 0.050
pa3 0.039
pa4 0.028
pa5 0.017
pa6 0.006
ba -0.084

[1] Which of your tokens sounds the most like your natural [b]?

The last token in the sequence of [pa] stimuli, with increasing amounts of aspiration artificially cut from the original, sounds the most like natural [ba].

[2] Why do you think your artificial [b] sounds different from the natural [b], if it does?

The artificial token may not sound exactly like the natural one because it lacks the negative VOT–or pre-nasalization–that the natural token has. Closure length and vowel duration may also serve as cues that the auditory system perceives and categorizes along the voiced-voiceless dimension.

Vowel length manipulation#

Hide code cell source
# vowel length
vl <- tribble(
  ~vowel,~length_ms,
   'lab',  0.355956,
   'lap',  0.187661,
)
vl
A tibble: 2 × 2
vowellength_ms
<chr><dbl>
lab0.355956
lap0.187661

Which of the two vowel length manipulations do you think produced the most natural-sounding result? Why do you think it was better?

Praat’s manipulation function produced a more natural-sounding result than simply copy-pasting a sound clip. Based on a comparison of the spectrograms of the two results, it can be seen that Praat’s function utilizes an algorithm that genuinely lengthens the continuously chaning sound; on the other hand, the copy-paste approach cuts into the continuous shape of the original speech sound with fixed values for all the relevant properties, including the formants, pitch, phonation, etc.


Terms#

  • [W] Voice Onset Time (VOT)