Installation of EFlite can be broken down into five steps; compiling
FLite (if you haven't done that already), compiling, configuring,
and testing
EFlite, and configuring Eflite to work with a screen reader.

=== 1. Compiling Festival Lite ===
If you already have FLite compiled and its headers and libraries
available, then you can skip this step.  Otherwise, download FLite
and compile it.  You can get it from http://www.speech.cs.cmu.edu.
Note that Eflite does not use the generated "flite" binary but instead
links against the libraries.

As of version 1.3 of flite, there is no support for audio playback via
Alsa. There are 3rd party patches against flite 1.2 and 1.3 that add
Alsa support: They are available from:

http://homepage.hispeed.ch/loehrer/flite_alsa.html

eflite uses flite for audio playback, thus you will need those patches
if you intend to use eflite with Alsa.

=== 2. Compiling EFlite ===
If you have checked EFlite out from cvs, then you will first need to generate
the configure script from the configure.in file.  Do this by running autoconf.
If you downloaded the source from the web, then you can skip this step.
Then, run configure.  This will create a Makefile.  It will try to guess at
the location of your FLite libraries.  If it guesses incorrectly or does not
succeed at finding them, then you will need to specify the directory with a
command similar to the following:
./configure flite_dir=/usr/src/flite-1.1-release

To select the type of audio playback, specify either
--with-audio=oss or --with-audio=alsa as options to configure.

Once a Makefile has been created, run make.  Assuming all goes well, you
should get a binary called eflite.  You may then run "make install" to
install the binary.

=== 3. Configuring EFlite
This step is optional.  When EFlite starts, it looks for a configuration
file called .es.conf in the user's home directory.  If it does not
find one there, it looks for a configuration file named /etc/es.conf.
Lines in the configuration file are of the form
key=value
ie: sockname=/tmp/es.socket

The following options may be specified in the configuration file:
sockname: Specifies the name of the socket that EFlite clients use
to communicate with their server.  When EFlite is run, it first tries
to connect to this socket.  If this succeeds, then it will read input
from the file passed to it on the command line, or standard input if
'-' is specified or if EFlite is run without arguments.  Upon failing
to connect to the specified socket, EFlite will fork, and the forked
process will act as a server, accepting connections on the socket.

punct_some: List of punctuation characters to be spoken when the
punctuation mode is set to "some.".  Default is @#$%^&_[]{}\|

punct_all: List of punctuation characters to be spoken
when the punctuation mode is set to "all."  Default is
!@#$%^&*()-=_+[]\|{};':",./<>?

speech_volume: Volume of speech unless overridden by a client.  Default is 1000.

tone_volume: Volume of generated tones (0-32767).  Default is 8192.

speaker_tones: Allow tones from the PC speaker, if supported.  1 enables;
0 disables.  Currently, this option is only meaningful under Linux
and when running as root (regardless of whether we have right access
to /dev/console).  Default is 1.

soundcard_tones: Allow tones from the sound card, if supported.
1 enables; 0 disables.  Default is 1.  These tones may be generated
either by writing directly to /dev/dsp (under Linux) or by using
FLite's interface (if EFLITE is defined when compiling tone.c, which
it is by default).  Therefore, the Linux native support is no longer
necessary for EFlite's operation and is kept around only to retain the
possibility of de-coupling the Emacspeak server core (es.c and helpers)
from the Festival Lite support code (fs.c).

=== 4. Testing EFlite ===
Once you have compiled EFlite, I would suggest running "make test".  This
will run EFlite, passing it a test file as input.  You should hear a message
being spoken.

=== 5. Configuring your screen reader ===
[I will discuss Emacspeak and Yasr in this section.  If anyone gets
Eflite to work with BRASS or anything else and would like to contribute
a section for it, then send me some email.]

=== 5.1. Emacspeak:
- Set DTK_PROGRAM to the location of your EFlite binary.  If you use
/usr/bin/emacspeak, then it may be easiest to place  a line similar to the
following into emacspeak.conf:
export DTK_PROGRAM=/usr/local/bin/eflite

Alternatively, the following shell script should get Emacspeak running with
EFlite, although you may need to edit some path names:

#!/bin/sh

export EMACS_UNIBYTE=1
export DTK_PROGRAM=/usr/local/bin/eflite
emacs -q -l /usr/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.el
# You may want to add "-l $HOME/.emacs" to the previous line

=== 5.2. Yasr ===
in ~/.yasr.conf (or /etc/yasr.conf), set the value of "Synthesizer" to
"Emacspeak server," and set "Synthesizer Port" to the location of your
Eflite binary, preceeded by a |. Ie:
Synthesizer=Emacspeak server
Synthesizer port=|/usr/local/bin/eflite

========================================================================
If there is anything that I haven't covered (and I'm sure that there is),
then let me know.

-Michael P. Gorse
-mgorse@alum.wpi.edu
