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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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:

  1. 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.
  2. 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
  3. 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.
  4. 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.
  5. 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.
  6. 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:

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