4/b A magyar nyelvű beszédszintézis internetes alkalmazásának szabványai
A pályázat célja, hogy megalkossa és közzétegye a magyar nyelvű beszédszintézis (TTS)[1] internetes alkalmazásának szabványait, mellyel az internetes tartalom elérhetővé válik a vakok és a csökkentlátók közössége számára.
A magyar Weben értékes szöveges dokumentumok, (könyvek, tanulmányok, folyóiratok, szakmai anyagok stb.) vannak tárolva, számtalan különböző helyen elsősorban TXT, HTML, XML, SGML stb. formában. Ezeket a szövegeket az akadémia szféra által, kifejlesztett, magyar nyelvű TTS alkalmazásokkal mesterségesen generált beszéddé lehet alakítani. A magyar nyelvű beszédszintetizátorok azonban hosszú, évekig tartó mesterséges intelligenciakutatások eredményeképpen jöttek létre, ezért pillanatnyilag elérhetetlenül drágák a kliens oldali felhasználás számára. Vannak közöttük ingyenes verziók, de azokat nem fejlesztették tovább, képességük (XML, HTML tagek felismerése, kiejtés, hangsúlyozás, beszédminőség, kivételszavak ismerete) egy korai szinten megállt. Ebből következik, hogy a jó minőségű beszédszintetizátorok számottevő internetes felhasználására csak szerver oldali alkalmazással nyílik lehetőség.
Az egyes szövegarchívumok külön-külön is megoldhatnák, hogy szerver oldalon alkalmaznak beszédszintetizátort, és a mesterségesen generált hangot a szöveggel együtt tárolják. Ennek az a hátránya, hogy:
- Az internetközösség szempontjából ez a megoldás hallatlanul nagy erőforrás
pazarlást jelent, a párhuzamos fejlesztés, programozás, szövegelőkészítés,
szövegkonverzó, kivételszavak és idegenszavak párhuzamos karbantartása stb.
miatt.
- Szembe kellene nézni azzal, hogy minden szövegtulajdonosnak, nem triviális
módon, bele kellene nyúlnia saját informatikai rendszerébe, komoly fejlesztéseket
kellene végrehajtania. Ez, különösen költségvetési, non-profit szervezeteknél
nehezen oldható meg.
- A hang tárolása nagyságrenddel több tárhelyet igényel tőlük. Egy átlagos,
kb. 300 oldalas könyv TXT-ben tárolva 0,75 Mbyte. Átlagos olvasási sebesség
esetén egy átlagos könyv felolvasása kb 20 óráig tart. (Magunkban olvasva
kb. 6 óráig). A szöveget beszéddé alakítva és gsm tömörítéssel tárolva, 1
óra szöveg kb 8 Mbyte tárhelyet igényel, így az átlagos könyvünk ?hangalakban
160 Mbyte tárhelyet igényel. Több százszorosa a txt-ben tároltnak.
- A 20 órányi szöveg egyben meghallgatása túl hosszú, félbeszakítására, a
benne való navigálásra lehetőséget kell biztosítani.
- A nagyméretű fájlok interneten való továbbítása nem szerencsés gyakorlati
szempontból (egy órányi szöveg pl. fél óra alatt megy át 5600 kbps átviteli
sebesség mellett).
Megoldás:
A kialakítandó szabvány az on-line felolvasás folyamatának minden elemére és a használt eljárások és formátumok szabványosítására vonatkozik.
A folyamat főbb elemei a következők:
- Egy központi hangszerveren történik a szöveg-beszéd átalakítás, lehetőség
szerint az aktuálisan elérhető legjobb minőségű beszédszintetizátor segítségével.
- Egy tetszőleges helyről, például a Neumann Ház, MEK stb. felhasználói felületéről
érkező, felolvasásra vonatkozó kérés (egy felhasználó ráklikkelt a megfelelő
linkre) hatására, egy központi szerveren futó szoftver átemeli a szöveget,
majd értelmezi annak megfelelően, hogy a szöveg milyen (TXT, XML, HTML, SGML
stb.) formátumú. Ezután a beszédszintetizátor számára előkészíti, konvertálja.
A már ismert és a központi kivételszótárban tárolt idegen szavak és kivételszavak
kiejtésének megfelelő fonetikus behelyettesítést mindenhol
elvégzi a szövegben, a megfelelő HTML, XML, SGML, Speciális TTS tageket értelmezi.
Amikor a felhasználó kéri a szöveg-beszéd konverziót, azaz ráklikkel a ?felolvasás?
linkre, akkor indul el a hanggenerálás a hangszerveren
- A beszédszintetizátor elkészíti a beszéd-hang folyamot, majd a kérésnek
megfelelő formátumú tömörítéssel (mp3, WOW, Ogg-Vorbis) a generált hang hosszabb-rövidebb
időre egy kereshető cache-be kerül.
- Ha még egyszer ugyanerre a szövegre vonatkozó kérés érkezik, akkor az már
nem generálódik újra, akkor azt a cache-ből veszi elő az alkalmazás.
- A generált és tömörített hangfolyamot a felhasználó számítógépében futó
lejátszó szoftver (Realplayer, Vilaghallo kliens, WINAMP, stb..) igényeinek
megfelelő hosszúságú, egyszerre lejátszható darabokra bontja. A tömörített
hangfolyam darabokat egymás után eljuttatja a kliensbe, ahol a lejátszó szoftver
azt folyamatosan olvassa.
- A fenti folyamat alapján lehetőség nyílik navigációs eljárások beépítésére
is, amely feltételezi egy nyilvántartó rendszer meglétét a hangszerveren:
az azonosított felhasználó pl. ott folytathatja a felolvastatást, ahol abbahagyta.
Lehet alkalmazni az eljárást nem statikus szövegekre is, például hírportálok
esetén. Akkor generálódik a hangfolyam amikor a szövegfolyam elkészül.
A folyamatszabvány leírása, esetleg kiegészítő szoftverek bekerülnek a MEK állományába, onnan nyilvánosan hozzáférhetőek lesznek. A fenti folyamat alapján elkészített alkalmazás felkerül a MEK felhasználói felületeire, választást engedve a következők közül: belehallgatni óhajt az olvasó, vagy a teljes szövegre kiváncsi, illetve milyen lejátszó található a gépén: Realplayer, WINAMP, vagy Világhalló kliens.
Abban az esetben, ha a vak felhasználó az ingyenesen hozzáférhető és kliens oldalon is korlátozás nélkül futtatható MultiVox- beszédszintetizátorral akarja felolvastatni a kiválasztott szöveget, akkor két megoldás kínálkozik, melyekben a szerveren futó komponensek közül néhányat a klienshez helyezünk:
- a. Az előkészítő folyamatokon átment (SGML, HTML, XML, tag-ek lecserélése,
idegen szavak kiejtése, cím, fejezet értelmezés stb.) szöveg file-t a kliensbe
juttatjuk, ahol a MultiVox- beszédszintetizátorral a felhasználó felolvastatja.
- b. Egy előtét szoftver réteg segítségével juttatjuk el a szöveget
a Multivoxba, ez a program preparálja a szöveget úgy, ahogy a többi esetben
a szerver oldalon. Így használja a közös kivételszótárat is, melyet, akár
tömörítve, helyben el lehet menteni.
Referencia implementáció a VilágHalló kis módosítással, letölthető: www.vilaghallo.hu
[1] TTS, Text to Speech, mesterségesen generált beszéd, szöveg-beszéd átalakítás