Currah Speech 64 — The Voice Messenger

Currah Speech 64 / Voice Messenger

Image gallery

The Currah Speech 64, also marketed as the Voice Messenger, gave the Commodore 64 an electronic speaking voice. The small cartridge plugged into the computer’s expansion port and added speech commands to Commodore BASIC. Its built-in software meant owners could start experimenting without first loading a program from disk or cassette. In January 1985, COMPUTE! announced the Voice Messenger at a suggested U.S. price of $49.95.

At its heart was the General Instrument SP0256-AL2 speech synthesizer. Currah paired the chip with an eight-kilobyte ROM containing its operating software and text-to-speech translator. The translator converted written words into sequences of speech sounds, which the chip then spoke. This distinction matters: the speech chip generated the voice, while Currah’s software worked out what sounds to send it.

From BASIC to spoken words

Unlike speech systems restricted to a built-in list of words, the Voice Messenger assembled words from individual speech sounds called allophones. Programmers could give it ordinary English text or specify the allophones themselves for greater control over pronunciation.

Getting started was straightforward. INIT enabled the cartridge’s speech system, and SAY "HELLO" made the computer speak. The two voice settings offered a lower or higher voice: SAY 0 "HELLO" selected the low voice, while SAY 1 "HELLO" selected the high voice.

Automatic pronunciation was convenient, but English spelling could still trip it up. Names, unusual words, and irregular spellings sometimes needed phonetic adjustments. Direct allophone entry let the programmer fine-tune the sounds instead of relying entirely on the text-to-speech translator.

The cartridge could also speak keys as they were pressed. KON enabled this keyboard feedback, and KOFF silenced it. This gave even routine typing a distinctive electronic accompaniment. BYE temporarily suspended the speech system.

Speaking while the computer keeps working

The Voice Messenger could speak while a BASIC program continued running. A buffer held up to 256 allophones waiting to be spoken, and the special variable SP% reported how much space remained.

That was useful because a program could generate speech instructions much faster than the cartridge could say them. Several consecutive SAY commands could fill the buffer, causing additional speech to be omitted. Checking SP% allowed the programmer to pace longer messages.

The cartridge preserved the memory normally available to BASIC programs, although its operating system did use some locations in the C64’s $C000 memory area. It is therefore more accurate to say that it did not reduce BASIC’s workspace than to say it used no computer memory at all.

A voice through the computer’s own sound system

The supplied audio connection fed the synthesized speech into the C64’s external sound input, allowing it to emerge through the television or monitor speaker alongside the computer’s normal audio. A contemporary announcement highlighted this arrangement as part of the cartridge’s compact design.

That connection also offered an interesting opportunity for experimentation. Commodore’s SID sound chip could route its external audio input through its filter. With suitable programming, the speech could therefore be filtered and its tonal character altered—not simply played alongside the SID’s own voices.

Speech clock and voice pitch

A distinctive part of the Currah’s design is that its speech clock could be controlled by the processor, rather than relying on the fixed 3.120 MHz resonator used in many SP0256 designs. Changing the clock changed the voice’s pitch. The low- and high-voice recordings below demonstrate the difference.

Adding expression and taking direct control

Direct allophone entry also supported intonation. Uppercase allophone symbols raised the intonation, while lowercase symbols used the normal setting. Carefully placing these changes could add emphasis to words and make a phrase sound less uniform.

For programmers who wanted closer control, the manual included machine-language instructions, example code, and tables of decimal and hexadecimal allophone codes.

These codes represented sounds rather than alphabet letters. The absence of separate symbols for “X” and “Q” did not prevent the cartridge from saying words containing those letters; their pronunciation had to be constructed from the appropriate combination of sounds.

When text adventures found their voice

One of the cartridge’s most interesting companions was Easy Speech 64, a separate disk-based program from Research In Speech Technology. It intercepted text sent to the screen and passed it to the Voice Messenger, allowing existing software to speak without having speech commands added to the original program.

A December 1985 review in Ahoy! reported that it worked with Infocom adventures, including Zork and Wishbringer. Easy Speech also offered editable pronunciation dictionaries, letting users correct troublesome words and save their changes to disk. Reading an adventure aloud slowed play considerably, so speech could be toggled with Ctrl+V.

For an owner in the mid-1980s, that was a memorable transformation: a familiar computer could suddenly narrate an imaginary world in its own unmistakable electronic accent.

Hear the Voice Messenger

The alphabet

SAY "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"

Download WAV

Numbers zero through nine

SAY "1 2 3 4 5 6 7 8 9 0"

Download WAV

Voice Messenger — low voice

SAY 0 "VOICE MESSENGER SPEECH SIXTY 4"

Download WAV

Voice Messenger — high voice

SAY 1 "VOICE MESSENGER SPEECH SIXTY 4"

Download WAV

Specifications

Model
Voice Messenger / Currah Speech 64
Type
Speech / voice synthesis cartridge
Manufacturer
Currah
Introduced
1984; end of manufacture not recorded
Connection
Cartridge expansion port and external audio input
Computer platforms
Commodore 64 and SX-64; the original specifications also list the C64/128 expansion port
Vocabulary
Words assembled from allophones, rather than a fixed word list
Voice settings
High and low pitch
Programming
Commodore BASIC: INIT, KON, KOFF, SAY, BYE; machine-language access
Features
Speech and computer music can be heard together

Making your Commodore 64 talk

CommandFunction
INITInitializes the voice unit. After INIT is executed, a copyright message appears on the screen, and the Voice Messenger will say the name of any letter or symbol that is hit on the keyboard. (Graphics symbols are merely voiced as "graphic".) The Voice Messenger uses the higher pitched voice by default.
KON [0|1]KON turns on the voicing of keys on the keyboard. KON 0 will make it use the low voice, KON 1 will make it use the high voice. The default is 1.
KOFFTurns off the voicing for key presses.
SAY [0|1] "string"Makes the Voice Messenger voice the string in voice 0 (low) or voice 1 (high).
BYESuspends Voice Messenger operation. BASIC will go back to normal until INIT is invoked again.

Allophone reference — bracketed sounds

Allophone (BASIC string mnemonic)Hex CodeSounds Like
(aa)/(ay)14'ay' in hay
(ee)13'ee' in see
(ii)06'i' in hive
(oo)/(eau)35'o' in stove
(bb)3F'b' in bat
(dd)21'd' in do
(gg)3D'g' in got
(ggg)22'g' in big
(hh)39'h' in hoe
(ll)3E'l' in let
(nn)38'n' in no
(rr)0E'r' in ruin
(tt)0D't' in to
(yy)19'y' in yeah
(ar)3B'ar' in arm
(aer)2F'air' in repair
(ch)32'ch' in church
(ck)29'ck' in clock
(ear)3C'ear' in clear
(eh)1A'ar' in wary
(er)33'er' in leader
(err)34'ur' in purr
(ng)2C'ng' in tongue
(or)3A'or' in sore
(ou)16'oo' in root
(ouu)1F'oo' in food
(ow)20'ow' in now
(oy)05'oy' in boy
(sh)25'sh' in ship
(th)1D'th' in thin
(dth)12'th' in then
(uh)1E'oo' in took
(wh)30'wh' in which
(zh)26'z' in azure

Allophone reference — single-letter sounds

Allophone (BASIC string mnemonic)Hex CodeSounds Like
a18phonetic
b1Cphonetic
c08phonetic
d15phonetic
e07phonetic
f28phonetic
g24phonetic
h1Bphonetic
i0Cphonetic
j0Aphonetic
k2Aphonetic
l2Dphonetic
m10phonetic
n0Bphonetic
o17phonetic
p09phonetic
r27phonetic
s37phonetic
t11phonetic
u0Fphonetic
v23phonetic
w2Ephonetic
y31phonetic
z2Bphonetic

Allophone reference — pauses

Allophone (BASIC string mnemonic)Hex CodeSounds Like
(apostrophe)01very short pause
(space)03pause between words
(comma)04pause between phrases
(period)hybrid of 04+04pause between sentences

These allophone tables combine two tables from The Voice Messenger Speech 64 Programming Manual. Bits 0–5 select the speech sound, bit 6 selects the voice (0 = low voice), and bit 7 controls intonation (1 = raised intonation). These are Currah control-byte settings, rather than a description of the speech chip’s native input pins.

Sources and further reading

Speech hardware