Dectalk Linux Question

Jacob Schmude jschmude at adelphia.net
Sat Mar 27 22:33:39 EST 2004


Hi
Well, I certainly won't take all the credit for making software dec and
speechd work together, Mr. Hynek Hanke--one of the speechd
developers--definitely disserves some credit as well. Yes, speechd can and
does now communicate with software dectalk, which means that speakup users
can use soft dec as well.

What works:
* Basic speech output
* Speech interruptability (though with a few querks)
* Rate and pitch changes

What doesn't work:
* Voice changes. The reason for this is that the speakup softsynth driver,
which you use through speechd_up to connect through speech dispatcher,
expects numbers of 0 through 9 for voices. However, speech dispatcher
wants names like MALE1, MALE2, MALE3, etc which the softsynth driver
doesn't pass through. If you attempt to change the voice by echoing MALE2
or similar to /proc/speakup/voice, only the number 2 gets passed through,
which speechd doesn't recognize.
* Caps pitch changes. The reason is that the default pitch change command
(\x01+35p) doesn't seem to be passed via speechd_up. I'm not sure why this
is, but this isn't specific to the soft dec, festival and flite exhibit
the same behavior. Consequently, if you're using the soft synths with
speakup, you'll want to make speakup say CAP or something similar. I've
not yet found a command string that gets passed correctly.

Bugs:
* All bugs related to using speakup through speech dispatcher apply, such
as not everything being spoken as it is output, the enter key not stopping
speech, and some prompts interrupting what you're reading. Note that
speech will shut up if you press a key that results in more output, such
as a screen review key, it simply won't shut up if you don't send anything
with the shut up command.
* Speech delays. This seems to be related to the way dec software outputs.
Basically, the shorter the string you send, the longer the delay, and the
higher the speech rate, the longer that delay will be. It doesn't make it
unusable, but it is noticable. Note that I've seen this behavior in
emacspeak and gnopernicus as well, which leads me to think that it's
related to dectalk itself. There's a slightly longer pause between
sentences as well, due to the fact that speech dispatcher outputs one
sentence at a time, rather than the whole line. In other words, if it sees
a period or other end mark, it will send that string and then send the
rest of the line. Consequently, when it sends the rest of the line, dec
software delays a bit, depending again on how short or long the remainder
of the line is.
* Speech rates and pitches aren't what you might expect. This is due to an
inconsistancy between the softsynth driver and speech dispatcher. While
speechd expects rates and pitches of -100 to 100, softsynth handles rates
0 through 9 and, as near as I can tell, pitches 0 to 99. While speechd_up
does convert these, the results aren't quite what some might expect. For
instance, 2 is the dec's default pitch, not 100, which is the true
software dec default. Pitch 2 = pitch 100. The same applies to rates, rate
7 is about rate 450, which is the rate that I use. The values can be
adjusted to fit near what one may want but perhaps not precisely.
So to sum this all up, it works with a few querks. If anyone wants to try
it, they'll need to get speechd from CVS and set their output module to
dtk-generic.
 HTH

On Sat, 27 Mar 2004, Kirk Reiser wrote:

> I should also point out that because of Jacob I believe the Soft dectalk
> is supported by the speech dispatch drivers for speakup.  Although
> he'll have to tell everyone how good or bad it is.




More information about the Speakup mailing list