This documentation covers version 1.1.1 of the Edinburgh Speech Tools. While previous versions of the speech tools were primarily released solely to support the Festival Speech Synthesis System, the Edinburgh Speech Tools Library has improved greatly since its last release and now contains function and programs that is of use in its own right.
Although hope that the speech tools has stabilised to a certain extent and less structural changes will occur in future versions we don't guaranteed future compatibility, although every effort will be made to make upgrading as easy as possible. In addition, we warn that while several programs and routines are quite mature, others are young and have not be rigorously tested. Please do not assume these programs work.
In order to compile and install the Edinburgh Speech Tools you need the following
We have successfully compiled and tested the speech tools on the following systems:
As stated before C++ compilers are not standard and it is non-trivial to find the correct dialect which compiles under all. We recommend the use of GCC 2.7.2 if you can use it, it is the most likely one to work.
Previous versions of the system have successfully compiled under SGI IRIX 5.3, OSF (Alphas) and HPUX but at time of writing this we have not yet rechecked this version.
For our Windows NT and Windows 95 ports we use the Cygnus GNU win32 environment (b19) available from `ftp://ftp.cygnus.com/pub/gnu-win32/'. As recommended in the Cygnus docuemntation we also recommend that you install the latested version of egcs on top of this distribution. The C++ compiler contained in b19 seem too buggy.
Before installing the speech tools it is worth ensuring you have a fully installed and working version of your C++ compiler. Most of the problems people have had in installing the speech tools have been due to incomplete or bad compiler installation. It might be worth checking if the following program works, if you don't know if anyone has used your C++ installation before.
#include <iostream.h> int main (int argc, char **argv) { cout << "Hello world\n"; }
All compile-time configuration for the system is done through the user definable file `config/config'. You must create this file before you can compile the library. An example is given in `config/config-dist', copy it and change its permissions to give write access
cd config cp config-dist config chmod +w config
In many cases no further changes will be required, but it might be worth checking the contents of this file just in case. Where possible the system will automatically config itself.
Type
gnumake info
This will create the local config files and display what it thinks your system is.
If this is not suitable for your machine then edit your `config/config'
Simple choices for common set ups are given near the top of this file. But for some sub-systems you will also need to change pathnames for external library support.
At present read `config/ReadMe' for details of changing basic configuration.
On systems (and versions of systems) we have not yet encountered you may need to create `config/systems/<PROCESSOR>_<OS><OSVERSION>.mak' files. Often you need only copy an existing one (other version or similar system) to get it to work. Typically the only real differences are when there are major differences in the default C++ compiler (e.g. RedHat 5.0 to RedHat 5.1). If you do need to add a new systems configuration file please let as know so we can include it in the standard distribution.
Once you have configured `config/config' you can compile the system.
gnumake
Note this must be GNU make, which may be called make
on
your system, or gmake
or gnumake
. This will compile all
library functions and all the executables. If you wish to only compile
the library itself then use
gnumake make_library
Note that if you compile with -g
(uncommenting DEBUG = 1
is `config/config' the library and the corresponding binaries will
be large. Particulary the executables, you will need in order of 150
megabytes to compile the system, if your C++ libraries are not compiled
as shared libraries. If you compile without -g
the whole library
directory is about 12 megabytes on Linux (which has shared libraries for
libstdc++
or about 26 megabytes of Sparc Solaris (which does not
have a shared library libstdc++
by default). This is almost
entirely due to the size of the executables. C++ does not make small
binaries.
In general we have made the system compile with no warnings. However
for some compilers this has proved to be near impossible. SunOS include
files have a number of system declarations missing, so many system functions
(e.g. fprintf
) will appear to be undeclared. Sun's CC compiler
also likes to complain about missing source for some code even though
the code exists within our system and is deliberately in separate files
ro make it modular.
To test the system after compilation
gnumake test
All executables are linked to from `speech_tools/bin' and you
should add that to your PATH
in order to use them.
Include files are `speech_tools/include/' and the three generated libraries are `speech_tools/lib/libestools.a', `speech_tools/lib/libestbase.a' and `speech_tools/lib/libestring.a'. For most cases a three will be required.
Some aspects of the system have further dependencies which depend of the option selected at compile time. Specifically the netaudio libraries.
In the future we hope to provide the following:
Go to the first, previous, next, last section, table of contents.