Deep Learning a gyakorlatban Python és LUA alapon. Beszédfelismerés (ASR)

Hasonló dokumentumok
Mély neuronhálók alkalmazása és optimalizálása

BEKE ANDRÁS, FONETIKAI OSZTÁLY BESZÉDVIZSGÁLATOK GYAKORLATI ALKALMAZÁSA

Beszédtechnológia a médiában. Tibor Fegyó SpeechTex Kft.

Beszédfelismerés. Izolált szavas, zárt szótáras beszédfelismerők A dinamikus idővetemítés

Algoritmusok és Adatszerkezetek II. utolsó előadás Beszédtechnológiai algoritmusok. (csak egy kis felszínkapargatás)

Rejtett Markov Modell

Deep Learning a gyakorlatban Python és LUA alapon Tanítás: alap tippek és trükkök

Hadházi Dániel.

A HANGOK TANÁTÓL A BESZÉDTECHNOLÓGIÁIG. Gósy Mária. MTA Nyelvtudományi Intézet, Kempelen Farkas Beszédkutató Laboratórium

Markov modellek

Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban

Objektív beszédminősítés

Statisztikai eljárások a mintafelismerésben és a gépi tanulásban

A szupraszegmentális jellemzők szerepe és felhasználása a gépi beszédfelismerésben. Szaszák György

6. Előadás. Vereb György, DE OEC BSI, október 12.

Újfajta, automatikus, döntési fa alapú adatbányászati módszer idősorok osztályozására

Adatbányászati szemelvények MapReduce környezetben

Nagy számok törvényei Statisztikai mintavétel Várható érték becslése. Dr. Berta Miklós Fizika és Kémia Tanszék Széchenyi István Egyetem

Beszédfelismerő szoftver adaptálása C# programozási nyelvre

Statisztika I. 8. előadás. Előadó: Dr. Ertsey Imre

AUTOMATIKUS ÉRZELEM-FELISMERÉS AKUSZTIKAI PARAMÉTEREK ALAPJÁN

Szegmentálási egységek összehasonlítása gépi érzelem felismerés esetén

Automatikus beszédfelismerés Mérési Segédlet

Jelek és rendszerek 1. 10/9/2011 Dr. Buchman Attila Informatikai Rendszerek és Hálózatok Tanszék

Visszacsatolt (mély) neurális hálózatok

Mintaillesztő algoritmusok. Ölvedi Tibor OLTQAAI.ELTE

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés

Beszédfelismerés, beszédmegértés

Környezetfüggő akusztikai modellek létrehozása Kullback-Leibler divergencia alapú klaszterezéssel

Beszédinformációs rendszerek 6. gyakorlat

Kísérlettervezés alapfogalmak

Deep Learning a gyakorlatban Python és LUA alapon Felhasználói viselkedés modellezés

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

KÉZZEL FOGHATÓ TECHNOLÓGIAI MEGOLDÁSOK DANCSEVICS TIBOR

KÖZELÍTŐ INFERENCIA II.

IBM SPSS Modeler 18.2 Újdonságok

Kísérlettervezés alapfogalmak

Modellkiválasztás és struktúrák tanulása

Objektív beszédminısítés

Normális eloszlás tesztje

Probabilisztikus funkcionális modellek idegrendszeri adatok elemzésére

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet

Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.

KÖZELÍTŐ INFERENCIA II.

Információ megjelenítés Alapok

Osztályozóvizsga követelményei

Statisztika I. 9. előadás. Előadó: Dr. Ertsey Imre

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Régebbi Matek M1 zh-k. sztochasztikus folyamatokkal kapcsolatos feladatai.

Ökonometria. Adminisztratív kérdések, bevezetés. Ferenci Tamás 1 tamas.ferenci@medstat.hu. Első fejezet. Budapesti Corvinus Egyetem

Gépi tanulás a gyakorlatban. Bevezetés

Probabilisztikus modellek II: Inferencia. Nagy Dávid

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Beszédfelismerés. Bálint Enikő

Kabos: Statisztika II. t-próba 9.1. Ha ismert a doboz szórása de nem ismerjük a

Lineáris regressziós modellek 1

Bevezetés a hipotézisvizsgálatokba

Valószínűségszámítás összefoglaló

Intelligens Rendszerek Gyakorlata. Neurális hálózatok I.

Statisztika I. 4. előadás Mintavétel. Kóczy Á. László KGK-VMI. Minta Mintavétel Feladatok.

Kettőnél több csoport vizsgálata. Makara B. Gábor MTA Kísérleti Orvostudományi Kutatóintézet

IV.7 MÓDSZER KIDOLGOZÁSA FELHASZNÁLÓI ADATOK VÉDELMÉRE MOBIL ALKALMAZÁSOK ESETÉN

Statisztika I. 4. előadás Mintavétel. Kóczy Á. László KGK-VMI. Minta Mintavétel Feladatok.

Matematikai alapok és valószínőségszámítás. Valószínőségi eloszlások Binomiális eloszlás

Biomatematikai Tanszék

Gépi tanulás a gyakorlatban. Lineáris regresszió

Nyelvtan. Most lássuk lépésről lépésre, hogy hogyan tanítunk meg valakit olvasni!

Mély neuronhálós akusztikus modellek gyors adaptációja multi-taszk tanítással

Gépi tanulás. Hány tanítómintára van szükség? VKH. Pataki Béla (Bolgár Bence)

Elfedett pulzációk vizsgálata a KIC fedési kettősrendszerben

Folyamatos beszéd szószintű automatikus szegmentálása szupraszegmentális jegyek alapján

Városi környezet vizsgálata távérzékelési adatok osztályozásával

Hidden Markov Model. March 12, 2013

Nyitott mondatok Bennfoglalás maradékkal

Folyamatos, középszótáras, beszédfelismerô rendszer fejlesztési tapasztalatai: kórházi leletezô beszédfelismerô

Stratégiák tanulása az agyban

Főnévi csoportok azonosítása szabályalapú és hibrid módszerekkel

Gazdasági matematika II. tanmenet

DIGITÁLIS KÉPANALÍZIS KÉSZÍTETTE: KISS ALEXANDRA ELÉRHETŐSÉG:

Kettőnél több csoport vizsgálata. Makara B. Gábor

Funkcionális konnektivitás vizsgálata fmri adatok alapján

PONTFELHŐ REGISZTRÁCIÓ

Többsávos, zajtűrő beszédfelismerés mély neuronhálóval

Terméktervezés módszertana 9. előadás

Kutatásmódszertan és prezentációkészítés

Eredmények kiértékelése

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

1/8. Iskolai jelentés. 10.évfolyam matematika

Tanulás tanuló gépek tanuló algoritmusok mesterséges neurális hálózatok

Searching in an Unsorted Database

Matematikai alapok és valószínőségszámítás. Statisztikai becslés Statisztikák eloszlása

E x μ x μ K I. és 1. osztály. pontokként), valamint a bayesi döntést megvalósító szeparáló görbét (kék egyenes)

Közösség detektálás gráfokban

nyelv: 2) Kérdezz meg 3 embert a környezetedben arról, milyen nyelven tud beszélni, írni, olvasni. Írd le a válaszaikat!

Akusztikai mérések SztahóDávid

12. előadás - Markov-láncok I.

Eötvös József Általános Iskola 1131 Budapest, Futár u. 18.

Megerősítéses tanulás

ORVOSI STATISZTIKA. Az orvosi statisztika helye. Egyéb példák. Példa: test hőmérséklet. Lehet kérdés? Statisztika. Élettan Anatómia Kémia. Kérdések!

Mérés és adatgyűjtés

Átírás:

Deep Learning a gyakorlatban Python és LUA alapon Szaszák György Beszédfelismerés (ASR) http://smartlab.tmit.bme.hu

Nagyházik December 1, csütörtök Botz TensorFriends Ideiglenes név Bájösz VB train_validate_test_repeat December 6, kedd Epochalypse TensorBiceps Rhinos Fully-connected team YOLO December 8, csütörtök Rolling in the deep MorphoDeep 2/48

Nagyházik Sorsolt sorrend: https://github.com/bme-smartlab-education/vitmav45/blob/master/nagyhazi-beszamolo-sorrend.ipynb 15+5 perc / csapat Használjátok a sablont, feltöltés előző nap éjfélig a github-ra Legyetek itt egymás beszámolóján Aláírás feltétele (vagy 4-es/5-ös megajánlott jegy) 3/48

Jogi nyilatkozat Jelen előadás diái a Deep Learning a gyakorlatban Python és LUA alapon című tantárgyhoz készültek és letölthetők a http://smartlab.tmit.bme.hu honlapról. A diák nem helyettesítik az előadáson való részvételt, csupán emlékeztetőül szolgálnak. Az előadás diái a szerzői jog védelme alatt állnak. Az előadás diáinak vagy bármilyen részének újra felhasználása, terjesztése, megjelenítése csak a szerző írásbeli beleegyezése esetén megengedett. Ez alól kivétel, mely diákon külső forrás külön fel van tüntetve. 4/48

Nem vagyunk egyformák 5/48

Dinamikus idővetemítés 6/48

Dinamikus idővetemítés 7/48

Keretképzés 8/48

Nem is olyan egyszerű probléma Nehézségek: időbeli dinamikus változatosság dinamikus idővetemítés frekvenciatartománybeli eltérések (egyének között) távolságszámítás (vektorok között) bonyolult a nyelv is nyelvi modell + témabehatárolás 9/48

Józan paraszti ésszel... Ötlet: - tároljunk mintákat, képezzünk kereteket, aztán dinamikusan vetemítsük hozzájuk a bemondást - közben úgyis mérünk távolságot, azt átlagoljuk - a legközelebbi minta nyer Mi legyen a minta? - Mondatok túl sok kellene (kb. végtelen) - Szavak 20-100 ezer szóval 90-98% fedés: rengeteg szó - Beszédhangok......alakul: viszonylag homogének is (spektrumban) 10/48

Beszédhang alapú felismerés Felismerési alapegység: beszédhang Azt szeretnénk csinálni, hogy felveszünk mintákat, aztán hozzájuk hasonlítunk. Érdemes többet is felvenni (kiejtés változatos), mert javulnak az esélyeink. Ha már úgyis többet veszünk fel, össze is vonhatjuk az egy beszédhanghoz tartozókat: adjuk meg a spektrális eloszlásukat (ez a modellünk) 11/48

Spektrális eloszlás modell Ha van sok mintánk, akkor statisztikai módszerekkel remekül tudunk eloszlást becsülni. Frekvenciatartományban szélesebb/hegyesebb sűrűsödéseket figyelhetünk meg: több normális eloszlásból össze tudjuk pakolni (centrális határeloszlás tétel miatt amúgy is normális) Ez a Gauss-keverékmodell (Gaussian Mixture Modell, GMM) Paraméterei: összetevők súlya, várható értéke, szórása 12/48

Spektrális eloszlás modell Ha van sok mintánk, akkor statisztikai módszerekkel remekül tudunk eloszlást becsülni. Frekvenciatartományban szélesebb/hegyesebb sűrűsödéseket figyelhetünk meg: több normális eloszlásból össze tudjuk pakolni (centrális határeloszlás tétel miatt amúgy is normális) Ez a Gauss-keverékmodell (Gaussian Mixture Modell, GMM) Vegyük észre, hogy ezzel egy osztályozónk van! 13/48

Spektrális eloszlás modell 14/48

Spektrális eloszlás modell 15/48

Útban a felismerés felé Osztályozó megvan. Vegyünk mintákat a bejövő beszédből, és osztályozzuk. ablakolás (kb 25 ms) FFT (aztán MFCC, mert a spektrum redundáns, ill. azt halljuk) ablak léptetése átfedéssel (10 ms = keretidő) A baj: a kipotyogó beszédhangsorból lehetetlen feladat értelmes szavakat, mondatokat rekonstruálni, mert csak kb. 70% a pontossága (a fülünké sem sokkal jobb!) 16/48

Jelfeldolgozás 17/48

Miben jobb az ember? Ismeri a nyelvet! Ha abból indulunk ki, hogy aki beszél, kitalálta, mit akar mondani és utána kimondja: valamilyen rejtett folyamat generálja a beszédet. próbáljuk meg modellezni a rejtett folyamatot, mögötte ott van az a mondat, ami ahhoz vezetett, amit hallunk! olyat tudunk csinálni, hogy ha a mondat megvan, akkor megmondjuk, hogy akusztikailag hogy nézhet ki, ha kimondják (GMM erre alkalmas!) 18/48

Milyen mondatok jöhetnek szóba? Lényegében bármi (végtelen féle)... Nyelvi modellnél láttuk, hogy a nyelvre közelítéssel megáll a Markov-tulajdonság: nem kellenek mondatok, elegek a szósorozatok. ilyen szó alapú nyelvi modellt tudunk csinálni rejtett Markov-modell (HMM): egy folyamat szóról szóra bolyongva és a szavakon végighaladva generál valamilyen hangvektorokat, amelyeket megfigyelünk. Maga a folyamat rejtett előlünk. Kérdésünk, hogy merre járhatott (milyen szavakon át) e közben a folyamat? 19/48

A matematika nyelvén... 20/48

Hogy lehet ebből működő felismerőt csinálni? Lexicon: a kiejtési szótár (L) Grammar: a nyelvi modell (G) HMM: Beszédhangok akusztikai modelljei (H) Context: Beszédhangok környezetfüggése (C) HCLG kompozíciója véges automatává (FST) Utána: bemenet illesztése HCLG-re Viterbi-algoritmussal 21/48

Hogy lehet ebből működő felismerőt csinálni? Lexicon: a kiejtési szótár (L) Grammar: a nyelvi modell (G) HMM: Beszédhangok akusztikai modelljei (H) Context: Beszédhangok környezetfüggése (C) HCLG kompozíciója véges automatává (FST): G szavainak (FST-ben reprezetált) kibontjuk a kiejtését (LG) A kiejtés alapján megmondjuk, milyen spektrális eloszlást várunk (HCLG) FST WFST (Weighted FST: nyelvi modell súlyai) 22/48

L és G 23/48

H és C 24/48

HCLG 25/48

Hogy lehet ebből működő felismerőt csinálni? Language: a szótár (L) Grammar: a nyelvi modell (G) HMM: Beszédhangok akusztikai modelljei (H) Context: Beszédhangok környezetfüggése ( C) HCLG kompozíciója véges automatává (FST) Utána: bemenet illesztése HCLG-re Viterbi-algoritmussal Viterbi: végigmegy az összes lehetséges úton, és megmondja, mennyire valószínű amellett a megfigyelt kimenet. A legvalószínűbb nyer: felismert szósorozat. 26/48

Felismerés ( HMM / GMM ) 27/48

Tanítás Sok embertől (>1000) Sok hanganyag (>100-1000 óra) Modell paraméterbecslés / DNN tanulás Amit tudnunk kell: hol mi van a beszédben, de legalább, hogy mi milyen sorrendben van ott. 28/48

Felismerés (tesztelés is) Felismerési hálózaton végigvezetjük a bemenetről érkező megfigyeléseket Az illeszkedést mérjük, közben idővetemítés A végén derül ki, melyik útvonal illeszkedik a legjobban (akusztikai score és nyelvi score) Szóhiba-Arány (WER, Word Error Rate) Real Time Factor (RTF) 29/48

Hogy jön ide a deep learning? 1. Lehet vele klassz osztályozót csinálni (GMM helyett) bemenet: MFCC; kimenet: az egyes hangok valószínűsége 2. Lehet vele jellemzőket tömöríteni, látens reprezentációkat kinyerni az audió jelből (bottleneck, encoder) 3. Lehet vele nyelvi modellt csinálni (RNN) 4. Lehet vele az egész feladatot lefedő end-to-end rendszert csinálni (ami akár a kipotyogó beszédhangokkal is tud már mit kezdeni! BLSTM) 30/48

Beszédhang osztályozás (HMM/DNN hibrid) 31/48

Jellemzőkinyerés (bottleneck és tandem) 32/48

Nyelvi modell copy ide az N-gram rajzot 33/48

Nyelvi modell vázlat, keras model = Sequential() # N-gram, voc_size=ahány szó van model.add(dense(100, input_shape=(num_train_samples,n-1,voc_size))) model.add(dense(voc_size)) model.add(activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='rmsprop') 34/48

End-to-end ASR 35/48

End-to-end ASR modell vázlat, keras model = Sequential() # 7 keret egyszerre (splice), 20 dimenziós szűrősoros elemzés model.add(bidirectional(lstm(1024, return_sequences=true), input_shape=(num_train_samples,7,20))) model.add(bidirectional(lstm(1024, return_sequences=true))) model.add(bidirectional(lstm(1024, return_sequences=true))) model.add(bidirectional(lstm(1024, return_sequences=true))) model.add(dense(1024)) model.add(activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='rmsprop') 36/48

End-to-end ASR Sequence to sequence akusztikai megfigyelések -> beszédhang- (karakter)sorozat A karaktersorozatra vonatkozhatnak kényszerek (nyelvi modell) Alternatív költségfüggvény - előzetesen nem ismert a keret-beszédhang hozzárendelés - keresztentrópia helyett CTC: Connectionist Temporal Classification 37/48

Keret-beszédhang hozzárendelések Alapfelállás: Ismerni kell a hozzárendeléseket: - szegmentálás (kézzel bejelölni) - kényszerített illesztés (felismerő bejelöli) Flat-start: - szószintű átirat (lejegyzés) mindenképp kell - egyenlően elosztjuk (N beszédhangnak egyenlő időszeleteket) - iteratívan tanítjuk (sok iteráció kell) 38/48

CTC alma Beszédhang sorozat: a, l, m, a Tegyük fel, hogy T keretünk van (T*10 ms hosszú a bemondás) 39/48

CTC alma Beszédhang sorozat: a, l, m, a Tegyük fel, hogy T keretünk van (T*10 ms hosszú a bemondás) 40/48

CTC alma Beszédhang sorozat: a, l, m, a Tegyük fel, hogy T keretünk van (T*10 ms hosszú a bemondás) 41/48

CTC alma Beszédhang sorozat: a, l, m, a Tegyük fel, hogy T keretünk van (T*10 ms hosszú a bemondás) 42/48

CTC C++ lib wrappelése python alá Ajánlott olvasmány: https://github.com/sherjilozair/ctc/ 43/48

Tanító adatbázisok Wall Street Journal Felolvasott újságcikkek Kb. 73 óra Előre definiált tanító, validációs és teszthalmazok Melléklet szótár (lexicon, átiratokkal) Komolyabb rendszerekhez Hatalmas online adatbázis (Google) Több ezer óra Több ezer beszélő Folyamatosan gyűjtik 44/48

Benchmark eredmények Wall Street Journal Modell Nyelvi modell WER [%] HMM/GMM Trigram 9.51% HMM/DNN trigram 7.14% End-to-end trigram 7.87% End-to-end - 26.92% 45/48

Milyen feladatokra alkalmas Beszédfelismerés (beszéd --> szöveg) Beszélőfelismerés Beszélőazonosítás Kulcsszókeresés (hanganyagban) Érzelem (sentiment) beszédből Diagnosztika 46/48

Kaldi (+Eesen) Kaldi: open source ASR fejlesztőkörnyezet http://kaldi-asr.org/ Eesen (end-to-end kiterjesztés Kaldihoz) https://github.com/srvk/eesen 47/48

Köszönöm a figyelmet! szaszak@tmit.bme.hu http://smartlab.tmit.bme.hu