Beszélő Spectrum - beszédszintetizátorok

ZX Spectrum hardverek és illesztők...
Avatar
Bali
Alapító tag
Hozzászólások: 2329
Csatlakozott: 2012.01.06. 13:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Bali » 2012.01.25. 11:32

Visszatérve kicsit a SVC-hez. Most olvasom, hogy támogatja a Currah MicroSpeech hardvert. Használt már ilyet valaki? Kíváncsi lennék mennyire jó a beszéd minősége. (Asimo)
Ha már így felvetődött a téma, akkor próbáljuk már összeszedni, hogy milyen beszédszintetizátorok készültek Spekihez. Jómagam is rendelkezem 2 ilyen beszéd szintetizátorral, az egyik a CurrahMicroSpeech. Szerintem az is jó lenne, ha lenne egy listánk, hogy mely eszközöket, mely programok támoatták, azaz használták.

A következő Speccyalista napon pedig kibeszéltethetnék a Spekit. :)

Bali
-= Bali =-
(c) 1983-2017 Evil-Soft

Avatar
Zozosoft
Hozzászólások: 793
Csatlakozott: 2012.01.06. 14:03
Kapcsolat:

Re: Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Zozosoft » 2012.01.25. 12:25

Bali írta: A következő Speccyalista napon pedig kibeszéltethetnék a Spekit. :)
Meg az EP-t :-) Ott a Speakeasy: http://enterprise.iko.hu/brochures/ENTE ... AKEASY.jpg
Ami ugyanazt General Instruments SP-0256 beszéd processzort használja, mint a Currah MicroSpeech. éppen ezért érdekelne részletesebben is, hogyan is működik a Currah, hogy az azt használó játékokat EP-n is lehessen beszéltetni :)

Itt van amit az SP-0256-os IC-ről találtam. Van lehetőség a beépített hangokat használni (EP-s verzióban így van), vagy külső ROM-ot rákötni, amiben nagyobb, jobb minőségű hangminták lehetnek. Mivel a Currah-ról nem találtam belső fotót, így nem tudni, ott melyik verziót alkalmazták. Bali! Nem akarod lefotózni a tiédet belülről? :)
sp0256.zip
(53.28 KiB) Letöltve 38 alkalommal.

Avatar
Bali
Alapító tag
Hozzászólások: 2329
Csatlakozott: 2012.01.06. 13:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Bali » 2012.01.25. 20:07

Íme a Currah mSpeech bele:
CurrahmSpeech_inside.jpg
-= Bali =-
(c) 1983-2017 Evil-Soft

Avatar
Asimo
Hozzászólások: 147
Csatlakozott: 2012.01.09. 18:49

Re: Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Asimo » 2012.01.25. 20:28

Úgy látom C64-re is volt Currah Speech 64. Ezen az oldalon több C64-re gyártott beszédszintetizátor hardver található. Ami külön extra, hogy meghallgatható mintákat is feltettek az oldalra. Ezek alapján elég gyengék a korabeli eszközök. Az oldal vége felé vannak a jobbak. Sőt, ezek alapján a Spectrum Voice Chess saját szoftveres beszédszintije egész jó!

http://www.mycommodore64.com/page/2/

Egy ilyen Spectrum-os oldal kellene... Még nem találtam.

Avatar
Zozosoft
Hozzászólások: 793
Csatlakozott: 2012.01.06. 14:03
Kapcsolat:

Re: Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Zozosoft » 2012.01.26. 17:01

Bali írta:Íme a Currah mSpeech bele:
CurrahmSpeech_inside.jpg
Na ezzel nem lettünk okosabbak, plusz két spéci IC, amiről semmi infót nem találni :-( de ahogy nézem a C64 verzió is elég hasonló.

Avatar
Zozosoft
Hozzászólások: 793
Csatlakozott: 2012.01.06. 14:03
Kapcsolat:

Re: Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Zozosoft » 2012.01.26. 17:18

Gyuri! Véletlenül olyan programot még nem fejtettél vissza, amiben van Currah beszélő rutin?

Avatar
Asimo
Hozzászólások: 147
Csatlakozott: 2012.01.09. 18:49

Re: Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Asimo » 2012.01.26. 23:31

Itt találtam egy példát, hogyan kell asm-ből programozni: http://www.retroisle.com/sinclair/zxspe ... speech.php

Azt írja, miután bekapcsoljuk a gépet, a Currah uSpeech leviszi a RAMTOP-ot 65111-re (48K-s gépnél), így hoz létre magának egy 256 bájtos puffert az allofónok számára. Ezt növelhetjük, pl. CLEAR 65000-rel plusz 111 bájttal. Az eszköz figyeli a RAMTOP-ot, és ha túl magasra állítjuk (ami már beleérne a saját memóriaterületére), akkor az eszköz újra-inicializálja magát, de a BASIC program nem vész el.

Úgy tűnik végtelen egyszerű a használata. A 65364/65 címeken kell beállítani a puffer címét, amit a hw automatikusan növel, ha kiejtett egy allofónt. A puffer vége 65361-es cím. A puffer pointer nem mutathat a RAMTOP alá, különben elszáll a gép. A weboldalon fel vannak sorolva az allofónokhoz tartozó bájtkódok is (+1bit intonáció).

Itt egy egyszerű példaprogram, ami a hello-t mondja ki:

Kód: Egész kijelölése

      ld hl, Data
      ld de, 65361
      ld b, 4
Loop: ld a, (hl)
      ld (de), a
      inc hl
      dec de
      djnz Loop
      ex de, hl
      ld (65364), hl
      ret

Data: defb 27, 71, 62, 53

Végül, nem tudtam, miért kell a MIC-be is bekötni az eszközt. Kiderült, hogy a Speaker hangját is kivezeti így a TV-re.

Avatar
Asimo
Hozzászólások: 147
Csatlakozott: 2012.01.09. 18:49

Re: Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Asimo » 2012.01.26. 23:58

Zozosoft írta:Na ezzel nem lettünk okosabbak, plusz két spéci IC, amiről semmi infót nem találni :-( de ahogy nézem a C64 verzió is elég hasonló.
Az egyik IC ROM (keyword speech?), a másik pedig egy ULA. Ezek alapján úgy gondolom, a General Instrument kifejezetten ehhez az eszközhöz (és Spectrum-hoz) gyártotta ezeket az IC-ket. Ennyit tudtam meg egy kis keresgélés után. Letölthető rom binárist eddig nem találtam (csak említést róla).
A Currah ULA minden CPU /WR jelre éled, így figyeli, ha épp a RAMTOP-ot piszkálják (23730-as cím). Plusz szinkronizálnia is kell magát a CPU r/w műveleteihez, hogy ki tudja olvasni a saját pufferét. De ez csak spekuláció. :)

Most látom, hogy WoS-on szebben tördelve is megtalálható az előző leírás:
ftp://ftp.worldofspectrum.org/pub/sincl ... Manual.txt

Avatar
Pgyuri
Alapító tag
Hozzászólások: 541
Csatlakozott: 2012.01.06. 13:34

Re: Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Pgyuri » 2012.01.27. 00:07

üdv,

A Booty játékot fejtettem vissza teljesen, mert érdekelt mit is tud. Kijavítottam benne egy hibát, meg egy érdekességet találtam (a tipshop-ban megtalálható). Ennek a játénak az volt a különlegessége, hogy volt benne egy hidden game, ami csak úgy jött elő, ha Currah volt a géphez csatlakoztatva.
Talán az egyetlen ilyen program volt.

A leírást jó volt olvasni, végre ez az eszköz is világos lett...csak érteném, hogy mi a fenéért nem a printer buffert használta. Úgyse tolongtak a nyomtatót a beszéddel együtt használni akarók.

Mindenesetre megtaníthatnánk énekelni legközelebb, mert ha jól olvastam, megoldható.

C64-re emlékezve, az ottani beszédszintetizátor nagyon tetszett. Szépen beszélt. Kedvencünk az volt, mikor beadtuk neki a Boci, boci tarka, se füle se farka szöveget és ékes angolsággal ránk öntötte a bászáj bászáj táká szi fjuli szi fáká választ :D

Pgyuri

Avatar
Zozosoft
Hozzászólások: 793
Csatlakozott: 2012.01.06. 14:03
Kapcsolat:

Re: Beszélő Spectrum - beszédszintetizátorok

Hozzászólás Szerző: Zozosoft » 2012.01.27. 13:36

Asimo írta: Az egyik IC ROM (keyword speech?), a másik pedig egy ULA. Ezek alapján úgy gondolom, a General Instrument kifejezetten ehhez az eszközhöz (és Spectrum-hoz) gyártotta ezeket az IC-ket. Ennyit tudtam meg egy kis keresgélés után. Letölthető rom binárist eddig nem találtam (csak említést róla).
A Currah ULA minden CPU /WR jelre éled, így figyeli, ha épp a RAMTOP-ot piszkálják (23730-as cím). Plusz szinkronizálnia is kell magát a CPU r/w műveleteihez, hogy ki tudja olvasni a saját pufferét. De ez csak spekuláció. :)
Mindezt puszta hw-ből nagyon-nagyon nehezen tudom elképzelni! Szerintem 99.99% hogy valami ROM program futkos a háttérben, és az figyeli a RAM-ba írt értékeket, majd programozza magát a beszélő hardvert. ROM program pedig van, már a bejelentkező képen is látszik:
currahscr.png
WOS-ról lementettem még pár éve, amikor még nem volt letörölve:
currah.rom.zip
(1.9 KiB) Letöltve 39 alkalommal.
A 2K-s méret megfelel a 24 lábú középső IC-nek. Viszont elég zagyvaságnak tűnik, a bejelentkező képen látható szövegek se olvashatóak benne, ebből látszik, hogy ez esetben is valami adat és/vagy címvezeték cserés védelemmel állunk szembe (ahogy az van a Beta Disk-nél és a SpeccyDOS-nál is). Ennek megfejtéséhez ki kéne mérni a ROM IC bekötését a busz csatakozóhoz.

Az a harmadik nagy "ULA" IC a lapozgatást csinálhatja (egy marék 74LS helyett), az lenne a kérdés, hogy pontosan milyen paraméterek alapján.
Alapvetően azt tippelném, hogy a ROM megszakítási rutinjába lenne érdemes beláncolni a CURRAH rutinját, viszont ez azt jelentené, hogy a beszélő játékoknak hagyni kell az eredeti IM1 ROM rutint futni. Vagy okos programozók megfejtették, hogyan kell meghívni saját megszakítási rutinból a beszélődobozét. Vagy esetleg a közvetlen hw programozást...
A hozzászólást 1 alkalommal szerkesztették, utoljára Zozosoft 2012.01.27. 13:45-kor.

Válasz küldése

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég