ZX Forum #04
19 ноября 1997 |
|
world of sound Spectrum - chapter 4.8: Synthesis of speech.
4.8. Speech synthesis Synthesized speech can be just a recording and reproducing it as any other sound by using routines from Chapter 4.6, but usually act differently. First introduced into the computer all the phonemes specified language, then the user is prompted phrase, and finally, the computer consistently reproduces its constituent phonemes. This method allows to save memory and play absolutely any phrase. Here's a program that allows Cpektrumu talk: 10 CLEAR 25343: LET L = 3 20 PRINT "Wait please ..." 30 FOR A = 25344 TO 25433: READ D: POKE A, D: NEXT A 40 FOR A = 0 TO 25: POKE 25437, A * L +100 50 CLS: PRINT "Press any key, then say '"; CHR $ (A +65 );"'": PAUSE 0 60 RANDOMIZE USR 25344: NEXT A 70 CLS: INPUT "Enter phrase:"; LINE A $: PRINT A $ 80 FOR A = 1 TO LEN A $ 90 IF A $ (A) = "" THEN POKE 25433 + A, 32: NEXT A 100 IF A $ (A)> = "a" THEN LET A $ (A) = CHR $ (CODE A $ (A) -32) 110 POKE 25433 + A, (CODE A $ (A) -65) * L +100: NEXT A: POKE 25433 + A, 0 120 RANDOMIZE USR 25406: GOTO 1970 130 DATA 243,33,0,0,17,0, L, 6,8,203,38,219,254,203,119,40, 2,203,198,16,244,35,27,122,179,32,236,251,201 140 DATA 243,33,0,0,17,0, L, 62,7,6,8,230,239,203,6,48,2,246, 16,211,254,16,244,35,27,79,122,179,121,32,234,251,201 150 DATA 33,90,99,126,183,200,254,32,32,7,6,5,118,16, 253,24,8,50,32,99,229,205,29,99,225,35,24,231 Let me explain some of the lines: 30 - read into the program memory in which DAH; 40 ... 60 - recorded phonemes with microphones on; 70 - input phrases; 80 ... 110 - the phrase is memorized in special format; 120 - routine is called reproduction Denia; 130 ... 150 - routines in the codes. After starting the program asks to wait a bit, reading the code part, then you will need to consistently pronounce the microphone 26 phonemes. After this You can enter any phrase and enjoy their sounds. When you enter these phrases permissible upper and lower case Latin letters and spaces. How will sound all the other characters, no one knows. Neither no case should enter the @ sign, otherwise the program just hangs. This program was written as an example, so no additional service features (such as changing a single phoneme), but you can add them. To change the length of individual phoneme change in the tenth row value variable L (in this case it may be from 1 to 6). If you can not right the first time pronounce all the phonemes with a satisfactory quality, you can try again stop the program by pressing BREAK and use the command GOTO 40. When phonemes are written, you can save them on the tape by typing SAVE "name" CODE 25600,6656 * L (number 6656 turned out by multiplying the number of phonemes (26) on 256). Best of all, if before the block will be written to the above program with the following line: 35 LOAD "name" CODE 25600: GOTO 1970 Write this program you can use the command SAVE "SPEAKER" LINE 10. Unfortunately, 26 phonemes - this is not enough even for the English language, not to mention about the Russian. Their number can, of course, increase, but it will increase and the volume they occupy memory. There's nothing do. If you want your ZX-Spectrum spoke in Russian, then you need to connect the Russian font (for details see [1]); increase the number of phonemes. And also replace all messages that appear on the screen. Number of Russian phonemes can be greatly reduced, if not used soft consonants (in the computer version of their soft almost inaudible) and vowels "E", "E", "S" and "I" (instead of them enter the "J" and, accordingly, "E", "O", "Y" and "A"). Hard sign and replaced by the letters "J". Finally, one piece of advice. Much nicer to hear a normal human speech than words, pronouncing according to the rules of grammar. Therefore, enter the words as you hear: sinclair - sinkler, PC - kampyuter.
Other articles:
Similar articles:
В этот день... 21 November