Using OS4 and speech

OS4 Speaks Out...

This is a tutorial on adding text-to-speech capabilities to OS4. It is written with the AmigaOne in mind but may also apply to Amigas 1200/4000 except for NallePuh which doesn't run on Classic hardware at this time and isn't needed anyway.

Some useful applications for speech are:
- Providing informations to a user who's away from the monitor
- Reading electronic books or emails
- Listening to what's being said on IRC while browsing the web
- Speaking clocks, reminders, alarms, etc.

20050617 update:
With the release of OS4-pre update #3, NallePUH isn't required anymore. :-)

REQUIREMENTS:

The following files will be needed:

DEVS:narrator.device 37.7 65760 22-May-91 18:17:09
L:speak-handler 37.4 4188 21-Feb-91 00:19:44
LIBS:translator.library 43.1 14528 30-Jun-97 18:05:33
C:Say 43.0 13536 27-Jul-97 13:53:32
SYS:PREFS/Translator 1.0 9180 16-May-95 00:34:36
SYS:PREFS/Translator.info
ENVARC:Sys/Translator.prefs
LOCALE:Accents/*.accent
SYS:STORAGE/DosDrivers/SPEAK
SYS:STORAGE/DosDrivers/SPEAK.info

LOCATING AND INSTALLING THE FILES:

Narrator.device and speak-handler originally came with Workbench 2.04, and might possibly be on the AmigaForever CD too.
Copy narrator.device to DEVS: and speak-handler to L:

Translator.library 42, its preferences program and accent files can be found in http://main.aminet.net/util/libs/translator42.lha
You can install the 68020 version of the library.

After installing it, open Translator (the prefs), select an accent and click save to create the prefs in ENVARC: but don't use the "Test" button just yet.

After installation it should be patched to V43 with http://main.aminet.net/util/libs/Tran43pch.lha

The replacement Say command which supports V43 accents is at http://www.aminet.net/util/sys/SayV43.lha
Copy it to C:

The mountlist for SPEAK: can be created easily by pasting this text...

/* Speak handler */
Handler = L:Speak-Handler
Stacksize = 4096
Priority = 1
GlobVec = -1

into an empty file and saving it with the filename "SPEAK".

Its icon should be of type "Project" and edited as follows:

Default Tool: C:Mount
Start from: Workbench
Tooltypes: ACTIVATE=1

Place the file in DEVS:DosDrivers if you want it mounted automatically at boot time, or place it in SYS:Storage/DosDrivers if you'd rather mount it manually.

USING SPEECH:

From this point on you should be able to type "Say Hello" and hear the voice, or test the accents with Translator prefs (more accents are on Aminet). With Say you can control the gender, pitch, speed, and accent of the spoken text with -n/-r -m/-f -p -s -a (see Translator and SayV43 docs for details).

If you placed the SPEAK mountfile in SYS:Storage/DosDrivers, the first time you'll use the device, e.g. "Copy TextFile TO SPEAK:", a requester will appear and you can mount it from there by selecting the "Mount" button.

When sending plain text to SPEAK: the punctuation marks are ignored, but the accent selected in the prefs is used.

HINTS:

Not many people know this so I'll mention it just in case:
Even with SPEAK: you can specify the voice, by adding the modifiers as a path, e.g. "Echo >SPEAK:opt/p65/s100 ..." does the same as "Say -p65 -s100 ..."

SPEAK: can be very handy with SnoopDos to notice specific failures or events while keeping its window iconified. Make sure you set a very narrow filter and short log format though, or it will babble forever!

If you use AmIRC and want to add speech to it, try AmIRSay:
http://main.aminet.net/comm/irc/amirsay.lha

To explore the depths of narrator.device and especially to have fun with strange voices, check out http://main.aminet.net/util/misc/nartest.lha

Written by: Alex Carmona
Published: 17th Febuary 2005, Rev 1.0
Updated: 17th June 2005, Rev 2.0