Software: Apache/2.2.3 (CentOS). PHP/5.1.6 uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44 uid=48(apache) gid=48(apache) groups=48(apache) Safe-mode: OFF (not secure) /usr/share/doc/festival-1.95/ drwxr-xr-x |
Viewing file: festival_10.html (16.79 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
10 XML/SGML mark-upThe ideas of a general, synthesizer system nonspecific, mark-up language for labelling text has been under discussion for some time. Festival has supported an SGML based markup language through multiple versions most recently STML (sproat97). This is based on the earlier SSML (Speech Synthesis Markup Language) which was supported by previous versions of Festival (taylor96). With this version of Festival we support Sable a similar mark-up language devised by a consortium from Bell Labls, Sub Microsystems, AT&T and Edinburgh, sable98. Unlike the previous versions which were SGML based, the implementation of Sable in Festival is now XML based. To the user they different is negligable but using XML makes processing of files easier and more standardized. Also Festival now includes an XML parser thus reducing the dependencies in processing Sable text. Raw text has the problem that it cannot always easily be rendered as speech in the way the author wishes. Sable offers a well-defined way of marking up text so that the synthesizer may render it appropriately. The definition of Sable is by no means settled and is still in development. In this release Festival offers people working on Sable and other XML (and SGML) based markup languages a chance to quickly experiment with prototypes by providing a DTD (document type descriptions) and the mapping of the elements in the DTD to Festival functions. Although we have not yet (personally) investigated facilities like cascading style sheets and generalized SGML specification languages like DSSSL we believe the facilities offer by Festival allow rapid prototyping of speech output markup languages. Primarily we see Sable markup text as a language that will be generated by other programs, e.g. text generation systems, dialog managers etc. therefore a standard, easy to parse, format is required, even if it seems overly verbose for human writers. For more information of Sable and access to the mailing list see http://www.cstr.ed.ac.uk/projects/sable.html 10.1 Sable exampleHere is a simple example of Sable marked up text <?xml version="1.0"?> <!DOCTYPE SABLE PUBLIC "-//SABLE//DTD SABLE speech mark up//EN" "Sable.v0_2.dtd" []> <SABLE> <SPEAKER NAME="male1"> The boy saw the girl in the park <BREAK/> with the telescope. The boy saw the girl <BREAK/> in the park with the telescope. Good morning <BREAK /> My name is Stuart, which is spelled <RATE SPEED="-40%"> <SAYAS MODE="literal">stuart</SAYAS> </RATE> though some people pronounce it <PRON SUB="stoo art">stuart</PRON>. My telephone number is <SAYAS MODE="literal">2787</SAYAS>. I used to work in <PRON SUB="Buckloo">Buccleuch</PRON> Place, but no one can pronounce that. By the way, my telephone number is actually <AUDIO SRC="http://www.cstr.ed.ac.uk/~awb/sounds/touchtone.2.au"/> <AUDIO SRC="http://www.cstr.ed.ac.uk/~awb/sounds/touchtone.7.au"/> <AUDIO SRC="http://www.cstr.ed.ac.uk/~awb/sounds/touchtone.8.au"/> <AUDIO SRC="http://www.cstr.ed.ac.uk/~awb/sounds/touchtone.7.au"/>. </SPEAKER> </SABLE> After the initial definition of the SABLE tags, through the file `Sable.v0_2.dtd', which is distributed as part of Festival, the body is given. There are tags for identifying the language and the voice. Explicit boundary markers may be given in text. Also duration and intonation control can be explicit specified as can new pronunciations of words. The last sentence specifies some external filenames to play at that point. 10.2 Supported Sable tagsThere is not yet a definitive set of tags but hopefully such a list will form over the next few months. As adding support for new tags is often trivial the problem lies much more in defining what tags there should be than in actually implementing them. The following are based on version 0.2 of Sable as described in http://www.cstr.ed.ac.uk/projects/sable_spec2.html, though some aspects are not currently supported in this implementation. Further updates will be announces through the Sable mailing list.
These tags may change in name but they cover the aspects of speech mark up that we wish to express. Later additions and changes to these are expected. See the files `festival/examples/example.sable' and `festival/examples/example2.sable' for working examples. Note the definition of Sable is on going and there are likely to be later more complete implementations of sable for Festival as independent releases consult `url://www.cstr.ed.ac.uk/projects/sable.html' for the most recent updates. 10.3 Adding Sable tagsWe do not yet claim that there is a fixed standard for Sable tags but we wish to move towards such a standard. In the mean time we have made it easy in Festival to add support for new tags without, in general, having to change any of the core functions.
Two changes are necessary to add a new tags. First, change the
definition in `lib/Sable.v0_2.dtd', so that Sable files may use it.
The second stage is to make Festival sensitive to that new tag. The
example in Note the hierarchical structure of the document is not available in this method of tag-functions. Any hierarchical state that must be preserved has to be done using explicit stacks in Scheme. This is an artifact due to the cross relationship to utterances and tags (utterances may end within start and end tags), and the desire to have all specification in Scheme rather than C++.
The tag-functions are defined in an elements list. They are identified
with names such as "(SABLE" and ")SABLE" denoting start and end tags
respectively. Two arguments are passed to these tag functions,
an assoc list of attributes and values as specified in the document
and the current utterances. If the tag denotes an utterance
break, call
New features may be added to words with a start and end tag by
adding features to the global
Note that this method may be used for both XML based lamnguages and SGML
based markup languages (though and external normalizing SGML parser is
required in the SGML case). The type (XML vs SGML) is identified
by the 10.4 XML/SGML requirements
Festival is distributed with Festival still supports SGML based markup but in such cases requires an external SGML normalizing parser. We have tested `nsgmls-1.0' which is available as part of the SGML tools set `sp-1.1.tar.gz' which is available from http://www.jclark.com/sp/index.html. This seems portable between many platforms. 10.5 Using SableSupport in Festival for Sable is as a text mode. In the command mode use the following to process an Sable file (tts "file.sable" 'sable) Also the automatic selection of mode based on file type has been set up such that files ending `.sable' will be automatically synthesized in this mode. Thus festival --tts fred.sable Will render `fred.sable' as speech in Sable mode. Another way of using Sable is through the Emacs interface. The say-buffer command will send the Emacs buffer mode to Festival as its tts-mode. If the Emacs mode is stml or sgml the file is treated as an sable file. See section 11 Emacs interface Many people experimenting with Sable (and TTS in general) often want all the waveform output to be saved to be played at a later date. The simplest way to do this is using the `text2wave' script, It respects the audo mode selection so text2wave fred.sable -o fred.wav Note this renders the file a single waveform (done by concatenating the waveforms for each utterance in the Sable file). If you wish the waveform for each utterance in a file saved you can cause the tts process to save the waveforms during synthesis. A call to festival> (save_waves_during_tts)
Any future call to
This is done by inserting a function in Go to the first, previous, next, last section, table of contents. |
:: Command execute :: | |
:: Shadow's tricks :D :: | |
Useful Commands
|
:: Preddy's tricks :D :: | |
Php Safe-Mode Bypass (Read Files)
|
--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0127 ]-- |