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.
VOLUME<br />
Allows the specification of volume. Note in festival this causes an utetrance break before and after this tag.<br />
Please speak more loudly, except<br />
when I ask you to speak in a quiet voice.<br />
ENGINE<br />
This allows specification of engine specific commands<br />
An example is the festival speech synthesizer or<br />
the Bell Labs speech synthesizer.<br />
These tags may change in name but they cover the aspects of speech mark up that we wish to express. Later additions<br />
and changes to these are expected.<br />
See the files `festival/examples/example.sable' and<br />
`festival/examples/example2.sable' for working examples.<br />
Note the definition of Sable is on going and there are likely to be later more complete implementations of sable for<br />
<strong>Festival</strong> as independent releases consult `url://www.cstr.ed.ac.uk/projects/sable.html' for the<br />
most recent updates.<br />
[ < ] [ > ] [ > ] [Top] [Contents] [Index] [ ? ]<br />
10.3 Adding Sable tags<br />
We do not yet claim that there is a fixed standard for Sable tags but we wish to move towards such a standard. In the<br />
mean time we have made it easy in <strong>Festival</strong> to add support for new tags without, in general, having to change any of<br />
the core functions.<br />
Two changes are necessary to add a new tags. First, change the definition in `lib/Sable.v0_2.dtd', so that<br />
Sable files may use it. The second stage is to make <strong>Festival</strong> sensitive to that new tag. The example in<br />
festival/lib/sable-mode.scm shows how a new text mode may be implemented for an XML/SGML-based<br />
markup language. The basic point is that an identified function will be called on finding a start tag or end tags in the<br />
document. It is the tag-function's job to synthesize the given utterance if the tag signals an utterance boundary. The<br />
return value from the tag-function is the new status of the current utterance, which may remain unchanged or if the<br />
current utterance has been synthesized nil should be returned signalling a new utterance.<br />
Note the hierarchical structure of the document is not available in this method of tag-functions. Any hierarchical state<br />
that must be preserved has to be done using explicit stacks in Scheme. This is an artifact due to the cross relationship<br />
to utterances and tags (utterances may end within start and end tags), and the desire to have all specification in<br />
Scheme rather than C++.<br />
The tag-functions are defined in an elements list. They are identified with names such as "(SABLE" and ")SABLE"<br />
denoting start and end tags respectively. Two arguments are passed to these tag functions, an assoc list of attributes<br />
and values as specified in the document and the current utterances. If the tag denotes an utterance break, call<br />
xxml_synth on UTT and return nil. If a tag (start or end) is found in the document and there is no corresponding<br />
tag-function it is ignored.<br />
New features may be added to words with a start and end tag by adding features to the global<br />
xxml_word_features. Any features in that variable will be added to each word.<br />
Note that this method may be used for both XML based lamnguages and SGML based markup languages (though<br />
and external normalizing SGML parser is required in the SGML case). The type (XML vs SGML) is identified by the<br />
analysis_type parameter in the tts text mode specification.