No permission to create posts
RSS

HLAS - Prográmek na syntézu řeči přes pípák

06/12/2017 - 19:53
Avatar
Praha

Možná to neznáte, možná ano. A možná vás překvapí i velikost souboru - 921 bajtů. Odkaz ke stažení http://srotiste.powerack.cz/ke-stazeni/

Pardon, špatná kategorie. Myslel jsem, že jsou tu i programy :-)

Powerack ©1982 - 20??

Sestava pro testování ISA, PCI a AGP karet:
MB: ZIDA 2A6LFZ1A (Tomato) CPU: Intel Pentium III 550 MHz RAM: 512MB (2x 256MB SDRAM 133) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB VIBRA 16 Net: 3Com 3C905B-TX

Dědeček: PC XT s NEC V20 + XTIDE + 1GB CF + TVGA8900C 1MB + 8" B&W CRT.

06/12/2017 - 21:46
Avatar

V poho, přesunuto. Prográmek myslím znám, nebo jsem měl něco velmi podobného, nejmenovalo se to hlas, ale mluv.

06/12/2017 - 21:48
Avatar
Praha

Mluv byl tuším větší. Tohle je opravdu minimalistický ;-) Tuším, že ho tahám z disku na disk už od roku 97 - 98, kdy jsem ho jako šikovnou součást programového vybavení našel v jedné 286ce.

Powerack ©1982 - 20??

Sestava pro testování ISA, PCI a AGP karet:
MB: ZIDA 2A6LFZ1A (Tomato) CPU: Intel Pentium III 550 MHz RAM: 512MB (2x 256MB SDRAM 133) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB VIBRA 16 Net: 3Com 3C905B-TX

Dědeček: PC XT s NEC V20 + XTIDE + 1GB CF + TVGA8900C 1MB + 8" B&W CRT.

06/12/2017 - 23:00
Avatar
LubikCZ

HLAS jsem měl na Didaktiku M. Běh programu se dal zastavit a v "pouku" se dala nastavit rychlost řeči :)

HLAS.jpg

sp_PlupAttachments Attachments

Každý počítač je hloupý nebo chytrý pouze tak, jako jeho majitel.

07/12/2017 - 00:02
Avatar
Praha

Mno každopádně ať se to původně jmenovalo jakkoliv, já to našel jako hlas.com. Doporučuji vyzkoušet například na XTčku (10 MHz bude tak akorát). Mělo by to být čisté, tzn bez virů.

Powerack ©1982 - 20??

Sestava pro testování ISA, PCI a AGP karet:
MB: ZIDA 2A6LFZ1A (Tomato) CPU: Intel Pentium III 550 MHz RAM: 512MB (2x 256MB SDRAM 133) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB VIBRA 16 Net: 3Com 3C905B-TX

Dědeček: PC XT s NEC V20 + XTIDE + 1GB CF + TVGA8900C 1MB + 8" B&W CRT.

12/02/2018 - 22:21
Avatar

Ahoj,

tak jsem si s hlasem o víkendu pohrál a disassembloval jsem ho.

Lehce okomentovaný zrdojáček je k dispozici zde:

https://github.com/berk76/hlas

Po kompilaci je binárka nachlup (na bit) shodná s originálem.

Snad se někomu bude hodit a třeba vyrobí nějakou mluvící hru :-)

14/02/2018 - 01:40
Avatar
Praha

Aha, pěkné. Myslíš, že by bylo možné to nějak upravit, aby to bylo použitelné na dnešních strojích? Jinak čím jsi to dekompiloval? Rád bych něco podobného spáchal v QB, ale už jsem zapomněl víc, než jsem se naučil :-)

Powerack ©1982 - 20??

Sestava pro testování ISA, PCI a AGP karet:
MB: ZIDA 2A6LFZ1A (Tomato) CPU: Intel Pentium III 550 MHz RAM: 512MB (2x 256MB SDRAM 133) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB VIBRA 16 Net: 3Com 3C905B-TX

Dědeček: PC XT s NEC V20 + XTIDE + 1GB CF + TVGA8900C 1MB + 8" B&W CRT.

14/02/2018 - 08:24
Avatar

Ahoj, upravit ten program byl trochu i záměr ale nebude to tak jednoduché.

Nicméně hned na začátku je malá rutina, která měří počet cyklů které procesor udělá za sekundu. Z toho pak spočítá dva koeficienty k1 a k2. Tak, že počet cyklů vydělí 1024 a v případě k1 vynásobí 3kou a pro k2 vynásobí 210kou. Ty koeficienty pak používá rutina pro moulaci hlasu.

Pokud máte možnost ten zdroják přeložit tak si můžete zaexperimentovat a změnit násobitele 3 a 210 které jsou uložené jako počáteční hodnoty v proměnných k1 a k2.

Problém je v tom že tato metoda měření rychlosti procesoru na dnešních procesorech které mají spekulativní vykonávání kódu, pipelining atd není ideální.

Při disassemblování jsem používal starý dobrý turbo debuger.

14/02/2018 - 09:15
Avatar
MilasPce
Pardubice

Asi by stálo za úvahu přeprogramovat to tak, aby místo čekacích smyček používal přerušení časovače, pak by to jelo na všech kompech stejně a nemusela by se měřit rychlost. Otázka je, jestli lze nastavit tak rychlé přerušení, aby to stíhalo generovat zvuk.

Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.

Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...

14/02/2018 - 09:36
Avatar

No přesně - timer 0 tiká 1/18 sekundy což je asi málo. Všimnul jsem si že frekvence pípáku je generovaná jen zalojováním a odpojováním pípáku místo aby se nastavovala frekvence na timeru 2 kde je pípák připojený. To podle mě ukazuje na to že ten program nebyl původně napsaný pro ibm pc. Řešením by tedy mohlo být použití timeru 2 pro generování frekvence. To ale znamená dobře se zorientovat v těch datech a není to už tak triviální úprava.

14/02/2018 - 10:10
Avatar
MilasPce
Pardubice

Problém bude v tom že se nejedná jen o generování kmitočtu, ale bude se měnit i střída signálu.

Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.

Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...

14/02/2018 - 10:53
Avatar
MilasPce
Pardubice

Timer v PC jde přeprogramovat z 18,2 Hz (konstanta 65535 default) až do rychlosti 1,193182 MHz (konstanta 1), takže pokud bude rychlý procesor, aby stačil všechno přepočítat a nehrabal se jen v přerušení, tak lze zvuk generovat v pohodě. Myslím, že na generování analogového signálu impulzní metodou by bylo ideální 182kHz a jednou za 10 000 cyklů zavolat původní procedury, aby šli správně hodiny atd.

Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.

Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...

14/02/2018 - 10:59
Avatar
MilasPce
Pardubice

Na řeč by stačilo možná i 10x míň, tedy 18,2kHz

Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.

Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...

14/02/2018 - 11:46
Avatar

To sedí.

Timery ma pcčko 3.

Timer0 řídí čas v počítači pokud mu změní timeout tak půjdou špatně hodiny

 

Timer1 řídí refresh paměti. Na něj se sahat tedy nedá.

 

Timer2 je k dispozici ale připojuje se na něj pípák. Pokud budeme měnit jeho frekvenci tak pípák bude pípat různě vysoko. S tím je potřeba počítat.

14/02/2018 - 13:12
Avatar
Praha

Škoda, že mi assembler nikdy nic neříkal. Makal jsem maximálně v QB, pak trošku v pascalu a to je asi tak všechno. Nedala by se z toho vyrobit něco jako "knihovna" pro QB? Možná bych toho po vás chtěl moc, ale hodilo by se to. 

Powerack ©1982 - 20??

Sestava pro testování ISA, PCI a AGP karet:
MB: ZIDA 2A6LFZ1A (Tomato) CPU: Intel Pentium III 550 MHz RAM: 512MB (2x 256MB SDRAM 133) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB VIBRA 16 Net: 3Com 3C905B-TX

Dědeček: PC XT s NEC V20 + XTIDE + 1GB CF + TVGA8900C 1MB + 8" B&W CRT.

14/02/2018 - 17:41
Avatar

Asi by to šlo. Ale není to nuda mít knihovnu v QB? Já s tím assemblerem taky začal tak čtyři neděle zpátky :-)

15/02/2018 - 01:00
Avatar
Praha

Naopak, dá se to pak nalinkovat prakticky k čemukoliv.

A když se upraví timer, aby to "mlelo" na každým stroji stejně rychle, bude to paráda.

Jasně že by ta syntéza snesla ještě i další úpravy, ale osobně mi stačí, aby to frčelo všude stejně rychle.

No a pokud jde o assembler, myslím, že pro moje účely to není ono. Zůstanu u svého upraveného QB.

Powerack ©1982 - 20??

Sestava pro testování ISA, PCI a AGP karet:
MB: ZIDA 2A6LFZ1A (Tomato) CPU: Intel Pentium III 550 MHz RAM: 512MB (2x 256MB SDRAM 133) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB VIBRA 16 Net: 3Com 3C905B-TX

Dědeček: PC XT s NEC V20 + XTIDE + 1GB CF + TVGA8900C 1MB + 8" B&W CRT.

17/02/2018 - 11:46
Avatar

Objevil jsem hezký článek popisující zapojení timeru2 a speakeru

Schema je na Obr. 5-4

http://www.dnp.fmph.uniba.sk/~kollar/prak_asm/deb_5.htm

Snažím se využít timer 2 pro čekání, ale nefunguje mi to. Nevím zda něco peřhlížím, nebo možná jen nefunguje v DosBoxu a na reálném železe by fungovalo?

https://gist.github.com/berk76/922c654fcbb22c9c2492ee722ba161ab

17/02/2018 - 15:05
Avatar
Praha

Možná by stálo za námahu napsat ten program znovu s využitím získaných znalostí, než ho upravovat. Ale já se do toho pouštět nebudu, protože moje znalosti assembleru končí u první instrukce. Pokud by to ale šlo napsat v QB (neříkám že nejde, jen jsem nezjistil jak), pak by to bylo o hodně jednodušší, protože prakticky jakýkoliv prográmek se dá přiložit k dalšímu jako knihovna. Tedy je nutné to přeložit jako knihovnu a správně nalinkovat.

Powerack ©1982 - 20??

Sestava pro testování ISA, PCI a AGP karet:
MB: ZIDA 2A6LFZ1A (Tomato) CPU: Intel Pentium III 550 MHz RAM: 512MB (2x 256MB SDRAM 133) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB VIBRA 16 Net: 3Com 3C905B-TX

Dědeček: PC XT s NEC V20 + XTIDE + 1GB CF + TVGA8900C 1MB + 8" B&W CRT.

17/02/2018 - 18:35
Avatar
MilasPce
Pardubice

je mi divný že waitc čeká počet cyklů v CX, když v podprogramu waitc se do registru CX vůbec nezasahuje.

Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.

Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...

17/02/2018 - 18:46
Avatar
MilasPce
Pardubice

čítac 2 nastavuješ s konstantou 210 to je 1,19 MHz /210= 5,66kHz.

Když pak testuješ v proceduře waitone na 5-tém bitu úroveň a čekáš na změnu stane se tak za 0,00017 sec. tak to ani nemůžeš postřehnout že se něco stalo.

Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.

Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...

17/02/2018 - 19:12
Avatar
MilasPce
Pardubice

MilasPce napsal(a)
je mi divný že waitc čeká počet cyklů v CX, když v podprogramu waitc se do registru CX vůbec nezasahuje.  

Aha CX snižuje instrukce LOOP tak to je dobře.

Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.

Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...

18/02/2018 - 12:15
Avatar

MilasPce napsal(a)
čítac 2 nastavuješ s konstantou 210 to je 1,19 MHz /210= 5,66kHz.

Když pak testuješ v proceduře waitone na 5-tém bitu úroveň a čekáš na změnu stane se tak za 0,00017 sec. tak to ani nemůžeš postřehnout že se něco stalo.  

Nefunguje to ani když nastavím countdown 65535 což je těch 18,2Hz. Chyba bude někde jinde. Buď dělám něco špatně, nebo je to tak neobvyklé použití, že ho DosBox nepodporuje. Nemám teď bohužel prostor abych vytáhnul svou krásnou 386-ku a vyzkoušel to na ní.

18/02/2018 - 13:51
Avatar
Praha

Pošli přeloženej com soubor a já to checknu. Mám tady na stole svou 386, takže stačí jen zapnout...

Powerack ©1982 - 20??

Sestava pro testování ISA, PCI a AGP karet:
MB: ZIDA 2A6LFZ1A (Tomato) CPU: Intel Pentium III 550 MHz RAM: 512MB (2x 256MB SDRAM 133) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB VIBRA 16 Net: 3Com 3C905B-TX

Dědeček: PC XT s NEC V20 + XTIDE + 1GB CF + TVGA8900C 1MB + 8" B&W CRT.

18/02/2018 - 20:36
Avatar
MilasPce
Pardubice

No myslím, že ani když to bude 18,2Hz tak si ani nevšimneš že ten prográmek čekal bo je to 0,05sec.

Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.

Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...

No permission to create posts
Časové pásmo: Europe/Prague

Nejvíce uživatelů online: 351

Právě online: P8j6
13 Host(é)

Právě prohlíží tuto stránku:
1 Host(é)

Nejaktivnejší uživatelé:

LubikCZ: 2074

Sany: 1486

Neny: 1133

MilasPce: 1096

Logout: 821

Powerack: 769

Statistiky uživatelů:

Hosté: 14

Členové: 450

Moderátoři: 0

Administrátoři: 1

Statistiky fóra:

Skupiny: 5

Fóra: 24

Témata: 1117

Příspěvky: 18886

Nejnovější uživatelé:

Richmond, zed, P8j6, Killian, Turek124, vinton, virtual_nomad, laserdance, šmoula, JohnyCZ, PetrT, WizardSWidlema, jezevec_lesni, jvempire, pavelm

Administrátoři: Sledge: 4739

SINTECH-SHOP.CZ