Praat
To run a Praat script, go to the Control menu in the Praat objects window and select New Praat script. Then pull up the code for the desired script by clicking on one of the links below. Copy all the code there (e.g. Highlight and Ctrl-C on a PC) and paste it into the new untitled script window. Finally, select Run Run (or type Ctrl-R) in. Praat is a freely available program written by Paul Boersma and David Weenink. It is primarily intended for acoustic analysis of speech, but it has some additional functions such as speech synthesis and some constraint-based grammar learners.
IF YOU USE ONE OF THESE SCRIPTS, PLEASE CITE ME.
Spectral Analysis / Phonation Analysis scripts
EGG Open quotient Extraction script for Matlab which prints EGG maxima, EGG minima, DEGG maxima, DEGG minima, Period duration, Open quotient, and Closed quotient. Requires an input directory (input_dur) and an output directory (output_dir). Special thanks to Sam Tilsen.
Formant Script for Praat (time normalized) which extracts F1, F2, and F3 at even intervals in time over the duration of each textgrid-delimited region of a sound file. Works iteratively over a directory.
Formant Script for Praat (not time-normalized) which extracts F1, F2, and F3 at even intervals in time starting from the location of a user-specified interval. Users specify the duration over which they wish to extract formant measures. Works iteratively over a directory.
General vowel acoustics script for Praat (version 2.0) which extracts mean formant values, the first four spectral moments, and F0 dynamically across a duration defined by the textgrid. Duration is also extracted. The number of interval values extracted is equal to the value 'numintervals.' This script works iteratively across a directory.
Vowel acoustics script for corpus data analysis, v2.0. This script extracts mean formant values, the first four spectral moments, and F0 dynamically across a duration defined by the textgrid. Duration is also extracted. The number of interval values extracted is equal to the value 'numintervals.' This script works iteratively across a directory and includes contextual information in the output, such as lexical identity, and the preceding/following segment identities.
Spectral Envelope Script for Praat which divides a sound file into chunks and extracts long-term average spectra at intervals throughout the sound file. The user specifies the size of each averaged spectrum amplitude bin, e.g. bins of 100 Hz. or 50 Hz., etc. Spectra are calculated dynamically across the duration defined by the textgrid. The number of interval values extracted is equal to the value 'numintervals.'
Spectral Tilt Script for Praat which extracts H1-H2, H1-A1, H1-A2, and H1-A3 at even intervals in time over the duration of each textgrid-delimited region of a sound file. This script also determines pitch and formant values over the same intervals. Recently revised to work iteratively across a directory and to provide HNR values.
Spectral moments of fricative spectra script in Praat which extracts the first four spectral moments (center of gravity, standard deviation, skewness, and kurtosis) as well as the global intensity and duration for each fricative. The DFTs are averaged using time-averaging (Shadle 2012). Within time-averaging, a number of DFTs are taken from across the duration of the fricative. These DFTs are averaged for each token and then the moments are calculated. The user can specify the DFT number, the DFT window duration, and the low pass filter cut-off (set to 300 Hz., as per Maniwa and Jongman, 2009). Updated 2017 to fix an issue with intensity measurement.
Duration, Pitch, Intensity, and Rate scripts
Boundary Extractor Script for Praat which extracts the start and end boundaries for all boundaries in a textgrid. This script works iteratively across a directory.Duration Script for Praat which extracts the duration of each textgrid-delimited duration in a sound file.
Pitch Script for Praat which extracts pitch values at even intervals in time over the duration of each textgrid-delimited region of a sound file.
Speech Rate Script for Praat which prints a syllables per second measure. Requires that there be a textgrid tier with syllables already labelled and another with a label for each repetition in the sound file, e.g. one tier with 5 intervals labelled for 5 repetitions, another with each syllable labelled.
Pitch Dynamics Script for Praat, version 6.2 which provides duration and dynamic F0 values for all files in a directory. In addition to providing these, the F0 maxima and minima and their locations are also calculated. The location of the F0 maxima and minima are normalized. The user can specify the octave jump cost and other variables. If the user has lexemic or syllabic segmentation on additional tiers, this information will also be extracted. New features include the ability to specify the buffer size for F0 tracking and data filtering for excluding short tokens (e.g. less than 50 ms). Version 6 improves memory use in Praat.
Pitch Dynamics for declination data. This script is similar to Pitch Dynamics 5.0 above, though it also tracks utterance and syllable number in a labelled sound file. If the user wishes to examine F0 changes across an utterance, this script is ideal for this purpose.
Cleaning up acoustic files
Convert to one channel. This script will extract just one channel for all sound files in a directory and resave these sound files as mono. Note that this will overwrite your sound files.Rescale intensity peak. This script will rescale the intensity peak for all sound files within a directory to 0.99. Note that this will overwrite your sound files.
Sound file subdivision. This script cuts up a large sound file into smaller chunks using an existing tier on an associated TextGrid file. The assumption of this script is that you have a tier containing only ascii characters which you wish to use as the filename of the smaller file.
Phonetic categorization
Mark glottalization in Praat. This script allows the user to categorize phonetic variants within sound files within the edit window. Upon launching the script, the user observes a segment in question in an aligned textgrid, e.g. a glottal stop. The user then selects from a floating window how this particular segment is realized. Right now, the script is organized so that the user specifies both the position of the segment in the word (Position) and the realization of the glottal stop (Realization) among a set of fixed options. However, users could essentially use this script to categorize any group of segments - stops, fricatives, vowel types, etc by just modifying the possible options on lines 70 and 78. The script requires that the user create a simple text file containing the list of all the segments they wish to categorize, with each segment on separate lines.PRAAT - Stanford University
TextGrid modification scripts
Combine/Merge intervals in Praat. This script allows the user to merge any two adjacent intervals in a TextGrid and relabel them.Insert VOT components for stops in Praat. This script reads a textgrid file and creates a tier with component labels for stop consonants. Four components may be included, e.g. voiced closure duration, voiceless closure duration, release burst, and aspiration. However, the user can specify whatever names they prefer for each. This script requires that there already be a segmentation of the speech signal into phone-sized units. Note that this script does not segment stops into components. It simply puts the labels down on an interval tier for the user to more easily do it her/himself.
Silent Replacement Script for Praat. For all portions of a textgrid which have no label, this script replaces the portion with absolute silence (zero amplitude). This script is useful for anyone wanting to 'clean up' sound files which have additional unwanted information in the recording.
Text Replacement Script for Praat. For all portions of a textgrid which have label x, this script replaces the label with y. If you wish to replace labeled portions with no label or unlabeled portions with a label, use two double quotations for the unlabeled interval.