Package: dramatts
AboutdramaTTSparses 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 thedramaTTSprogram itself, it relies on external tools for
the audio processing:TheFestival Speech Synthesis System(herein referred to asFestival) is used for speech synthesisSound eXchange (SoX)for audio post-processing.SoX,Festivalas well as voices and lexicons forFestivalhave to be installed in order to create audio output
withdramaTTS.See thedramaTTS documentationfor more detailsLicensesdramaTTS, Copyright (c) 2020 Thies HeckerdramaTTSis free software released under the GPLv3 license (see the full disclaimer inCOPYINGand theLICENSEfile for details).
It is writtenpythonand you can download the source code fromdramaTTS’s gitlab page.dramaTTSis realized using:PyQt, Copyright (c) Riverbank Computing Limitedandsetuptools_scm, Copyright (c) Ronny Pfannschmidt.WhiledramaTTSis a standalone application, it is of limited use withoutFestivalandSoXbeing installed,
which provide the audio rendering (only script parsing including syntax highlighting, etc. is available).While theFestivalapplication itself andSoXare released under free software licenses as well,
specific components, which are commonly bundled withFestival(i.e. certain lexicons and voices) may be released
under non-free licenses.For instance thefestlex-OALDlexicon, which can be found among other files (incl. the source code of the latestFestivalrelease) on theFestvox 2.5 release pagelexicon is restricted to non-commercial use only.ThedramaTTS documentationwill provide an example for aFestivaldistribution based onfreecomponents only.Please see theCOPYINGfile in the source code repository for details on licenses and copyright disclaimers of the
individual components.FeaturesAs mentioned abovedramaTTSconsists of 2 main components: a script parser and a scheduler/configurator for
the audio-rendering.The script parser features:configurable input file formattingsyntax highlighting (identifies different content like new scenes, dialogue lines, narrative descriptions,…)text string substitutions supporting regular expressionssome utility functions like sorting speakers according to their number of text linesThe audio-renderering part basically provides a front-end toFestivalandSoXwith following features supported:Altering ofFestivalvoices (pitch, tempo and volume)support for multiple CPU cores to accelerate audio rendering (dispatches parallel processes for individual lines)using aFestivalserver for rendering is supportedsome post-processing: normalize all voices, combine audio files (lines -> scenes -> single project file)(re-)rendering of individual scenes or speakersInstallingYou will need a python3 distribution installed and for most convenience you should have either thepiporcondapackage 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-pipor on arch based:sudo pacman -S python-pipFor Windows users I would recommend to installAnacondaorminiconda, which will provide thecondapackage
manager (make sure to get the python3 - not the python2 - version!).To installdramaTTSwith pip:pip install dramattsNote, 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 installdramaTTS. Eventually you need to use pip3 as a command.
You can check if you are using the correct pip by calling:pip --versionTo installdramaTTSwith conda:conda install -c thecker dramattsIn 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_guiThe GUI should pop up and you can import text files, define roles etc., but you will not be able render audio unless
you have installedFestival(and its components) andSoX.See thedramaTTS documentationfor more details.