# What speech synthesis software is suitable for research?

I'm looking for recommendations for speech synthesis software that can be used to generate audio stimuli. The audio stimuli that I'm trying to generate will be long sequences of isolated syllables. Thus, the best case would be something that can easily read a text file like: pa/da/ba/ki/tu. I realize that programs like TextEdit on OSX can do this, but they don't offer much control over the output. I would like to be able to control the duration of each syllable, the spacing between syllables, and so on.

Ideally, the software would be free and have a history of use for generating research-quality stimuli.

I'd also prefer software that can run on an Intel-based Mac, but suggestions for other operating systems are welcome.

You are looking for Mbrola! It's an open-source, text-based diphone synthesizer. While it doesn't allow you to control subtle information like formant frequency, it's perfect for controlling pitch and duration. The one caveat is that I have yet to get it to work on an Intel-based Mac, but that is primarily because the Windows GUI works so well that I could never be bothered to try to get the OS X version working.

Each line is a sound, composed of four or more text commands separated by blank spaces. The first part is the segment, composed in X-SAMPA. The second element is the duration of the segment. In the above example, all the consonants are 100 ms long, and all the vowels are 200 ms. The fourth element is the pitch in Hertz. The third element is the percentage of the duration at which this pitch is supposed to start. An Mbrola file for what you want would look like this:

 _ 100 10 200
p 100 10 200
A 200 10 200 99 160
_ 100 10 200
d 100 10 200
A 200 10 200 99 160
_ 100 10 200
b 100 10 200
A 200 10 200 99 160
_ 100 10 200
k 100 10 200
i 200 10 200 99 160
_ 100 10 200
t 100 10 200
u 200 10 200 99 160
_ 100 10 200


The underscore is a silence, and we set the baseline pitch to 200 Hz. Each syllable starts at 200 Hz. At 10% of vowel duration (20ms), the pitch is 200Hz, then this is linearly interpolated down to 160 Hz at 99% of the duration, giving it a nice falling contour.

Praat is free and has been cited in many publications. It's the de facto standard for creating phonetic stimuli.

• Thanks. This looks like a useful option, but I'm not sure it will easily solve the problem I am working on. I clarified my question a bit to specify in more detail what I am looking for. Feb 7, 2015 at 21:17
• @Josh, Something like this? Failing that, Praat is scriptable. Feb 7, 2015 at 21:38