Before you being to write a program to use Computavoice, it is important to remember that all such programs must contain the following lines:
DEF USR0 = &H700
A = PEEK(65315) : POKE 65315, A or B
The Computavoice synthesizer is a machine code artificial voice synthesizer. It is loaded into a protected area at the top of free memory where it can be accessed by BASIC programs. In order to protect the synthesizer from BASIC, the area where it is loaded must be set aside with a CLEAR statement as shown in the loading instructions.
To use the synthesizer, a string is constructed of phoneme codes. Each string *must* be terminated with a "/" to silence the voice after the phrase is complete. A programming example is the word EIGHT. Its phonetic equivalent would be "/AAYT/". A string "X$" is constructed as follows:
X$ = "/AAYT/"
In the user program, the word EIGHT will be spoken when a user call is invoked as follows:
A = USR 0(VARPTR(X$))
The argument for the user call is the string to be spoken, in this case, "X$". A phonetic string of any length allowed by basic (255 characters) can be used in place of "X$".
In the demo program, "X1$" through "X9$" are set to the phonetic equivalents of the numbers 1 through 9. "X$" is then equated to one of the phonetic strings and in line 22, the synthesizer voices the string "X$".
The use of strings allows a great amount of flexibility since they can be joined by basic to form words, phrases, or even sentences all by simple, string-manipulating commands.
How It Works
The basic facts about your programmable Computavoice Synthesizer are surprisingly simple:
completely software-based, required no additional hardware.
knowledge of phonemic spelling and linguistics is entirely unnecessary for the user.
Although Computavoice symbols and phonemes and based on the international language, they have been changed to single key characters for easier keyboard entry.
No matter how limited your knowledge of linguistics is, you'll master phoneme synthesis in no time. You not only speak the English language, but have the experience of learning a far more complex system than this - that of primary school phonetics and spelling. Furthermore, this system has none of the inconsistencies that we all had to cope with as children. Phonemic rules are a more concrete, direct representation of daily speech.
Your first task should be to familiarize yourself with the 35 Computavoice phonemes (See Table 1). For the time being, don't concern yourself with the keyboard symbol, but rather concentrate on the words exemplifying the phoneme. As you pronounce these words, note that position of the parts of your mouth that make each sound unique. Note the placement of lips, teeth and particularly the movement of the tongue. For example, the "A" in fAther differs from the A in cAt only in the stretching of the lips. For cAt, you draw the front of your mouth taut, while for fAther, you relax it, but in both, the interior of the mouth stays the same. Try to extract one phoneme at a time by pronouncing the word slowly and practising that singular sound. Your ability to distinguish the minute distinctions among phonemes will be the key to the precision of your electronic voice.
Computavoice symbols represent the phoneme most closely associated with its counterpart in daily spelling, though this is mainly true of the consonants. Because the total number of phonemes exceeds the number of regular keyboard letters, Computavoice utilises other keyboard characters as phoneme representatives as well. For example, the final sound in foX will be denoted "KS". Thus, the key "X" has been assigned the phoneme "THU" found in THem. This is the voiced counterpart of the consonant blend "TH" found in broTH. This sort of distinction is taken for granted in conversation but must be considered in the creation of your string commands. Nevertheless, in the interest of programming ease, Computavoice recognises these simplified keyboard commands.
Although coding with the phoneme table is simplified, there are a few hints concerning the phonemic combination you'll need to familiarise yourself with. We've already mentioned the pair "KS" in lieu of "X". Likewise, other minor rules of phonemic spelling are self evident in Table 1. We should, however, give a moment to vowels, particularly those known as dipthongs (glides in which the vowel sound changes from the beginning of utterance to the end). These might commonly be called long vowels. Consider the words bUY, kIte, nAme. In sounding these carefully, you'll find the vowels have two sounds. To program this, a singular phoneme may be insufficient. From the demonstration, the word "EIGHT" is a good example - coded as "AAYT". The initial "A" lengthens the vowel sound while the "AY" produces the change in the vowel as it runs into the fricative "T". This property of vowels is dipthongization. See Table 2 for the list of number 1 through 9 to familiarise yourself with phoneme strings.
The phoneme "NG" is not necessarily a correct substitute for all words normally spelled with this letter combination, nor is its use limited to those words. For example, in the word fiNGer, the "N" and "G" are voiced separately or possibly as "QG" (Q is the symbol for the nasal sound "NG"). This "NG" phoneme can also be found in a word such as thaNK-you. The twang of that nasal sound is prevalent before the "K". Hence, the phonemic spelling would include "QK". Here, you'll notice that "Q" hasn't its usual sound, but is merely a symbol. "KW" replaces the sound "Q" as in QUick. Another of these places to take care against being fooled by regular spelling is the sort (G) in GeorGe. Both require the phoneme "J", whereas Get begins with the phoneme "G". Remember to sound the words as you code for this will spare you unnumerable hours of frustration later.
Stops And Modifiers
In addition to the 35 phonemes, four other functions important to intelligible speech are the glottal stop ".", the pause "/" and "<", ">". The glottal stop is a very short pauce used within the configuration of a word to simulate the short breath taken after certain consonants. In some words, such as "taking", there is a flapping in the back of the throat, actually the glottis. This stop takes up the time involved in that speech habit. Don't be alarmed if, at first, these speech habits seem strange. They develop automatically as we learn language and therefore remain unconscious. The "/", or full pause, separates words or simulates punctuation. Just insert it into your string wherever you need to slow the output and always include it at the end of the string to silence Computavoice. The "<" and ">" are also timing factors, but act on the phonemes themselves rather than between them. They shorten or lengthen the sound by approximately 50%. This allows you to control the timing more accurately, particularly when a shorter vowel is needed to precede a fricative such as "S" or "T". Yet this is far less complicated when you begin using Computavoice as your ear will soon be attuned to programming oversights and the need for correction.
In human speech, accents are very important since without them our voices would be very monotone and mechanical. So it is with your Computavoice. Although it has a prominant twang of its own, it needn't be monotonous if you incorporate stresses into your program by lengthening the vowels, either doubling or tripling the normal number. Thus, in a four or five syllable word that has a primary and secondary accent, vary the number of repeated vowels accordingly.
Example Of Use
fIRst (this is a vowel, the R is not prominent)
"THu", THe, THem
"NG", thiNK, briNGiNG
Shortens next phoneme
Lengthens next phoneme
Examples of Dipthongization
EUU or IUU
CLEAR 200,24415 (ENTER)
CLOADM "VOICE32" (ENTER)
When the computer responds OK you may load a program to use your voice synthesizer. To start off, a demonstration program is also included on your Computavoice cassette. To load and run this program,
CLOADM "VDEMO32" (ENTER)
Any programs which you create to use the synthesizer are loaded by substituting the filename VDEMO32 with the name of your saved program.
The following utilities are also available to allow you to edit the supplied screens of this game:
A digital version of this item can be downloaded right here at Everygamegoing (All our downloads are in .zip format).