SPEAKWELL
from ZX Computing, December'84/January'85

Speakeasy
Kai Webber has come up with a machine code routine that turns the Spectrum
into a speech synthesiser.


This is by no means the first Spectrum speech program but it does offer far
greater manipulation of speech data than some of the other efforts that
have appeared in magazines, allowing crackles and noise to be cut down
greatly. Basically, what the program allows you to do is to record speech
from a tape recorder (along with a few extra noises thrown in for good
measures) and then replay this speech in your own programs.

Begin by carefully typing in the BASIC listing and then save it to tape
with SAVE "SPEAKWELL" LINE 1. When you run the program, you should be
confronted with some data details at the bottom of the screen which are
fairly self explanatory and a menu of options:

R  RECORD SPEECH
This allows you to record your voice into the computer's memory at the
current record/play speed. When you select this option you will be told to
press any key to start recording. There are two methods you can use to
record speech (experiment with both methods to see which gives best
results):

1) Record your voice onto a tape and play this tape into the computer,
pressing a key just before the speech starts. (Try different volume
settings until you achieve the best results).

2) Set the recorder into Record mode (remove any tapes in the recorder,
find the small switch in it which checks to see if a tape has a write
protect tab, press this in and press PLAY and RECORD on the recorder at
the same time), press a key and start talking into the tape recorder's
microphone.

P  PLAY BACK SPEECH
This will simply replay any speech stored in memory at the current
record/play speed.

A  ALTER START ADDR
This allows you to alter the start address from which speech is
recorded/played back. If there is a lot of "noise" from the tape recorder
at the start of some speech you can get rid of it by altering the start
address by trial and error. (If the start address plus the length of data
would cause the data to overflow into the graphics area of the computer
[it] will prevent you from using this value  lower the length first - see
below. It will also reject any value below 32855).

L CHANGE LENGTH
Allows you to change the length of speech to be recorded/played back. The
computer will prevent you from using any value which will cause an overflow
into the graphics area.

S - CHANGE SPEED
Lets you change the record/play back speed. By playing back at a different
speed you can alter the pitch of your voice. The slower the speed, the
worse speech will sound. (Values below about 25 are of little use.)

M MEMORY MANAGER
A useful tool that allows you to move blocks of speech around in memory.
Three parameters are required; address to copy from; address to copy to and
number of bytes to copy. If "Invalid address" appears on the screen, then
you have tried to overwrite either the graphics area or the machine code.
If you wish to remove "noise" that was recorded before you started
speaking, find the start address of the actual speech (using 'S') and enter
this as the address to copy from. Enter the address to copy to and the
number of bytes to copy and then alter the start address to the value you
used as the address to copy to. (Got that?!!)

T TAPE OPERATIONS
This prints up a self-explanatory tape menu. For those of you who are
interested, I have included an assembly language listing of the machine
code.

You may find that if you use an expensive tape recorder you will get better
results than a cheap portable recorder, but do not do anything silly like
feeding the output of a power amp staight into the back of your Spectrum!
It also helps if you stress the words as you speak into the tape recorder.
