Hardware Feature #30
Name Manufacturer Price
Currah Microspeech Currah Computer Components £29.95

Currah Microspeech

curspch.jpg (133533 bytes)

The following review was taken from Sinclair User December 1983

The Currah U Speech unit is a black plastic box which plugs into the back of a Spectrum and gives an amazing
range of facilities. The unit is approximately 3" square and 1" high. Once plugged into the Spectrum expansion port, no more expansion is possible unless a motherboard is used, as it lies flat behind the Spectrum.

There are two leads from the unit. One goes into the aerial socket and the other into the MIC socket. The lead to the TV is then plugged into the back of the unit. That must be done before powering up the Spectrum.

The unit provides its own copyright message at the top of the screen when powered up and by pressing it will also start the unit into its keyvoice mode. That is where every key used is spoken by the unit. All the keywords except the tilth (~) are spoken - even the direction arrows which come out as CURSOR. The colours, of course, are not spoken or the or the various modes.

The keyvoice is controlled by a variable called KEYS and can be turned off by LET KEYS=0. That can be used directly or in the program and the keyvoice can be turned on again by LET KEYS=1. The keyvoice also works for keys pressed in the INPUT or INKEY$ unless disabled.

Another useful feature is that S$ has been allocated as a speech buffer and any LET S$ command makes S$ into a spoken string. Only letters are allowed, which is a pity, since numbers would be useful. Letters can also be used in brackets to give single or double allophones. An allophone is a sound rather than a letter in speech and words must be programmed to sound correct.

Most words will be satisfactory if typed-in directly but O's A's and some others may need a set of allophones instead. In that respect the booklet with the unit is very good, giving clear examples and a list of suitable alternatives. Unfortunately the variable KEYS does not effect the speaking of S$.

For the technically minded, the unit contains a ULA which works on a WRITE command from the microprocessor, a ROM containing the keyword speech patterns and SP0256-AL2 speech processor. It also contains a clock for clear speech and an audio modulator to transfer the sound to the TV lead. The sound can be adjusted by using a screwdriver on the screw showing at the top right hand side of the unit.

The U-Speech allocates itself the top 256 bytes of memory at switch-on and moves down the USR graphics and
RAMTOP. More can be allocated to that buffer by the use of CLEAR. That makes it incompatible with some programs which use that space for machine code. Details of the buffer are given at the back of the book for machine code users.

Time must be allowed in all programs for the speech as it is updated only by the keyboard interrupt routine every 50ms. That also means that during SAVE/LOAD/VERIFY/BEEP and dealings with any device connected to interface one - i.e. Microdrive, RS232 or network - no speech should be in progress. That is because the speech will continue as one sound until the operation is finished.

The unit is extremely useful but time has not permitted it to be tested with any other units to see if they clash. What is presented is a very good clear speech box, with a very easy way to program it and, even more useful, a spoken response to any key input. That might become a more than essential unit for some disabled users.

The following review was taken from Crash. Issue 2

PARDON ME, I'LL SAY THAT AGAIN !

Ever had your mother constantly nagging at you while playing something interesting? Well, now you can improve the situation by having the Spectrum do the same. Impossible? Not any more with the Microspeech unit. The only difference is that the voice will sound like a Dalek rather than a Siren (your mother) and that you can switch it off whenever you feel like it (Try that with your mother)!

Considering the power of voice, the unit is very compact and installing it is kid's stuff. You also gain a beep amplifier, because the sound is directed through your TV speaker. The detailed Programming Manual and Demonstration Tape display the whole 'voice' Spectrum at your disposal and if you can't get to grips with it, try listening to your mother now and again.

Technically the unit is an allophone system, which means that like you and I it doesn't care about the writing or spelling of the words, but simply speaks by concatenating speech sounds (allophones). To this purpose the string variable s$ has been reserved, which can be assigned by a LET statement:
LET s$ = "ssaavEE": PAUSE 1 and on pressing ENTER the unit will detect with the PAUSE period the s$ and the inbuilt allophone interpreter will convert the allophone symbols within the string into speech code and place this into a FIFO (first in first out) buffer. The code in the buffer will automatically be output to the speech chip, while the BASIC program continues.

The FIFO buffer resides near the top of memory between RAMTOP and UDG area and depending on the length of the buffer RAMTOP will have to be lowered with a CLEAR statement. The speech unit initialises RAM-TOP on start-up to allow for a 256 byte buffer (RAMTOP = 65111 on a 48K machine) but this can be increased to the detriment of the BASIC memory area. There are 64 allophone codes and therefore 64 allophone symbols to choose from.

A one step intonation facility is provided (Daleks also get excited and raise their voices!) by using upper case letters (adds decimal 64 to the allophone code). You can create a word or phrase library by assigning string variables consecutively to the reserved s$ string (always with PAUSE 1 in between), or you can concatenate individual string variables to form s$. A more compact solution is to use a string array and concatenate and even slice the individual array elements.

If you don't mind operating with allophone codes directly, you can bypass the interpreter and operate directly on the FIFO buffer by POKEing the codes directly into the buffer memory area. Once loaded you set the stack pointer to one below the last item in the buffer to be voiced by POKEing the stack pointer and -bedlam! Your Spectrum becomes an instant party killer! Loading the buffer can be executed with a small BASIC loader program either via INPUT command or via DATA statements:

10 LET a = 65361
20 READ b: LET x = b
30 FOR n = 1 TO (x -1): READ b
40 POKE a,b
50 LET a = a - 1
60 NEXT n
70 POKE 65365, 255
80 POKE 65364, (65361 - a)
100 DATA 21,41 39,24,24,24,37,1,16,70,
41,39,53,3,19,55,3,34,14,20,13,55

10 LET a = 65361
20 INPUT "INPUT "; (65362 - a);
"CODE= ";b: IF b = 0 THEN GO TO 80
30 POKE a,b
40 LET a = a -1
50 GO TO 20
100 FOR c = 65361 TO (a +1) STEP -1
110 PRINT c, PEEK c
120 NEXT c
130 PRINT a, 65361 - a : PRINT:
PRINT "PRESS s TO RUN"
140 IF INKEY$ = "s" THEN GO TO 200
150 GO TO 140
200 POKE 65365 , 255
210 POKE 65364 , (65361 - a )

Whatever way you choose, always make sure your stack area doesn't drop below RAMTOP or your BASIC program will crash... In a similar way the machine code aficionado can (man) handle the FIFO and stack pointer directly from assembler or native code and so incorporate voice into his silent Dalek game. Mind you, in space nobody can hear even the Spectrum scream!

If all this is softwearing you down and you are 'first and foremost' a game player, have no fear: The Currah Microspeech is rapidly becoming an industry standard add-on and the list below gives a hint of the games which already include voice facility. But beware of using the speech unit in combination with non compatible programs:

BASIC and m/c programs will undoubtedly crash or develop unwanted and potentially dangerous side effects due to the clashing of the FIFO buffer area with the program's own stack or program area (Play DEATHCHASE or ATIC ATAC and you'll know what I mean).

If you're wondering where to plug in your joystick interface, be ready for a surprise:
Neither Kempston nor Protek, or most of the other joystick interfaces make provision for an extension edge connector except AGF Cambridge and Sinclair (Interface II). It would appear that most of these companies rely on the fact that they are the last link in the add-on chain and can price their products more competitively due to the cost reduction- And since Currah would appear to have been thinking along the same lines, it will be up to you the games player to sort out the bottleneck: The only sensible solution is a 56 way flat cable loom which plugs via a 28 position doublesided O.1' DC edge connector socket to the Spectrum with two or three DC edge connector plugs along the length of the loom, so that the various add-ons may be connected up together (A motherboard with several edge connectors ports will also do). Certainly not a cheap solution- Considering the fact that a games player will almost certainly require a joystick and the speech unit, this is definitely a huge drawback.

Throughout the usage of the Currah Microspeech you will become increasingly neurotic and paranoid, believing to hear each and every word or thought repeated by an inhuman voice. Before consulting your psychiatrist, try entering LET keys = 0 and you will find immediate remedy and absolute tranquillity while you key in your latest software creation: This command will disable the voicing of all the BASIC keywords and printable characters and you will instantly be able to hear yourself think again.

CRITICISM

Simple and small unit. Also acts as only a sound amplifier by diverting BEEP sound to TV loudspeaker. Easy programming from BASIC and m/c as the unit is totally independent. It only requires feeding of a stack and setting of a stack pointer. But, as stack pointer and flagbytes reside in top of Spectrum memory:
A) in BASIC, RAMTOP has to be moved down to protect this area;
B) in m/c games, this area may already be used and system will crash or go funny.
Fortunately more and more software houses take this into account. Allophone set is limited, but works well (for English language). Intonation limited to one step only. Various buffers may be used, switching between them by changing the stack pointers.

Price: High for a Spectrum add-on, but considering the complexity of the unit (speech chip controlled by allophone symbol interpreter/microprocessor) a small miracle. The unit comes packaged in an attractive card box with transparent window, complete with demonstration cassette, programming manual and all necessary connections. May be used with either 16K or 48K Spectrum.

Games Supported by Currah Microspeech:

Lunar Jetman - Ultimate
Blasteroids - Martech
Birds & Bees - Bug Byte
Colourclash - Romik
Shark Attack - Romik
3D Monster Maze - Romik
Voice Chess - Artic
The Golden Baton - Digital Fantasia
The Time Machine - Digital Fantasia
Arrow Of Death I - Digital Fantasia
Arrow Of Death II - Digital Fantasia
Firebirds - Lyversoft
Lunar Rescue - Lyversoft
Mined Out - Quicksilva
Grand Prix Driver - Britania
Golf - Mr.Micro

[ Main Page ] [ Features ]