A magyar nyelvű beszédszintézis internetes alkalmazásának szabványai

(on-line szövegfelolvasás)

27131498

Budapest, 2002


Tartalomjegyzék

Munka- és költségterv

A kutatás-fejlesztési feladat célja

A kutatás-fejlesztési feladat várható eredményei

A megoldandó probléma

Az innováció mértéke

A várt közhasznú eredmények gyakorlati alkalmazásának terve

Szellemi tulajdon védelme

A projekt irányítása

A projekt munkaterve

A kutatás-fejlesztési tevékenység részletes leírása

A prototípus alkalmazás

A szabványok közzététele

A projekt felbontása munkaszakaszokra

A munkaszakaszok leírása és költségei

A projekt összköltsége


A projektjavaslat általánosan kapcsolódik az e-Europe programokban meghirdetett következő témakörökhöz:

Az intelligens eszközök alkalmazása közszolgáltatási területeken;

A nyelvi különbözőségek megőrzése az információs társadalom körülményei között;

Biztosítani, hogy a digitális és on-line korszak senkit se zárjon el a bekapcsolódás lehetőségétől;

Az -európai weboldalak nyelvi különbözőségének támogatása;

A mesterséges intelligencia alkalmazási lehetőségeinek kihasználása.

A projektjavaslat konkrétan kapcsolódik az ITEM program következő témaköreihez

2.b."Csináld magad portál"-hoz

mert a projektjavaslat: nyílt forráskódú, szabadon és ingyenesen terjeszthető szoftverrendszer szabványinak megalkotására vállalkozik; ehhez új formátum, folyamat és felületszabványok kifejlesztését vállalja a létező nemzetközi és hazai szabványokhoz igazodva az API-k területén .

3.a. "Mindenki ugyanúgy csinálja"-hoz

  mert a projektjavaslat: a magyar nyelvi sajátosságokra kialakított illetve ehhez adaptált (honosított) szabvány és ajánlás-terv.

4.b. "Szabványosítás"-hoz
mert a projektjavaslat: szabványok, ajánlások kifejlesztését vállalja, amelyek hátrányos helyzetű, fogyatékkal élő egyének, csoportok hálózati szerepvállalását (alkotását és Internet használatát) teszik lehetővé.

Leginkább a 4.b. témakörhöz tartozik, ehhez nyújtjuk be.

Munka- és költségterv

A kutatás-fejlesztési feladat célja

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 magyar nyelvű szövegeket folyamatos, mesterségesen generált, jól érthető, emberi beszédhez nagyon hasonló, beszéddé lehet alakítani. A akadémiai szférában már a nyolcvanas évek eleje óta folyamatos mesterséges intelligenciakutatások eredményeképpen fejődnek a magyar nyelvű un. TTS (Text-to-Speech) eszközök. Ezek az eszközök mára már olyan minőségűek, hogy a kifejlesztendő szabványok és standardok alkalmazásával on-line szövegfelolvasásra használhatók az interneten. Ehhez azonban meg kell alkotni ezek szabványait.

A kutatás-fejlesztési feladat várható eredményei

ˇ  A projektben vállalt szabványok segítségével megvalósítható, hogy az interneten bármilyen formában (TXT, HTML, SGML, XML) tárolt, magyar nyelvű szövegeket bárki - még modemes kapcsolattal is jó - minőségben - magyarul hallgassa.

ˇ  A folyamatszabványok alapján megvalósított alkalmazás a szövegarchívumok tulajdonosaira semmilyen extra feladatot nem ró, rendszereikbe egyáltalán nem kell belenyúlni, szövegeiket egy központi konverter alakítja át a beszédszintetizátor számára alkalmas formára, a szövegek helyes kiejtéséről a központban automatikusan épülő "kivétel és idegen szavak" szótára gondoskodik (Shakespeare:=Sékszpír, stb.).

A megoldandó probléma

ˇ  A magyar nyelvű beszédszintetizátorok hosszú, évekig tartó mesterséges intelligenciakutatások eredményeképpen jöttek létre, ezért ezek az eszközök - kliens oldali felhasználáshoz - elérhetetlenül drágák. Vannak közöttük ingyenes verziók, de azokat nem fejlesztették tovább, képességük (XML, HTML tag-ek 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 azonban 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).

Az innováció mértéke

ˇ  A projekt teljes egészében innováció. A TTS eszközöket az interneten on-line felolvasásra tudomásunk szerint még senki sem használta.

A várt közhasznú eredmények gyakorlati alkalmazásának terve

A szabványok alapján felépített, nyílt forráskódú prototípusalkalmazás, valamint a közzétett szabványok és folyamatok alapján bárki írhat hasonló alkalmazást.

A szabványok alkalmazásával felállítható egy központi, többrétegű szöveg-hang átalakító rendszer, melynek javasolt architektúráját, javasolt rétegeit és komponenseit a szabványokkal együtt közzé tesszük. (Hangszerver 3 független réteggel, Tartalomszerver, Web-szerver, Adminisztrációs szerver)

Szellemi tulajdon védelme

A tervezett tevékenység nem áll a szellemi tulajdon védelme alatt, a várható eredmények egyelőre nem léteznek.

A projekt irányítása

A projektet a koordinátor irányítja. Részcsoportok alakulnak:

Protokoll Csoport, Web-alkalmazás Csoport, Felhasználói felület Csoport, Szöveganalízis Csoport (XML).

A csoportok csoportmunkát támogató eszközökkel távmunkában dolgoznak.

Az irányítás a központi koordinátor által menedzselt Outlook eszközökkel valósul meg.

A csoportok vezetői kéthetente értekezletet tartanak. 

A projekt munkaterve

A kutatás-fejlesztési tevékenység részletes leírása

A kialakítandó szabvány az on-line felolvasás folyamatának minden elemére, 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ő: <kivetel><irasmod>Shakespeare</irasmod><kiejtes>sékszpír</kiejtes></kivetel>  fonetikus behelyettesítést mindenhol elvégzi a szövegben, a megfelelő HTML, XML, SGML, Speciális TTS tag-eket é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, Ogg-Vorbis, gsm) vagy WOW[2] formátumban, majd 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: pl. az azonosított felhasználó 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.

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.

A prototípus alkalmazás

A folyamat információtechnológiai megvalósítása

A prototípus alkalmazás architektúrája a következő:

A felhasználótól érkező kérés kielégítésének folyamata:

felhasználó -> Web szerver -> Tartalom szerver -> Hang szerver -> Web szerver -> felhasználó

A Web-szerver fogadja a felhasználótól érkező kérést, mely a kliensre és az olvasmányra vonatkozó információt tartalmazza. A Web és a Hang szerver között van a Tartalom szerver réteg, melynek feladata, hogy a kérésnek megfelelő szöveget (az olvasni kívánt helytől) megszerezze a megfelelő helyről, megformázza, értelmezze, standardizálja és elküldje a hangszervernek. A hangszerver a kívánt formátumban előállítja a hangot, ha a formátum megkívánja, a hangfolyamot integrálja a szövegfolyammal és visszaküldi a web-szervernek. Ennek megfelelően a Hangszerveren 3 független réteg van,

    1. a Transzport réteg, mely standardizált (értelmezett, konvertált)szöveget kap és formázott folyamot ad vissza.
    2. a Standardizáló réteg, mely a Transzport rétegtől megkapja a szükséges információkkal ellátott szöveget, majd a formátumtól függően egyesített <hang-szöveg> folyamot ad vissza a Transzport rétegnek.
    3. a Szintetizáló réteg, mely megkapja a preparált szöveget és a szinkronizált hangot, valamint a szinkronizáláshoz szükséges jeleket küldi a Standardizáló rétegnek.

A szabványok közzététele

A szabvány közzététele a következőképpen történik:

Egy konkrét implementáció letölthető verzióban, nyílt forráskóddal közzé van téve a MEK web-felületén. Fel van sorolva, hogy ha valaki ilyen szoftver akar írni, akkor milyen standardoknak kell megfelelnie: csatlakozási felületek, függvényhívások, paraméterek stb.

Referencia implementáció a VilágHalló, letölthető: www.vilaghallo.hu

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 referencia prototípus alkalmazás felkerül a MEK felhasználói felületeire, ahonnan a mintaalkalmazás on-line olvassa a MEK szövegeit, választást engedve a következők között: belehallgatni óhajt az olvasó, vagy a teljes szövegre kíváncsi, illetve milyen lejátszó található a gépén: Realplayer, WINAMP, vagy Világhalló kliens.

A projekt minden tevékenysége alkalmazott kutatás-fejlesztési tevékenység, beleértve a prototípus TTS központ megvalósítását.

A tevékenységekben résztvevők:

4 szoftverfejlesztő, 1 XML szakértő, 1 koordinátor, 2 elektronikus dokumentumszabvány szakértő.

A projekt megvalósításához szükséges a fejlesztő környezet létrehozása:

Hangszerver, Webszerver, Tartalomszerver, melyek fizikailag lehetnek két szervergépen. A hangszerverbe erős processzor szükséges, nagy CPU kapacitásra van szükség.

Alapszoftverek:

Kritikus pontok: szöveg-beszédszinkron, text-hangszinkron megvalósítása a különböző tömörítések után.

A projekt eredményességét a referencia prototípus alkalmazás megvalósulása méri.


A projekt felbontása munkaszakaszokra

A projekt munkaszakaszainak listája

A mun-kaszakasz sorszáma

A munkaszakasz megnevezése

A munkát végzők azonosítója

Ember-hónap

Kezdet (hét)

Időtar-tam (hét)

Az eredmények sorszáma

1.

Fejlesztői környezet felállítása, a hangszerveren megfelelő TTS -el

1

3

2003.03.08.

8

1,2

2.

Szöveg átemelés, konverzió, kivételszavak kezelésének elvi és gyakorlati megoldása,

1, 2,

8

2003.05.03.

15

3

3.

Szövegfolyam-hangfolyam kezelő rendszerfejlesztés

1, 2,

8

2003.08.16.

16

4,5,6

4.

Központi adminisztrációs és tartalomkezelő rendszerfejlesztés

1, 2

4

2003.12.06.

9

7

5.

Prototípus megvalósítása MEK felületébe integrálás

1,2

7

2004.02.07.

15

8,9,10

Összesen



A munkaszakaszok eredményeinek listája

Sorszám

Cím

Elkészülési idő (hét)

Forma

Jelleg

A nyilvánosságra hozatal módja

1.

Fejlesztői környezet architektúra leírás

4

Dokumentáció

nyilvános

 Web

2.

Hangszerver TTS motorral 

4

demó

Korlátozottan elérhető

3.

Formátum standardok

15

leírás

nyilvános

Web

4.

Folyamat szabványok

9

folyamatleírás

nyilvános

Web

5.

Standardizáló réteg

6

Leírás, demó

nyilvános

Web

6.

Kivételszótár adatbázis

1

Leírás

Korlátozottan elérhető

7.

Szöveg értelező, formázó, konverter szoftver

9

Leírás, demó

Korlátozottan elérhető

8.

Hangfolyam-szövegfolyam integrátor réteg

5

Leírás, demó

Korlátozottan elérhető

9.

Prototípus alkalmazás

5

Működő szoftver

nyilvános

Web

10.

Prototípus alkalmazás a MEK szövegein működik

5

Működő szoftver

nyilvános

Web



A munkaszakaszok leírása és költségei

A munkaszakasz rövid leírása

A munkaszakasz száma:1

A munkaszakaszban részt vevők azonosító száma: 1

A munkaszakasz kezdete és vége (év, hó, nap): 2003.03.08.  -     2003. 2003.04.12.    

A munkaszakasz megnevezése: Fejlesztői környezet felállítása központi hangszerverrel

Az elvégzendő munka leírása: Rendszerkomponensek felállítása, Megfelelő TTS alkalmazás kiválasztása, tulajdonságainak standardizálása, speciális tag-ek standardokra cserélése

A munkaszakasz rövid leírása

Kidolgozza a standardizáló központi szöveg-beszéd konverter rendszer adekvát, javasolt architektúráját, a javasolt rétegeit és komponenseit. Kidolgozza és kiválasztja a szükséges rendszerkomponenseket, (Hangszerver több független réteggel, Tartalomszerver, Web-szerver, Adminisztrációs szerver) eszközrendszerét.

A munkaszakasz száma:2

A munkaszakaszban részt vevők azonosító száma: 1,2

A munkaszakasz kezdete és vége (év, hó, nap): 2003.05.03.- 2003.08.23.

A munkaszakasz megnevezése: Szöveg átemelés, konverzió, kivételszavak kezelésének elvi és gyakorlati megoldása

Az elvégzendő munka leírása: Tag standardok megállapítása, leírása.

A munkaszakasz rövid leírása

Egy tetszőleges web felhasználói felületéről érkező, felolvasásra vonatkozó kérés 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ő: <kivetel><irasmod>Shakespeare</irasmod><kiejtes>sékszpír</kiejtes></kivetel>  fonetikus behelyettesítést mindenhol elvégzi a szövegben, a megfelelő HTML, XML, SGML, Speciális TTS tag-eket é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 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 munkaszakasz száma:3

A munkaszakaszban részt vevők azonosító száma:1,2

A munkaszakasz kezdete és vége (év, hó, nap):2003.08.16.- 2003.12.06.

A munkaszakasz megnevezése: Szövegfolyam-hangfolyam kezelő rendszerfejlesztés

Az elvégzendő munka leírása:

A munkaszakasz rövid leírása

A munkaszakasz száma:4

A munkaszakaszban részt vevők azonosító száma:1,2

A munkaszakasz kezdete és vége (év, hó, nap):2003.12.06.- 2004.02.07.

A munkaszakasz megnevezése: Központi adminisztrációs és tartalomkezelő rendszerfejlesztés

Az elvégzendő munka leírása:

A munkaszakasz költségei (a projekt összköltségét bemutató táblázattal megegyező rovatokkal)

A munkaszakasz rövid leírása

A felhasználók az olvasmányok és a bookmark-ok együttes kezelésének megoldása. 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, Ogg-Vorbis, gsm) vagy WOW[3] formátumban, majd 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 munkaszakasz száma:5

A munkaszakaszban részt vevők azonosító száma:1,2

A munkaszakasz kezdete és vége (év, hó, nap):2004.02.07. - 2004.04.24.

A munkaszakasz megnevezése: Prototípus megvalósítása MEK felületébe integrálás

Az elvégzendő munka leírása:

A munkaszakasz költségei (a projekt összköltségét bemutató táblázattal megegyező rovatokkal)

A munkaszakasz költségei (a projekt összköltségét bemutató táblázattal megegyező rovatokkal)

 


A projekt összköltsége



[1] TTS, Text to Speech, szöveg-beszéd átalakítás, mesterségesen generált beszéd

[2] amiben a hang lehet tetszőleges módon tömörített gsm, ogg-vorbis, stb.

[3] amiben a hang lehet tetszőleges módon tömörített gsm, ogg-vorbis, stb.