public inbox for speakup@linux-speakup.org
 help / color / mirror / Atom feed
* ViaVoice Tidbits
@  Doug Sutherland
   ` hank
   ` Igor Gueths
  0 siblings, 2 replies; 5+ messages in thread
From: Doug Sutherland @  UTC (permalink / raw)
  To: speakup

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






^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ViaVoice Tidbits
   ViaVoice Tidbits Doug Sutherland
@  ` hank
     ` Doug Sutherland
   ` Igor Gueths
  1 sibling, 1 reply; 5+ messages in thread
From: hank @  UTC (permalink / raw)
  To: Speakup is a screen review system for Linux.

are you writing your own linux distro?
----- Original Message ----- 
From: "Doug Sutherland" <wearable@cogeco.ca>
To: <speakup@braille.uwo.ca>
Sent: Tuesday, March 09, 2004 8:33 PM
Subject: ViaVoice Tidbits


> 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
> 
> 
> 
> 
> 
> _______________________________________________
> Speakup mailing list
> Speakup@braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ViaVoice Tidbits
   ` hank
@    ` Doug Sutherland
  0 siblings, 0 replies; 5+ messages in thread
From: Doug Sutherland @  UTC (permalink / raw)
  To: Speakup is a screen review system for Linux.

Hank said:

 > are you writing your own linux distro?

No I am just building it all from source.
http://www.linuxfromscratch.org/

Right now there is only one piece of software on my system that I didn't
build from source, and that is viavoice. I don't recommend this for anyone
new to linux, but I gotta say this, if you like slackware, this takes it
to a whole new level. I have the simplest init routines on the planet
probably, because I'm not an ISP or corporate server, I'm just a measly
ole user who doesn't need much :) One thing that is cool is that I know
exactly what all these libraries and programs are for.

In the linux world, one tends to get roped into the "might need this"
syndrome <g> where you keep installing stuff, because you might need
this lib and might need that. It's getting out of control I think.


   -- Doug



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ViaVoice Tidbits
   ViaVoice Tidbits Doug Sutherland
   ` hank
@  ` Igor Gueths
     ` Doug Sutherland
  1 sibling, 1 reply; 5+ messages in thread
From: Igor Gueths @  UTC (permalink / raw)
  To: Speakup is a screen review system for Linux.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Doug, this is sounding very interesting. Question though. Did you build 
the latest gcc from source? Bc that may have something to do with your 
problem, depending on whether or not the libstdc++.so you copied from 
the Slackware Cd came from the same version of Gcc that you built. The 
only reason I am suggesting that is because you could have possibly 
eliminated the problem, or you can do so in the future.
On Tue, Mar 09, 2004 at 11:33:58PM -0500, Doug Sutherland wrote:
> 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
> 
> 
> 
> 
> 
> _______________________________________________
> Speakup mailing list
> Speakup@braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFATz34Nohoaf1zXJMRAvNqAKCjyt+tkfmOfzL332KodhPTlUgU+ACfaS44
l0I4viBwmV05pQCr9dygKgs=
=P04t
-----END PGP SIGNATURE-----


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: ViaVoice Tidbits
   ` Igor Gueths
@    ` Doug Sutherland
  0 siblings, 0 replies; 5+ messages in thread
From: Doug Sutherland @  UTC (permalink / raw)
  To: Speakup is a screen review system for Linux.

Igor said:

 > Doug, this is sounding very interesting. Question though. Did you build
 > the latest gcc from source? Bc that may have something to do with your
 > problem, depending on whether or not the libstdc++.so you copied from
 > the Slackware Cd came from the same version of Gcc that you built.

Okay, I digged deeper into this. First off, viavoice doesn't work on
slackware 9.1, so this doesn't apply to that version. As far as I can
tell, viavoice won't work on any system built with glibc 3.2.2 or newer.
Slackware 9.1 uses glibc 3.2.2. Slackware 9.0 uses glibc 3.2.1.

On my built-entirely-from-source system, I used glibc 3.2.1 and gcc 3.2.1.
So I was using a different version of gcc that slackware 9. On that system
when I try to run viavoice, I get this:

libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or 
directory

If I try symbolic linking the above to the libstdc++ that was installed
from my source build (libstdc++.so.5.0.1), I get this

enu50.so: undefined symbol: cerr (enu50.so is the viavoice dictionary)

Now if I remove that link and copy the slackware 9.0 libstdc++-libc6.1-1.so.2
(which is a symblic link), and what it links to I have these:

libstdc++-libc6-1.1-2.9.0.so
libstdc++-libc6-1.1-2.so.2 -> libstdc++-2-libc6-1.1-2.9.0.so

If I include a path to those in /etc/ld.so.conf, then viavoice works.

Since I wasn't using the same gcc as slackware 9, I built a whole new
system from source using the same gcc (3.2.2) and glibc (3.2.1) as
slackware 9.0, to see if that would work. No luck! :) It gave the same
error trying to find libstdc++-libc6-1.1-1.so.2. Following the same
procedure as above, if I try linking that to the installed libstdc++
(this time libstdc++.so.5.0.2) I get the same error about undefined
symbol cerr (when viavoice's enu50.so tries to load). And just as
before, if I copy the slackware lib over ... it works ... grrr

Looking closer at slackware 9.0 libstdc++ libraries, it has many more
files than I do, it has all of these:

libstdc++.so.5.0.2
libstdc++.so.4.0.0
libstdc++.so.2.8.0
libstdc++.so.2.7.2.8
libstdc++-2-libc6.1-1-2.9.0.so
libstdc++-3-libc6.1-2-2.10.0.so
libstdc++-3-libc6.2-2-2.10.0.so

And these are not symbolic links, these are actual shared libraries.
My source build only created the first one libstdc++.so.5.0.2

It appears that slackware 9.0 created a bunch of compatibility libs,
but I'm not sure how it did that. Any idea how to get gcc to build
compatibility libs?

Also, the file of interest to viavoice is libstdc++-2-libc6.1-1.2-9.so
I don't have any files called libstdc++*libc6*
This seems to be some combination of C++ and glibc.
And that seems to be what I am missing.
This is quite annoying hee hee.

I have viavoice working but I'd like to figure out how to eliminate
having to copy binaries from slackware 9.0. Any ideas on how to build
these libstdc++ compatibility libs, or the ones that seem to refer to
libstdc++ and libc (like libstdc++-2-libc6.1-1.2.9.0.so)?

   -- Doug













^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~ UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
 ViaVoice Tidbits Doug Sutherland
 ` hank
   ` Doug Sutherland
 ` Igor Gueths
   ` Doug Sutherland

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).