message=
A beszédszintézishez készített adatbázison olyan adatbázist értünk, amelyik azokat az építőelemeket tartalmazza, amelyeket a gépi beszédelőállítás során használunk fel a beszédjel felépítéséhez. Tehát ez a beszédadatbázis tartalmazza a szintetizálandó beszédjel létrehozásához szükséges hullámforma-jelrészleteket. Az ilyen adatbázis - a szintézis és az alkalmazás fajtájától függően - lehet nagyon egyszerű is, és lehet nagyon bonyolult. A felépített beszéd minősége alapvetően függ az adatbázisban elhelyezett jelrészletek minőségétől. Az alábbiakban összefoglaljuk, hogy milyen fonetikai szempontokat célszerű figyelembe venni a beszédadatbázisok tervezésénél, készítésénél. A megállapításainkat csak emberi beszéd alapú, hullámforma-elemekre tesszük, nem foglalkozunk a formáns alapú beszédadatbázisok problémakörével.
1. A beszédadatbázisok fajtái
Alapvetően háromféle adatbázissal foglalkozunk, az első, amelyik egyedi beszédelemeket tartalmaz, a második az úgynevezett diádos felépítésű elemeket tartalmazó, amelyben két hang kapcsolódása jelent egy-egy eleme. A harmadikban triádos (két fél mássalhangzó és a közöttük lévő teljes magánhangzó) és esetlegesen a triádnál is hosszabb elemek találhatók. A beszédadatbázis elkészítése minden esetben adott (előre megtervezett) szöveg felolvasásával és hangrögzítéssel történik. Az így kapott beszédjelből készítik el az adatbázis-elemeket.
Egyedi beszédelemek
Ilyen elemeket olyan adatbázisoknál alkalmaznak, amelyek úgynevezett kötött szótáras rendszereket szolgálnak ki (hangposta, telebank, menetrendi tájékoztató stb.). Az elemek száma az ilyen adatbázisokban az alkalmazástól függően lehet nagyon kevés és lehet pár ezer is. Az egyedi beszédelemek megtervezése és elkészítése kis elemszám estén viszonylag egyszerű, azonban az elemszám növekedésével egyre bonyolultabbá válik. Az 50 elemnél többet tartalmazó kötött szótáras rendszerek (pl. hangposta) beszédelemeinek jó minőségű elkészítése már igen gondos tervezést, precíz hangfelvételt, körültekintő akusztikai feldolgozást, csiszolást kíván.
Előnyök: az ilyen adatbázisok előnyös tulajdonsága, hogy az üzenetek nagyon jó minőségben szólalhatnak meg, kis elemszám esetén az elkészítésük nem kíván fonetikai szakértelmet.
Hátrányok: nagyobb elemszám esetén fonetikai, beszédakusztikai szakismeretek szükségesek a tervezéshez. Ellenkező esetben az adatbázis elemeiből elkészített beszédüzenet kifejezetten rossz hangminőségű is lehet.
Diád elemek
A kizárólag diádos elemeket (két félhangot) tartalmazó adatbázisok általában a kötetlenül beszélő, úgynevezett szövegfelolvasó rendszerekben használatosak. Ezekre az adatbázisokra az jellemző, hogy a bennük eltárolt beszédjel-elemeket úgy alakítják ki, hogy a beszédhangokból két hang kapcsolódását tárolják el, ezt is úgy, hogy az elemhatárokat a két hang közepén jelölik ki. Az ilyen elemek tehát két félhangot tartalmaznak. A báb hangsort tehát a #b, bá, áb, b# elemekből lehet felépíteni (a # jel a csendes szakaszt jelöli). Az elemek száma az ilyen adatbázisokban általában ezres nagyságrendű. Ez a szám a nyelvtől, azon belül pedig a szintézishez meghatározott beszédhangok számától függ. A szintézishez meghatározandó beszédhangok száma nem egyértelmű, a tervező döntésétől is függ. Vegyük például a magyar beszédet. Egyértelmű, hogy a magánhangzók száma 9 is lehet ( á, a, o, u, ü, i, é, ö, e ), de lehet 14 is, ha az előbbiekhez hozzávesszük az ó, ú, ű, í, ő hangokat is. Ugyanis nem feltétlenül szükséges, hogy a hosszú magánhangzókat külön hangként kezeljük, azok előállíthatók a rövid párjuk felhasználásával nyújtással is, csak kissé szokatlanabb hangminőséggel. Ez azonban a megértést nem befolyásolja. A magánhangzók listáját még tovább bővíthetjük azok nazalizált változataival, amelyek bizonyos hangkapcsolatokban ( ank, enk, onk, ing, eng, áng stb.) törvényszerűen kialakulnak. A mássalhangzók tekintetében is többnyire egyértelmű, hogy mely hangoknak kell szerepelni a beszédhangok listájában, de lehetnek olyanok is, amelyeket csak például egy igen igényes, kifogástalan beszédminőséget megcélzó rendszerben kell felvenni a listára. Ilyen például az n speciális változata, amely például az ng, nk hangkapcsolatok hatására jön létre ( ing, engem, fánk, fiúnk, tönk, ankét stb.), de ilyenek a dz, dzs hangok is, vagy a j hang zöngétlen változata (kapj, lépj, lopj).
Előnyök: a diádos adatbázissal gondos tervezés és sok akusztikai csiszolás (az elemek egymással való kapcsolódási pontjainak precíz akusztikai illesztése) esetén alapvetően jó minőségű beszédet lehet előállítani. Ezt alátámasztja az is, hogy a világon általánosan használt ez a technológia.
Hátrányok: az adatbázis elkészítése igen munkaigényes. A hangfelvétel szövegének megtervezése és magának a hangfelvételnek az elkészítése gondos előkészítést, jól felkészült bemondót és beszédtechnológiai tervezésben jártas szakembert igényel. A digitális feldolgozáshoz bonyolult fejlesztői és vizuális megjelenítő rendszer szükséges, ami kereskedelmi forgalomban nem kapható. Akusztikai szempontból hátrány, hogy az adatbázis szerkezetéből adódóan a magánhangzók közepén vágási pontok vannak. Ez egyrészről azt eredményezi, hogy a formánsmenetek a magánhangzóban a vágási pontnál megtörhetnek, tehát a spektrális folyamatosság nincs biztosítva, másrészről a magánhangzóban megvalósított alapfrekvencia a két félmagánhangzóban lényegesen (5-15 Hz-cel) is eltérhet. Mindkét tényező enyhe torzulást eredményez a hangban, ami a beszéd tiszta hangzását rontja. Ezen hátrányok enyhítésére speciális simító algoritmusokat kell kidolgozni. Mindezek ellenére a diádos adatbázissal működő beszédelőállító rendszerek hangja tartalmaz torzításokat, ami azt eredményezi, hogy a hang nem teljesen tiszta, hanem alatta sustorgásra emlékeztető mellékzörejek is vannak.
Triád elemek
A triádos elemeket tartalmazó adatbázisokat a kifejezetten jó minőségű, mondhatnánk, hogy professzionális szöveg-beszéd átalakítókban alkalmazzák. Ezekben a triádos elemeken kívül diádos elemeket is alkalmaznak. Az eldöntendő kérdés ezeknek a tervezésénél az, hogy mely hangcsoportokat tároljanak diádos és melyeket triádos formában. A Profivox szövegfelolvasó rendszerre kidolgozott magyar beszédadatbázisban a CC, VV, CV és VC elemek diádos, a CVC elemek triádos formában vannak tárolva. Az ilyen adatbázisoknál az elemszám ugrásszerűen megnövekszik, hiszen a diádos elemeken felül még el kell készíteni a triádos felépítésű elemeket is, vagyis a CVC struktúrát minden hangkapcsolatra vonatkoztatni kell. Például a C1-V-C kapcsolatokat nézve (ahol a C1 például a b hang, C pedig a p, d, t, l stb. hang) egyértelmű, hogy a C1-gyel minden VC kapcsolódást létre kell hozni az adatbázisban.
Példa:
báp, bap, bop, bóp, bup, búp, büp, bűp, bip, bíp, bép, böp, bőp, bep
bád, bad, bod, bód, bud, búd, büd, bűd, bid, bíd, béd, böd, bőd, bed.
Ez azt jelenti, hogy az ezres nagyságrendű diádelemeken felül még több ezer triádelemet is el kell készíteni.
Előnyök: a kevert szerkezetű adatbázis alkalmazásával igen jó minőségű, professzionális beszédelőállítót lehet készíteni. A magánhangzók formánsmenetei nem törnek meg, a folyamatos spektrális változás a magánhangzóban biztosított, és az alaphangban sincs törés, így a diádos adatstruktúrából adódó torzítások jelentősen csökkenthetők, ami - összehasonlítva a diádos adatbázisból készített beszéddel - határozottan tisztább hangot eredményez.
Hátrányok: a kevert adatbázis elkészítése sokkal munkaigényesebb, mint a diádosé, speciális fejlesztői és vizuális megjelenítő rendszert igényel. Memóriaigénye igen nagy (30-40 Mbyte).
Diádos adatbázis-elemek tervezése
A diádos rendszerű adatbázis tervezésének első lépése a beszédhangok állományának meghatározása, vagyis annak eldöntése, hogy mely beszédhangok fognak megszólalni a rendszerben. A beszédhangok többsége az adott nyelv ismeretéből automatikusan adódik, azonban lehetnek olyan hangok is, amelyekről külön dönteni kell. Ilyen hangok a magyarban például a nazalizált magánhangzók (pl. inga, engem, hangos, bankár), a j hang zöngétlen változata (kapj, lépj, lopj ), a h hang zöngés változata ( nahát). Ide tartoznak a ritkán előforduló beszédhangok is, mint például a dz, dzs és ezek hosszú változatai.
A magyar beszéd hangkészletét, beszédadatbázis létrehozása céljából, célszerű 14 magánhangzóból ( á, a, o, ó, u, ú, ü, ű, i, í, é, ö, ő, e ) és 24 mássalhangzóból (b, p, d, t, g, k, gy, ty, m, n, ng-nk, ny, j, h, v, f, z, sz, c, zs, s, cs, l, r) meghatározni. Ehhez még hozzá kell venni a szünet elemet is, amit a hangkezdő és hangvégződési helyzetű elemek elkészítéséhez használunk. Ezek szerint az adatbázis elemeinek száma 39x39 hangkapcsolódás, azaz 1521 elem. Ezen elemek gyakorlati létrehozásához el kell készíteni egy felolvasandó listát, amely tartalmazza az összes hankapcsolódási elemnek megfelelő szövegegységet. Az ilyen anyagot célszerű úgy megtervezni, hogy a bemondót ne befolyásolják az anyanyelvi beidegződések. Ezért ezeket a listákat egyrészről úgy érdemes összeállítani, hogy azok ne értelmes szavakat tartalmazzanak, hanem értelmetlen hangsorokat (logatomokat), másrészről, hogy a hangsor belseji elemekhez kivágandó elem ne az első szótag legyen (mivel magyarban az első szótagot automatikusan hangsúlyozzuk), hanem például a második. A listában továbbá elonyös szerepeltetni az adott logatom mellett, hogy mely hangkapcsolati elem kerül kivágásra az elem felhasználásával. A listát jól trenírozott bemondóval kell felolvastatni. A felolvasást fonetikusnak kell vezetni. A felvett anyagot digitalizálni kell. Ezután el kell készíteni a diádos elemeket.
A hangadatbázis elemeinek elkészítése azt a műveletsort foglalja magában, amelynek eredményeképpen előáll a hangsorépítéshez felhasználható hullámformák csoportja. Az elkészítés speciális szoftvereket igényel. Ez azt jelenti, hogy ilyen adatbázisok elkészítéséhez nem használhatók a hangkártyákhoz kapható hangfeldolgozó szoftverek.
Milyen műveleteket kell elvégezni ahhoz, hogy egy-egy hangadatbázis elem elkészüljön?
- a hanghatárokat be kell jelölni az eredeti digitalizált mintán és tárolni kell,
- a zöngés hangokat el kell látni periódus jelzésekkel (markerek) és ezeket tárolni kell,
- a zöngétlen hangokba is markereket kell tenni, mégpedig a zöngés hangokból következő időszakaszonként, és ezeket tárolni kell,
- az egyes markereket el kell látni zöngés, illetve zöngétlen jelöléssel, és ezt tárolni kell,
- ki kell vágni az elemet az eredetileg felvett mintából adott szabály alapján, és el kell helyezni az adatbázisban.
A fenti műveletek nem végezhetők el emberi beavatkozás nélkül, mivel a beszédjel egyrészről nem szabályos rezgésképek sorozatából áll, másrészről a beszédhangok határainak kijelölését sem lehet egyértelműen algoritmizálni. Mivel a marker- és hanghatáradatok szolgálnak majd a későbbi prozódiai feldolgozás (hangidőtartamok változtatása, a dallammenetek ráültetése a hangsorra, az amplitudóviszonyok megváltoztatása) alapjául, ezek pontos elhelyezésére kell törekedni.
A hanghatárok bejelölése
Mivel az adatbázis elkészítéséhez meghatározott szerkezetű hangsorokat olvastattunk fel a bemondóval, ez az információ segíti a hanghatárok automatikus bejelölését. Készíthető olyan célszoftver, amelyik akár diádos, akár triádos elemekhez felvett hangsorokban, az energiaviszonyok alakulása alapján meghatározza a hanghatárok többségét, és el is helyezi azokat a hangsorban. Vannak azonban olyan hangkapcsolatok, amelyekben az energiaviszonyok nem változnak karakterisztikusan a hanghatárokon. Ide sorolható sok CC kapcsolat, valamint a VV elemek, és a j hanggal képzett CV, VC kapcsolatok. Ezeknél a hangkapcsolatoknál kézi módszerrel, audio-vizuális célszoftver felhasználásával kell a hanghatárokat bejelölni.
A periódusjelzések elhelyezése a hangsorban
A periódusjelzés célja az, hogy megjelöljük minden zöngés hangperiódus kezdetét. Ez az alapja a későbbi hangnyújtásnak, hangrövidítésnek, valamint az alapfrekvencia változtatásának. Periódusjelzéseket elméletileg csak a zöngés hangokban lehet meghatározni, azonban a további feldolgozás egyszerűsítése céljából a zöngétlen hangokban is célszerű a környezethez hasonló, vagy sűrűbb osztással markereket elhelyezni, noha ezekben nincsenek periodusok. Ez például azért is fontos, mert a későbbiekben a hangidőtartam-módosításokat a markerek felhasználásával végezzük el. A periódusjelzések elhelyezése után tehát az egész hangsorban közel egyenletes osztással markerek találhatók. A hanghatárjelzést mindig periódusjelzésre tesszük. Ebből következik, hogy minden beszédhang belseje egész számú markerrel lesz felcímkézve.
A zöngés-zöngétlen állapot jelzése
A hanghatárokkal és markerekkel felcímkézett hangelemeket el kell látni zöngés-zöngétlen állapotjelzővel is. Ez azért fontos, mert az alapfrekvencia-módosításokat zöngétlen hangokon nem kell végrehajtani. A fenti állapotjelzők meghatározása nagy részt szintén jelfeldolgozó célszoftverrel automatizálható. Az ilyen szoftverek számára a döntési nehézséget a kis energiájú hangrészek (pl. zöngés zárhang zárszakasza), és a kevert gerjesztésű hangok jelentik. Ebből az következik, hogy a feltehetően hibás döntésű elemekben kézzel kell a megfelelő állapotjelzőket beállítani.
Akusztikai összecsiszolás
A fentiek alapján elkészített adatbázis-elemeket még nem lehet felhasználni közvetlenül beszédépítéshez, mivel azok nincsenek egymáshoz illesztve sem amplitudóban, sem hangidőtartamban. Ez az állapot abból adódik, hogy az elemeket emberi bemondásból származtatjuk és a bemondó hangereje, beszédtempója általában változik a hosszú elemlista felolvasása során, még akkor is, ha professzionális bemondót alkalmazunk. Így ha összekapcsolnánk ezeket a "nyers" elemeket a beszédépítés során, akkor torz és lötyögős hangzást kapnánk. Az akusztikai csiszolás lényege, hogy az egyes adatbázis-elemeket összekapcsoljuk más elemekkel (a legideálisabb, ha mindegyiket mindegyikkel), és az amplitudókat egymáshoz igazítjuk, továbbá a hangidőtartamokat is beállítjuk egy úgynevezett specifikus időtartamra. Erre azért van szükség, mert a beszédben a hangok egymáshoz való amplitúdó- és időtartamviszonyának helyes aránya a mérvadó. Ha ezek az arányok jók, akkor folyamatosnak és simának, egyszóval természetesnek halljuk a beszédet, ha viszont nem helyesek, akkor zötyögősnek, szaggatottnak, lüktetőnek. Jelenleg ez a legmunkaigényesebb fázisa az adatbázis készítésének, mivel ezt nemigen lehet automatizálni. Nem is beszélve arról, hogy számos elemben kell periódusokat is javítani, mert pl. a bemondó hangja éppen kissé reszelőssé vált, túl levegős lett stb. Egyszóval az adatbázis akusztikai csiszolása során meghallgatjuk az összes elemet (szövegkörnyezetbe ágyazva) és így döntjük el, hogy mely pontokon kell javítani és mit. Gyakorlati tapasztalat az, hogy 15-20 oldal célzott tartalmú szöveg felolvastatásával a leggyakoribb hangkapcsolatok hangzását meg lehet vizsgálni, és el lehet végezni a csiszolást. Statisztikai gyűjtéssel ezeket dokumentálni lehet és utána a fennmaradó, ritkábban előforduló elemeket külön kell meghallgatni, és ha szükséges, akkor össze kell csiszolni.