forked from zeehio/speech-tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL
291 lines (216 loc) · 10.8 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
INSTALLATION
Release notes
This documentation covers version 2.4 of the Edinburgh Speech Tools
Library. While previous versions of the speech tools were primarily
released solely to support the Festival Speech Synthesis System, the
Edinburgh Speech Tools Library now contains sufficiently useful tools
that it 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.
Requirements
In order to compile and install the Edinburgh Speech Tools you need
the following
GNU make
Any recent version, the various make programs that come with different
UNIX systems are wildly varying and hence it makes it too difficult to
write Makefiles which are portable, so we depend on a version of make
which is available for all of the platforms we are aiming at.
A C++ compiler
The system was developed primarily with GNU C++ (various versions from
version 2.7.2), but we also have compiled it successfully with a
number of other versions of gcc, and Visual C++.
Hopefully we have now sanitized the code sufficiently to to make it
possible for ports to other C++ compilers without too much
difficulty. But please note C++ is not a fully standardized language
and each compiler follows the incomplete standard to various
degrees. Often there are many but simple problems when porting to new
C++ compilers. We are trying to deal with this by increasing our
support. However, it is likely that small changes will be required for
C++ compilers we have not yet tested the system under.
However we feel this is stable enough to make it worthwhile attempting
ports to other C++ compilers that we haven't tried yet.
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";
}
Supported Systems
We have successfully compiled and tested the speech tools on the
following systems, except where specified we include support for both
shared and static versions of the libraries:
Sun Sparc Solaris 2.5.1/2.6/2.7/2.9
GCC 2.7.2, GCC 2.8.1, gcc-2.95.3, gcc-3.2 gcc-3.3
MacOS GCC 4.2.1 (Snow Leopard default)
Linux GCC 4.2 - 4.8.0
Windows 7/8 GCC (from Cygwin 1.7), Visual C++ (VS2010,VS2012).
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 4.6 if you can use it, it is the most likely one to
work. Some of the compilers listed above produce a large number of
warnings when compiling the code.
Previous versions of the system have successfully compiled under SGI
IRIX 5.3, 6.x, OSF (Alphas) and HPUX but at time of writing this we have
not yet rechecked this version. AIX4.3 probably works.
Java is no longer supported!
The java directory contains optional Java classes which give some
access to speech tools facilities from Java programs. This has been
created to support the fringe graphical interface. There are three
levels of support enabled by the JAVA JAVA_MEDIA and JAVA_CPP options
in the config file. JAVA compiles some very basic classes intended to
allow very simple simulation of speech tools facilities in pure Java
programs. JAVA_MEDIA is similar but uses the Jva Media Framework to
play sound. JAVA_CPP compiles classes which use the Java native
interface to provide access to the actual speech tools C++ classes.
You may (for instance on Solaris using gcc) need to make shared
libraries for some compiler support libraries in order to comple the
full JAVA_CPP support. See Appendix A for details.
Windows 95/98/NT/XP/Vista/7/8 Port
We have done two ports of this code to Windows machines, one uses the
Cygwin package, which provides a Unix like environment under on Win32
systems, the other is a native port using Visual C++.
We recommend using only Windows 7.
The port using Visual C++ does not provide all of the
features of the Unix and Cygwin versions. You will need access to a
Unix or Cygwin system to create the makefiles used for the Visual C++
compilation.
Both Cygwin and Visual C++ ports have a number of limitations.
Shared library creation is not supported.
Creation of Windows DLLs is different enough from creation of Unix
shared libraries that the support does not carry directly across, and
we haven't yet had time to work on it.
Java not supported
Because the Java support is related to the creation of shared
libraries, this is also not yet implemented for Windows.
Command line editing limited
Because of the limits of the Windows DOS console window, the
command line editing in siod is less reliable (for instance on
very long lines).
(Visual C++) Networking not supported
Networking under Win32 is different from Unix in a number of
fairly fundamental ways, we haven't tackled this at all.
There are no doubt other differences we have not noticed. We don't use
Windows for any of our work and so the Windows builds of our systems
don't get the extensive use the unix builds do.
BUILDING IT
Configuration
All compile-time configuration for the system is done through GNU
configure. On most systems you can configure the system
by
unix$ ./configure
This creates the file config/config which for most machines will be
suitable. In some circumstances the default.s generated from this
may not be what you want and you may wish to edit this file.
For Linux we now fully support shared libraries and even recommend
them. However if you are going to do a lot of development and don't
understand the consequences of shared libraries and getting
LD_LIBRARY_PATH correct (or what that is) we recommend you compile
unshared, the default. If you are going to simply run the speech tools
(and festival) then shared is a reasonable option. Uncomment the line
in the config file
# SHARED = 2
Shared support under Solaris is complete for all the speech tools. If
you need to exec festival scripts using a version of festival built
with shared libraries, you must either execute them from a featureful
shell (e.g. bash), install the shared libraries in a standard place or
explicitly set LD_LIBRARY_PATH. Solaris's standard shell doesn't
support script execution of shells within shells.
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.
Compilation
Once you have configured config/config you can compile the system.
unix$ gmake
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
unix$ gmake make_library
Note that if you compile with -g (uncommenting DEBUG = 1 is
config/config the library and the corresponding binaries will be
large. Particularly 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
unix$ gmake test
Installing the system
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.
If space is a premium, compiled with the shared option (binaries
will be then be substantially smaller) and you can delete all .o files
Some aspects of the system have further dependencies which depend of
the option selected at compile time. Specifically the readline
libraries and Netaudio libraries.
These are uptodate instructions for Visual C++ builds.
VS2010 was tested but older versions may work
Requirements:
MS Windows 7 (or Windows 8)
Visual C++ (VS2010 or VS2012)
cygwin 1.7 or later
speech_tools-2.3
festival-2.3
Download and install cygwin.
Optionally download emacs so you have a decent editor :)
Download speech_tools and festival tar.gz files.
Download required festival lexicons and voices.
Using cygwins bash shell:
mkdir C:/festival
cd C:/festival
Using cygwin's tar command unpack:
tar xvfz speech_tools-2.3.tar.gz
tar xvfz festival-2.3.tar.gz
tar xvfz festlex... festvox...
(where festlex... and festvox... are the voice and lexicon files you
need. Do not use winzip to unpack the voices it corrupts them!)
Create Visual C++ make files: (this may be slow...)
cd speech_tools
make VCMakefile
cp config/vc_config_make_rules-dist config/vc_config_make_rules
cd ../festival
make VCMakefile
cp config/vc_config_make_rules-dist config/vc_config_make_rules
Finally make festival init_modules code. (If you add new modules you
either need to edit init_modules.cc by hand or rerun this step.)
make -C src/modules init_modules.cc
edit config/vc_config_make_rules and change:
SYSTEM_LIB=c:\\festival\\lib
to:
SYSTEM_LIB=c:\\festival\\festival\\lib
(or to wherever you unpacked festival)
Now switch to a windows command prompt.
If necessary execute: VCVARSALL.BAT from the VC++ directory structure to set up
VC++ environment. (you may do this automatically at boot or login, or it should be
automatic if using the terminal provided by Visual studio)
Build speech_tools and festival:
cd c:\festival\speech_tools
nmake /nologo /FVCMakefile
cd ..\festival
nmake /nologo /FVCMakefile
At this point you should be able to run festival by typing:
src\main\festival