For those that like viavoice but can't get it to work on slackware 9.1 (Or any other system with glibc 2.3.2) have it working :) However, it required compiling glibc 2.3.1 into the /opt directory, pointing the LD_LIBRARY_PATH there, and executing the ld-3.2.1.so directly to start viavoice. In case anyone wants to try this, I did it this way: Grab these two files from ftp.gnu.org and extract them in /usr/src cp glibc-2.3.1.tar.gz /usr/src cp glibc-linuxthreads-2.3.1.tar.gz /usr/src cd /usr/src tar xzvf glibc-2.3.1.tar.gz The linuxthreads packages must be extracted inside glibc source tree cp glibc-linuxthreads-2.3.1.tar.gz /usr/src/glibc-2.3.1 cd /usr/src/glibc-3.2.1 tar xzvf glibc-linuxthreads-2.3.1.tar.gz The glibc should be built outside the source tree, like this: mkdir /usr/src/glibc-build cd /usr/src/glibc-build Build with the prefix and libexecdir to /opt directory ... ../glibc-3.2.1/configure --prefix=/opt/glibc-2.3.1 \ -- disable-profile --enable-add-ons \ --libexecdir=/opt/glibc-2.3.1/bin && make && make install The above takes a long time and you need lots of disk space to build glibc (approx 800MB), but you can delete the source tree and build tree when finished. The script that executes viavoice must export LD_LIBRARY_PATH to point to new glibc export LD_LIBRARY_PATH=/opt/glibc-2.3.1/lib There also needs to be a path to the viavoice libraries The program linked to viavoice must use the ld-linux.so that was built with the new glibc rather than your regular one, which will use the incompatible glibc-2.3.2. For example to run the viavoice example program runcmdlinespeak, I do this: /opt/glibc-2.3.1/lib/ld-2.3.1.so runcmdlinespeakfile It works for me on stock slackware 9.1! A few other notes on viavoice: If you can't install with rpm, you can do rpm2tgz viavoicefile.rpm Then just copy the files into /usr/lib ViaVoice needs to have an environment variable ECIINI that points to the eci.ini file. If the eci.ini file is missing, it can be generated by running the inigen program that comes with viavoice. However, if you want to run inigen, you need to use the glibc-2.3.1: /opt/glibc-2.3.1/lib/ld-2.3.1.so inigen path/enu50.so target_path On my system I copied the viavoice stuff to /usr/local/viavoice/ and put the viavoice libraries in /usr/local/viavoice/lib To run a program I compiled for viavoice I do this in a bash shell: #!/bin/sh VVDEV=/usr/local/viavoice export ECIINI=$VVDEV/eci.ini export LD_LIBRARY_PATH=/usr/lib:/opt/glibc-2.3.1/lib:$VVDEV/lib /opt/lib/glibc-2.3.1/lib/ld-2.3.1.so $VVDEV/bin/inigen $VVDEV/lib/enu50.so $VVDEV /opt/lib/glibc-2.3.1/lib/ld-2.3.1.so $VVDEV/test1 "Is there anybody there? This both generates the eci.ini and sets the ECIINI variable, then it runs my program test1 which was compiled using the IBM eci.h include file. As I mentioned earlier, I discovered that the latest versions of ViaVoice TTS tend to drop off the speech before sentence end, but when I went back to the earliest version ViaVoice Outloud 5.0, the synchronization worked perfectly (ie the call to eciSynchronize returns at the right time, when the speech is finished talking). This oldest version of ViaVoice is in this file http://www.ecn.purdue.edu/~laird/Linux/ViaVoice/viavoice_outloud_sdk_rtk.tar On my system the newer TTS 5.1 and Outloud 5.1 have synchronization problems, where eciSynchronize returns before speech is finished, thus dropping off words. I haven't configured emacspeak yet, but it should be possible. The outloud server will need to load with /opt/lib/glibc-2.3.1/lib/ld-2.3.1.so and use the glibc 2.3.1 libraries. Maybe a lot of work and space just to get viavoice working, but I like the sound much better than festival/flite and dectalk. It would be nice to get the middleware program for speakup to use viavoice as a voice server .... -- Doug