home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
voice
/
speech.bas
< prev
next >
Wrap
BASIC Source File
|
1983-09-09
|
3KB
|
89 lines
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