Avatar

Zvažte možnost registrace, zatím jste zde jako
HOST

sp_LogInOutPřihlásit sesp_Registration Registrovat
No permission to create posts
RSS sp_TopicIcon
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 a PCI karet:
MB: GigaByte GA-586HX CPU: Intel Pentium-MMX 233 MHz (takt 200 MHz) RAM: 192 MB (6x 32 MB EDO 60ns) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB AWE64 Net: 3Com 3C905B-TX

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 a PCI karet:
MB: GigaByte GA-586HX CPU: Intel Pentium-MMX 233 MHz (takt 200 MHz) RAM: 192 MB (6x 32 MB EDO 60ns) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB AWE64 Net: 3Com 3C905B-TX

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.jpgImage Enlarger

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 a PCI karet:
MB: GigaByte GA-586HX CPU: Intel Pentium-MMX 233 MHz (takt 200 MHz) RAM: 192 MB (6x 32 MB EDO 60ns) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB AWE64 Net: 3Com 3C905B-TX

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 a PCI karet:
MB: GigaByte GA-586HX CPU: Intel Pentium-MMX 233 MHz (takt 200 MHz) RAM: 192 MB (6x 32 MB EDO 60ns) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB AWE64 Net: 3Com 3C905B-TX

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 a PCI karet:
MB: GigaByte GA-586HX CPU: Intel Pentium-MMX 233 MHz (takt 200 MHz) RAM: 192 MB (6x 32 MB EDO 60ns) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB AWE64 Net: 3Com 3C905B-TX

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 a PCI karet:
MB: GigaByte GA-586HX CPU: Intel Pentium-MMX 233 MHz (takt 200 MHz) RAM: 192 MB (6x 32 MB EDO 60ns) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB AWE64 Net: 3Com 3C905B-TX

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 a PCI karet:
MB: GigaByte GA-586HX CPU: Intel Pentium-MMX 233 MHz (takt 200 MHz) RAM: 192 MB (6x 32 MB EDO 60ns) 
HDD: 4 GB CF 133x Video: ATI Rage XL 8 MB Sound: SB AWE64 Net: 3Com 3C905B-TX

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č ...

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

Nejvíce uživatelů online: 67

Právě online:
17 Host(é)

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

Nejaktivnejší uživatelé:

LubikCZ: 2061

Sany: 1486

Neny: 1133

MilasPce: 835

Logout: 688

Clous: 638

Statistiky uživatelů:

Hosté: 14

Členové: 405

Moderátoři: 0

Administrátoři: 1

Statistiky fóra:

Skupiny: 5

Fóra: 24

Témata: 1037

Příspěvky: 16510

Nejnovější uživatelé:

OnlySoft, tommel, JIVA, Rocys, zetora, wylda, BobocoCZ, okband, Popy, pov, verticalbytes, Mircea Ion, Jpx72, OlegBoums, Brettnok

Administrátoři: Sledge: 4078