Magyar nyelvű gépi fölolvasás.A következőkben az ahhoz szükséges lépéseket írom le, hogy egy linux rendszeren a gép fölolvasson egy tetszőleges magyar nyelvű szöveget (mbrola és az itt leírt összes program működik windowson is, ehhez lásd mbwin.htm ).
1. Letöltés:Az mbrola szövegfelolvasó rendszer a weben a http://tcts.fpms.ac.be/synthesis/mbrola.html oldalon található. Innen kell a letöltési oldalról: http://tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html a linuxon végrehajtható programot: http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip -t letölteni, és a magyar hangot: http://tcts.fpms.ac.be/synthesis/mbrola/dba/hu1/hu1.zip
2. Installálás:mbr301.zip-et kipakolás után pl. a /usr/local/mbrola direktoriba kell irni, és ezalatt kell egy hu1 aldirektorit létrehozni, ahova a hu1 adatbankot kell kopírozni, azaz a hu1.zip-et ide kipakolni, a lényeg a hu1 adatbank fájl a /usr/local/mbrola/hu1 direktoriban. A folyamat a linuxon így néz ki (/en/direktorim a lehozási direktorit jelenti): bash# cd /usr/local bash# mkdir mbrola bash# cd mbrola bash# unzip /en/direktorim/mbr301h.zip bash# unzip /en/direktorim/hu1.zip
A /usr/local/bin direktoriban egy szimbolikus linket kell a végrehajtható mbrola állományra tenni, mint superuser:
3. Szöveg-fonéma átalakításMajd a szöveg-fonéma átalakító szükséges, ez lehozható: http://tkltrans.sf.net/magyar/hunpho.tar.gz A szöveg-fonéma átalakítóhoz szükséges a perl interpreter és az awk segédprogram.
Működési feltételek:
2. és 3. linux szkript formájában (do.sh):
xttp.pl paramétere, melyet nem kötelező megadni, lehet m, f1, f2 vagy f3. A paraméter hiánya a legmélyebb női hangot jelenti, azaz megfelel az f1 paraméternek, f2 és f3 egyre magasabb hangokat jelent, m pedig férfihangot.
Ha egy tetszőleges szövegállományt sikeresen átalakítottál szöveg.pho formátumba, mbrola azt wav formátumú állománnyá alakítja, melyet egy tetszőleges hanglejátszó le tud játszani. A legegyszerűbben a
do.sh (vagy do2.sh) fölhívása a parancssorból két példával illusztrálva a szoveg.txt állományra:
4. További szöveg-fonéma átalakító segédeszközökA signe2test.pl szkript Demeter F. Tamás munkája, és a különféle beszédjeleket, mint kettőspont vagy per jel alakítja szöveggé, valamint szűri a html paramétereket. Ennek hívása a do2.sh szkriptben történik. Köszönet neki és Gyuris Szabolcsnak a szam.awk szkript kijavításához nyújtott segítségükért. Gyuris Szabolcs munkája a szintén mellékelt normalizal.pl szkript, amely perl nyelvű számátalakító és előfeldolgozó perl-barátoknak. Ehhez a programhoz installálni kell a Text::Iconv perl modult, mely általában a linux disztribúciók részeként installálható. A szintén mellékelt uml.awk program akkor segít, ha a fölolvasandó szöveg UTF8 vagy email (=x) kódolásban van.
4. Az mbrola program kapcsolói:
5. A .pho fájlok formátuma és működése.Egy minta .pho fájl így néz ki:
_ 51 25 114
A .pho fájl az mbrola szintetizátor bemenő formátuma. Minden sor egy fonéma névvel kezdődik, azután jön a hosszúság (ms-ban), majd a hanglejtés (pitch) megadása, mely számpárokból áll: Az első szám a fonémán belüli hanglejtés kezdetét adja meg, a második a frekvenciát hertzben (Hz).
51 ms-nyi szünet, az 51 ms 25%-ánál a frekvencia 114 Hz lesz. A hanglejtési pontok egy lineáris hanglejtési görbét definiálnak. A hangerősség változtatására a .pho fájlon belül nincs lehetőség. A hangerősség változtatása lehetséges pl. a de6 és de7 hangadatbankokban; az ötlet annyi, hogy ezek a hangadatbankok megháromszorozva terjedelmüket, minden difonémát hangos és halk módban is bemondanak.
6. ÉneklésA mellékelt boci.txt állomány a boci-boci tarkát énekli. A további dalok a dam-dam (damdam.txt), a király és a bolond (bolond.txt), szeretnék szántani (szantani.txt). Az alaphangok frekvenciája hertzben:
Felhívása a segedeszkozok direktoriból: sh do.sh szoveg/boci.txt Éneklés négy oktávnyi távolságon lehetséges. A hangok cn, ciszn, dn, diszn, en, fn, fiszn, gn,giszn, an, aiszn, hn alakban adandók meg, az n szám, és a magasságot jelzi, 1 a legalacsonyabb, 4 a legmagasabb oktáv. A normál zenei á hang (440 Hz) jele a3. Minden hang előtt meg kell adni a hosszúságot, 1 a leghosszabb, 16 a legrövidebb. A formátum:
{Singing: 8,c2,8,e2,8,c2,8,e2,4,g2,4,g2}.
A "{Singing:" betűsorozatnak kell első helyen állni. Ezt követik a hosszúság/hang párok vesszővel elválasztva. A legvégső jelpárnak }.-nak kell lenni, a pont fontos a sor végén. A "{Singing:"-es sort követő sorban van az énekelendő szöveg, melynek ugyanannyi szótagból kell állnia, ahány hangot megadtunk, és ennek a végén is pontnak kell lennie. A "{Singing:"-et megelőzö szövegrészt ponttal kell lezárni (.), különben ez elnyelődik.
7. Egy mondat hanglejtésének grafikus ábrázolásaA http://pascal.kgw.tu-berlin.de/expressive-speech/online/synthesis/hungarian/en/ia-en.php oldalon van egy program, mely lehetővé teszi egy mondat hanglejtésének grafikus megtekintését. (Köszönet Astrid Paeschkének a berlini egyetemről a magyar adatbank integrálásáért!). Hasonlót segítséget ad a mellékelt show.pl perl illetve a graph5.pl program, mely a megadott mondatot egy grafikus állományba, show.pl:teszt.png graph5.pl:file3.png írja ki, melyet bármely böngészővel meg lehet tekinteni. Ezek az eszközök jobb fonetika kidolgozásában segítenek, azaz az xttp.pl program javításában.
8. Hosszabb szöveg felolvasásaMivel hosszabb szövegek nagyon nagy wav fájlt hoznának létre, célszerű őket kisebb darabokba szabdalni és úgy fölolvastatni. Erre jó a mesel.pl állomány. Ez a segedeszkozok direktoriból futtatandó. Az olvasandó állomány a program paramétere (a .txt végződés nélkül), az eredmény részére hozzuk létre a test aldirektorit. Kizárólag olvassa a fölolvasandó állományt, nem változtat benne semmit. Az éppen fölolvasott részt a kwrite szerkesztőprogrammal a képernyőn is mutatja. A szerkesztőprogram a $szerkeszto változóval ízlés szerint változtatható. A $sor belső változó az egyszerre fölolvasott sorok száma, szintén ízlés szerint beállítható. A mesel.pl program hívása, ha a fölolvasandó szöveg a szoveg/olvasnivalo.txt állomány: perl mesel.pl szoveg/olvasnivalo A mellékelt mesel.sh állományt használva: sh mesel.sh szoveg/olvasnivalo Mesel.pl megjegyzi, hogy hol tart az olvasásban a mesel_sorok.txt állományban. Ha felhívásakor a második paraméter a "last" szó, akkor a mesel_sorok.txt állományban levő szám által kijelölt sornál kezdi el a szöveg olvasását. Ha a harmadik paraméter szám, akkor az annyiadik sorban kezdi meg a fölolvasást.
Példák:
9. ptkspeak.pl a grafikus felületek kedvelőinekEhhez a programhoz szükséges a perl-tk csomag installálása. Ez a program lehetővé teszi egy fájl kiválasztását, annak megtekintését egy szerkesztő felületen, és annak elmondását. A grafikus felületek kedvelőinek. Hívása: perl ptkspeak.pl
10. ÁltalánosProblémák esetén értesíts ezen a címen: eleonora45_KUKAC_gmx_PONT_net. Küldd el a problematikus szöveget, illetve annak problematikus részét a probléma leírásával. Köszönöm.
Az mbrola kezelésének leírása németül:
Hogy hogyan lehet egy mbrola adatbankot előállítani, arról bmrolamod.htm címen találsz részletes magyar nyelvű leírást. |