[DECtalk] How to use Say
Jayson Smith
ratguy at insightbb.com
Sun Jul 10 14:27:45 EDT 2011
Here's how to use the Say program Ed posted earlier today. Before we even
get started, you must have a dectalk.dll that's compatible with Say. If you
have the version of Speak using the first attempt by Enable to create a SAPI
DECtalk which was circulated limitedly a few months ago, you have a
compatible dectalk.dll. Note that the access32.dll distributed with Window
Eyes appears not to be compatible. It seems it's been modified probably so
it can only be used within WE. If you try renaming it to dectalk.dll and
using say, you're told there are no license units available.
Also you will need a Microsoft Visual C Runtime library. You've probably got
several versions of this all over your system. I used the one from JAWS 11.
In my case, it's in my settings\enu folder as msvcr71.dll. This needs to be
renamed to msvcrtd.dll. You'll also need a DECtalk dictionary. Once again,
if you have the Speak produced earlier this year, you have this. So in
total, here's the directory listing you need.
dectalk.dll
dtalk_us.dic
msvcrtd.dll
say.exe
Once all these files are in a directory, just run say. Now type something,
hit Enter, and it will be spoken. Running Say with the /? argument will
provide help text. For everyone's convenience, I've pasted this help text in
this message. It's a nice little program. Thanks, Ed!
Unfortunately, as far as I know there's no way to use this with DECtalk 4.3,
since speak43.exe seems to have the DECtalk code bundled in itself rather
than as a separate DLL. Now here's the Say help text. Hope you can use it.
Jayson
SAY [options] [text]
Help Options:
-h or -? = Help. Outputs this file to the console. This
option cancels any others on the command line.
Output Options:
-w outFile = Convert text into specified wave file instead of
speaking to the sound device.
-l[t] outFile = Turn on text logging, which logs all input text
to a file. This text includes any pre and post
commands as well as commands sent to DECtalk by
the SAY program itself.
Since this is the default logging mode, the 't'
immediately following the '-l' is optional.
-ls outFile = Turn on syllable logging, which logs each
syllable to a file.
-lp outFile = Turn on phoneme logging, which converts the
input text to phonemes. This is useful if you
want to get DECtalk to sing. You convert the
text to phonemes and then insert the tone
commands into the phoneme file.
If no output options are specified, SAY sends its output to the
installed sound device, ususally a sound card. Only one output
option can be specified; if you specify more than one, the last one
on the command line is used.
Input Options:
-pre preText = Text to be passed to DECtalk before the normal
input.
This is useful for passing initializing commands to
DECtalk that would normally not be part of the
input.
If the prefix text has spaces, it must be enclosed
in
quotes. An example would be "[:phoneme on]" or
"[:nb :ra200]".
The prefix text is "forced" out before the input
text
is read.
-post postText = Text to be passed to DECtalk after the normal input.
This is useful for passing terminating commands to
DECtalk that would normally not be part of the
input.
If the postfix text has spaces, it must be enclosed
in quotes. An example would be "[:phoneme off]" or
"The End".
The "normal" input is "forced" out before the
postfix
text is read.
text = Text appearing on command line is spoken. The text
to be spoken can either come from the standard
input or from the command line.
Anything on the command line that is not an option
will be interpreted as text, as will anything
following
it on the command line. In other words, text to
be spoken must appear on the command line after
all options.
If the *first* word in the text has a dash (-) or
slash (/) as its first character, you must precede
it with another dash or slash. For example, to tell
DECtalk to say the number -123, you would type the
command
SAY --123
This is necessary to avoid having SAY interpret the
number as a command line option.
If you embed DECtalk commands into your text, you
must
enclose them in quotes if they contain spaces.
This is because SAY treats each space-delimited
command-line argument as a separate "word",
while DECtalk commands must be processed as
single "words" by the SAY program.
If no text is specified, SAY will take its input from the standard
input.
For example, you could have SAY speak a directory listing in Betty's
voice by typing
DIR | SAY -pre "[:nb]"
or you could just type the command
SAY
and then enter text at the console. In this case, SAY speaks each
line after you press RETURN, and exits after you press CTRL-Z. If
you want SAY to take its input from a file, use file redirection as
in the following example, which reads the file FOO.TXT in Harry's
voice.
SAY -pre "[:nh]" < FOO.TXT
Dictionary Options:
-d userDict = Loads the specified user dictionary before
speaking. This dictionary is loaded in place of
any default user dictionary determined by DECtalk.
Version information:
-v = Displays the version of the dll.
More information about the Dectalk
mailing list