Magic Voice Speech For The 64
Charles Brannon, Program Editor
Computers have been talking for a long time. When you dial a wrong number, you probably have heard AT&T's computer reciting the incorrect number. However, speech synthesis for microcomputers has only recently become affordable as a consumer item.
You can buy a disk drive quickly load and save program and files. A modem opens up the world of on-line data bases and services. Add a printer to your system and you can process words, list programs, and print computer graphics. You can pick from a bevy of light pens, joysticks, graphics tablets, and other low-cost peripherals. But few peripherals have as dramatic an effect as giving your computer the power of speech.
A Natural Voice
Some synthesizers build words out of phonemes, the basic sounds that are inherent to speech, such as consonants and vowels. Since all the components of speech are available to phoneme-based synthesizers, they can speak any word, but they do sound metallic, inhuman, somewhat robotic. No one would mistake it for a natural voice.
Commodore uses a different technique. A limited vocabulary is spoken by a person and recorded on a mainframe computer. The digitized speech is then analyzed, compacted, and reconstructed. Because of the compacting, a minimum amount of memory is used. This enables Commodore to pack a lot of words into a small amount of memory.
The Magic Voice cartridge plugs into the Commodore 64 cartridge port. If you are using a TV, the Magic Voice module also has a plug that goes into the audio/video socket on your computer. The SID chip mixes its own sound with the voice, then drives it through the TV speaker. If you use a monitor or stereo for sound, you plug the audio out from the audio/video socket into the Magic Voice module. An output from the module is then attached to your monitor or stereo. In theory, this should work fine. But these two wires are usually molded together so it's difficult to plug the audio jack into Magic Voice and the video into your monitor. It's impossible if you use the rear connections on a Commodore monitor. The cable isn't long enough. Fortunately, you can buy an RCA phono extension cord to get the extra length.
Magic Voice knows 235 words. The vocabulary covers a wide variety of common words and a list of computer-specific terms such as cursor and disk. The cartridge automatically adds commands to BASIC without using any of the BASIC memory space. Machine language programmers, however, will have to live without the memory at $C000-$C3FF, which is used by Magic Voice.
To program speech, you use the command SAY. SAY "HI" will do just that. The female voice is remarkably pure and natural. In fact, you can actually mistake the voice for that of a real person. You can also use variables, such as SPEAK A$. One limitation of SAY is that you must use a separate statement for each word. You cannot SAY "YOU ARE CORRECT", but must SAY "YOU" : SAY "ARE" : SAY "CORRECT".
When a voice is playing, the 64 does not wait for it to finish. This lets your program run quickly, since the speech doesn't slow it down. The computer will wait for the word to be finished if you send another word while it is speaking. A system variable called RDY is added to BASIC to let you detect when the box is through talking.
You can speed up or slow down the rate of speech, but not dramatically. The RATE command accepts a number from one to ten. Rate #4 is the normal, default setting. Rate #1 speaks 0.65 times slower than normal, and rate #10 is 1.4 times faster. Changing the rate doesn't change the pitch. You won't get a chipmunk sound. The remaining command, VOC, is only used when you've loaded additional words into memory (more on that later).
These new BASIC commands make programming speech easy. You can also refer to words by their number in the dictionary. For example, SAY 157 will utter "YES." This is the most memory-efficient technique, but it makes your program hard to read.
The biggest problem is trying to find the words you need to communicate. Since there are only 235 words, you cannot say everything that comes to mind. The manual includes two vocabulary listings, one of them in alphabetical order to help you quickly find the available words. There are no basic phonemes, so there is no way to construct words not in the vocabulary.
This problem can be alleviated by adding additional speech cartridges that expand the vocabulary. Commodore has promised variations on the voice such as male and child voices. There are also two Commodore games that can use Magic Voice—Gorf and Wizard of Wor. When your ship is destroyed, Gorf laughs, "HA-HA-HA SPACE CADET." Psychological warfare, with the computer challenging and taunting you, adds an extra dimension to game play. Curiously, this voice is computery and hard to understand, following the example set by the arcade versions of the games.
The manual gives an adequate explanation on how to us the module, and has many example BASIC programs that us speech, such as a program that can say any number up to 999,999,999 by stringing together words like "two - million one - hundred - thousand - four hundred - thirty-two." There is also good documentation for using Magic Voice Kernal routines in machine language programs. There is no documentation on how you can digitize and create new words. That would require expensive equipment in any case.
What can you do with Magic Voice? Games that speak set up a better computer-human rapport. Talking prompts and instructions allow youngsters who cannot yet read to more easily interact with the computer. This is ideal for educational applications. Word processing programs can use spoken messages when a displayed prompt might be overlooked. And for the handicapped, the Magic Voice can read for the blind and talk for the speech-impaired. As you type, each letter can be pronounced, which can also help teach touch typing. Also, Commodore has announced plans to support Magic Voice in future software offerings.
Commodore Business Machines, Inc.
1200 Wilson Drive
West Chester, PA 19380
Price not yet announced.
Expected to be around $50.