The Project 64 etext of the SAM/Reciter Manual.
SAM10.TXT, October 1996, etext #93.
*********
THE SAM/RECITER PACKAGE
=======================
DOCS BY: DOC'S "R" US BBS 914-668-3664 24 HOURS A DAY 7 DAYS A
WEEK!!!!
SAM -- This program automatically loads the SAM speech synthesis
program, KNOBS, the SAM wedge and leaves the computer ready to
accept phonetic input.
RECITER -- RECITER is the English text-to-speech program that
interfaces the SAM program with ordinary English text input.
SAYIT -- A BASIC program that allows you to enter strings of
phonetic or English text and hear them spoken immediately. All of
the special features of SAM (pitch control, speed control, KNOBS,
etc.) can be accessed within the me SAYIT program.
DEMO -- A BASIC program that demonstrates some of SAM's features,
including the capacity to change his voice and the ability to
sing! (This is on side 2 of the cassette version.)
SPEECHES -- Another BASIC program that features some familiar
texts spoken aloud by SAM.
GUESSNUM -- A talking game in which the player guesses a secret
number between 1 and 100.
USING THE SAM PROGRAMS
-------------------------
Sam is a self-contained machine language program. Your interface
to SAM in BASIC is the SAM wedge, another machine language
program. To load SAM and install the SAM wedge into your C64
computer, follow these instruction: Load "SAM",8 and
type RUN .
RUNNING THE DEMO PROGRAMS
-------------------------
Once SAM is loaded into your computer, you are ready to run any
of the Basic demonstration programs (SAYIT, DEMO, SPEECHES and
GUESSNUM). To do so, follow these steps:
1. Insert the SAM diskette into your disk drive.
2. Type LOAD "filename",8 where filename is SAYIT, DEMO,
SPEECHES or GUESSNUM.
3. Type RUN .
USING THE SAM WEDGE
-------------------
Load SAM into memory from the disk. Make sure SAM is on the disk
you are trying to load it from. When SAM is loaded into low
memory in your C64, it uses approximately 6K Bytes of BASIC
memory. If SAM is load into high memory, it only requires 2K of
BASIC memory but is incompatible with the DOS wedge. The SAM
wedge will give you a choice about where in memory to load SAM.
SAM patches into commodore BASIC with the use of the SAM wedge.
The SAM wedge is a machine language utility that adds ten new
commands to Commodore BASIC. These commands are used just like
any other BASIC commands except that they are used to generate
and control SAM's speech. You can use them in the immediate mode
in which you simply tell the computer what to do:
SAY"I AM A TALKING COMPUTER".
Or, you can use them in the deferred mode in which the wedge
commands are part of a program:
10 SAY "I AM A TALKING COMPUTER".
The ten new commands are the following:
SAY (string variable or string)
Commands SAM to speak. Examples:
a) SAY"MAY4 NEYM IHZ SAE4M." (phoneme string, immediate mode)
b) 10 SAY "MY NAME IS SAM." (English string, deferred mode)
c) A$ = "MY NAME IS SAM."
SAY A$ (string variable, immediate mode)
String arrays may not be used with the SAY command.
]PITCH n
Sets SAM's pitch value to n (see USING KNOBS section). You can
read the actual pitch value with PEEK(39439) function.
Example: 10 ]PITCH 64
]SPEED n
Sets SAM's speed value to n (see USING KNOBS section). You can
read the actual speed value with PEEK(39438) function.
Example: 10 ]SPEED 72
]LIGHT n
Removes the screen display if n=0, leaves the screen display
intact if n = 1. SAM sounds best with the display removed; if the
display remains, he will growl a little when he talks. You can
read the actual light value with PEEK(39440) function.
]SAM Puts SAM into the phonetic input mode.
Example: 10 ]SAM
20 SAY"AY4 TA0K WIHTH FOW4NIYMZ".
]RECITER
Puts SAM into the English input mode (see RECITER section below).
Example: 10 ]RECITER
20 SAY"NOW I TALK WITH ORDINARY WORDS".
]KNOBS n,m
Allow you to change SAM's voice using the KNOBS feature (see
section on KNOBS for details). Set the "mouth" value with n and
the "throat" value with m. You can read the "mouth" and "throat"
values with PEEK(38880) and PEEK(38881) functions.
]ERROR
Beeps twice when you input a phoneme string to SAM and a phoneme
spelling error is detected. To find out where the error occurred,
use the ]ERROR command. The command will print out the phoneme
string with the improper character in inverse video. If no error
is detected, the ]ERROR command has no effect.
]LOGO
Displays copyright or cracking message.
]QUIT
Removes the SAM wedge thereby allowing you to maximize free
memory or use other conflicting wedges. To learn how to free up
this additional memory, see the beginning of this section.
All wedge commands may be abbreviated by the use of the first two
or more letters in the command (i.e. ]PITCH-->]PI). Programmers
should note that wedge commands require the following syntax in
IF-THEN statement:
10 IF A$ = "YES" THEN:SAY "VERY GOOD".
rather than
10 IF A$ = "YES" THEN SAY "VERY GOOD".
The colon after THEN is required.
The SAM wedge is compatible with the DOS wedge (DOS 5.1); if
RECITER is used, be sure it is loaded into low memory.
USING KNOBS
-----------
KNOBS is a feature of SAM that allows the use of two extra
"control knobs" for SAM's voice. If we make rough analogies to
the physical structures that produce speech, these KNOBS allow us
to adjust the size of SAM's throat and his mouth. Doing this
creates different voices without altering the pitch or speed of
the speech (and, of course, you can still do these things
independently with SAM). To use KNOBS in your program, simply
issue the command ]KNOBS n,m where n and m are numbers between 0
and 255. A value of 128 in each register results in SAM's normal
voice. Using higher numbers dilates the throat or mouth.
Experiment with different combinations of values and see what
different voices you can get.
Here are a few sample voices to use from KNOBS:
DESCRIPTION SPEED PITCH THROAT MOUTH
Elf 72 64 110 160
Little Robot 92 60 190 190
Stuffy Guy 82 72 110 105
Little Old Lady 82 32 145 145
Extra-Terrestrial 100 64 150 200
SAM 72 64 128 128
Example: To have SAM talk like an extra-terrestrial with English
text input, use the following program:
10 ]RECITER
20 ]SPEED 100
30 ]PITCH 64
40 ]KNOBS 150,200
50 SAY"I NEED TO PHONE HOME."
THE RECITER PROGRAM
-------------------
RECITER is an English text-to-speech program that converts
ordinary text into phonemes that SAM can understand. You simply
supply output strings of 255 characters or less to the program.
RECITER takes care of the rest. The program uses about 450 rules
to convert English into SAM's phonetic language. Included among
these rules are some stress markers for situations where the
stress choice is unambiguous. In addition, SAM's usual
punctuation rules still operate with some additional symbols
("!", ";" and ":") being considered as periods. The net result is
that even directly-translated English test has a fair amount of
inflection. RECITER also recognizes a number of special
character. Numbers are read aloud, and several others are
pronounced as well. If a character is not understood by RECITER,
it simply isn't passed to SAM We recommend use of RECITER (or
any text-to-speech program, for that matter) only for
applications where the user has no control of the text. For
example, text already in a file, text received over a MODEM and
text supplied by users unfamiliar with the phonetic system.
Where the highest quality speech with full inflection is desired,
we urge you to use SAM's phonetic system. Don't be discouraged
though. You will find that RECITER will do a better job of
speaking from English text than other text-translator products.
I. PHONETIC INPUT TO SAM
---------------------------
SAM is equipped with a version of the easy-to-learn, very
readable International Phonetic Alphabet. There are about 50
phonemes which will let you spell all the words in English. Some
sounds from foreign languages are not available in the system at
this time.
Why use the phonetic system? There are two compelling reason:
(1) In the phonetic system, all the words will be pronounced
correctly; and (2) You can put inflection into the speech however
you want it. If you have already tried the RECITER text-to-speech
program, you know that it does a fair job of pronouncing English
words. However, it does make mistakes. Some words sound a little
strange and others are difficult to understand. The reasons for
this are not hard to understand. English is a language of
exceptions rather than rules; words that are spelled alike are
pronounce differently ("have" vs. "gave"). A rule system like
RECITER cannot pronounce all words correctly unless it stores an
enormous dictionary that takes up vast amounts of memory. But
the second flaw in text-to-speech conversion is more serious.
Such a rule system cannot decide where the stress belongs in what
is being said. The phonetic system in SAM, on the other hand,
allows you to decide where to accent syllables within a word and
where to stress words within a sentence. So it is clear that the
preferred way to make SAM speak is with the phonetic alphabet.
But how hard is it to use? It's really easier than writing in
English because you don't have to know how to spell! You only
have to know how to say the word in order to spell it
phonetically.
Here is the complete list of phonemes, each presented with a
sample word containing its sound. Note that there are many
vowels, which is why they are all indicated by two letters rather
than one. The phonemes are classified into two categories: vowels
and consonants. Among the vowels are the simple vowel sounds such
as the "i" in "sit", the "o" in "slot", and the "a" in "hat".
These vowels start with one sound and end with another (e.g.,
"oi" in " oil" and the "ow" in "how." These vowels start with one
sound and end with another (e.g., "oi" glides from an "oh" sound
to an "ee" sound). The consonants are also divided into two
groups: voiced and unvoiced. The voiced consonants require you to
use your vocal chords to product the sound. Such sounds as "b",
"l", "n" and "z" fall into this category. The unvoiced
consonants, on the other hand, are produced entirely by rushing
air and include such sounds as the "p", "t", "h", and "sh"
sounds.
PHONETIC ALPHABET FOR SAM
-------------------------
The example words have the sound of the phoneme, not necessarily
the same letters.
VOWELS VOICED CONSONANTS
IY f(ee)t R red
IH p(i)n L allow
EH beg W away
AE Sam W whale
AA pot Y you
AH b(u)dget M Sam
AO t(al)k N man
OH cone NX so(ng)
UH book B bad
UX l(oo)t D dog
ER bird G again
AX gall(o)n J judge
IX dig(i)t Z zoo
ZH plea(s)ure
DIPHTHONGS V seven
EY m(a)de DH (th)en
AY h(igh)
OY boy
AW h(ow) UNVOICED CONSONANTS
OW slow S Sam
UW crew Sh fish
F fish
TH thin
SPECIAL PHONEMES P poke
UL sett(le) (=AXL) T talk
UM astron(omy) (=AXM) K cake
UN functi(on) (=AXN) CH speech
Q kitt-en (glottal stop) /H a(h)ead
NOTE: The symbol for the "H" sound is /H. A glottal stop is a
forced stoppage of sound. On the following phoneme chart, you
will notice six phonemes -- YX, WX, RX, LX, /X, and DX- which are
described as being used by SAM's rule system. However, they have
been provided with letter codes so that you may experiment with
these special sounds directly. YX and WX are weaker versions of Y
and W. RX and LX are smooth gliding versions of R and L. /X is
the "h" sound in "who", and DX is the quick flap of the tongue on
the upper palate as in the word "pity".
The following symbols are used internally by some of SAM's rules,
buy they are also available to the user.
YX diphthong ending
WX diphthong ending
RX R after a vowel
LX L after a vowel
/X H before a non-front vowel or consonant
DX "flap" as in pity
We are now ready to transcribe ordinary speech into its phonetic
representation. Let's use the following sentence as an example:
"I do my calculations on the computer."
The first step is to say each word aloud and decide how many
syllables are in the word. A syllable has one vowel phoneme and
its associated consonants (if any). We then identify the proper
vowel phoneme by comparing its sound to the sounds listed in the
table, and do the same for the consonants. The resultant
combination of phonemes is the phonetic representation of the
syllable. We do this for each syllable in a word. In our example,
the first word -- "I" -- is a single phoneme, the diphthong "AY".
The next word -- "do" -- is a single syllable comprised of the
diphthong "UW" preceded by the voiced consonant "D". The phonetic
spelling is therefore "UW". Similarly, the third word -- "my" --
again uses the "AY" sound, this time preceded by an "M",
resulting in "MAY". The word "calculations" has four syllables.
The first syllable transcribes as "KAEL". The "c" sound is
pronounced as "k", unlike the "s" pronunciation in a word like
"cell" (notice there is no "C" in the phoneme table). The next
syllable -- "cu" -- transcribe s as "KYUW." Note here that the
"Y" sound prevents this syllable from being pronounced as "coo".
The third syllable comes out as "LEY", and the fourth becomes
"SHAXNZ". This word ends with a voiced sound "Z" and not the
hissy "S" sound as in "list". You will rapidly discover that many
words contain the phonetic combinations "AXL", "AXM" and "AXN."
To enhance the readability of the phonetic spelling, the special
symbols "UL," "UM" and "UN" can be substituted for these
combinations. The "tions" syllable is now written as "SHUNZ". So,
"calculations" becomes "KAELKYUWLEYSHUNZ".
The next word "on" becomes "AAN", and "the" becomes "DHAX". By
the way, if the word "the" precedes a word beginning with a
vowel, it gets pronounced "thee" and is spelled "DHIY". You
should also notice that the "th" letter combination has two
phonetic representations: unvoiced (TH) as in "thin" or voiced
(DH) as in "the". By now, the steps used in getting from
"computer" to "KUMPYUWTER" should already be obvious. Try it.
Once you get used to the phonetic system, it will seem very easy
and obvious. Initially, there will be some spellings that seem
tricky (Did you know that "adventure" has a "CH" in it?).
However, the rule is always to write the word the way you say it,
no t the way you spell it.
To help you learn the system fast, we have provided an English-
to-phonetic spelling dictionary of almost 1500 words. Many common
words are in the dictionary; some unusual ones are in it as well.
If you are really stuck on how to spell a word that isn't in the
dictionary, think of another word that sounds like it and that
one may be listed. In any case, don't hesitate to experiment with
the phonetic spelling system. Let you ears be your guide. This
system is easy to learn, easy to use, easy to read, and you will
be amazed at what you can do with it.
II. ADDING STRESS TO SAM's SPEECH
---------------------------------
In the phonetic mode, SAM is capable of speaking with a great
deal of inflection and emphasis. This gives a much more natural
and understandable quality to the speech than is otherwise
possible. The stress system for SAM is particularly easy to use.
There are eight stress markers that can be used simply by
inserting a number (1-8) after the vowel to be stressed. For
example, the monotonic pronunciation of the word "hello" produced
by the phonetic spelling "/HEHLOW" becomes a much friendlier
sounding greeting when spelled "/HEH3LOW" becomes a much
friendlier sounding greeting when spelled "/HEH3LOW". Why do you
have to put in the stress markers? Simply because they can go
anywhere and SAM has no way of knowing where you want them to go.
The ft-translator products.
*********