This directory contains the BRLTTY speech driver for the Mikropuhe text to
speech engine [http://www.mikropuhe.com] from TimeHouse
[http://www.timehouse.fi/oy/en/]. It was implemented, and is being maintained,
by Dave Mielke <dave@mielke.cc>.

BRLTTY's configure script automatically includes this driver if Mikropuhe has
been installed. The default is to check the directories /usr, /usr/local,
/usr/local/Mikropuhe, /usr/local/mikropuhe, /opt/Mikropuhe, and /opt/mikropuhe. 
The actual location can be explicitly specified via --with-mikropuhe.

Check the date of the file "libmplinux.so" within the Mikropuhe package to
ensure that you have a recent enough version. It must not be dated earlier than
February 23, 2004. Please see the instructions on the Mikropuhe CD-ROM or at
[www.mikropuhe.com].

This driver can be either dynamically loaded (at run time) or built directly
into a dynamically linked BRLTTY binary (via --with-speech-driver), but it
cannot be built into a statically linked BRLTTY binary (via
--enable-standalone-programs) because the Mikropuhe package doesn't contain a
static archive. 

This driver recognizes the following parameters:

   Parameter Settings
   name      name (/path/to/mikropuhe/name.pu5)
   pitch     -10-10
