home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Spezial
/
SPEZIAL2_97.zip
/
SPEZIAL2_97.iso
/
ANWEND
/
MULTIMED
/
BTALK13
/
readme
< prev
next >
Wrap
Text File
|
1997-03-17
|
15KB
|
353 lines
BackTalk 1.3 - System Speech for OS/2 (c) 1996 Jim Little
(c) 1996-1997 Samuel Audet
Revised and modified BackTalk project by Samuel Audet <guardia@cam.org>
Original copy, idea and copyrights goes to Jim Little <jiml@teleport.com>
and his Power User section available at OS/2 E-Zine!.
Table of contents
~~~~~~~~~~~~~~~~~
I. Installation
II. CMU Pronunciation Dictionary
III. SPEECHQ.CMD Speech Queue
IV. SPKMAIL.CMD Speaking Mail
V. SPKCLOCK.CMD Speaking Clock and SPKTIMER.CMD Speaking Timer
VI. SPKIRC.CMD Speaking IRC
VII. How can I implant speech in my REXX scripts?
VIII. Feedback
IX. Acknowledgements
I. Installation
~~~~~~~~~~~~~~~
Ok, here's the big picture. Rsynth 2.2 might crash in Warp 4, and you
may have some chipmunk voice problem with Rsynth 2.1, and also Rsynth 2.2
processes faster with its multithreading. Some sound boards like Mwave
also have problems with Rsynth sound ouput.
Because of this, the installer will let you try all possible alternatives
(including kludges), and you will then let you install the one that works
the best on your system.
It will also ask about MR/2 ICE support.
Be sure to have EMX runtime librairies installed BEFORE installing BackTalk.
You can get those on ftp://hobbes.nmsu.edu/os2/unix/emx09c/emxrt.zip
After installation, you can delete all the *.h, *.c, *.def and 'makefile'
if you desire. Those are source codes.
A folder will be created, where you can find all the objects needed to
control the scripts that came with this packages as well as the main Speech
Queue. However SPKMAIL.CMD and SPKIRC.CMD will have to be manualling
installed, please read below.
The installer includes Info-ZIP UNZIP 5.12 EXE. It is freeware and
available at ftp://hobbes.nmsu.edu/os2/archiver/unz512x2.exe
II. CMU Pronunciation Dictionary
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RSynth sounds much better if you install the optional dictionary. This
dictionary can be found online on Derek Decker's web site. The URL is
http://www.cris.com/~djd/products.html. To install the dictionary, do the
following:
1. Stop the speech queue if it is active.
2. Copy the plain-text dictionary file into the RSynth directory.
(Oh and edit it to replace OS pronouciation to OW1 EH1 S, for OS/2 to
actually sound like OS/2, well almost)
3. Make sure you have plenty of hard drive space. (15MB should be enough.)
3. Type "mkdictdb cmudict.04 adict.db" at a command prompt in the RSynth
directory. Use the appropriate filename in place of cmudict.04 if it
changed.
4. Ignore errors. (They represent multiple pronounciations and punctuations
not support by this freeware text to speech program)
5. Wait.
...a long time.
...a very, very, very long time.
(We're talking at least an hour here. Fortunately, you can multitask!)
6. When it's done, restart the speech queue and marvel at the frog prince's
transformation. You can delete the cmudict.04 file.
III. SPEECHQ.CMD Speech Queue
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The speech queue (SPEECHQ.CMD) is the only program that actually uses SAY.EXE
to generate speech. The other programs simply place their messages in a queue
for SPEECHQ to handle. Therefore, SPEECHQ.CMD must be running before any of
the other speech programs will work.
SPEECHQ.CMD must be located in the same directory as SAY.EXE. If you
used INSTALL.CMD, the file is already there. Normally, SPEECHQ will
say, "Speech Enabled" when it is started. If you hear "Unable to delete
blahblah", naughty naughty... next time try to end it with "Stop Speech",
instead of Closing the window. Now reboot. :)
SPEECHQ.CMD will also call SPKSTART.CMD in its directory (normally with
SAY.EXE). It can be useful when you put your SPEECHQ.CMD (Speech Queue) in
your Start Up folder, and you also want SPKCLOCK.CMD to start, but
SPEECHQ.CMD must be loaded first. It can be a batch file or a REXX script.
A sample of this file has been included.
IV. SPKMAIL.CMD Speaking Mail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The most useful program included with this project is (was?) SPKMAIL.CMD.
When this program is installed with your e-mail program, you will be
notified by voice whenever new mail arrives. This is particularly useful
if you leave your mailer running but minimized while you are connected to
the Internet. SPKMAIL reads the author and the subject of any new message,
preventing the need to bring up your mailer every time new mail arrives.
SPKMAIL requires an e-mail program that supports REXX exits. I've used it
successfully with PMMail 1.51 to 1.90, MR/2 ICE 1.10 to 1.26 and Internet
Adventurer 0.96 Mail. It would also be a good idea to disable WAV sound,
to free the sound card.
PMMail 1.51 to 1.90:
~~~~~~~~~~~~~~~~~~~~
1. Open PMMail.
2. Select "Utilities Settings..." from the "Account" menu.
3. Click the "REXX Exits" tab.
4. Check the "Message Receive Exit" checkbox.
5. Enter the full pathname to and including SPKMAIL.CMD.
6. Press OK.
MR/2 ICE 1.10 to 1.26:
~~~~~~~~~~~~~~~~~~~~~~
1. Copy flip.exe (located in <backtalk_dir>\flip) where MR2I.EXE resides.
2. Edit SPKMAIL.CMD and change 'flip = 1'.
2. Open MR/2 ICE.
3. Select "Filter maintenance..." from the "Utilities" menu.
4. Press the "New" button.
5. Enter a description (ie.: Speaking Mail)
8. Check the "Link to REXX" checkbox.
9. Enter the full pathname to and including SPKMAIL.CMD.
10. Press OK.
11. Press Done.
Internet Adventurer 0.96 Mail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Open Internet Adventurer Main window.
2. Open the News and Mail window.
3. Open the Filter notebook from the Settings menu.
4. Select Add, and give a name (ie: Speaking Mail)
5. Uncheck "Incoming News", "Outgoing News" and "Outgoing Mail", and check
"Incoming Mail".
6. Check Execute REXX and type the full pathname to and including SPKMAIL.CMD
7. Press OK.
V. SPKCLOCK.CMD Speaking Clock and SPKTIMER.CMD Speaking Timer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SPKCLOCK.CMD will speak the time at a lap specified in the "lapmins"
variable found at the beginning the file. You can also specify civil
(AM PM), offset (quarter before noon) or the international time (24 hours).
Look in SPKCLOCK.CMD for more information.
SPKTIMER.CMD is a timer, which has the ability to speak a message and to
specify the laps of time between them. It also has an urgent mode, that
gets activated if the urgent mode toggle time is greater than 0. The
urgent mode has its own message and laps time too. And finally, the alert
message, which gets spoken when the timer has finished counting.
You can specify default values directly in SPKTIMER.CMD. Please, refer to
it for more information. Or you can use the command line to override the
defaults.
-t1 countdown time (minutes)
-l1 laps time (seconds)
-m1 message
-t2 time remaining to switch in urgent mode (minutes)
-l2 laps time in urgent mode (seconds)
-m2 message in urgent mode
-m3 alert message when timer has stopped
-? Help screen
ie.: c:\> spktimer -t1 45 -t2 15 -m1 for your dentist rendezvous -m2 for
your VERY VERY important dentist rendezvous -l1 300 -l2 120 -m3 Your
dentist rendezvous!!
Yes, that does fit on the command line. Therefor, you can execute it from
agendas that support execution of programs. Be aware that REXX scripts
aren't the program themselves, it's CMD.EXE that is the program. So to
execute a REXX script when the agenda or calendar (whatever) DOES NOT
specify that it can run REXX, you have to execute the following:
X:\OS2\CMD.EXE /C SPKTIMER.CMD -t1 ...
Both scripts can be safely terminated by closing the window in which they
are executing.
VI. SPKIRC.CMD Speaking IRC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The files in rexx\spkirc:
ircstart.txt A sample startup command file.
spkirc.cfg A sample configuration files for custom voices
for a specified nicknames.
spkircc.cmd The outgoing commands IRC REXX file.
spkircm.cmd The incoming messages IRC REXX file.
You have to copy them all into your IRC client directory (or a corres-
ponding script directory). The files can have any name wanted, except
spkirc.cfg which need to be named that way. If you already have a REXX
incoming message file, a REXX outgoing command file and a startup command
file, please add the content of all of the above at the _very beginning_
of the currently installed file, *EXCEPT* the last line "Return 'OK'".
GammaTech IRC 2.0x
~~~~~~~~~~~~~~~~~~
1. Copy all the above files in to GTIRC.EXE directory.
2. Open the Startup dialog box from Options menu
3. Startup /Cmd /run ircstart.txt
Input Msg Script spkircm.cmd (or the corresponding filenames)
Ouput Msg Script spkircc.cmd
Internet Adventurer 0.96 IRC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Copy all the above files in to INETADV.EXE directory.
2. Open Settings dialog box from the Options menu. Choose IRC and Scripts tab.
3. Incoming REXX Script name spkircm.cmd
Outgoing REXX Script name spkircc.cmd (or the corresponding filenames)
Startup command /run ircstart.txt
Since Internet Adventurer IRC does not support IRC Variable (yet?) you will
have to edit spkircm.cmd and replace some text. Be sure to have word wrap
*DISABLED* in your text editor. Search for the exact string:
ircrexxvariable(winhandle,"$PARTIALNICK")
and replace with exactly the partial nickname wanted (to enable recognition
of messages addressed to you publicly) in quotes, ex.:
'guard'
IRC/2 0.78
~~~~~~~~~~
I was not unable to test the script with IRC/2 since the functionality is
not supported in the shareware version. The scripts should work as
expected. To set your partial nickname variable in IRC/2 (to enable
recognition of messages addressed to you publicly),
/assign $PARTIALNICK <partial_nick_name> should work.
/assign $PARTIALNICK guard
I was also unable to use a startup command file. I have tried IRCRC,
IRCSTART and a REXX Startup file and none worked, go figure.
Complain to IRC/2 author, not me.
New IRC commands implented for SPKIRC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First, you can set your partial nickname to enable recognition of messages
addressed to you publicly, by setting the IRC Variable named $PARTIALNICK
(it is case sensitive).
GTIRC uses the command /var (ex.: /var $PARTIALNICK,guard), Internet
Adventurer does not support IRC Variables, and IRC/2 uses the command
/assign (ex.: /assign $PARTIALNICK guard). This variable should be set in
the startup command file (ircstart.txt) as well as other default setting
you might want to set below.
/LOADSPKIRC This command will enable SPKIRC functionality and will load
(or reload) SPKIRC.CFG settings in memory. SPKIRC.CFG will
allow you to specify the frequency, the flutter and the speed
of the voice for specific partial nicknames (see SPKIRC.CFG
for more information). Partial nicknames allows SPKIRC to
recognize, for example, "[//_Thisnick_/*]" as "Thisnick".
/SPKIRC <command> <on|off>
Anything else than ON will default to OFF.
Available commands for <command>:
CTCP Will speak CTCP requests (like PING and VERSION) made on you.
DCC Will speak DCC CHAT and SEND requests made on you.
NOTIFY Will speak signon and signoff notification from the notify
list. Note: this command is not aware of the current
list, so it will give wrong information during modification
of the notify list, but will work fine afterwards.
NOTICE This command disabled has priority over PUBMSG, PRIVMSG and
MYMSG for obvious reasons. Enabled, it will will speak
NOTICE received and will act under the influence of PUBMSG,
PRIVMSG and MYMSG setting.
PRIVMSG Will speak ANY messages that only you can see.
MYMSG Will speak ANY messages addressed to you, privately or
publibly (the latter will depend on the setting of
$PARTIALNICK IRC Variable).
PUBMSG Will speak ANY messages that can be seen by everyone.
This command enabled has priority on all of the following.
JOIN Will speak people joining your joined channels.
LEFT Will speak people leaving your joined channels.
SIGNOFF Will speak poeple signing off your joined channels.
NICK Will speak any nickname changes in your joined channels.
KICK Will speak anyone being kicked out in your joined channels.
VII. How can I implant speech in my REXX scripts?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
At the beginning of your REXX script, after the initial /* */, insert the
following command:
queuename='REXXSPEECH'
rc = rxqueue('Set', queuename)
Thereafter, instead of using 'say' use 'queue' to speech things and be sure
to put the text you want to speak into double quotes, and Rsynth parameters
(see Rsynth manual) outside the double quotes:
queue '-x 1000 "hello!"'
VIII. Feedback
~~~~~~~~~~~~~~
I'm very interested in any other practical (or not so practical)
applications of speech you can think of. Send any ideas, REXX programs, or
wacky flights of fancy to me via email at Samuel Audet <guardia@cam.org>.
IX. Acknowledgements
~~~~~~~~~~~~~~~~~~~~
Thanks to Jim Little <jiml@teleport.com> for making this up, so I could
optimize it. :)
Many thanks go to Nick Ing-Simmons (nik@tiuk.ti.com) for writing RSynth and
to Derek J. Decker (djd@cris.com) for porting it to OS/2 (version 2.2
rules, but crashes in Warp 4, fix it please!).
Thanks also to Cheng-Yang Tan (cytan@tristan.tn.cornell.edu) for writing
UPTIME.EXE.
Thanks to the unknown artistic genious that created the icons I stole. If
you recognize any of these icons as your own, let me know so I can give you
credit.
Thanks to J Hulley-Miller <jhm@pobox.com> for rewriting SPKCLOCK.CMD making
it something even better.
Ryan C. Gordon <warped42@ix.netcom.com>'s PM Audio (PMAUD11.ZIP) made
possible the universal kludge.
Thanks to Elton Woo <Elton.Woo@mba.mn.pubnix.net> for idea support.
(And wish him best luck)