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% |
1 |
£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. |
2 |
£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
|
|
|
Listing 2
|
|
|
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