Skip to main content

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

Project description

About

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

Licenses

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

and

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.

Features

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

Installing

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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file dramatts-0.2.1.tar.gz.

File metadata

  • Download URL: dramatts-0.2.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for dramatts-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b73a4a513a75124662a4b45cf8bcfbfd20504935be5a1224badb167e1a40b50c
MD5 a5c5e2ca3692766767b8f4a761302d4c
BLAKE2b-256 4e6222a29b8cf37cd4439154d8af9d97a6a96c1ec103c6c188b83bb1fd16a4c6

See more details on using hashes here.

File details

Details for the file dramatts-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: dramatts-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 58.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for dramatts-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a70bd422906f8b424506a96aac9b21843ef6f70496883d777998c73d49b69e97
MD5 6e93c1801928858e01554e68e1a83148
BLAKE2b-256 a61c91bbe16f76789a6a4a274966e10dbb699d283bcff4ef66d54686031a0fdc

See more details on using hashes here.

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