Számítógépes program formánsok szemléltetésére

 

 

 

1. Bevezetés

 

Ez a leírás egy olyan számítógépes programról szól, amely meghatározza a formánsokat  egy beszédfelvételben és azokat grafikusan megjeleníti. Lehetőséget nyújt továbbá a formánsszerkezet módosítására. Az eljárás alapját egy olyan algoritmus képezi, melynek fejlesztése 2000-ben kezdődött a BME Távközlési és Médiainformatikai Tanszék (régebben Távközlési és Telematikai Tanszék) Beszédkutatási Laboratóriumában.

 

A formáns (Formanten) elnevezést először Hermann használta 1894-es cikkében a zöngés hangokat ,,megformáló” rezonanciahelyekre. Azóta felfedezték, hogy a formánsok az emberi beszéd egyik legfontosabb jellemzői és számos formánsdefiníció látott napvilágot. Hermann szóhasználatát a magyarban Tarnóczy vezette be 1941-ben ([1] 1. oldal).

 

Zöngés hangok esetén a hangszalagok kváziperiodikus rezgést végeznek. Ez azért lényeges, mert az így keletkezett gerjesztés, a zönge, a periodikus (harmonikus) rezgések tulajdonságaival rendelkezik: az alapfrekvenciával jellemzett alaphangon kívül felhangokat tartalmaz. A felhangok vagy más néven felharmonikusok frekvenciája az alapfrekvencia pozitív egész számú többszöröse. A zöngét a gégefő feletti üregek (garat, orrüreg és szájüreg) rezonátor-rendszerként viselkedve módosítják: a felharmonikusok egyes csoportjait felerősítik (a rezonanciahelyeknél), másokat gyengítenek. Ezeket a rezonanciahelyeket és környéküket nevezzük formánsnak. A rezonanciahely frekvenciája a formánsfrekvencia. A formánst jellemzi még sávszélessége és amplitúdója. Az előbbi alatt szemléletesen a rezonanciahely frekvenciabeli kiterjedését, az utóbbi alatt az erősítés mértékét értjük. A pontos definíció és részletes magyarázat olvasható például [2]-ben az 52-59. oldalon.

 

Ez a leírás a téma iránt érdeklődő fonetikusok és bölcsészhallgatók számára készült, nem célja a formánskövető és módosító módszer hátterének részletes ismertetése. A 2. fejezet dióhéjban összefoglalja az eljárás működését, a felhasználás és a program segítségével kapott eredmények értékelése szempontjából fontos alapelvekre összpontosítva. A 3. fejezet részletesen ismerteti a program használatát és egyéb kapcsolódó információkat nyújt (például az algoritmus paramétereinek beállításához). A leírást a felhasználás feltételeinek rögzítése zárja. A bemutatott szoftver elsősorban a fonetika oktatásában alkalmazható szemléltető eszközként, valamint – korlátozott területen – fonetikai vizsgálatok eszköze lehet.

 

 

2. Működési elv

 

Bár a formánsok és azok változása az idő függvényében (az úgynevezett formánstrajektóriák vagy formánsmenetek) a hangszínkép alapján az ember számára könnyen felismerhetőek, a pontos formánsmérés és a formánskövetés automatizálása nem triviális feladat. A beszédjel-feldolgozással foglalkozó szakirodalomban számos különböző algoritmusról olvashatunk. Az esetünkben alkalmazott módszerről részletes leírás és értékelés olvasható [3]-ban. Ahogy a hivatkozott cikk írja, az eljárás a hagyományosnak tekinthető LPC-alapú formánskövetést alkalmazza, de egyes esetekben jóval pontosabb egy korszerű eljárásnál.

 

A megvalósított formánskövető és módosító algoritmus a toldalékcső átviteli tulajdonságait lineáris predikción alapuló modellel közelíti. Általánosan elfogadott tény, hogy egy megfelelő eljárással, kellően rövid beszédszakaszra számított lineáris predikciós együtthatók jellemzőek a toldalékcső pillanatnyi konfigurációjára. Az együtthatók segítségével konstruált szintézis szűrő rezonanciahelyei közel esnek a beszédcsatorna pillanatnyi rezonanciahelyeihez, azaz a formánsokhoz. A lineáris predikció fokszámával arányos a modell felbontása. Az a célunk, hogy úgy válasszuk meg a fokszámot, hogy elég nagy legyen a formánsok kimutatásához, de elég kicsi legyen a felharmonikusok elfedéséhez. A lineáris predikcióról részletes leírás – az alapfogalmaktól az egyes együttható-számítási eljárásokig – [2] 133-170. oldalán olvasható.

 

Az algoritmus működése három szakaszra bontható: elemzés, formánskövetés és szintézis. Az elemzés során a felvétel minden két alapperiódusnyi szakaszára kiszámítjuk a lineáris predikciós együtthatókat. Az ezek segítségével alkotott szűrő pólusai felelnek meg a modell rezonanciahelyeinek – ezeket formánsjelölteknek tekintjük. A pólusok komplex számok, amiket egy sík pontjaiként képzelhetünk el. A síkot ebben az esetben z-síknak nevezzük és a pólusokat az origótól számított távolságukkal (sugár) és az egyik koordináta-tengellyel bezárt szögükkel (fázis) jellemezhetjük.

 

Ha a felvétel egy szakaszán a jelenergia nem ér el egy minimumszintet, akkor azt a szakaszt csendnek tekintjük és az algoritmus nem elemzi. Zöngétlen hangok vizsgálatakor adott időközönként virtuális alapperidódusokat jelölünk ki, így ezek a hangok is ugyanúgy elemezhetőek, mint a zöngések. Az eljárás képes kimutatni például zöngétlen hangok jellemző frekvenciagócait.

 

A formánskövetés során a formánsjelölteket folytonos formánsmenetekbe rendezzük néhány folytonossági feltétel figyelembe vételével. A trajektóriák meghatározása után összevonjuk azokat, amelyek egy rövid szakaszon egymással párhuzamosan, kis távolságra futnak, valamint töröljük a túl rövid (valószínűleg tévesen észlelt) formánsmeneteket. A formánsok frekvenciáját a megfelelő pólus fázisából, a sávszélességét a pólus sugarából számítjuk ki. A túl nagy sávszélességű formánsjelöltekkel nem foglalkozunk.

 

A módosítás során a formánsfrekvenciák menetét megváltoztathatjuk. Ezzel közvetve a pólusokat mozgatjuk a z-síkon. A beszédjel újraszintézise a módosított pólusokból visszaszámított lineáris predikciós együtthatókkal történik.

 

 

3. A program használata

 

A program egyetlen fájlból (Formant.exe) áll, amely egy kislemez kapacitásának körülbelül a felét foglalja el. Telepítésre nincs szükség, csak el kell indítani a programfájlt. A programot Windows NT 4.0, Windows 98, Windows 2000 és Windows XP operációs rendszer alatt teszteltem. Valószínűleg megfelelően működik Windows 95 platformon is, de annál régebbi verziókkal nem indul.

 

Az alkalmazás nyelve jelenleg angol, így külföldieknek is bemutatható a működése. Egy másik ok, amiért a fejlesztők az angolt választották, az algoritmusok nyelvfüggetlensége: a program változtatás nélkül működik tetszőleges nyelvű beszédfelvételekkel. Hamarosan elérhető lesz a magyar nyelvű változat is.

 

A program RIFF Wave formátumú .wav kiterjesztésű, 16 bites mono PCM kódolású hangfájlokat képes megnyitni. A mintavételezési frekvencia 11, 22 vagy 44 kHz lehet. Az elemzéshez szükséges még két fájl: az egyik az alapperiódusok és hangok határainak pozícióját adja meg, a másik a beszédfelvétel fonetikus átirata. A két, kiegészítő információkat tartalmazó fájl neve azonos kell, hogy legyen a hullámforma fájl nevével, kiterjesztésük rendre .pit és .fon.

 

Az alapperiódusokat és hanghatárokat leíró állománynak a BME TMIT Beszédkutatási Laboratórium által kidolgozott formátumúnak kell lennie. Erről a formátumról további információkat a fejlesztőktől lehet kérni.

 

A fonetikus átiratot tartalmazó állomány egy szövegfájl, azaz szövegszerkesztővel (például Jegyzettömb) létrehozható, megtekinthető és szerkeszthető. Ebben a SAMPA fonetikus jelkészlet magyar nyelvre vonatkozó elemei [4] alkalmazhatóak, továbbá az „_” karakter a szünet jelölésére. Az ASCII kódkészlet tartalmazza az összes jelet, így tetszőleges személyi számítógép billentyűzetével begépelhetők.

 

Ezt a programot bárki felhasználhatja oktatási és kutatási célokra (ld. 5. fejezet). A kereskedelmi termékekben való engedély nélküli felhasználás elkerülése érdekében egy védelmi eljárás működik a programban: csak a BME TMIT Beszédkutatási Laboratórium által digitálisan aláírt .wav kiterjesztésű hullámforma fájlok tölthetők be. Ezek a fájlok megfelelnek a RIFF Wave formátum előírásainak, így tetszőleges hangfeldolgozó és lejátszóprogram képes kezelni őket – az aláírás más programok számára „átlátszó”. A programhoz mellékelt aláírt felvételeken kívül a laboratórium munkatársainál lehet kérni tetszőleges felvétel aláírását oktatási és kutatási felhasználásra. A programmal elmentett hullámforma fájlok is tartalmazzák az aláírást.

 

 

A főablak elemei

 

A program indításakor a főablak jelenik meg. Miután betöltöttünk egy beszédfelvételt az ablak bal felső sarka közelében található File menü Open menüpontjával, az 1. ábrán láthatóhoz hasonló felhasználói felületet látunk. Az alábbiakban ennek az elemeit tekintjük át.

 

 

 

1. ábra

 

 

A főablak bal szélén gombokat és egyéb kezelőszerveket látunk. A bal alsó sarokban található Play gombbal lejátszhajuk az éppen betöltött beszédfelvételt, a Quit gombbal kiléphetünk a programból. A többi kezelőelem funkcióját később ismertetjük.

 

Az ablak területének nagyját a fekete hátterű eredménykijelző foglalja el. Ennek felső részében alaphelyzetben a kinyert formánsmeneteket látjuk. A függőleges tengely a frekvenciának, a vízszintes az időnek felel meg, az egyes formánsmeneteket különböző színek jelölik. Az alapperiódusok határát halvány folytonos függőleges vonalak jelölik, míg a hanghatárokat halvány szaggatott függőleges vonalak. Az időtengely alatt minden hanghoz megjelenik annak fonetikus jele (vagy a szünetjel). A frekvenciatengely nullától a mintavételezési frekvencia feléig terjed, azonban ezt a Settings ablakban módosíthatjuk (lásd a beállításoknál).

 

Az ablak felső részén található View menüben beállíthatjuk, hogy csak a formánsmeneteket (Formants), csak a hangszínképet (Sonogram) vagy mindkettőt (Mixed) szeretnénk-e látni ezen a területen. A hangszínképen az adott pont sötétségével arányos az adott frekvenciakomponens teljesítménye. Szintén a View menüben található a Show bandwidth menüpont. Ha ezt bekapcsoljuk (egy kis pipa megjelenik a menüpont mellett), akkor a kiszámított formáns-sávszélességeket a formánsmenetek körül, a megfelelő formánsmenettel azonos színben egy sávként ábrázolja program. A sávszélesség értékek pontatlanok lehetnek és jelentősen ingadozhatnak a valós érték körül, mert ezeket egy logaritmikus összefüggéssel számítjuk a pólusok sugarából.

 

A formánsmenetek képét JPEG formátumban .jpg kiterjesztéssel fájlba menthetjük. Ehhez válasszuk a File menü Save Image menüpontját. Az így elmentett kép ezután kinyomtatható vagy beszúrható például Microsoft Word dokumentumokba. A kiszámított formánsfrekvencia értékeket egy .fmt kiterjesztésű szövegfájlba menthetjük, melyet tetszőleges szövegszerkesztővel olvashatunk. Ennek az állománynak minden sora egy alapperiódus-pár adatait tartalmazza. Az egyes oszlopok jelentését a 1. táblázat foglalja össze.

 

 

Pos

A vizsgált perióduspár kezdete ms-ban

Sample

A vizsgált perióduspár kezdete mintaszámban mérve

Sound

Az aktuális beszédhang fonetikus jele

Depth

Mélység a beszédhangban (a közelebbi hanghatártól való távolság az alapperiódusok számában mérve)

Length

Az adott hang hossza alapperiódusszámban mérve

F0

Alapfrekvencia (hanghatárok közelében és zöngétlen hangok esetén pontatlan)

F1

1. formánsfrekvencia *

F2

2. formánsfrekvencia *

F3

3. formánsfrekvencia *

F4

4. formánsfrekvencia *

F5

5. formánsfrekvencia *

F6

6. formánsfrekvencia *

            * Nincs adat, ha csendet érzékel a program.

 

1. táblázat

 

 

Az egér bal gombjával választhatunk ki egy alapperiódust. A kiválasztott periódusra számított LPC spektrum az eredménykijelző bal alsó, a lineáris predikciós szűrő pólusai (a z-síkon) a jobb alsó oldalán láthatóak. Miközben az egér gombját nyomva tartjuk, vízszintesen mozgatva a mutatót a spektrum és a pólusok mozgását követhetjük nyomon. Amennyiben egy csendet tartalmazó periódust választottunk ki, a két alsó kijelző üres.

 

Ahogy az egeret (gomblenyomás nélkül) a három kijelző valamelyike felett mozgatjuk, a főablak alsó sorában arról a pontról jelennek meg adatok, amelyre éppen mutatunk: a formánsmenet-kijelző és a z-sík esetén az adott pont koordinátái, a spektrumnál az éppen mutatott frekvencia és a hozzá tartozó amplitúdó.

 

Formánsmenetek az F1–F2 síkon

 

            A főablak F1-F2 plane gombjára kattintva egy külön ablakban az F1-F2 síkon ábrázolhatjuk a formánsmeneteket (2. ábra). A hagyományos szórásképek helyett az első két formáns együttes mozgását folytonos görbével lehet szemléltetni. Ez a megközelítés a főablakban látható formánsmenet kijelzés alternatívája.

 

 

 

2. ábra

 

 

            A kijelzőn a felvétel egyes magánhangzóinak F1-F2 menete látható. Az egyes pontok vízszintes koordinátája az első, a függőleges koordinátája a második formáns értékét fejezi ki. A görbék színe a magánhangzó azonosítására szolgál. A kijelző alatt látható, hogy melyik magánhangzóhoz milyen szín tartozik. Ha egy magánhangzó többször is előfordul a felvételben, akkor értelemszerűen minden megjelenéséhez külön színt rendel a program. A görbék egyes szakaszainak fényereje az idő múlásának felel meg: a magánhangzó első alapperiódusából származó adat jelenik meg a legsötétebben, majd periódusonként világosodik a görbe és az időben utolsó szakasz a legvilágosabb. A jobb láthatóság érdekében egy kör is megjelenik a kezdőpontok körül.

           

Módosítás és szintézis

 

A formánsmenetek módosításához szükséges kezelőelemek a főablak bal oldalán található panel Analyse és Synthesize gombja között vannak. Kétféle módosításra van lehetőség a programban: „szabad kézzel” átrajzolhatjuk a formánsmeneteket vagy eltolhatjuk a beállított százalékkal. Az előbbi esetben a Redraw keretben válasszuk ki az átrajzolni kívánt formánsmenetet és a felső kijelzőn a jobb egérgomb nyomva tartásával határozzuk meg az új menetet. Egymás után több formánsmenet is módosítható, de a kívánt trajektóriát a program nem tudja minden esetben megfelelően megvalósítani. Ha beállítottuk az elérni kívánt formánsszerkezetet, a Synthesize gomb megnyomása után a program újraszintetizálja a felvételt.

 

Ha a másik módosítási módszert választjuk, egy százalékos eltolási mértéket állíthatunk be az egyes formánsokra a Shift keretben. Ebben az esetben is a Synthesize gomb indítja el a szintézist (az eremény csak ezután hallgatható meg). A Reset gombbal a hat százalékkijelző alapállapotba áll vissza, de ennek a gombnak nincs hatása a beszédfelvételre.

 

Ha szeretnénk visszatérni az eredeti felvételhez, nyomjuk meg az Analyse gombot. A módosított felvételt .wav kiterjesztéssel elmenthetjük a File menü Save waveform menüpontjával. A módosított felvételt később újra betölthetjük a programba (az eredeti felvételhez tartozó .pit és .fon fájlok használhatók).

 

A formánsmenetek módosítása során figyelembe kell vennünk, hogy nagy mértékű változtatás esetén jelentősen torzulhat a beszéd és minőségromlást tapasztalhatunk. Kisebb (legfeljebb kb. 20%) módosítások során általában jó minőségű, természetes hangzású az újraszintetizált beszéd.

 

 

 

3. ábra

 

 

Beállítások

 

A főablak Settings gombjával jeleníthetjük meg a beállítások ablakát. A beállítási lehetőségeket az alábbiak szerint csoportosítva látjuk (3. ábra):

 

 

4. Felhasználás feltételei

 

A letölthető program, valamint ez a leírás a BME TMIT Beszédkutatási Laboratórium tulajdonát képezi. A szerző által aláírt felvételekkel szabadon felhasználható oktatási és kutatási célra. Ilyen célból változatlan formában, térítés nélkül, ezzel a leírással együtt szabadon terjeszthető. Bármilyen egyéb célra való felhasználáshoz vagy értékesítéshez a szerző írásbeli engedélye szükséges. Ezzel kapcsolatban vegye fel a kapcsolatot a Beszédkutatási Laboratórium vezetőjével.

 

A program használata során észlelt hibákat, a felmerülő továbbfejlesztési javaslatokat és minden egyéb kérdést, megjegyzést a speechtech@tmit.bme.hu e-mail címen szívesen fogad a program fejlesztője.

 

 

 

 

Bőhm Tamás Mihály

(bohm@tmit.bme.hu)

 

PhD hallgató

Budapesti Műszaki és Gazdaságtudományi Egyetem

Távközlési és Médiainformatikai Tanszék

Beszédkutatási Laboratórium

 

 

 

Hivatkozások

 

[1]       Bőhm Tamás Mihály: Formánskövető és módosító algoritmus felhasználási lehetőségeinek vizsgálata. Diplomaterv, Budapesti Műszaki és Gazdaságtudományi Egyetem, Budapest, 2003.

 

[2]       Dr. Gordos Géza, Takács György: Digitális beszédfeldolgozás. Műszaki Könyvkiadó, Budapest, 1983.

 

[3]       Géza Németh, Géza Kiss, Tamás Bőhm: A flexible baseline method for formant analysis, tracking and modification of speech. 12th European Signal Processing Conference, Vienna, 2004. (A cikk elfogadásáról még nem született döntés.)

 

[4]       Klára Vicsi, John C. Wells: SAMPA for Hungarian.
http://www.phon.ucl.ac.uk/home/sampa/hungaria.htm

 

[5]       Hunyadi László (szerk.): Kísérleti fonetika, laboratóriumi fonológia a gyakorlatban. Debreceni Egyetem Kossuth Egyetemi Kiadója, Debrecen, 2003.

 

 

Változások a programban és a leírásban

 

2004. április 21.           A program és leírása elérhető a http://alpha.tmit.bme.hu/~tbohm/formant címen.