Make Your Computer Talk with Festival [Linux]

Who doesn’t want a talking computer?

Linux is great for accessibility. Whether you need a text-to-speech (TTS) system to help you with daily computer tasks or you’re an experimental musician looking to incorporate robot voices into your songs, Linux has got your back. While there are a number of TTS programs for Linux, the one we’re going to discuss now is called Festival.

Festival is free software written in C++. It is a multilingual TTS system and framework developed by The Centre for Speech Technology Research at the University of Edinburgh.

Getting Festival

Festival is available from most mainstream Linux repositories. Search for “festival” and install the core program as well as any voices you may want, which will also come up in your search.

If it isn’t in your repository, you can download the tar file from its download page. Festival will run on any Unix-like system, including Windows with Cygwin installed.

Using Festival

Festival is a command-line program, though it can also be used as a TTS backend for other applications. To open up an interactive prompt, simply type

festival

The command to make it talk follows the format:

(SayText "Hello, world!")
festival - make it talk

I added the punctuation for show, but unfortunately, Festival voices don’t recognize punctuation. If you type in several sentences in the same prompt, Festival will read them as a run-on sentence. You can always record the output and edit it in an audio editor though.

To see all the voices available in your Festival installation, type:

(voice.list)

And to switch to a different voice, type the name of the voice in parentheses. For example:

(voice_us2_mbrola)

Note that the example above assumes you also have mbrola voices installed. If you don’t, then the mbrola voices won’t be available to Festival. Some people like the mbrola voices better, so I would recommend installing them.

Festival can read text files too. Just enter this in your command line, without entering the interactive prompt (note: you can quit the interactive prompt with the command (quit)):

festival --tts [file]

You can produce an audio file directly from festival. Again, we don’t enter the interactive prompt in this scenario. Rather, we use a tool that comes packaged with Festival called text2wave. Run it like so:

text2wave document.txt -o audiobook.wav

This is great for creating audiobooks or podcasts.

Here’s one last trick:

Get an SSH client for your smartphone, such as the ConnectBot for Android. Next time a friend uses your computer, go into the other room, SSH into your system, and run Festival to start a conversation with your friend. Fun times will be had by all!

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Rebecca "Ruji" Chapnik

Ruji Chapnik is a freelance creator of miscellanea, including but not limited to text and images. She studied art at the University of California, Santa Cruz and writing at Portland State University. She went on to study Linux in her bedroom and also in various other people's bedrooms, crouched anti-ergonomically before abandoned Windows computers. Ruji currently lives in Portland, Oregon. You can find her experiments at rujic.net and her comics at dondepresso.rujic.net.