Speech synthesis Ian Morgan, Woodley, Berkshire. The main program is written in Basic and contains really only three important subroutines. These are: Listen; Speak; Edit. Before the Listen routine is called, another machine-code routine, Clear, is called. This routine zeros a required amount of memory for the use of the listen routine. The Basic subroutine - 3000 to 3100 - calls a machine- code routine which listens to both the Ear and Mic ports. Unlike the Talk to your Spectrum article in November 1982 [also called "Sound Analysis", and available from all good Worlds of Spectrum], my routine counts the number of times a noise is heard and then the number of times silence is heard. The period of on/off is directly related to the frequency of the incoming sound. This routine is then repeated until the register pair DE becomes zero. Once this has occurred a return to Basic is made. The Basic subroutine - 2000 to 2080 - calls another machine-code routine which actually produces the speech/ sound. What actually happens is that the program takes the values stored and turns the Spectrum's speaker on or off for the required periods. The routine is again repeated until the DE register pair becomes zero and a return to Basic is made. The Edit routine allows you to change the memory alloca- tion for data storage and also speech speeds. For understandable speech a speed of two or three is preferable, variations will change the speed and pitch of the speech. When altering memory allocation, remember "Start" should never go below 33,000 - 80E8H. This is to protect the machine code. The counter register DE is also alterable so a form of simple Editing of sounds is available. I found that when I attached a microphone to the Mic/Ear port that the Listen program heard nothing. My best results have, therefore, been achieved by recording the speech on to tape and then playing this into the Spectrum at normal levels. Sometimes it will be necessary to rewind the tape to play the sound again as the Spectrum might not have heard it first time. This will be obvious when the Spectrum does nothing after hearing your sound. The program is menu-driven and all inputs should be in a numerical form. If the program is broken, RUN will restart it with no effect on the current sound.