Beszédtechnológia, beszédfelismerés Dr. Tóth László MTA-SZTE Mesterséges Intelligencia Kutatócsoport
Beszédtechnológiai témakörök Beszédfelismerés „Tiszta” felismerés = diktálás (beszédírás) Más rendszer részeként: beszédinput (beszédakció) Szorosan összefonódik a nyelvtechnológiával (nyelvi szinten is modellezni, elemezni kell) Beszélőfelismerés Verifikáció (igen/nem) vagy azonosítás (több beszélő közül) Beszédszintézis (text-to-speech) Problémák: hangminőség, prozódia, érzelmi töltet Beszédtárolás és -továbbítás Beszédtömöríés (speech coding) Minőség javítása (pl. telefonos torzítás) (speech enhancement)
Beszédtechnológiai témakörök 2. Beszédadatbázisok készítése A statisztikai alapú algoritmusok tanítására/tesztelésére A feldolgozás lehetséges szintjei: Alapos lehallgatás, szószinten pontos átirat (plusz zajok, egyedi kiejtések feljegyzése) Szóhatárok bejelölése a felvételen Beszédhang-határok bejelölése a felvételen Felismeréshez kapcsolódó nyelvtechnológiai problémák Valószínűségi alapú nyelvi elemzés Dialógusmodellezés Kiértékelés A beszédtech. alkalmazások hatásfokának objektív mérése
Beszédfelismerési alkalmazások A teljesen általános felismerés nem megy! Valamilyen módon „szűkített” feladatokat keresünk, pl. Szótár v. nyelvtan megszorítható (kicsi-közepes-nagy szótár) A hangminőség jobb az áltagosnál Beszédmód: izolált szavas – olvasott – folyó – spontán Zaj jellege: nincs – modellezhető – változó Beszélők: egyetlen beszélő sokáig (adaptáció) – változó beszélők Klasszikus alkalmazások: Parancsvezérlés (kis szótár, izolált szavak zaj esetén is OK) Diktálórendszerek (nagy szótár, de tiszta jel, beszélőadaptáció) Dialógusrendszerek (kis szótár, kötött nyelvtan, ált. telefonos)
Beszédfelismerési alkalmazások 2. Jelenleg „divatos” alkalmazások: Multimodalitás (szájról olvasás, arckifejezés, kézmozdulat felismerése, kombinálása a beszédfelismerővel) Multilingvalitás: nyelv felismerése, akcentus felismerése, és kezelése, fordítás Hang-adatbányászat: audio indexing & retrieval, diarization, summarization Néhány további érdekes téma: Egyidejű beszédjelek szétválasztása Érzelmek felismerése Beszédterápia, olvasástanítás, nyelvtanulás segítése Néma beszéd felismerése EMG-ből
Beszédfelismerő komponensei akusztikai- fonetikai modell nyelvi modell szintaktikai/ szemantikai modell dialógus- modell Digitalizálás és jellemző- kinyerés Felismerés (osztályozás-kombinálás-keresés) Szintaktikai/szemantikai elemzés Dialógus-vezérlés beszéd- jel spektrális vektorok szólista v. -háló értelme- zett kérés akció beszédszöveg beszédtartalom beszédakció
Jellemzőkinyerés Cél: a lényegtelen információ kidobása, a lényeges tömör reprezentálása „lényeg”: nyelvi tartalom (ld. fonetika) Klasszikus módszerek: tisztán matematikai megoldások (ld.: digitális jelfeldolgozás, beszédfeldolgozás) Újabb módszerek: az emberi fül/hallás (durva) modellezése (ld.: pszichoakusztika, neurofiziológia) Mindig valamilyen spektrális vektorsorozat a kimenet, felbontás: 100 vektor/sec, 40-50 komponens/vektor
A felismerés A beszéd (és nyelv) specialitása, hogy hierarchikus: Spektrális vektor („adatkeret”): 25-30 ms-os részletet ír le Beszédhang: a magyarban kb. megfelel a betűknek Szó: angolban ~felsorolhatók, magyarban toldalékolás is van! Mondat: nyelvtani szabályokkal próbáljuk leírni (szintaxis) Szöveg ill. dialógus: szemantikai tartalom ill. beszédaktus A szintezettség kezelése: Alapvetően bottom-up módon Több megoldási javaslat továbbítása a következő elemzési szintnek (tkp. a döntés késleltetése) Valószínűségek hozzárendelése
A felismerés 2. 1. részfeladat: osztályozás 2. részfeladat: kombinálás Spektrális vektorok, esetleg beszédhangnyi szegmentumok azonosítása (milyen hangnak felel meg) Tudásalapú (fonetikai) megoldások: nem váltak be, kiszorultak Statisztikai gépi tanulási megoldások: jelenleg csak ilyeneket használnak 2. részfeladat: kombinálás A vektorokat kombinálni kell beszédhangokká, majd a beszédhangokat szavakká, a szavakat mondatokká Valószínűségek kezelése: valszám. szabályai alapján
A felismerés 3. 3. részfeladat: keresés A keresési tér szemléltetése ~ Keressük a legnagyobb valószínűségű kombinációt Din. prog., heurisztikák, vágás kell a hatékony bejáráshoz A keresési tér szemléltetése Input: a beszédjel spektrális reprezentációja Ismeretlen: a hangok helye és címkéje Output: fonetikai szimbólumok sorozata („milyen hangok”) „Rejtett” részfeladat: szegmentálás („hol”) ~ k é - t e z r
A felismerés 4. A felismerést segítő komponensek A felismerés kimenete Akusztikus modell: általában az ún. rejtett Markov-modell A hangokhoz tartozó adatvektorokat statisztikailag írja le Valószínűségek kombinálása: naív Bayes-szabály Nyelvi modell: kiejtési szótár és n-gram Szavak leírása: a hozzájuk tartozó hangsorozat megadásával Mondatok: a szavak egymásutániságának valószínűségével A felismerés kimenete Szósorozat, vagy esetleg csak hangok sorozata További feldolgozás esetén: N legvalószínűbb hipotézis A felismerés kiértékelése A hierarchia minden szintjén van értelme kiértékelni Izolált vektorok, hangok szavak: osztályozási pontosság Hang- és szósorozatok: edit distance Jelentéskinyerés vagy dialógus kiértékelése: bonyolultabb
A felismerés 5. N-best list és word lattice szemléltetése
Magasabb szintű feldolgozás Szintaktikai/szemantikai elemzés: Ez már nyelvtechnológiai feladat, ld. korábbi két előadás! Dialógusmodellezés: Speciálisan a dialógusrendszerek készítéséhez kapcsolódó beszéd- illetve nyelvtechnológiai terület Cél: a felhasználó számára kényelmes dialógus, minimalizált tévesztési lehetőségekkel Van némi elméleti háttere, de inkább gyakorlati jellegű
S: Welcome to British Airways flight information service S: Welcome to British Airways flight information service. How can I help you? C: Yes, I'd like the departure time of flight BA four one eight from Heathrow Airport. S: Do you know the flight number? C: The flight number is BA four one eight. S: Please tell me the flight number. C: BA four one eight. S: Was that flight number three eight four? S: Please tell me the name of the airline. C: British Airways. S: Did you say British Airways? C: Yes. S: Was that British Airways? S: Sorry, I missed what you said. Did you say British Airways? C: Yes, British Airways. S: I'm sorry. I don't know of any such flight. Do you have another inquiry? S: Thank you for calling. Good bye.
Beszédkutatás a Kutatócsoportnál Adatbázisok készítése Új jellemzőkinyerési módszerek Hosszú távú jellemzők (adatkeretek helyett nagyobb blokkok) Jellemzőtér-transzformációs módszerek Beszédterápia és olvasásfejlesztés: a „BeszédMester” Beszédfelismerés Rendszereink: neuronhálós (keretalapú ill. szegmentális) és rejtett Markov-modelles Kitartott magánhangzók osztályozása: ld. BeszédMester Beszédhang-szegmentumok osztályozása: szegmentális modell Beszédhang-sorozatok felismerése: neuronhálós módszerek Szavak, szósorozatok felismerése: Orvosi diktálórendszer (rejtett Markov-modellel és neuronhálós módszerekkel is)
Adatbázisok Magyar Telefonos Beszédadatbázis (MTBA) A Műegyetemmel együttműködve készítettük 500 telefonálótól származó felvételek, vezetékes és mobilos Hívók az ország minden tájáról, vegyes életkori eloszlásban Postán kiküldött szöveget kellett beolvasniuk Izolált szavak: vezetéknevek, cégnevek, számok, betűzött szavak, dátumok, … Hangkapcsolatokban gazdag mondatok és szavak: 500 beszélőtől összesen 7 órányi anyag, 8000 fájl, kézi címkézés Többnyire tiszta és szép kiejtésű felvételek Ellenpéldák: túlartikuláló és alulartikuláló beszélő
A szegmentálás szemléltetése
Adatbázisok 2. Magyar Referencia Beszédadatbázis (MRBA) A Műegyetemmel együttműködve készítettük 300 embertől származó felvételek, számítógépes környezetben A legkülönbözőbb féle PC-k, laptopok, valamint mikrofonok Ez is olvasott szöveget tartalmaz Hangkapcsolatokban gazdag mondatok és szavak: Hasonló jellegű mondatok, mint az MTBA-ban 100 ember anyaga kézileg szegmentálva, a többi géppel Életkor vegyes, de túlreprezentált az egyetemista korosztály Sajnos sok a hadaró, motyogó beszélő
Beszéd-adatkeretek osztályozása A spektrális reprezentáció adott időpillanatait (adatkereteit) külön-külön dolgozzuk fel Időbeli felbontás: 100 vektor/mp (5-10 vektor/hang) Frekvenciabeli: 40-50 komponens/vektor (MFCC, PLP, …) A címkézés ált. esetben rossz hatásfokkal megy (50-70%) Alkalmazása (kitartott hangokra): ld. BeszédMester é é é é é z z z e e e e e e e
Beszédhangok osztályozása Az egyes hangokhoz tartozó jeldarabokat (szegmentumokat) egy egységként dolgozzuk fel Hosszabb jelrészlet több információ jobb felismerés Változó hosszúságú darabok, de fix számú jellemzőt akarunk speciális jellemzők kellenek (pl. átlagos energia…) Tapasztalat: 80-150 szegmentális jellemzővel jó felismerési eredmények é z e
Jellemzőtér-transzformáció A szegmentumok osztályozása többféleképpen javítható „Modern” gépi tanulási módszerek, pl. SVM Jellemzőtér-transzformáció az osztályozás előtt Jellemzőtér-transzformációs módszerek Transzformálják a teret, hogy az osztályok könnyebben szétválaszthatók legyenek Lineáris módszerek (pl. LDA): csak forgatás, nyújtás Nemlineáris módszerek (pl. K-LDA): egészen durva vetemítések (ld. ábra)
Beszédhang-osztályozási eredmények Hibaarányok számbemondásokat tartalmazó adatbázison Az MTBA adabázison (52 beszédhang, ANN): 32,17% A TIMIT angol adatbázison (39 beszédhang, ANN) (A legjobb ismert eredmény: 18% körül) trafó Lineáris változat Nemlineáris változat Nincs 28,43% PCA 28,22% 26,49% ICA 29,01% 27,23% LDA 27,12% 25,11% SDA 27,93% 25,93%
Szegmentum-alapú felismerés Probléma: folyamatos szövegben a hangok helye nem ismert! Megoldás: brute-force ‘előre’ keresés (hosszkorlát mellett) Osztályozó kiegészítése egy újabb osztállyal: „anti-phone” Tanítása mesterségesen generált példák alapján Címkék hozzárendelése helyett csak valószínűségek! P(átirat helyes) ~ P(címkék helyesek) és P(szegmentálás helyes) é z Ø
Szegmentum-alapú felismerés 2. A szegmentálás valószínűségének becslése Az anti-fón valószínűségek alapján többféle képlettel Eredmények az MTBA adatbázison (ANN-nel) Gyorsítási lehetőség „Brute force” helyett a valószínűtlen szegmentálások kizárása, pl. neuronhálóval tanulva a szegmenshatárokat Mondatszintű hangsorozat-felismerési eredmények (% korrekt) Antifónok nélkül Egyszerű antifón-modell Bonyolult antifón-modell HMM 53,44% 58,74% 61,34% 61,60%
Keretalapú felismerés A keretekhez osztályonkénti valószínűségeket rendelünk Ezután azonosítás és szegmentálás egyszerre történik: maximumot adó út keresése dinamikus programozással (Viterbi alg.) Keresési megszorítások a szegmentumokra (hangokra): Hosszmodellezés Egymásra következési valószínűségek bizonyos sorozatok engedélyezése/kizárása (szótár) Matematikai formalizálás: a rejtett Markov-modell a b c d
A rejtett Markov-modell (HMM) A keretenkénti valószínűségek becslése történhet Gauss-görbék lineáris kombinációjával (szokványos HMM) Neuronhálókkal (HMM/ANN hibrid ill. HMM/ANN tandem) A valószínűségek kombinálása a HMM-ben Szorzással (naív Bayes-szabály), a tényezők: Keretenkénti val., exponenciális hossz val., átmeneti val. A HMM tanítása Inicializálás: jó, ha van némi kézileg szegmentált adat További tanítás: csak címkézett adaton is megy! Tanító algoritmus: Baum-Welch Iteratív Maximum likelihood kritérium Lokális optimumot garantál
Neuronhálók a modellezésben HMM/ANN hibrid: Olyan, mint a HMM, de Gauss-görbék helyett neuronhálókkal becsli az adatvektorokhoz tartozó valószínűségeket Általában több szomszédos adatvektoron tanítják a hálót „Tandem” séma: az ANN felhasználásának másik módja Az ANN-t úgy tekintjük, mint jellemzőtranszformációs algoritmust, azaz a kimenetét nem valószínűségi becslésként, hanem új jellemzővektorként értelmezzük Így az ANN kimenetén tanítjuk a hagyományos gaussos HMM-et Miért nem fölösleges bonyolítás? A HMM kódjába, paraméterezésébe nem kell belenyúlni Könnyebb az összehasonlítás a hagyományos HMM-mel Az ANN nem csak osztálycímkékkel, hanem bármely más „értelmesnek” ígérkező célértékekkel tanítható
A háromféle keretalapú modell
Felismerési eredmények Keretalapú módszerek, beszédhang-stringek felismerése (bigram: két hang egymásra következésének val. modellje) Keretalapú módszerek, szószintű hibaarány Izolált szavas felismerés, 431 telefonos városnév: Ld. Még MÁV demo! HMM Hibrid Tandem Tandem+bigram korrekt 61,60% 61,53% 65,40% 70,91% pontos 52,11% 52,21% 60,16% 68,58% HMM Hibrid Tandem hibaarány 6,73% 6,27% 3,02%
Beszédhang-szintű kimenet Példák (a 68,58%-ot tudó rendszerből): havanedadóütykahartárrazatazatetletfállambezzni temészetesentmavahatésírommavamatizsboncolan egyetlennemvoltakszeméstákozesőin szagedemengyótérpistásulatánatunéhaszinűse kikítmorbigyahasaláttdeszényteszellánytázzuktmintecsecsemett Hány százalék lenne elég? – teszt emberekkel, „rontott” szövegekkel
Orvosi diktálórendszer Államilag támogatott projekt, BME-vel együttműködve Cél: folyamatos beszéd elfogadható szintű felismerése Feladat: nyelvileg erősen szűkített orvosi szövegek SZTE: pajzsmirigy-szcintigráfiás leletek BME: gasztroenterológiai leletek Példa: Klinikai adatok : St.p.strumectomiam. UH: bal lebeny kp. harmadában 12 mm-es göb. Kérdés : Göb? Elözô vizsgálata: - Jelen vizsgálata : Megnagyobbodott, szimmetrikus pajzsmirigy, amely a nyak középvonalában helyezkedik el. Alsó széle 2 cm-nél távolabb van a jugulumtól. Az isthmus rajzolata szabályos. A jobb lebeny az ellenoldalinál több radiofarmakont tárol. A jobb lebeny egyenletes aktivitás- eloszlással ábrázolódik. A bal lebeny középsô harmadában laterálisan 0.5x1.5 cm-es csökkent aktivitású terület látható, mely megfelel az UH-al leírt göbnek. Összefoglaló vélemény: St.p.strumectomiam. Recidiv struma nodosa. Hideg göb a bal lebenyben.
A felvetődő feladatok Akusztikai modell: Nyelvi modell: Adatbázis összegyűjtése, feldolgozása (ld. MRBA!) Akusztikus modellek betanítása, tesztelése az új adatbázison Beszélőadaptációs kísérletek Nyelvi modell: A tanításhoz kapott leletanyag tisztítása Statisztikai nyelvi modell építése (n-gram) Felismerő ‘engine’: Az akusztikus és nyelvi információ kombinálása Hatékony keresés különböző vágási módszerekkel (a valós idejű futás érdekében)
A leletanyag Tartalma, mennyisége: Technikai feladatok: Kb. 8500 lelet az SZTE Nukleáris Medicina Intézettől Tkp. az összes pajzsmirigy-lelet 6 évre visszamenőleg Technikai feladatok: DOS-os, régi Word-os, stb. fájlformátumok átkonvertálása Karakterkonverzió (kalapos ő, hullámos ő,…) Nyelvi jellegű feladatok: Rengeteg elgépelés Latin kifejezések nem konzekvens írása Rövidítések (főleg latin betegségnevekben)
A leletanyag 2. Példa: az „aspirációs” szó előforduló alakjai Egységesítés után megmaradó szavak száma: ~ 2500 Ezek szóalakok, azaz minden toldalékolt alak külön szó! (A morfológia kezelésével nem is próbálkoztunk…) Számok és dátumok kezelése külön megoldást igényelne (reguláris nyelvtannal: elkészült, de nem teszteltük felismerésben) Nyelvtani kötöttség: nagyon nagyfokú 95 000 mondatból mindössze 12 500 különböző Szerkezetileg hasonló mondatok (csak pl. bal helyett jobb…) Asirációs Asp Aspirációc Aspirácios aspirácios Aspirációs aspirációs Aspirácis Aspirácyós Aspiratios Aspiratiós aspiratiós Aspirátios Aspirátiós Aspiráviós Aspirciós Aspirítiós Asprációs
A nyelvi modell Az n-gram nyelvi modell Szópárok, szóhármasok, … egymás utáni előfordulásának valószínűsége (bigram, trigram,…) Egyszerűen közelíthető a szövegben előforduló szópárok, szóhármasok,… előfordulásainak megszámlálásával A tanításkor nem látott szó n-esek kezelése Erre valók az ún. simítási technikák Esetünkben: csoport n-gramok szó n-gramok helyett Szavak szófaji csoportba sorolása MSD-kód alapján A szavak helyett a csoportnevekből képzünk n-gramot Jóval kevesebb csoport, mint szó kicsi a 0 előfordulás esélye A szó és csoport n-gramok kombinálása 30% hibacsökkenés a pajzsmirigy megnagyobbodott névelő főnév ige
A nyelvi modell 2 Az akusztikai és a nyelvi modell kombinálása: P(össz) = P(akusztikai)*P(nyelvi)α α : állításával szabályozható, hogy az akusztikai vagy a nyelvi modell befolyása legyen erősebb A gyakorlatban általában jó erősre van véve a nyelvi modell hatása… Esetünkben: erősen megszorított nyelvtan nagyon támaszkodunk a nyelvi modellre Hátrány: „a székrecsegésből is orvosi szöveget csinál”
Hatékony keresési technikák A jelet balról jobbra dolgozzuk fel, a szavak illesztésével tkp. egy keresési fa képződik: Feladat: a fa vágásával az exp. robbanás elkerülése A szavak hatékony tárolása: prefixum-fa Az n-gram modell kiértékelése: előrehozott ne várjuk meg a szó végét, ha nem muszáj! Pl: nagyo(bb) oldalán pajzsmirigy bal jobb megnagyobbodott alsó oldali felől …
Hatékony keresési technikák 2. A keresési tér bejárása lehet: Időszinkron (széltében) keresés Vágás: beam pruning (a legjobbnál egy adott küszöbbel rosszabb utak eldobása) ‘Best-first’ keresés Vágás: csak a legjobb K útkezdeményt tartjuk meg (rendezett listában tárolva) A vágással a felismerési pontosság és a futásidő (real time factor) fordítottan változik:
Hatékony keresési technikák 3. A felismerési pontosság és a futási idő a szótár méretének és a megtartott nyelvi hipotézisek számának függvényében
Beszélőadaptáció Az akusztikai modelleknek az adott beszélő hangjához való igazítása Megkérjük a felhasználót, hogy olvassa fel a képernyőre kiírt szöveget (kb. 5 percnyi szöveg) A beszédhang-modelleket a felvétel alapján módosítjuk pl. a várhatóérték-vektorokat arrébb toljuk a spektrális vektorok átlaga alapján Eredmények: gyakran 60-70% hibacsökkenés! Beszélő ffi1 ffi2 nő1 nő2 nő3 Pontosság adaptáció előtt 97.57% 98.53% 83.42% 95.33% 82.99% Adaptáció után 98.43% 96,70% 94.52% 98.39% 97.67%
Angol felismerő adaptálása magyarra Motiváció: Az angol adatbázisok sokkal nagyobbak Az MTBA ill. MRBA 5-10 órás nagyságrendűek Angolra „normális” a 100 órás nagyságrendű adatbázis De vannak több ezer órás adatbázisok is! Felhaszált erőforrások HTK: publikus rejtett Markovos beszédfelismerő Quicknet: publikus neuronhálós programcsomag Publikus, angol adatbázison betanított neuronháló-súlyfájlok Módszer A tandem sémát fogjuk használni (ld. korábban!) Az angolra betanított neuronhálón nem változtatunk Adaptáció: a rejtett Markov-modell magyar adatbázison való tanítása révén
Az angol neuronhálók Készültek: a Johns Hopkins 2006 summer workshopon, nemzetközi együttműködésben Tanítóadatok: Kétezer(!) órányi angol „conversational telephone speech” Tanítás kétféle célértékekkel: 1. változat: az angol beszédhangok felismerésére 2. változat: ún. artikulációs jellemzők felismerésére (pl. nyelvállás, zöngésség, nazalitás, …) Ezek elvileg nyelvfüggetlenebbek, mint maguk a hangok
Eredmények A beszédhang-tévesztések elemzése Beszédhang-szintű pontosság, MTBA Nincs szignifikáns különbség a 3 eredmény közt, azaz: 2000 óra angol adat kb. annyit ér, mint 7 óra magyar adat Az artikulációs jellemzők detektálása nem vezetett jobb eredményre, mint a hagyományos beszédhangos megoldás A beszédhang-tévesztések elemzése Kérdés: azokon a hangokon téveszt-e többet az angol rendszer, amelyekben a magyar és angol nyelv eltérnek? Az adott hanghoz tartozó pontosságok hányadosát fogjuk nézni ez >1 ha magyar modell a jobb, <1 ha az angol Magyar tandem Angol tandem (PH) Angol tandem (AF) 62,62% 62,22% 61,83%
A hangtévesztések elemzése 2. Mghk: nem egyértelmű (az ű romlik, de csak a hosszú, az ő kb. ugyanolyan) Felp. zárh: csak a t romlik (hehezet? de az a p-k esetében is lehet) Affrikáták: a cs kivételével ésszerű a romlás (c, ty, gy nincs az angolban) Frikatívák: a zs ritkasága magyarázat lehet a romlására (sz: hosszú-rövid probléma) Nazálisok: kb. ugyanannyi romlás mint javulás