Here you will find a collection of software that I've written, as well as other resources that I think might be useful for others.


This is a package for the Julia programming language that will calculate lexical characteristics like phonological neighborhood density, uniqueness point, and phonotactic probability. It can be accessed here.

The calculation of phonological neighborhood density is typically computationally intensive, but the implementation used here takes advantage of a data structure called a vantage point tree to allow for faster computation. Additionally, the Julia language is designed for programs to run quickly, so there is a speedup from that as well. Due to these increased computation speeds, it should be easier to calculate neighborhood density for large data sets than it previously was.

Documentation on the package and its functions is available here.

Note that this package is still in development.

Praat Cookbook

This is a cookbook for the Praat scriptin language akin to the cookbooks for other programming languages. The goal of the book is to serve as a code reference for common tasks that a researcher/coder might perform, like file I/O. The book is currently in development. You can access it here.

The more explicit book license is contained is mentioned in the text itself, but essentially the code contained in the book is free for anyone to use for any purpose, and no reference to the book is necessary.

Uniqueness Point Calculator

This Python script will calculate the uniqueness point for a specified set of words or sequences, given a set of words to compare against. It should run in Python 2 or Python 3.

This script is licensed under version 2.1 of the GNU Lesser General Public License.


This program will extract documentation strings in a Praat script and write them to a Markdown file, in the fashion of Doxygen, Roxygen, and Javadoc. In particular, the commenting style is inspired by Roxgygen's, as Praat comments already use the octothorpe to denote comments.

For the sake of convenience, there are two implementations, one in Python 3, and the other the Praat scripting language.

Producing quality scientific research hinges on being able to provide clear methodological documentation, and it is my hope that this software will allow those of us who use Praat to be able to produce this kind of documentation more easily. Furthermore, I hope that it will make it easier to produce documentation for scripts that are shared with the public at large to help them use it more easily.

The GitLab repository is available at

Praat Force-Aligned Word Presenter

Developed for use in pre-processing stimuli for experiments in the Alberta Phonetics Laboratory, this Praat script will present all WAV and TextGrid pairs in a directory that have been passed through a forced aligner tool. This allows a user to more quickly and regularly check the alignment of their files, and stores the results of the alignment in a file as well for later reference.

This script is licensed under version 2 of the GNU General Public License.