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