10 REM - PROGRAM TO GENERATE SPEECH USING VOTRAX SC-01 20 REM - CHIP CONNECTED TO PARALLEL PORT #110 30 REM - CONTROL PORT = 108 40 REM - CHECK BIT = 5 (I.E. 32 DECIMAL) 50 REM - ELLIOT L. GOLDYN - 9/11/81 60 REM - 9530 CREEMORE DRIVE 70 REM - TUJUNGA, CALIFORNIA 91042 80 REM - (213) 353-8359 90 REM - VERSION 2.1 100 CLEAR(1000) 110 DIM P$(500):DIM E$(255):DIM P(500) 120 I=0 130 PRINT CHR$(5) 140 PRINT"1. TYPE PHONEME CHARACTERS WHEN PROMPTED.":PRINT 150 PRINT"2. INFLECTIONS ARE ADDED TO VOICE BY APPENDING A":PRINT 160 PRINT "`-1' ,`-2' OR `-3' TO BASIC PHONEME SYMBOL.":PRINT 170 PRINT"3. INCORRECT INPUTS MAY BE CORRECTED BY":PRINT 180 PRINT"TYPING AN `*' INSTEAD OF A NEW PHONEME.":PRINT 190 DATA 42,21,0,41,37,3,29,38,13,2,12,3,25,47,0,43,47,0,25,42 200 DATA 42,58,31,62,45,1,1,13,3,37,43,21,35,12,37,42,2,30,62,62 210 DATA 62,62,11,9,13,37,22,22,42,3,39,31,3,42,58,12,39,13,32,42 220 DATA 2,30,3,45,39,57,3,37,60,43,60,39,30,63 230 REM - SPEAKS SIGN ON INSTRUCTIONS 240 FOR L=1 TO 74:READ P(L):NEXT L 250 FOR L=1 TO 74:OUT 110,P(L) 260 IF (INP(108)AND32)<>32 GOTO 260 270 NEXT L 280 PRINT"4. INPUT IS TERMINATED BY A '.'":PRINT 290 PRINT "PHONEME # ";I;" = "; 300 INPUT A$ 310 IF A$<>"*"GOTO 340 320 PRINT:INPUT"PHONEME # AND NEW PHONEME";A,N$ 330 P$(A+1)=N$:PRINT:GOTO 290 340 IF A$ = "." THEN GOTO 380 350 I=I+1 360 P$(I)=A$ 370 GOTO 290 380 FOR K=0 TO 255:READ E$(K):NEXT K 390 FOR J=1 TO I 400 REM - PRINT OUT PHONEMES AND DECIMAL CODES 410 FOR K=0 TO 255 420 IF E$(K)=P$(J) THEN GOTO 440 ELSE GOTO 450 430 REM - SPEAK INPUT ON SC-01 440 P(J)=K:GOTO 460 450 NEXT K 460 NEXT J 470 PRINT:PRINT:PRINT"PHONEMES AND CODES" 480 FOR J=1 TO I:PRINT P$(J),P(J):NEXT J 490 PRINT:PRINT 500 FOR J=1 TO I 510 OUT 110,P(J) 520 IF (INP(108) AND 32)<>32 GOTO 520 530 NEXT J 540 OUT 110,63 550 IF(INP(108)AND32)<>32 THEN 560 560 INPUT"REPEAT PHRASE (Y/N)";R$ 570 IF R$="Y" GOTO 500 580 INPUT"DO YOU WISH TO MAKE MORE SPEECHES";R$ 590 IF R$="Y" GOTO 100 600 END 610 REM - THERE ARE 256 PHONEMES IN DATA TABLE, THE POSITION 620 REM - OF THE PHONEME IN THE DATA TABLE REPRESENTS THE 630 REM - DECIMAL CODE FOR THE PHONEME. 640 DATA EH3,EH2,EH1,PA0,DT,A2,A1,ZH,AH2,I3,I2,I1,M,N,B,V 650 DATA CH,SH,Z,AW1,NG,AH1,OO1,OO,L,K,J,H,G,F,D,S,A,AY,Y1 660 DATA UH3,AH,P,O,I,U,Y,T,R,E,W,AE,AE1,AW2,UH2,UH1,UH,O2 670 DATA O1,IU,U1,THV,TH,ER,EH,E1,AW,PA1,STOP 680 DATA EH3-1,EH2-1,EH1-1,PA0-1,DT-1,A2-1,A1-1,ZH-1,AH2-1,I3-1 690 DATA I2-1,I1-1,M-1,N-1,B-1,V-1 700 DATA CH-1,SH-1,Z-1,AW1-1,NG-1,AH1-1,OO1-1,OO-1,L-1,K-1,J-1 710 DATA H-1,G-1,F-1,D-1,S-1,A-1,AY-1,Y1-1 720 DATA UH3-1,AH-1,P-1,O-1,I-1,U-1,Y-1,T-1,R-1,E-1,W-1,AE-1 730 DATA AE1-1,AW2-1,UH2-1,UH1-1,UH-1,O2-1 740 DATA O1-1,IU-1,U1-1,THV-1,TH-1,ER-1,EH-1,E1-1,AW-1,PA1,STOP 750 DATA EH3-2,EH2-2,EH1-2,PA0-2,DT-2,A2-2,A1-2,ZH-2,AH2-2,I3-2 760 DATA I2-2,I1-2,M-2,N-2,B-2,V-2 770 DATA CH-2,SH-2,Z-2,AW1-2,NG-2,AH1-2,OO1-2,OO-2,L-2,K-2,J-2 780 DATA H-2,G-2,F-2,D-2,S-2,A-2,AY-2,Y1-2 790 DATA UH3-2,AH-2,P-2,O-2,I-2,U-2,Y-2,T-2,R-2,E-2,W-2,AE-2 800 DATA AE1-2,AW2-2,UH2-2,UH1-2,UH-2,O2-2 810 DATA O1-2,IU-2,U1-2,THV-2,TH-2,ER-2,EH-2,E1-2,AW-2,PA1,STOP 820 DATA EH3-3,EH2-3,EH1-3,PA0-3,DT-3,A2-3,A1-3,ZH-3,AH2-3,I3-3 830 DATA I2-3,I1-3,M-3,N-3,B-3,V-3 840 DATA CH-3,SH-3,Z-3,AW1-3,NG-3,AH1-3,OO1-3,OO-3,L-3,K-3,J-3 850 DATA H-3,G-3,F-3,D-3,S-3,A-3,AY-3,Y1-3 860 DATA UH3-3,AH-3,P-3,O-3,I-3,U-3,Y-3,T-3,R-3,E-3,W-3,AE-3 870 DATA AE1-3,AW2-3,UH2-3,UH1-3,UH-3,O2-3 880 DATA O1-3,IU-3,U1-3,THV-3,TH-3,ER-3,EH-3,E1-3,AW-3,PA1,STOP