Skip to main content

Screen play / drama text to multi-voice audio play converter

Project description


dramaTTS parses scripts (plain text files) for theatre/screen plays and converts them into a multi-voice audio plays (wave-files).

While the script parsing functionality is provided by the dramaTTS program itself, it relies on external tools for the audio processing:

SoX, Festival as well as voices and lexicons for Festival have to be installed in order to create audio output with dramaTTS.

See the dramaTTS documentation for more details


dramaTTS, Copyright (c) 2020 Thies Hecker

dramaTTS is free software released under the GPLv3 license (see the full disclaimer in COPYING and the LICENSE file for details). It is written python and you can download the source code from dramaTTS’s gitlab page.

dramaTTS is realized using:

PyQt, Copyright (c) Riverbank Computing Limited


setuptools_scm, Copyright (c) Ronny Pfannschmidt.

While dramaTTS is a standalone application, it is of limited use without Festival and SoX being installed, which provide the audio rendering (only script parsing including syntax highlighting, etc. is available).

While the Festival application itself and SoX are released under free software licenses as well, specific components, which are commonly bundled with Festival (i.e. certain lexicons and voices) may be released under non-free licenses.

For instance the festlex-OALD lexicon, which can be found among other files (incl. the source code of the latest Festival release) on the Festvox 2.5 release page lexicon is restricted to non-commercial use only.

The dramaTTS documentation will provide an example for a Festival distribution based on free components only.

Please see the COPYING file in the source code repository for details on licenses and copyright disclaimers of the individual components.


As mentioned above dramaTTS consists of 2 main components: a script parser and a scheduler/configurator for the audio-rendering.

The script parser features:

  • configurable input file formatting

  • syntax highlighting (identifies different content like new scenes, dialogue lines, narrative descriptions,…)

  • text string substitutions supporting regular expressions

  • some utility functions like sorting speakers according to their number of text lines

The audio-renderering part basically provides a front-end to Festival and SoX with following features supported:

  • Altering of Festival voices (pitch, tempo and volume)

  • support for multiple CPU cores to accelerate audio rendering (dispatches parallel processes for individual lines)

  • using a Festival server for rendering is supported

  • some post-processing: normalize all voices, combine audio files (lines -> scenes -> single project file)

  • (re-)rendering of individual scenes or speakers


You will need a python3 distribution installed and for most convenience you should have either the pip or conda package manager installed.

On linux you will most likely have python and pip already installed - if not you should be able to install them with distributions package-manager.

E.g. for debian based system like ubuntu just run:

sudo apt-get python3-pip

or on arch based:

sudo pacman -S python-pip

For Windows users I would recommend to install Anaconda or miniconda, which will provide the conda package manager (make sure to get the python3 - not the python2 - version!).

To install dramaTTS with pip:

pip install dramatts

Note, that on some distributions you may install python2 and python3 in parallel. In such cases you should make sure, that you not using a pip for your python2 environment to install dramaTTS. Eventually you need to use pip3 as a command. You can check if you are using the correct pip by calling:

pip --version

To install dramaTTS with conda:

conda install -c thecker dramatts

In both cases pip or conda should download all required dependencies and should be able to launch the program. To do that just type:

python -m dramatts.dramatts_gui

The GUI should pop up and you can import text files, define roles etc., but you will not be able render audio unless you have installed Festival (and its components) and SoX.

See the dramaTTS documentation for more details.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dramatts-0.2.1.tar.gz (1.4 MB view hashes)

Uploaded source

Built Distribution

dramatts-0.2.1-py3-none-any.whl (58.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page