Nicron #62
13 ноября 1997 |
|
Soft - a speech synthesizer. Sources.
S.O.S.! Speech synthesizer (C) (r) Wlodek Black Hello all! The letter which I received on November 12, the eve of World Day Blind (symbolic or accidentally?), is addressed not only to me but and anyone who can help. Please read the letter, and you all will become clear. === Cut: === Hi, Vladimir. Andrew wrote to you from the city. Member of the Iron Falcons. I am a musician, programmer of the group. I already wrote to you. It was so nice to read a letter from you. Also, I am pleased for invitation to the festival. Volodya, I wrote to you that I probably can not come because I have my own problems. Firstly, the road, and then - the hotel, that is permanent clogged, and to the same summer. Yes, and I do not know whether I wrote to you, or No, I have vision problems. That is, do not see. Work on the Speccy helps me a speech synthesizer, which I read the text. True, it is made correctly, and the functions it little, but still enough to work, though there are a lot of inconvenience. I finish him nobody, as the man who started do, dumped at IBM, but I will remain faithful to my Speccy. Vladimir, I am sending you a file with a synthesis, he wrote under is_dos, there are a couple versions, as well as the source for them. Older versions made without the bloat, that is, do not read the numbers or, more precisely, there is a old version that can not read the numbers. Starting from the second version, the synthesis of reading numbers. There have tried to add a little functions - such as fast forward and rewind. But the new version not normally work, that is stuck. Write how to start synthesis. First you have to surpass is_dos, and then rename that it has the extension. com. After that, move the cursor to text file, which must be read, and the monitor command line call-to-speech without any parameters, because no parameters to it there. After vyzovesh synthesis Speech from the command line it will read the text. The new versions operate the buttons. Ones - Fast-forward one sector. Deuce - rewind to the sector. Troika - remember location, and the Quartet to return to where remembered. Volodya, as these versions do not work, I thought, do not declare whether the contest for the best speech synthesis, as this thing desired. Well enter himself in my position. Read something new always desirable, but not always someone to read, and constantly be dependent on someone to feel like. I would like to programm somehow tells you where you are, when stopped, as Text files can be large, but always read from the beginning uncomfortable, because you want to call from wherever stopped. Also, to rewind were made literate. AND everything to work correctly. I guess you could say: "Why this for me to contact? Why do people syntheses, no it would be better make a cool demo. "But believe me, it is necessary. Volodya, you have addresses in different magazines, so I ask you, if you can, then write to them and give such a proposition - to make the competition for the best speech synthesis. Can send them to these versions, I'm sending you. You'll be thankful.On this I will finish. Goodbye. Regards ANDREW. P.S. The fact that I can not come to FunTop98, does not mean that Nobody in our group would not come. Guys may come. I do not know yet. I should know - I'll write. While I will leave, and even so much written. I hope you do not get tired of reading about my problems. Sorry for the typos. NDREW === Cut ^ ===. [End of Andrew's letter]. Mesh source texts. Please try to bring Andrew's request to all coders, especially owning programming under the IS-DOS (alas, the latter powerless myself). Although, you can probably make a version and a TR-DOS. As far as I understand in the original version to bind to IS-DOS has only loader text files, and actually zvukosintezator works against itself, and it can be from any otassemblirovat address. Perhaps someone has already worked a similar problem, and if not impossible, it's easier and better to re-write subj. Only one requirement is clear is clear: the program must controlled by the same keys must be listed Andrei functions, should provide the sound quality is not worse than was. Request to the editors of local publications Spectrum: Please note, reprint, vzlohmatte your encoders. Help man! Write to Andrew at: felcons@litech.lviv.ua ^ No mistake! If you need to archive "sintez", signalte on ZXNet. At Falcons-s, likely, and so cares enough ... Forvardte further. === Cut: === 4-th version of the synthesizer ORG 31000 BEG_OP LD C, # 8A RST # 10 LD (F_NUMB), A LD C, # 1926 OR A RET Z RST # 10 RET C EXX LD BC, # 000E ADD HL, BC LD E, (HL) INC HL LD D, (HL) LD (F_LENG), DE LD A, E LD (OSTAT), A INC D LD A, D LD (NUM_BL), A EXX ; PROG LD (SP_), SP CALL READ RET C LD HL, NUM_BL LD A, (TEBLOK) CP (HL) JR Z, LAST_B CALL SET CALL $ SAY JR PROG LAST_B CALL SET; can make a small loop CALL $ SAY EXIT RET ; READ LD HL, IN_BUF LD DE, IN_BUF +1 LD BC, # 00FF LD (HL), 32 LDIR LD A, (TEBLOK) LD E, A LD D, # 00 LD HL, IN_BUF XOR A LD C, # 3D RST # 10 INC E LD A, E LD (TEBLOK), A RET C RET SKIP_B LD A, (TEBLOK) INC A LD (TEBLOK), A RET ;----------------------$ R_KEY LD C, 9 LD A, 247, 4 SEMIROW IN A, (# FE) BIT 0, A; "1" JP Z, FAST BIT 1, A; "2" JP Z, HALT BIT 2, A JP Z, SAVE BIT 3, A JP Z, LOAD JP RTN FAST LD HL, TEBLOK LD A, (NUM_BL) CP (HL) RET Z LD SP, (SP_) JP PROG RTN LD HL, # 0400 LD ($ SPEED), HL RT RET SAVE LD A, (TEBLOK) DEC A LD (TEBL2), A RET LOAD LD A, (TEBL2) LD (TEBLOK), A LD SP, (SP_) JP PROG BEEP LD HL, 400 LD DE, 261 CALL # 03B5 RET HALT LD A, (TEBLOK) CP 2 RET C DEC A DEC A LD (TEBLOK), A LD SP, (SP_) JP PROG TEBL2 DEFB # 00 SP_ DEFW # 0000 F_LENG DEFW # 0000 F_NUMB DEFB # 00 TEBLOK DEFB # 00 IN_BUF DEFS 256 $ T_ADR DEFS 1024 NUM_BL DEFB # 00 OSTAT DEFB # 00 SET LD BC, 256 LD HL, IN_BUF LD DE, $ T_ADR GET LD A, (HL) JR ANALIZ ONECH LD (DE), A INC DE INC HL DEC BC PROWER LD A, C OR B RET Z JR GET ANALIZ CP # F6; I ua JP Z, MIN173 CP # F7; i ua JP Z, MIN174 CP "p"; E0 JP NC, RUSL2 CP "and"; A0 JP NC, RUSL1; RUS UP CASE CP "a"; 61 JP NC, LATL; LAT UP CASE CP # 20 JP C, PRB CP "0" JP Z, NIL CP "1" JP Z, ONE CP "2" JP Z, TWO CP "3" JP Z, TRE CP "4" JP Z, FOR CP "5" JP Z, FIV CP "6" JP Z, SIX CP "7" JP Z, SEV CP "8" JP Z, EIT CP "9" JP Z, NIN JP ONECH NIL LD A, "N" LD (DE), A INC DE LD A, "O" LD (DE), A INC DE LD A, "L" LD (DE), A INC DE LD A, "I" LD (DE), A INC HL INC DE DEC BC JP PROWER ONE LD A, "O" LD (DE), A INC DE LD A, "D" LD (DE), A INC DE LD A, "I" LD (DE), A INC DE LD A, "N" LD (DE), A INC HL INC DE DEC BC JP PROWER TWO LD A, "D" LD (DE), A INC DE LD A, "V" LD (DE), A INC DE LD A, "A" LD (DE), A INC HL INC DE DEC BC JP PROWER TRE LD A, "T" LD (DE), A INC DE LD A, "R" LD (DE), A INC DE LD A, "I" LD (DE), A INC HL INC DE DEC BC JP PROWER FOR LD A, "C" LD (DE), A INC DE LD A, "H" LD (DE), A INC DE LD A, "O" LD (DE), A INC DE LD A, "T" LD (DE), A INC DE LD A, "Y" LD (DE), A INC DE LD A, "R" LD (DE), A INC DE LD A, "Y" LD (DE), A INC HL INC DE DEC BC JP PROWER FIV LD A, "P" LD (DE), A INC DE LD A, "Y" LD (DE), A INC DE LD A, "A" LD (DE), A INC DE LD A, "T" LD (DE), A INC DE LD A, "'" LD (DE), A INC HL INC DE DEC BC JP PROWER SIX LD A, "C" LD (DE), A INC DE LD A, "H" LD (DE), A INC DE LD A, "I" LD (DE), A INC DE LD A, "S" LD (DE), A INC DE LD A, "T" LD (DE), A INC DE LD A, "'" LD (DE), A INC HL INC DE DEC BC JP PROWER SEV LD A, "S" LD (DE), A INC DE LD A, "I" LD (DE), A INC DE LD A, "M" LD (DE), A INC HL INC DE DEC BC JP PROWER EIT LD A, "V" LD (DE), A INC DE LD A, "I" LD (DE), A INC DE LD A, "S" LD (DE), A INC DE LD A, "I" LD (DE), A INC DE LD A, "M" LD (DE), A INC HL INC DE DEC BC JP PROWER NIN LD A, "D" LD (DE), A INC DE LD A, "E" LD (DE), A INC DE LD A, "V" LD (DE), A INC DE LD A, "I" LD (DE), A INC DE LD A, "A" LD (DE), A INC DE LD A, "T" LD (DE), A INC DE LD A, "'" LD (DE), A INC HL INC DE DEC BC JP PROWER AFT1 CP "A" JP Z, MIN63 CP "B" JP Z, MIN63 CP "AND" JP NC, GREATI JP NO_I_U GREATI CP "P" JP NC, GREATR JP MIN63 GREATR CP "F" JP NC, NO_I_U JP MIN62 NO_I_U CP "B" JP Z, MIN44 CP "F" JP Z, MIN60 CP "D" JP Z, MIN64 CP "Z" JP Z, MIN45 CP "F" JP Z, MIN78 CP "X" JP Z, MIN77 CP "C" JP Z, MIN83 CP "Y" JP Z, MIN66 CP "L" JP Z, MIN60 CP "E" JP Z, MIN88 CP "E" JP Z, YE CP "F" JP Z, ZH CP "H" JP Z, CZ CP "R" JP Z, CH CP "u" JP Z, CHE CP "U" JP Z, YU CP "H" JP Z, YA CP "E" JP Z, YO CP "e" JP Z, YO CP "Ji" JP Z, YE CP "Ji" JP Z, YE CP "°" JP Z, YI CP "∙" JP Z, YI PRB CP # 00 JR Z, N0 LD A, # 20 N0 JP ONECH RUSL2 CP "E"; F0 JP NC, AFT1 SUB # 50 JP AFT1 RUSL1 CP ""; B0 JP NC, AFT1 SUB # 20 JP AFT1 LATL CP "{"; 7B JP NC, AFT1 SUB # 20 JR N0 MIN174 SUB 1 MIN173 SUB 85 MIN88 SUB 5 MIN83 SUB 5 MIN78 SUB 1 MIN77 SUB 11 MIN66 SUB 2 MIN64 SUB 1 MIN63 SUB 1 MIN62 SUB 2 MIN60 SUB 15 MIN45 SUB 1 MIN44 SUB 44 JP ONECH YE LD A, "Y" LD (DE), A INC DE LD A, "E" JP KONEC YU LD A, "Y" LD (DE), A INC DE LD A, "U" JP KONEC YA LD A, "Y" LD (DE), A INC DE LD A, "A" JP KONEC YO LD A, "Y" LD (DE), A INC DE LD A, "O" JP KONEC YI LD A, "Y" LD (DE), A INC DE LD A, "I" JP KONEC ZH LD A, "Z" LD (DE), A INC DE LD A, "H" JP KONEC CZ LD A, "C" LD (DE), A INC DE LD A, "Z" JP KONEC CH LD A, "S" LD (DE), A INC DE LD A, "Z" JP KONEC CHE LD A, "S" LD (DE), A INC DE LD A, "Z" LD (DE), A INC DE LD A, "'" KONEC LD (DE), A INC HL INC DE DEC BC JP PROWER ; Module sound generation $ SAY LD HL, $ T_ADR DI CALL LEA69 EI RET LEA69 LD B, # BB LEA6B PUSH BC PUSH HL PUSH DE CALL $ R_KEY POP DE POP HL POP BC LD A, B LD C, B LD B, (HL) OR A RET Z LD A, C CP # 41 JP M, LEA9B CP # 5B JP P, LEA9B CP # 43 LD A, B JP NZ, LEA86 CP # 48 JP Z, LEA8C LEA86 CP # 27 LD A, C JP NZ, LEA90 LEA8C ADD A, # 1A LD B, # BB LEA90 PUSH BC PUSH HL CALL LEAC3 POP HL POP BC LEA97 INC HL JP LEA6B LEA9B LD DE, # 0000 CP # 2E JP Z, LEAB3 LD DE, # 8000 CP # 2C JP Z, LEAB3 LD DE, # 4000 CP # 20 JP NZ, LEAB9 LEAB3 CALL LEABC JP LEA97 LEAB9 JP LEA97 LEABC DEC DE LD A, D OR E JP NZ, LEABC RET LEAC3 LD BC, LEAF7 LD L, A LD H, # 2000 ADD HL, BC LD BC, LEB6C LD L, (HL) LD H, # 2000 ADD HL, BC LEAD1 LD A, (HL) AND # 0F LD C, A INC HL LD A, (HL) AND # 80 OR C LD C, A DEC HL LEADC LD A, (HL) RLCA RLCA RLCA AND # 07 PUSH HL JP Z, LEB1B LD DE, LED35 LD L, A LD H, # 2000 ADD HL, DE LD B, (HL) POP HL INC HL LD A, (HL) DEC HL PUSH HL RLA LD DE, LEC2E LEAF7 LD L, A LD H, # 2000 ADD HL, DE LD A, # 80 LEAFD PUSH AF AND (HL) JP Z, LEB04 LD A, # 10 LEB04 OUT (# FE), A LD A, (LEB33) LEB09 DEC A JP NZ, LEB09 POP AF DEC B JP Z, LEB1B OR A RRCA JP NC, LEAFD INC HL JP LEAFD LEB1B LD HL, ($ SPEED) EX DE, HL XOR A CALL LEABC DEC C LD A, C AND # 0F POP HL JP NZ, LEADC LD A, C RLA RET C INC HL INC HL JP LEAD1 LEB33 DEFB # 1C $ SPEED DEFB # 00, # 04 LEB36 DEFB ":",# ED, # 00 DEFB # 02, # 06, # 0A DEFB # 0E, # 10, # 12 DEFB # 16, # 1A, # 1C DEFB ""","'","*" DEFB "."," 2 "," 4 " DEFB "8", "B", "H" DEFB "J", "N", "P" DEFB "P", "V", # 1A DEFB "", "d", "f" DEFB "p", "t", "z" DEFB "|",# C2, # 84 DEFB # 86, # C2, # C2 DEFB # C2, # 88, # 8C DEFB # 92, # 94, # C2 DEFB # 9E, # A6, # A8 DEFB # AE, # B0, # C2 DEFB # C2, # 86, # BC LEB6C DEFB "6", # 81, "4" DEFB # 19, "1", # AB DEFB # 18, # 19, # 91 DEFB # C3, "4", # 19 DEFB "1", # E0, "6" DEFB # 84, # 92, # E3 DEFB "5", # 19, "Q" DEFB # 9C, "1", "1" DEFB "4", # 96, "6" DEFB # 87, "3 ",":" DEFB "2 ","="," 2" DEFB # C0, # 18, # 19 DEFB "Q", # 9C, "3" DEFB """," 1 ", # B1 DEFB "1", "1", "6" DEFB # A5, "1", "1" DEFB "6", # A8, "6" DEFB # 8A, # 18, # 19 DEFB "1", # AB, # 18 DEFB # 19, "Q", # 1C DEFB "4", "1", "2" DEFB "4", "2", # B7 DEFB """,# 10, # 13 DEFB # 19 ,"!",# AE DEFB # 92, # C3, # 18 DEFB # 19, "1", # E0 DEFB "6", # 8D, "4" DEFB "1", "2", "4" DEFB "2", # B7, # 18 DEFB # 19, "q", # 1C DEFB # 92, # C3, "2" DEFB "1", "2", "C" DEFB "2", "D", "2" DEFB # C5 ,"?",# 81 DEFB "4", # 19, "1" DEFB "+"," 3 ",":" DEFB "2 ","="," 2" DEFB # C0, # 18, # 19 DEFB # 91, # D3, "3" DEFB # 19, "q", "m" DEFB "2", # 93, ">" DEFB # 84, # 92, "c" DEFB "3 ",":"," 2" DEFB "="," 2 ", # C0 DEFB # 92, # F3, ">" DEFB # 87, "1", "1" DEFB "6 ","%"," 1 DEFB "1", "5 ","%" DEFB "2", # 93, ">" DEFB # 8A, # 18, # 19 DEFB "a ","+"," 3" DEFB ":"," 2 ","=" DEFB "2", # C0, # 13 DEFB # 19, "2 ","`" DEFB # 13, # 19, "q" DEFB # DD, # 92, # D3 DEFB # 18, # 19, "q" DEFB "m", "2", # 93 DEFB ">",# 8D, "4" DEFB "1", "2", "4" DEFB "2", "7", "3" DEFB ":"," 2 ","=" DEFB "2", # C0, "2" DEFB "S", "2", "T" DEFB "2", # D5 LEC2E DEFB # 1A, # 99, # E1 DEFB # C3, # E1, # C7 DEFB # 8F, # 0F, # F8 DEFB # 03, # 0F, # 07 DEFB # C1, # E3, # FF DEFB "@",# 17, # FF DEFB # 00, # 03, # F8 DEFB "|",# C1, # F1 DEFB # F8, # 03, # FE DEFB # 00, "", # FC DEFB # 00, # 03, # F8 DEFB # 0F, # 09, # F1 DEFB # FE, # 03, # EF DEFB "@",# 17, # FF DEFB # 00, # 03, # E1 DEFB "", "5", # C5 DEFB # AA, "5" # 00 DEFB # 00, # 00, # 00 DEFB # 00, # 00, ">" DEFB # 8E, "8", "s" DEFB # CF, # F8, "x" DEFB # C3, # DF, # 1C DEFB # F1, # C7, # FE DEFB # 03, # C0, # FF DEFB # 00, # 00, # FF DEFB # F8, # 00, "" DEFB # F8, # 03, # FF DEFB # F0, # 01, # FF DEFB # E0, # 03, # AA DEFB # CA, "Z", # D5 DEFB "!","=",# FE DEFB # 1F, # F8, # 00 DEFB # 00, # 1F, # FF DEFB # FC, "", # 00 DEFB # 00, # 03, # FF DEFB # FF, # 08, "y" DEFB # 00, # 02, # FF DEFB # E1, # C7, # 1F DEFB # E0, # 03, # FF DEFB # D0, # 01, # FF DEFB # F0, # 03, "" DEFB # 01, # FA, "_" DEFB # C0, # 07, # F8 DEFB # 0F, # C0, # FF DEFB # 00, "B", # AA DEFB # A5, "U", "Z" DEFB # AA, # AA, "Z" DEFB # A5, "Z", # AA DEFB "U", "U", # AA DEFB # AA, # A5, "U" DEFB # AA, "Z", # AA DEFB # A5, "U", # AA DEFB # AA, # A5, "U" DEFB # AA, # AA, "U" DEFB # A5, # A5, # AA DEFB # A5, # B7, "f" DEFB "l", # D8, # F9 DEFB # B3, "l", # AD DEFB "7", "7", "f" DEFB # FC, # 9B, # 87 DEFB # F6, # C0, # D3 DEFB # B6 ,"`",# F7 DEFB # F7 ,">"," M " DEFB # FB, # FE, "]" DEFB # B7, # DE, "F" DEFB # F6, # 96, # B4 DEFB "O", # AA, # A9 DEFB "U", # AA, # AA DEFB # A5, "i", "Y" DEFB # 9A, "j", # 95 DEFB "U", # 95, "U" DEFB "j", # A5, "U" DEFB # A9, "M", "f" DEFB "j", # 92, # EC DEFB # A5, "U", # D2 DEFB # 96, "U", # A2 DEFB # BA, # CD, # 00 DEFB "f", # 99, # CC DEFB "g", "1", # 8E DEFB "f", "9", # A6 DEFB "k", # 19, "f" DEFB "Y", # C6, "q" DEFB # 09, "g", # 19 DEFB # CB, # 01, "q" DEFB # CC, "s", # 19 DEFB # 99, # CC, # C6 DEFB "g", # 19, # 9A DEFB # C6, "Y" LED35 DEFB # 00 ,"."," Z " ; The end of the source. === Cut ^ ===. P.S. I did not stay on the sidelines and try to understand with these sources, though not in the Is-Dos-e. Yours - Vladimir Wlodek Black.
Other articles:
Similar articles:
В этот день... 23 November