ViaVoice Tidbits

Doug Sutherland wearable at cogeco.ca
Tue Mar 9 23:33:58 EST 2004


Hmmm this is interesting regarding viavoice ...

I really like the sound of this software synth, and it wouldn't work on
slackware 9.1, so I decided to build a custom linux system from source
(using the linuxfromscratch books).

I determined that viavoice cannot deal with glibc 3.2.2 or higher. So I
build a system with glibc 3.2.1, but compiled all of the newer software
for it. I was hoping viavoice would just work, but it failed trying to
find a certain libstdc++ shared object. I got it working by copying the
c++ libraries from slackware 9.1 into /opt/lib/slackware and adding this
directory to ld.so.conf. It worked! Perhaps this is something that is
worth trying if you can't get viavoice working but have glibc 3.2.1 or
older. Note that I had to create the same symbolic links that patrick
used in slack9, but in the /opt/lib/slackware dir. To do so, I just
took the lines right out of his doinst.sh for that package. That's the
first interesting tidbit.

This part is good, not only can I use the TTS, but the compiler is also
working fine with that shared object from slackware :) I am now writing
code with direct calls into the viavoice ECI API.

Now here's another interesting tidbit. There are 3 versions of the TTS,
they are Outloud 5.0, Outloud 5.1, and TTS 5.1. I made a script that
would configure my system for any of these three on the fly. There are
only 3 files needed for viavoice TTS, the enu50.so (dictionary), the
libibmeci50.so (runtime), and the eci.ini. I made a script that will
generate the eci.ini using the inigen program supplied by IBM.

So I was writing code, the speech kept dropping off before it finished.
I thought I was doing something wrong, or that the timing of the VV
eciSynchronize method was off. This method is supposed to return when
the synthesis is done. I kept running the same code with varying
results, sometimes it would speak the whole sentence, sometimes it
would drop the last word or two. Then I remembered I had my system
set up to switch TTS versions. I switched from TTS 5.1 to Outloud 5.1
and the same things happened. Then I switched to Outloud-5.0 and
suddenly the synchronization problem is fixed! Using the oldest of
the three (ViaVoice_Outloud_rtk-5.0.1.0) corrected my problem. So if
your viavoice is dropping words, try this older rev.

It may seem crazy to write code for an old unsupported product, but
it sounds so much better than festival. I'm going to test out all the
outloud API calls then decide what to do from there. One option might
be to try adapting the that software synth middleware program to work
with viavoice. Another might be to write my own voice server. And if
viavoice doesn't work I'm going to shell out the $50 for dectalk.

   -- Doug








More information about the Speakup mailing list