Festival Speech Synthesis System: - Speech Resource Pages
Festival Speech Synthesis System: - Speech Resource Pages
Festival Speech Synthesis System: - Speech Resource Pages
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
`./src/modules/diphone'<br />
An optional module contain the previouslty used diphone synthsizer.<br />
`./src/modules/clunits'<br />
A partial implementation of a cluster unit selection algorithm as described in black97c.<br />
`./src/modules/Database rjc_synthesis'<br />
This consist of a new set of modules for doing waveform synthesis. They are inteneded to unit size<br />
independent (e.g. diphone, phone, non-uniform unit). Also selection, prosodic modification, joining and signal<br />
processing are separately defined. Unfortunately this code has not really been exercised enough to be<br />
considered stable to be used in the default synthesis method, but those working on new synthesis techniques<br />
may be interested in integration using these new modules. They may be updated before the next full release of<br />
<strong>Festival</strong>.<br />
`./src/modules/*'<br />
Other optional directories may be contained here containing various research modules not yet part of the<br />
standard distribution. See below for descriptions of how to add modules to the basic system.<br />
One intended use of <strong>Festival</strong> is offer a software system where new modules may be easily tested in a stable<br />
environment. We have tried to make the addition of new modules easy, without requiring complex modifications to<br />
the rest of the system.<br />
All of the basic modules should really be considered merely as example modules. Without much effort all of them<br />
could be improved.<br />
[ < ] [ > ] [ > ] [Top] [Contents] [Index] [ ? ]<br />
27.2 Writing a new module<br />
This section gives a simple example of writing a new module. showing the basic steps that must be done to create and<br />
add a new module that is available for the rest of the system to use. Note many things can be done solely in Scheme<br />
now and really only low-level very intensive things (like waveform synthesizers) need be coded in C++.<br />
[ < ] [ > ] [ > ] [Top] [Contents] [Index] [ ? ]<br />
27.2.1 Example 1: adding new modules<br />
The example here is a duration module which sets durations of phones for a given list of averages. To make this<br />
example more interesting, all durations in accented syllables are increased by 1.5. Note that this is just an example for<br />
the sake of one, this (and much better techniques) could easily done within the system as it is at present using a handcrafted<br />
CART tree.<br />
Our knew module, called Duration_Simple can most easily be added to the `./src/Duration/' directory<br />
in a file `simdur.cc'. You can worry about the copyright notice, but after that you'll probably need the following<br />
includes<br />
#include <br />
The module itself must be declared in a fixed form. That is receiving a single LISP form (an utterance) as an<br />
argument and returning that LISP form at the end. Thus our definition will start<br />
LISP FT_Duration_Simple(LISP utt)<br />
{<br />
Next we need to declare an utterance structure and extract it from the LISP form. We also make a few other variable<br />
declarations