Subject: Re: SC-01 Speech Synth project.. Anyone got any schematics?
Date: 1999/01/12
Author: Richard Steven Walz <rstevew@armory.com>
JPutnam435 wrote:
> I am looking for some schematics/projects to build for a SC-01 speech
synthesis
> chip. I already have the chip, and I am looking for a way to build a speech
> synthesizer to use with my 486 computer. Any help would be much appreciated!
>
> Thanks,
> Jason
--------------------------------------------------
Unless someone wants to pay you a lot for a museum, THIS IS A KEEPER! This is an early Votrax, phoneme synthesizer. As I recall it used nearly the same or exactly the same allophones and allophone codes that the SPO-256 used to generate sound. Allophones are vowel/consonant or consonant/vowel and just vowel and just consonant pieces of speech which need to be passed to it one by one and the chip has a busy line and maybe a strobe line to it to handshake for the relatively long time (computer-wise) it needs to say them and ask for another. It uses 64 codes, thus 6 bit words to key the allophones, and it might, but I do not know for sure, have the other two bits reserved for pitch or intonation.
Here, I just found the pinout and the phoneme set for you in the book, "The IBM PC Connection" by Coffron.
The pinout:
1 Vp nominally +12VDC (7-14 VDC), bypass cap to gnd .1 uF
2 I2 high bit of pitch (D7)
3 I1 low bit of pitch (D6)
4 NC no-connect
5 TP3 factory test point 3
6 TP2 factory test point 2
7 STB strobe, active high
8 A/R acknowledge/request (more data)
9 P5 high bit of phoneme (allophone) (D5)
10 P4 (D4)
11 P3 (D3)
12 P2 (D2)
13 P1 (D1)
14 P0 low bit of phoneme (allophone) (D0)
15 MCX Master Clock eXternal
15 & 16 usually tied together, pulled up to 12 VDC with 6.8 -> ohms and
using a 330 pF cap to ground to clock chip at 720 kHz.
16 MCRC Master Clock - resistor/capacitor
17 TP1 factory test point 1
18 Vg ground
19 NC no-connect
20 CB Current source for class B amp output
21 AF Audio Feedback, output for class A amps
22 AO Audio Out, 150 pF and 10K ohms in line to amp (741 or even LM386)
Now, understand that your latch is more likely an open collector latch and voltage level shifter with pull up resistors, as this chip runs on and expects 12 volt everything! So you DO have a twelve-volt power supply or else you must steal it from the IBM supply, very do-able. But the chip won't work correctly with TTL inputs. Likewise with the strobe and ack/req line, they must be level shifted with an open collector with pull ups and the return ack/req line is voltage limited from the SC-01 chip with a durable buffer, as the chip's output is not great enough to harm it.
As for the phoneme/allophone set:
hex |
dec |
sym |
as in word |
duration |
00 |
0 |
EH3 |
jacket<- |
59ms |
20 |
32 |
A |
day |
185ms |
01 |
1 |
EH2 |
->enlist |
71ms |
21 |
33 |
AY |
day |
65ms |
02 |
2 |
EH1 |
heavy |
121ms |
22 |
34 |
Y1 |
yard |
80ms |
03 |
3 |
PA0 |
(no sound) |
47ms |
23 |
35 |
UH3 |
mission<- |
47ms |
04 |
4 |
DT |
butter |
47ms |
24 |
36 |
AH |
mop |
250ms |
05 |
5 |
A2 |
made |
71ms |
25 |
37 |
P |
past |
103ms |
06 |
6 |
A1 |
made |
103ms |
26 |
38 |
O |
cold |
185ms |
07 |
7 |
ZH |
azure |
90ms |
27 |
39 |
I |
pin |
185ms |
08 |
8 |
AH2 |
->honest |
71ms |
28 |
40 |
U |
move |
185ms |
09 |
9 |
I3 |
bit<- |
55ms |
29 |
41 |
Y |
any<- |
103ms |
0A |
10 |
I2 |
->in |
80ms |
2A |
42 |
T |
tap |
71ms |
0B |
11 |
I1 |
hid |
121ms |
2B |
43 |
R |
red |
90ms |
0C |
12 |
M |
mat |
103ms |
2C |
44 |
E |
meet |
185ms |
0D |
13 |
N |
sun |
80ms |
2D |
45 |
W |
win |
80ms |
0E |
14 |
B |
bag |
71ms |
2E |
46 |
AE |
dad |
185ms |
0F |
15 |
V |
van |
71ms |
2F |
47 |
AE1 |
after |
103ms |
10 |
16 |
CH* |
chip |
71ms |
30 |
48 |
AW2 |
salty |
90ms |
11 |
17 |
SH |
shop |
121ms |
31 |
49 |
UH2 |
->about |
71ms |
12 |
18 |
Z |
zoo |
71ms |
32 |
50 |
UH1 |
->uncle |
103ms |
13 |
19 |
AW1 |
lawful |
146ms |
33 |
51 |
UH |
cup |
185ms |
14 |
20 |
NG |
thing |
121ms |
34 |
52 |
O2 |
for |
80ms |
15 |
21 |
AH1 |
father |
146ms |
35 |
53 |
O1 |
board |
121ms |
16 |
22 |
OO1 |
looking |
103ms |
36 |
54 |
IU |
->you |
59ms |
17 |
23 |
OO |
book |
185ms |
37 |
55 |
U1 |
you<- |
90ms |
18 |
24 |
L |
land |
103ms |
38 |
56 |
THV |
->the |
80ms |
19 |
25 |
K |
trick |
80ms |
39 |
57 |
TH |
->thin |
71ms |
1A |
26 |
J* |
judge |
47ms |
3A |
58 |
ER |
bird |
146ms |
1B |
27 |
H |
hello |
71ms |
3B |
59 |
EH |
get |
185ms |
1C |
28 |
G |
get |
71ms |
3C |
60 |
E1 |
be |
121ms |
1D |
29 |
F |
fast |
103ms |
3D |
61 |
AW |
call |
253ms |
1E |
30 |
D |
paid |
55ms |
3E |
62 |
PA1 |
(no sound) |
185ms |
1F |
31 |
S |
pass |
90ms |
3F |
63 |
STOP |
(no sound end) |
47ms |
* /T/ must precede /CH/ to make CH sound!!
* /D/ must precede /J/ to make J sound!!
And this phoneme set is NOT the same as the SPO-256 set. I get them confused sometimes because I have used both extensively in the early 80’s. I think the Votrax phonemes are nice because you can add the three high values to a byte for pitch, giving it a human quality. The same can be rigged on the SPO-256 by controlling the clock speed with a clock switching gate, but this has it built in. I do, however, think that allophones are more correct than phonemes for a host of uses, even though careful and laborious use of longer strings of phonemes will work in more languages.
There you go!
-Steve