12.12.2012 Views

Festival Speech Synthesis System: - Speech Resource Pages

Festival Speech Synthesis System: - Speech Resource Pages

Festival Speech Synthesis System: - Speech Resource Pages

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

For example suppose we wish to use a dark l (ll) rather than a normal l for all l's that appear in the coda of a<br />

syllable. First we would define a function to which identifies this condition and adds the addition feature<br />

diphone_phone_name identify the name change. The following function would achieve this<br />

(define (fix_dark_ls utt)<br />

"(fix_dark_ls UTT)<br />

Identify ls in coda position and relabel them as ll."<br />

(mapcar<br />

(lambda (seg)<br />

(if (and (string-equal "l" (item.name seg))<br />

(string-equal "+" (item.feat seg "p.ph_vc"))<br />

(item.relation.prev seg "SylStructure"))<br />

(item.set_feat seg "diphone_phone_name" "ll")))<br />

(utt.relation.items utt 'Segment))<br />

utt)<br />

Then when we wish to use this for a particular voice we need to add<br />

(set! diphone_module_hooks (list fix_dark_ls))<br />

in the voice selection function.<br />

For a more complex example including consonant cluster identification see the American English voice `ked' in<br />

`festival/lib/voices/english/ked/festvox/kd_diphone.scm'. The function<br />

ked_diphone_fix_phone_name carries out a number of mappings.<br />

The second method for changing a name is during actual look up of a diphone in the database. The list of alternates is<br />

given by the Diphone_Init function. These are used when the specified diphone can't be found. For example we<br />

often allow mappings of dark l, ll to l as sometimes the dark l diphone doesn't actually exist in the database.<br />

[ < ] [ > ] [ > ] [Top] [Contents] [Index] [ ? ]<br />

22. Other synthesis methods<br />

<strong>Festival</strong> supports a number of other synthesis systems<br />

22.1 LPC diphone synthesizer A small LPC synthesizer (Donovan diphones)<br />

22.2 MBROLA Interface to MBROLA<br />

22.3 Synthesizers in development<br />

[ < ] [ > ] [ > ] [Top] [Contents] [Index] [ ? ]<br />

22.1 LPC diphone synthesizer<br />

A very simple, and very efficient LPC diphone synthesizer using the "donovan" diphones is also supported. This<br />

synthesis method is primarily the work of Steve Isard and later Alistair Conkie. The synthesis quality is not as good<br />

as the residual excited LPC diphone synthesizer but has the advantage of being much smaller. The donovan diphone<br />

database is under 800k.<br />

The diphones are loaded through the Donovan_Init function which takes the name of the dictionary file and the<br />

diphone file as arguments, see the following for details

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!