ExternalSpeech by Stéphane Doyon Version 0.7 beta, September 2001 This speech driver interfaces with an external program that will handle speech synthesis. The protocol for talking to the external program is quite arbitrary: there is nothing standard about it. As opposed to the GenericSay driver, this driver is intended for more sophisticated features: - Communication with the external program is bi-directional, and BRLTTY constantly listens for progress updates from the external program. BRLTTY can thus perform speech tracking: the braille display can move as the words are spoken. BRLTTY is then also able to determine when the text is finished speaking. Finally, if speech is stopped by the user, BRLTTY knows at what position it stopped, so the user does not have to search for the stopping point when he/she wants to resume speech synthesis. - Video attributes of the characters are passed with the text, so that the external program can interpret them and add appropriate vocal markings. Currently, only one external program exists that can talk this protocol. It uses IBM's Viavoice TTS AKA Viavoice Outloud software speech synthesis library. NB IBM offers the Viavoice TTS product at no cost for personal / pseudo-evaluation use. Unfortunately their software is not free in the GNU sense nor opensource, and a license is required for commercial use. It is however much more usable and of far superior quality than rsynth, festival, and the TTS scripts I have seen for MBROLA. My external speech program does some speech preprocessing and then uses the Viavoice library. It is still quite alpha. You can find it at: http://pages.infinit.net/sdoyon/via.html It will be kept separate from BRLTTY (in part because of the non-free nature of Viavoice TTS). The path to the external program, and the uid and gid under which it is executed, can be either: -hard-coded in speech.h -specified in the BRLTTY configuration file through the speech-parameter keyword. -Specified on the command-line using the -S option. In the last two cases, the format is: program=[,uid=][,gid=] without space. As in: speech-parameter program=/home/steph/via-0.3/via_wrapper,uid=501,gid=501 Avoid executing the external program as root if at all possible. The account you choose may require some rights such as access to the soundcard device.