return to first page linux journal archive
keywordscontents

Code for the Speech Synthesizer

The software is configured through a simple ASCII file, /etc/speak.conf. This file has an [interface] section, followed by lines specifying the serial device the SPO connects to and the TCP port it uses (default port 800), which is also used by both the server and most utility applications. A [services] section is used to schedule muting time by ``service'' connection logical identifiers. Muting is performed by the user program calling a standard libsys routine with the applications ID.

The conf file also includes sections for translation tables for proper pronunciation of numbers and words and, as a result, can become quite long. A partial example of the .conf file is shown below. (A more complete one may be found with the sources.)

[interface]
device=/dev/ttyS6
speed=2400
parity=none
[services]
time=07:00 to 22:00
[words]
broadcast=brawdcast
online=on lyne
offline=off lyne
dragonfyr=dragonfire
The server itself, known as ``speak'', may be started from the shell simply by entering speak &.

Once loaded, the SPO will briefly say ``Okay'', indicating the board is now active. The say command may be used to quickly test the device. For example, one may enter from the shell say "Hello, this is a test". The SPO should then enunciate this. You can also test the server by simply making a telnet connection to the port specified in the .conf file and type any text you wish.

One of the utilities provided is vmon, a general purpose verbal monitoring tool. Vmon, like the town crier of old, announces every hour the current status of your machine, including how many users are on-line, total uptime, and disk usage. Vmon can also monitor for and announce new e-mail in selected mailboxes. If disk space runs critically low, vmon will repeat frequent warnings.

Another utility included in the SPO source archives is ``down''. Reminiscent of Star Trek, down provides a system shutdown warning with ten seconds to override, counting off each second before execution. Cancellation is possible by keying Break.