Atari Speaks

by Kevin Griffin

 

Issue 19

Jan/Feb 86

Next Article >>

<< Prev Article

 

 

Build your own Speech Synthesiser

Much has been written recently in electronic hobbyists magazines about speech synthesisers, however many of these articles assume the reader is familiar with electronic circuits and components, and that they have the necessary equipment to manufacture their own foil PCBs(Printed Circuit Boards). In this article I have deliberately chosen stripboard to construct the project and I hope that the diagrams given will enable anyone to construct the synthesiser even if it is their first step into electronics.

PARTS LIST

The following order codes and prices are as quoted in the Maplin Electronic Supplies 1985 Catalogue.

Item Description

Quantity

Price

Order Code

Component

Resistors

W Carbon 10K 5% 0.03p S10K  R1
W Carbon 33K 5%  1 0.03p S33K R2 
10K Pot Linear 1 0.49p  FW02C RV1

Capacitors

l0uF 25V Elect. 0.12p YY35Q C1,C6
l00uF 20V Elect. 1 0.11p FF11M C7
22nF Ceramic 1 0.07p BXO1B  C5
l00nF Ceramic 1 0.07p BX03B  C4
22pF Ceramic 2 0.07p WX48C C2,C3

Integrated Circuits

SP0256 Synthesiser 1 8.95 QY50E IC1
LM386 Audio Amp. 1 1.49 276-1731** IC2

Miscellaneous

Verroboard 1 1.32  FL07H
Loudspeaker 8R 0.3W 1 0.98  WB13P LS1
28Pin DIL Socket  1 0.24p BL21X
14Pin DIL Socket 1 0.11p BL18U
Ribbon Cable 10 Way  1m 0.75p XR06G
D-Socket 9 Pin 2 0.95p RK61R
3.7268MHz Crystal 1 2.98 FY86T X1
22swg Tinned Copper 1 roll* 0.95 BL14Q
Solder 60Sn/40Pb 10m* 0.82p FR21X

* Much smaller quantities of these items are actually required for this project but this is the minimum that may be obtained from Maplins.

** This IC is not available from Maplins the order code shown is a Tandy order code.


TOOLS REQUIRED

Small soldering iron
Scalpel, Modellers knife or Spot face cutter (Maplin Code FL25C 1.95) to cut veroboard tracks. 

Small sidecutters or wirestrippers

 

CIRCUIT DESCRIPTION

The schematic circuit shown below is based on the General Instruments SP0256 IC (Integrated Circuit).

Power for the circuit and the controlling signals to generate speech come from joystick ports 1 and 2 (ports 3 and 4 can be used on the 400/800 computers). Six bits from the 8 bit port are used to determine which allophone of the 64 available is generated, the remaining 2 bits are used as 'handshake' lines between the computer and synthesiser. Crystal X1 and capacitors C2 and C3 form a simple clock for the SP0256.

R2 and C5 act as a low pass filter which converts the SP0256 Pulse Width Modulated output to an audio signal. This audio signal is amplified by IC2, an LM386 audio amplifier which, together with a few support components, drives the loudspeaker LS1. Components R1 and C1 provide a Reset pulse to the SP0256 on power-up.

CIRCUIT DIAGRAM

Figure A. Location of components on stripboard

Figure B. Board side B showing cuts in tracks

CONSTRUCTION

Initially the copper tracks on the stripboard should be cut as shown in Figure B. A Spot Face Cutter is best for this purpose although a knife can be used if care is taken (always work away from your hands). Next solder the components to the board as shown in Figure A starting with the link wires followed by the IC sockets. The legs of the remaining components are best left at their full length until after the component has been soldered in position as this will help to conduct heat away during soldering. As an extra precaution against heat damage whilst soldering a small crocodile clip may be temporarily attached to the component on side A of the board.

Care must be taken that all electrolytic capacitors are connected the correct way round.

When the board has been completed the two D-Connectors should be connected to the ribbon cable according to the connection chart shown. The opposite end of the cable should then be bared and tinned about inch of its length. The tinned ends should then be inserted through the board and soldered in position according to the circuit diagram.

RIBBON CABLE CONNECTIONS

Cable Colour D-Plug End Signal ICI Connection
White Port2 Pin 4 B7 9
Grey Port2 Pin 3  B6 20
Purple Por1 Pin 1 B0 18
Blue Port1 Pin 2 B1 17
Green Port1  Pin 3  B2 16
Yellow Port1  Pin 4  B3 15
Orange Port2 Pin 1 B4 14
Red Port1 Pin 7  +5V 7,9,23,25
Brown Port2 Pin 2  B5 13
Black Port1 Pin 8  GND 1,10,11,22

Note on D-Sockets

Due to the recessed joystick ports used on all Atari computers the normally available D-sockets cannot be fitted directly. One solution to the problem is to buy joystick extension cables (these have the moulded plastic type sockets as fitted to Atari joysticks) such as those available from Tandy stores, however at prices in excess of 3 this is an expensive solution if they are to be used only for this project.

Another solution is to drill or hacksaw the metal body from the D-Sockets available from electronic suppliers, leaving the plastic core, the two halves of which should then be glued together. The appropriate connections can then be made to the back of the socket. This enables the socket to be connected to the computer but it leaves the wires and connections vulnerable to damage. I have overcome this problem by fixing the plastic covers which are often placed on new ICs to protect their legs. These fit perfectly to the back of the modified sockets and after the circuit has been tested and found to be fully working the cover formed by the IC protectors can be filled with an Epoxy Resin adhesive to make a really permanent and strong connector.

TESTING AND USING THE SPEECH SYNTHESISER

The circuit should be thoroughly checked before it is connected to your computer. If all appears well, connect to the joystick ports 1 and 2 with the computer switched off. Switch on the computer and watch the screen for anything unusual. If the normal Start-Up does not occur switch the computer off and recheck the circuit.

When the READY prompt appears type in listing 1 and RUN it, it should say "Hello welcome to the Page 6 speech synthesiser demonstration".

Listing 2 will sound each of the 64 Allophones (components of speech) available.

Listing 1 can be used as a framework for your own sentences as each line of data represents one word. By changing this data with reference to the information below and changing variable LAST to correspond to the number of DATA items you can make your machine talk as you want it to.

The table of allophones gives brief details of each of the 64 Allophones. Maplin Project Book 6 (order code XA06G) gives a more detailed outline together with some theory of speech synthesis.

I hope this project will add a new dimension to your Atari and hope to bring you further Hardware Projects in the near future.

Listing 1

AtariLister - requires Java

Listing 2

AtariLister - requires Java

 

Table of SP0256 Allophones

 

Allophone Code Duration Sound Produced 
0 10ms silence
1 30ms silence
2 50ms silence
3 100ms silence
4 100ms silence
5 420ms OY as in bOY,tOY 
6 250ms AY as in flY,tIe 
7 70ms EH as in Edward
8 120ms KK3 as in Car
9 210ms PP as in Pear,cliP
10 140ms JH as in juDGE
11 140ms NN1 as in Now,turN
12 70ms IH as in tIn,pIt
13 140ms TT2 as in To,Turn
14 170ms RR1 as in Right,WRong
15 70ms AX as in Upper,lUck
16 180ms MM as in Monday,March
17 100ms Tfl as in waiT,sTop
18 290ms DH1 as in THat,THey
19 250ms IY as in trEE,mE
20 280ms EY as in lAke,trAy
21 70ms DD1 as in liD,beD
22 100ms UW 1 as in yOU
23 100ms AO as in tALk,AWful
24 100ms AA as in trOt,tOp
25 180ms YY2 as in Yes Yet
26 120ms AE as in tAp,pAt
27 130ms HHl as in Hair
28 80ms BB1 as in Bleed,niB
29 180ms TH as in THin,THis
30 100ms UH as in cOOk,cUckoo
31 260ms UW2 as in fOOd,hOOf
32 370ms AW as in nOW,OUt
33 160ms DD2 as in Dart,Drip
34 140ms GG3 as in Gas,piG,aGnostic
35 190ms VV as in Verse,Vent
36 80ms GG1 as in Gate,Get
37 160ms SH as in SHelter,SHine
38 190ms ZH as in meaSure,aSian
39 120ms RR2 as in bRight,gReen
40 150ms FF as in Fire,First
41 190ms KK2 as in weaK,triCK
42 160ms KK1 as in Cue,sCared
43 210ms ZZ as in Zebra,XYllophone
44 220ms NG as in siNG,paNG
45 110ms LL as in Leopard,Linger
46 180ms WW as in Window,Watch
47 360ms XR as in fAIR,bEAR
48 200ms WH as in WHen,WHich
49 130ms YY1 as in compYuter,bEAUtiful
50 190ms CH as in CHin,itCH
51 160ms ER1 as in bURn,hURt
52 300ms ER2 as in bIRd,hERd
53 240ms OW as in snOW,tOE
54 240ms DH2 as in noTHing, froTH
55 90ms SS as in Sily,Speech
56 190ms NN2 as in Naughty,North
57 180ms HH2 as in Heart,Home
58 330ms OR as in mORe,IAW
59 290ms AR as in fARm,alARm
60 350ms YR as in fEAR,chEER
61 40ms GG2 as in Gun,Gravel
62 190ms EL as in middLE,IadEL
63 50ms BB2 as in Bat,Ball

 

top