10 REM SPEECH DEMO PROGRAM 20 REM By Dave Ebert (10/13/85) 30 screen 0,4,0 40 SCNCLR 50 HOW%(0)=110:HOW%(1)=0:HOW%(2)=150:HOW%(3)=0:HOW%(4)=22200:HOW%(5)=64:HOW%(6)=10:HOW%(7)=0:HOW%(8)=0 60 TEXT$="HELLO" 70 GOSUB 320 80 SCNCLR 90 PRINT " THE AMIGA SPEECH DEMONSTRATION" 100 PRINT:PRINT "Options:" 110 PRINT "========" 120 PRINT " [A] Voice Pitch" 130 PRINT " [B] Inflection" 140 PRINT " [C] Speaking Rate" 150 PRINT " [D] Male or Female" 160 PRINT " [E] Sampling Frequency" 170 PRINT " [F] Volume 180 PRINT " [G] Input Text for Speech" 190 PRINT " [H] End Program" 200 PRINT:PRINT "Choice ==>"; 210 GETKEY C$ 220 IF C$="a" or C$="A" THEN GOSUB 360 230 if C$="b" OR C$="B" THEN GOSUB 530 240 IF C$="c" OR C$="C" THEN GOSUB 710 250 IF C$="d" OR C$="D" THEN GOSUB 880 260 IF C$="e" OR C$="E" THEN GOSUB 1060 270 IF C$="f" OR C$="F" THEN GOSUB 1200 280 IF C$="g" OR C$="G" THEN GOSUB 1360 290 IF C$="h" OR C$="H" THEN GOTO 310 300 GOTO 80 310 END 320 REM SPEECH SUBROUTINE 330 A$=TRANSLATE$(TEXT$) 340 X%=NARRATE(A$,HOW%()) 350 RETURN 360 REM VOICE PITCH 370 SCNCLR 380 PRINT " VOICE PITCH" 390 PRINT " ===========" 400 PRINT:PRINT 410 PRINT "Pitch Value (65-320)"; 420 INPUT HOW%(0) 430 IF HOW%(0)<65 THEN GOTO 370 440 IF HOW%(0)>320 THEN GOTO 370 450 TEXT$="HELLO" 460 GOSUB 320 470 PRINT 480 PRINT "Finished"; 490 INPUT F$ 500 IF F$="Y" OR F$="y" THEN GOTO 520 510 GOTO 370 520 RETURN 530 REM INFLECTION 540 SCNCLR 550 PRINT " VOICE INFLECTION" 560 PRINT " ================" 570 PRINT:PRINT 580 PRINT "[0] - Inflection" 590 PRINT "[1] - Monotone" 600 PRINT:PRINT "Your Choice"; 610 INPUT HOW%(1) 620 IF HOW%(1)<0 GOTO 540 630 IF HOW%(1)>1 GOTO 540 640 TEXT$="HELLO" 650 GOSUB 320 660 PRINT:PRINT "Finished"; 670 INPUT F$ 680 IF F$="Y" OR F$="y" THEN GOTO 700 690 GOTO 540 700 RETURN 710 REM SPEAKING RATE 720 SCNCLR 730 PRINT " SPEAKING RATE" 740 PRINT " =============" 750 PRINT:PRINT 760 PRINT "Words per minute (40-400)"; 770 INPUT HOW%(2) 780 IF HOW%(2)<40 THEN GOTO 720 790 IF HOW%(2)>400 THEN GOTO 720 800 TEXT$="HELLO" 810 GOSUB 320 820 PRINT 830 PRINT "Finished"; 840 INPUT F$ 850 IF F$="Y" OR F$="y" THEN GOTO 870 860 GOTO 720 870 RETURN 880 REM SEX 890 SCNCLR 900 PRINT " VOICE SEX" 910 PRINT " =========" 920 PRINT:PRINT 930 PRINT "[0] - Male" 940 PRINT "[1] - Female" 950 PRINT:PRINT "Your choice"; 960 INPUT HOW%(3) 970 IF HOW%(3)<0 GOTO 890 980 IF HOW%(3)>1 GOTO 890 990 TEXT$="HELLO" 1000 GOSUB 320 1010 PRINT:PRINT "Finished"; 1020 INPUT F$ 1030 IF F$="Y" OR F$="y" THEN GOTO 1050 1040 GOTO 890 1050 RETURN 1060 REM SAMPLING FREQUENCY 1070 SCNCLR 1080 PRINT " SAMPLING FREQUENCY" 1090 PRINT " ==================" 1100 PRINT:PRINT "Desired Frequency (5000-28000)";:INPUT HOW%(4) 1110 IF HOW%(4)<5000 goto 1070 1120 IF HOW%(4)>28000 GOTO 1070 1130 TEXT$="HELLO" 1140 GOSUB 320 1150 PRINT:PRINT "Finished"; 1160 INPUT F$ 1170 IF F$="Y" OR F$="y" THEN GOTO 1190 1180 GOTO 1070 1190 RETURN 1200 REM VOICE VOLUME 1210 SCNCLR 1220 PRINT " VOICE VOLUME" 1230 PRINT " ============" 1240 PRINT:PRINT 1250 PRINT "Volume (0-64)"; 1260 INPUT HOW%(5) 1270 IF HOW%(5)<0 GOTO 1210 1280 IF HOW%(5)>64 GOTO 1210 1290 TEXT$="HELLO" 1300 GOSUB 320 1310 PRINT:PRINT"Finished"; 1320 INPUT F$ 1330 IF F$="Y" OR F$="y" THEN GOTO 1350 1340 GOTO 1210 1350 RETURN 1360 REM TEXT INPUT SUBROUTINE 1370 SCNCLR 1380 INPUT "TEXT==>";TEXT$ 1390 IF TEXT$="" THEN GOTO 1420 1400 GOSUB 320 1410 GOTO 1380 1420 RETURN