Festival Speech Synthesis System: - Speech Resource Pages
Festival Speech Synthesis System: - Speech Resource Pages
Festival Speech Synthesis System: - Speech Resource Pages
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