Skip to content

Phonetics Guide

Examples and resources

For a complete overview of the way we create stimuli, see this manual, written by John Kingston. All the scripts mentioned in the manual can be found below.


We run most of our experiments with Octave using PsychToolBox.

R scripts

Praat scripts

Phoneme Categorization Overview

In a phoneme categorization experiment, a listener is presented with a single stimulus on each trial, and they have to assign that stimulus to one or another category. It's possible that the listener may be given more than just two categories to choose from but that's rare in the experiments run in our lab.

Usually, each stimulus is one of a sequence of stimuli that steps incrementally from a good instance of one category to a good instance of another. For example, a stimulus might be drawn from a sequence stepping incrementally from /s/ and /sh/. Steps in this sequence that are distant from both the /s/ and /sh/ endpoints are ambiguous between the categories, and the listener has to guess which category to assign them to. The sequence is often referred to as a "continuum," despite the fact that its members are discrete steps between the endpoints. It's referred to as a continuum because listeners can't reliably distinguish adjacent steps in the sequence from one another.

It's possible to study listeners' categorization of such a continuum without any other independent manipulations, in which case, the questions of interest are:

  • where along the sequence do listeners cross over from assigning stimuli to one category to assigning it the other,
  • how abruptly do they cross over, and
  • how quickly they respond to each step along the continuum.

Categorization of an /s-sh/ continuum

More often, and nearly always in our lab, we also manipulate the context in which the sequence occurs independently to test how differences between contexts influence any of where listeners cross over, how abruptly they do so, and how fast they categorize the stimulus. When we manipulate the context independently like this, the portion of the stimulus in which members of the continuum occur is called the "target."

When the categorization experiment is actually run, a stimulus is drawn at random from the target continuum or the context+target combinations on each trial and presented to the listener who responds by choosing one or the other category.

Stimuli are constructed in a number of ways. The most typical is described here:

  • Record naturally produced instances of the target categories, in the contexts that you want to manipulate,

  • Measure the acoustic properties of these sounds (durations, intensities, fundamental frequencies, formant frequencies and bandwidths),

  • Edit and smooth those values,

  • Calculate the values each property should have for the intermediate steps between the endpoint categories,

  • Supply them as parameter values to a synthesizer, which then produces the steps along the continuum.

    There is one general exception to this procedure in our everyday practice: continua between noisy categories, like the /s-sh/ continuum mentioned above, are produced by adding the original sounds' waveforms together in complementary proportions. For example, the /s/ endpoint would be 1.0 /s/ + 0.0 /sh/, the next step would be 0.9 /s/ + 0.1 /sh/, ..., 0.1 /s/ + 0.9 /sh/, finally to 0.0 /s/ + 1.0 /sh/ at the /sh/ endpoint.

    All these steps are currently carried out using a combination of Praat and R scripts. The most commonly used suite of Praat scripts is included below, along with an example R script. We continue to work toward a routine as opposed to artisanal pipeline for constructing stimuli.

Stimulus presentation and response collection is handled with PsychToolBox scripts running in octave. Responses are collected using purpose-built button boxes. An example script with the necessary libraries is also included below.

Once the data are collected:

  • the files containing the responses from each listener are compiled,
  • the data are cleaned up (purging trials with invalid responses, with no response, outlying response times, etc.),
  • responses are coded to represent the conditions in the experiment,
  • plotted with R using ggplot and
  • modeled using lmer for RTs and glmer for response proportions.


The recording setup in N448 consists of one soundproofed room, capable of recording one or two people comfortably, and the control room just outside of it.

Soundbooth troubleshooting

Should you ever need to restart the whole setup, turn everything off, but connect everything from the outside in:

  1. Make sure everything is off.
  2. Connect the microphone(s) to the interface via its cable.
  3. Connect the interface to the computer via USB.
  4. Turn on the computer.
  5. Make sure that the microphone in the booth is securely plugged in, leading to the interface (the silver box, known to the computer as "MainPre"). The interface has a blue indicator light when it's securely connected and receiving power from the computer.
  6. In order for the microphone to pick up sound, we need to supply it the small power necessary to polarize the plates inside: do this by switching the interface's "Phantom Power" on, which should also turn the red phantom power indicator light on.
  7. Make sure the computer has detected the inputs and outputs we'll be using. In Audacity, make sure that "MainPre" is selected for both the input and output, which you can find either in the display or in Edit > Preferences > Devices > Recording or Playback. If you don't see it in the menu, but you're sure it's plugged in, close and reopen Audacity, go to Transport > Rescan Audio Devices, then look again. If you still don't see it, check the computer's sound settings (Preferences > Sound > Recording or Playback).