ˇ e vysok´e uˇcen´ı technick´e v Praze Cesk´ Fakulta elektrotechnick´a Katedra teorie obvod˚ u
´ ˇU ˚ IMPLEMENTACE ROZPOZNAVA C ˇ CI ˇ SYNTEZOU ´ ˚ RE BLOKU ˇ ASTE ´ ˇ YCH ´ C CN ZNALOST´ I Disertaˇ cn´ı pr´ ace
ˇ Pavel Stemberk
Praha, u ´nor, 2010
Doktorsk´ y studijn´ı program: Elektrotechnika a informatika Studijn´ı obor: Teoretick´a elektrotechnika
ˇ Skolitel: Ing. V´aclav Hanˇzl, CSc.
.
Abstrakt Text t´eto pr´ ace poskytuje pˇrehled procesu rozpozn´av´an´ı mluven´e ˇreˇci na b´azi skryt´ ych Markovov´ ych model˚ u (HMM). Pr´ ace d´ ale popisuje vytvoˇren´ı j´adra dekod´eru (rozpozn´avac´ı s´ıt’ z jednotliv´ ych ˇc´asteˇcn´ ych znalost´ı jako jsou akustick´e modely, slovn´ık a jazykov´ y model) a pouˇzit´ı koneˇcn´ ych automat˚ u pro optim´ aln´ı sloˇzen´ı tˇechto ˇc´ast´ı do jednoho celku. Pr´ ace se tak´e zab´ yv´ a jazykov´ ym modelem pro ˇcesk´ y jazyk zaloˇzen´ ym na tˇr´ıd´ach slov ˇ vyuˇz´ıvaj´ıc´ım zdroje dat z Cesk´eho n´arodn´ıho korpusu (UCNK). V pr´ aci jsou pops´ any nejen pouˇz´ıvan´e n´astroje pro metody rozpozn´av´an´ı ˇreˇci, tj. HTK a ATT n´ astroje, ale i vlastn´ı n´ astroj autora – program rct, kter´ y se stal ned´ılnou souˇc´ast´ı propojen´ı ostatn´ıch n´ astroj˚ u a zdroje dat z UCNK korpusu. V prov´ adˇen´ ych experimentech na dostupn´ ych ˇreˇcov´ ych datab´az´ıch se provˇeˇruj´ı vlastnosti jednotliv´ ych dekod´er˚ u z pouˇzit´ ych sad n´astroj˚ u (HTK, ATT a rct) a vlastnosti navrˇzen´eho modelu pro ˇcesk´ y jazyk zaloˇzen´eho na tˇr´ıd´ach slov.
Abstract This thesis provides the review of the ASR process based on Hidden Markov Models (HMM). This work describes a core of decoder (recognition network assembled from elementary sources such as acoustics models, dictionary and language model) and usage of finite state machines for optimal assembly into one part. The thesis also deals with Czech language model based on word’s classes where data from Czech National Corpus (UCNK) are used. Toolkits for ASR like HTK, ATT and program rct developed by the author are described in the thesis. Program rct became main part of data source interconnection between other toolkits and UCNK. Properties of elementary decoders based on the used toolkits (HTK, ATT, and rct) and properties of designed Czech language model based on word classes are tested by experiments on accessible speech databases.
.
Obsah Seznam obr´ azk˚ u
v
Seznam tabulek
I
vii
Teoretick´ aˇ c´ ast
1
1 Statistick´ e metody rozpozn´ av´ an´ı mluven´ eˇ reˇ ci ´ 1.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Z´ akladn´ı sch´ema . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Parametrizace dat . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Mel kepstr´ aln´ı koeficienty (MFCC) . . . . . . . . . . 1.3.2 V´ ypoˇcet kr´ atkodob´e energie . . . . . . . . . . . . . . 1.3.3 Dynamick´e koeficienty . . . . . . . . . . . . . . . . . 1.4 Akustick´e modelov´ an´ı . . . . . . . . . . . . . . . . . . . . . 1.4.1 HMM . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.2 Emituj´ıc´ı stavy HMM . . . . . . . . . . . . . . . . . 1.5 Jazykov´e modelov´ an´ı . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Stochastick´ y jazykov´ y model . . . . . . . . . . . . . 1.5.2 n-gramov´ y jazykov´ y model . . . . . . . . . . . . . . 1.5.3 Modely zaloˇzen´e na tˇr´ıd´ach slov . . . . . . . . . . . 1.5.4 Posouzen´ı kvality jazykov´eho modelu . . . . . . . . . 1.6 Dek´ odovac´ı techniky . . . . . . . . . . . . . . . . . . . . . . 1.6.1 Nalezen´ı posloupnosti stav˚ u s nejvˇetˇs´ı vˇerohodnost´ı . 1.7 Z´ akladn´ı zp˚ usoby proch´ azen´ı graf˚ u . . . . . . . . . . . . . . 1.7.1 Hled´ an´ı do hloubky - DFS . . . . . . . . . . . . . . . 1.7.2 Hled´ an´ı do ˇs´ıˇrky - BFS . . . . . . . . . . . . . . . . 1.8 Algoritmus pro s´ıt’ realizovanou WFST . . . . . . . . . . . 1.8.1 Proˇrez´ av´ an´ı rozpozn´avac´ı s´ıtˇe . . . . . . . . . . . . . 2 Stavov´ e automaty ´ 2.1 Uvod . . . . . . . . . . . . . . 2.2 Koneˇcn´ y automat . . . . . . . 2.3 Polookruh . . . . . . . . . . . 2.4 Ohodnocen´ y stavov´ y automat
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . . . . . . .
5 5 6 6 7 8 8 9 9 10 12 12 12 19 20 21 22 23 24 25 26 27
. . . .
28 28 28 29 30
i
2.5 2.6
Ohodnocen´ y pˇrekladov´ y stavov´ y automat . Z´ akladn´ı operace mezi stavov´ ymi automaty 2.6.1 Sjednocen´ı (souˇcet) . . . . . . . . . . 2.6.2 Zˇretˇezen´ı (souˇcin) . . . . . . . . . . 2.6.3 Uzavˇren´ı . . . . . . . . . . . . . . . . 2.6.4 Otoˇcen´ı . . . . . . . . . . . . . . . . 2.6.5 Inverze . . . . . . . . . . . . . . . . 2.6.6 Projekce . . . . . . . . . . . . . . . . 2.6.7 Odstranˇen´ı epsilon pˇrechod˚ u . . . . 2.6.8 Pr˚ unik . . . . . . . . . . . . . . . . . 2.6.9 Rozd´ıl . . . . . . . . . . . . . . . . . 2.6.10 Konexe (oˇrez´ an´ı) . . . . . . . . . . . 2.6.11 Ekvivalence . . . . . . . . . . . . . . 2.6.12 Nejpravdˇepodobnˇejˇs´ı cesta (cesty) . 2.6.13 N´ ahodn´ a cesta (cesty) . . . . . . . . 2.6.14 Proˇrez´ av´ an´ı . . . . . . . . . . . . . . 2.6.15 Skl´ ad´ an´ı . . . . . . . . . . . . . . . . 2.6.16 Determinizace . . . . . . . . . . . . . 2.6.17 Stlaˇcen´ı . . . . . . . . . . . . . . . . 2.6.18 Minimalizace . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
31 32 32 33 34 34 35 35 35 35 36 36 37 38 38 38 39 40 42 42
3 Stavov´ y automat jako rozpozn´ avac´ı s´ıt’ 45 3.1 Z´ akladn´ı topologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.1.1 Hlavn´ı komponenty . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.1.2 Rozpozn´ avac´ı s´ıt’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
II
Softwarov´ e n´ astroje
50
´ 4 Uvod
51
5 HTK 5.1 Parametrizace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Tr´enov´ an´ı model˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Shlukov´ an´ı kontextovˇe z´ avisl´ ych fon´em˚ u . . . . . . . . . . . . . . . 5.3.1 shlukov´ an´ı ˇr´ızen´e daty . . . . . . . . . . . . . . . . . . . . . 5.3.2 shlukov´ an´ı zaloˇzen´e na fonetick´ ych rozhodovac´ıch stromech 5.4 Vytvoˇren´ı libovoln´eho modelu pomoc´ı rozhodovac´ıho stromu . . . 5.5 Rozpozn´ av´ an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
53 53 54 55 56 56 58 59
. . . . . .
62 62 62 63 63 64 64
6 AT&T n´ astroje 6.1 knihovna DCD . . . . . . . . . . . . . . . . . . . . 6.1.1 Stavba RN . . . . . . . . . . . . . . . . . . 6.1.2 Pˇr´ıprava model˚ u . . . . . . . . . . . . . . . 6.1.3 Rozpozn´ av´ an´ı . . . . . . . . . . . . . . . . . 6.2 grmtools . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Vytvoˇren´ı statistick´eho jazykov´eho modelu
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . . .
. . . . . .
. . . . . . .
. . . . . .
. . . . . . .
. . . . . .
. . . . . . .
. . . . . .
ii
´ 7 Uvod do programu rct 7.1 Univerz´ aln´ı parametry . . . . . . . . . . . . . . . . . . 7.2 Zpracov´ an´ı mlf -soubor˚ u . . . . . . . . . . . . . . . . . ´ 7.3 Uprava soubor˚ u symbol˚ u. . . . . . . . . . . . . . . . . 7.4 Pˇreindexov´ an´ı vstupn´ıch symbol˚ u v automatu . . . . . 7.5 Zpracov´ an´ı v´ ystupu . . . . . . . . . . . . . . . . . . . 7.6 Zpracov´ an´ı pˇr´ıznak˚ u . . . . . . . . . . . . . . . . . . . 7.7 Konverze HTK HMM model˚ u na AT&T DCD form´at 7.8 Rozpozn´ av´ an´ı programem rct . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
67 67 68 69 69 69 70 70 73
. . . . .
75 75 75 76 77 78
. . . . . . . . . . znaˇcek . . . . . . . . . . . . . . . .
81 81 81 87 88 89 91
. . . . . . . .
8 Generov´ an´ı jednotliv´ ych ˇ c´ ast´ı rozpozn´ avac´ı s´ıtˇ e 8.1 Jazykov´ y model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Slovn´ık . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 FST kontextov´e z´ avislosti . . . . . . . . . . . . . . . . . . . . . . . . 8.4 WFST reprezentuj´ıc´ı Markovovy modely . . . . . . . . . . . . . . . . 8.5 Vytvoˇren´ı WSFA reprezentuj´ıc´ıho pravdˇepodobnosti stav˚ u promluvy 9 Zpracov´ an´ı datab´ aze s morfologick´ ymi k´ ody ˇ 9.1 Zpracov´ an´ı dat z Cesk´eho n´arodn´ıho korpusu . . . . . . . . . . . . 9.1.1 Struktura UCNK korpusu SYN2000 . . . . . . . . . . . . . 9.1.2 MYSQL Datab´ aze pro ukl´ad´an´ı slov a jejich morfologick´ ych 9.2 Soubor morfologick´eho popisu . . . . . . . . . . . . . . . . . . . . . 9.3 Pouˇzit´e k´ odov´ an´ı morfologick´ ych znaˇcek . . . . . . . . . . . . . . . 9.4 Sestaven´ı FSM pro gramatiku . . . . . . . . . . . . . . . . . . . . .
III
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
. . . . . . . .
. . . . .
Tvorba rozpozn´ avaˇ c˚ u
10 Experiment´ aln´ı v´ ysledky 10.1 Pouˇzit´ y hardware . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Pouˇzit´e ˇreˇcov´e datab´ aze . . . . . . . . . . . . . . . . . . . . 10.3 Akustick´e modely . . . . . . . . . . . . . . . . . . . . . . . . 10.4 Jazykov´e modely . . . . . . . . . . . . . . . . . . . . . . . . 10.5 Rozpozn´ avac´ı s´ıt’ . . . . . . . . . . . . . . . . . . . . . . . . 10.6 Experiment´ aln´ı srovn´ an´ı dostupn´ ych dekod´er˚ u . . . . . . . 10.6.1 Nalezen´ı optim´ aln´ıho n´asobitele jazykov´eho modelu 10.6.2 Vliv p´ asov´eho proˇrez´av´an´ı . . . . . . . . . . . . . . . 10.6.3 Vliv architektury . . . . . . . . . . . . . . . . . . . . 10.6.4 Vyhodnocen´ı srovn´avac´ıch test˚ u dekod´er˚ u . . . . . . 10.7 Srovn´ avac´ı test jazykov´ ych model˚ u . . . . . . . . . . . . . . 10.7.1 Monof´ ony . . . . . . . . . . . . . . . . . . . . . . . . 10.7.2 Dif´ ony . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7.3 Trif´ ony . . . . . . . . . . . . . . . . . . . . . . . . .
93 . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
94 94 94 94 95 95 96 96 97 98 98 98 99 101 103
iii
11 Shrnut´ı 11.1 Splnˇen´ı c´ıl˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.1 Algoritmus generov´an´ı FST z blok˚ u ˇc´asteˇcn´ ych znalost´ı 11.1.2 Otestov´ an´ı ATT n´astroj˚ u pro ˇcesk´ y jazyk . . . . . . . . 11.1.3 Konverze akustick´ ych model˚ u z HTK do ATT . . . . . . 11.1.4 Vytvoˇren´ı Viterbiho dekod´eru . . . . . . . . . . . . . . . 11.1.5 Zdroj pro jazykov´ y model . . . . . . . . . . . . . . . . . 11.1.6 N´ avrh JM . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Pˇr´ınosy v´ ysledk˚ u pr´ ace . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
105 105 105 105 106 106 106 106 106
Literatura
108
Autorovy publikace
112
Literatura pouˇ zit´ a pro tvorbu publikac´ı testov´ an´ı a v´ yvoj software
114
iv
Seznam obr´ azk˚ u 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9
Princip rozpozn´ av´ an´ı ˇreˇci zaloˇzen´ y na statistick´em pˇr´ıstupu . . . . . Melovsk´ a banka troj´ uheln´ıkov´ ych filtr˚ u. . . . . . . . . . . . . . . . . Pˇr´ıklad levo-prav´eho HMM vˇcetnˇe matice pˇrechod˚ u . . . . . . . . . Demonstrace Viterbiho algoritmu . . . . . . . . . . . . . . . . . . . Princip proch´ azen´ı grafem pˇri zadan´e posloupnosti vektoru pˇr´ıznak˚ u Rozpozn´ avaˇc ”ano-ne” bez zpˇetn´ ych pˇrechod˚ u . . . . . . . . . . . . . Postupn´e navˇstˇevov´ an´ı stav˚ u algoritmem DFS . . . . . . . . . . . . . Mezikroky navˇstˇevov´ an´ı stav˚ u algoritmem BFS . . . . . . . . . . . . Princip generov´ an´ı hypot´ez pˇri proch´azen´ı s´ıtˇe . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
7 7 9 24 24 25 25 26 27
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22
Pˇr´ıklad WFSA . . . . . . . . . . . . . . . . . . . . . . . . . . Pˇr´ıklad WFST . . . . . . . . . . . . . . . . . . . . . . . . . . Pˇr´ıklad sjednocen´ı (souˇctu) dvou WFSA . . . . . . . . . . . . Pˇr´ıklad zˇretˇezen´ı (souˇcinu) dvou WFSA . . . . . . . . . . . . Pˇr´ıklad uzavˇren´ı WFSA . . . . . . . . . . . . . . . . . . . . . Pˇr´ıklad otoˇcen´ı WFSA . . . . . . . . . . . . . . . . . . . . . . Pˇr´ıklad inverze WFST . . . . . . . . . . . . . . . . . . . . . . Pˇr´ıklad projekce WFST na WFSA . . . . . . . . . . . . . . . Pˇr´ıklad odstranˇen´ı epsilon pˇrechod˚ u WFSA . . . . . . . . . . Pˇr´ıklad pr˚ uniku dvou WFSA . . . . . . . . . . . . . . . . . . Pˇr´ıklad rozd´ılu dvou WFSA . . . . . . . . . . . . . . . . . . . Pˇr´ıklad konexe WFSA . . . . . . . . . . . . . . . . . . . . . . Pˇr´ıklad dvou ekvivalentn´ıch WFSA . . . . . . . . . . . . . . . Pˇr´ıklad hled´ an´ı nejpravdˇepodobnˇejˇs´ıch cest . . . . . . . . . . Pˇr´ıklad hled´ an´ı n´ ahodn´ ych cest . . . . . . . . . . . . . . . . . Pˇr´ıklad proˇrez´ av´ an´ı WFSA . . . . . . . . . . . . . . . . . . . Pˇr´ıklad skl´ ad´ an´ı dvou WFST . . . . . . . . . . . . . . . . . . WFSA A1 pˇred determinizac´ı a determinizovan´ y WFSA A2 . Pˇr´ıklad determinizace jednoduch´eho lexikonu . . . . . . . . . Pˇr´ıklad aplikace stlaˇcen´ı na WFSA A2 . . . . . . . . . . . . . Pˇr´ıklad minimalizace WFSA A3 . . . . . . . . . . . . . . . . . Pˇr´ıklad minimalizace determinizovan´eho lexikonu z obr. 2.19
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
31 31 33 33 34 34 35 35 36 36 37 37 37 38 39 40 40 41 42 43 43 43
3.1 3.2
Bigramov´ y model pro slova w1 a w2 . . . . . . . . . . . . . . . . . . . . . . 45 Trigramov´ y model pro slova w1 a w2 . . . . . . . . . . . . . . . . . . . . . . 46
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
v
3.3 3.4 3.5 3.6 3.7
Slovo ”c´ıl” reprezentov´ ano modely a) monof´on˚ u b) trif´on˚ u c) Pˇr´ıklad FST kontextov´e z´avislosti pro trif´ony . . . . . . . . Pˇr´ıklad FST kontextov´e z´avislosti pro dif´ony . . . . . . . . Pˇr´ıklad vytvoˇren´ı HMM WFST . . . . . . . . . . . . . . . . Uzavˇren´ y HMM WFST z obr. 3.6 . . . . . . . . . . . . . . .
dif´on˚ u. . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
5.1 5.2
Pˇr´ıklad fonetick´eho rozhodovac´ıho stromu . . . . . . . . . . . . . . . . . . . 58 Pˇr´ıklad realizace rozp. s´ıtˇe ano-ne souborem wdn . . . . . . . . . . . . . . . 60
6.1 6.2
Pˇr´ıklad ˇc´ıtac´ıho automatu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Pˇr´ıklad automatu reprezentuj´ıc´ıho jazykov´ y model . . . . . . . . . . . . . . 66
7.1
Struktura model˚ u DCD knihovny . . . . . . . . . . . . . . . . . . . . . . . . 71
8.1 8.2 8.3 8.4
Pˇr´ıklad vytvoˇren´ı WFST slovn´ıku pomoc´ı parametr˚ u -l a -ls . . . . . . . . . Pˇr´ıklad vytvoˇren´ı WFST slovn´ıku s alternativn´ımi v´ yslovnostmi pomoc´ı parametru -lL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pˇr´ıklad vytvoˇren´ı HMM WFST pro shlukovan´e stavy . . . . . . . . . . . . . Pˇr´ıklad WFSA reprezentuj´ıc´ı pravdˇepodobnosti stav˚ u promluvy . . . . . . .
77 79 80
9.1 9.2 9.3 9.4
Sch´ema datab´ aze pro ukl´ad´an´ı morfologick´ ych struktur slov . . . . . . . . . Pˇr´ıklad vˇety ”st´ al tam samotn´ y vysok´ y sloup” U reprezentovan´e pomoc´ı FSA Pˇr´ıklad morfologick´eho analyz´atoru M realizovan´eho pomoc´ı FST . . . . . FSA P = π2 (U ◦ M ), kde U je na obr. 9.2 a M na obr. 9.3 . . . . . . . . . .
87 90 90 91
10.1 Z´ avislost u ´spˇeˇsnosti a koeficient˚ u n´asobitele vah RN na dobˇe rozpozn´av´an´ı - 125 slov, datab´ aze SPEECON . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Z´ avislost u ´spˇeˇsnosti a koeficient˚ u p´asov´eho proˇrez´av´an´ı - kpp na dobˇe rozpozn´ av´ an´ı - 125 slov, datab´aze SPEECON . . . . . . . . . . . . . . . . . 10.3 Uzavˇren´ y test, monof´ ony, 46 hustotn´ıch funkc´ı, N = 663 slov . . . . . . . . 10.4 Uzavˇren´ y test jazykov´eho modelu zaloˇzen´eho na slabik´ach, monof´ony, 46 hustotn´ıch funkc´ı, N = 689 slabik . . . . . . . . . . . . . . . . . . . . . . . . 10.5 Uzavˇren´ y test, dif´ ony, 46 hustotn´ıch funkc´ı, N = 663 slov . . . . . . . . . . 10.6 Uzavˇren´ y test, dif´ ony, bigramov´ y model zaloˇzen´ y na morfologick´ ych k´odech, srovn´ an´ı pro 16, 23 a 46 hustotn´ıch funkc´ı, N = 663 slov . . . . . . . . . . . 10.7 Uzavˇren´ y test, trif´ ony, 46 hustotn´ıch funkc´ı, N = 663 slov . . . . . . . . . . 10.8 Uzavˇren´ y test, trif´ ony, bigramov´ y model zaloˇzen´ y na morfologick´ ych k´ odech, srovn´ an´ı pro 16, 23 a 46 hustotn´ıch funkc´ı, N = 663 slov . . . . . .
47 47 48 48 49
77
97 98 100 101 102 102 103 104
vi
Seznam tabulek 2.1
V´ ybˇer bin´ arn´ıch a un´ arn´ıch operac´ı mezi jednotliv´ ymi FSM . . . . . . . . . 32
3.1
Sloˇzitost n-gramov´eho modelu dle n a poˇctu slov k . . . . . . . . . . . . . . 46
9.1 9.16 9.17 9.18 9.19 9.20 9.21 9.22 9.23
Struktura morfologick´e znaˇcky v UCNK korpusu . . . . . . . . . . . . . . K´ ody p´ ad˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K´ ody slovn´ıch druh˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K´ ody pro ˇc´ıslo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K´ ody pro osobu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K´ ody pro rod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K´ ody pro slovesn´ y rod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ostatn´ı druhy slov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K´ odov´ an´ı morfologick´ ych znaˇcek programem sharprct dle symbol˚ u popsan´ ych v kapitole 9.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.24 Uk´ azka z´ avislosti sloˇzitosti automat˚ u M ,P , G a HLG na poˇctu pouˇzit´ ych slov pro n = 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1 10.2 10.3 10.4
Optim´ aln´ı velikost n´ asobitele vah RN pro jednotliv´e dekod´ery dle test˚ u . V´ ysledky test˚ u jednotliv´ ych dekod´er˚ u . . . . . . . . . . . . . . . . . . . . Uzavˇren´ y test, monof´ ony, 46 hustotn´ıch funkc´ı, N = 663 slov . . . . . . . Uzavˇren´ y test jazykov´eho modelu zaloˇzen´eho na slabik´ach, monof´ony, 46 hustotn´ıch funkc´ı, N = 689 slabik . . . . . . . . . . . . . . . . . . . . . . . 10.5 Uzavˇren´ y test, dif´ ony, 46 hustotn´ıch funkc´ı, N = 663 slov . . . . . . . . . 10.6 Uzavˇren´ y test, trif´ ony, 46 hustotn´ıch funkc´ı, N = 663 slov . . . . . . . . .
. . . . . . . .
81 90 90 90 90 90 90 90
. 91 . 92 . 97 . 98 . 100 . 101 . 103 . 103
vii
Seznam pouˇ zit´ ych zkratek a symbol˚ u ASR AT&T ATT BSD CMU GPL FSA FSM FST HMM HTK ISIP JM LVCSR MIT RN SGE UCNK WFSA WFST
term´ın pro oblast rozpozn´av´an´ı mluven´e ˇreˇci (angl. Automatic Speech Recognition) americk´ a telekomunikaˇcn´ı spoleˇcnost (angl. American Telephone and Telegraph) n´ astroje vyvinut´e spoleˇcnost´ı AT&T Berkeley Software Distribution Carnegie Mellon University Vˇseobecn´ a veˇrejn´a licence (z angl. General Public License) automat s koneˇcn´ ym poˇctem stav˚ u (z angl. Finite-State Acceptor) automat s koneˇcn´ ym poˇctem stav˚ u - obecn´ y pojem (z angl. Finite-State Machine) pˇrekladov´ y automat s koneˇcn´ ym poˇctem stav˚ u (z angl. Finite-State Transducer) skryt´ y Markovov´ uv model (z angl. Hidden Markov Model) sada n´ astroj˚ u pro pr´aci s HMM (z angl. Hidden Markov Model Toolkit) Institute for Signal and Information Processing jazykov´ y model term´ın pro rozpozn´av´an´ı ˇreˇci s velk´ ym slovn´ıkem (angl. LargeVocabulary Continuous Speech Recognition) Massachusetts Institute of Technology rozpozn´ avac´ı s´ıt’ (z angl. Recognition Network) (z angl. Sun Grid Engine) otevˇren´ y software firmy Sun Microsystem umoˇzn ˇuj´ıc´ı spouˇstˇet vzd´alenˇe fronty d´avek ´ Ustav ˇcesk´eho n´arodn´ıho korpusu ohodnocen´ y automat (z angl. Weighted Finite-State Acceptor) ohodnocen´ y pˇrekladov´ y automat (z angl. Weighted Finite-State Transducer)
viii
Podˇ ekov´ an´ı R´ad bych uvedl nejen seznam grant˚ u a v´ yzkumn´ ych z´amˇer˚ u pod´ılej´ıc´ıch se nˇejak´ ym zp˚ usobem na financov´ an´ı t´eto disertace a t´ım i m´eho doktorandsk´eho ˇzivota, ale i jm´ena lid´ı kteˇr´ı s touto prac´ı jakkoliv pom´ ahali. ˇ 102/03/H085 Modelov´an´ı bioCel´ a pr´ ace byla vytv´ aˇrena pˇri podpoˇre grant˚ u GACR ˇ 102/05/0278 Nov´e smˇery ve v´ logick´ ych a ˇreˇcov´ ych sign´ al˚ u, GACR yzkumu a vyuˇzit´ı ˇ hlasov´ ych technologi´ı, AV CR 1ET201210402 Hlasov´e technologie v informaˇcn´ıch syst´emech a v´ yzkumn´ ym z´ amˇerem MSM 6840770014 V´ yzkum perspektivn´ıch informaˇcn´ıch a komunikaˇcn´ıch technologi´ı. R´ad bych podˇekoval Ing. V´ aclavu Hanˇzlovi, CSc. jako ˇskoliteli za velmi dobr´e veden´ı bˇehem m´eho studia a za mnoho pro mnˇe nov´ ych poznatk˚ u. Podˇekov´an´ı patˇr´ı tak´e Doc. Ing. Petru Poll´ akovi, CSc. zejm´ena za umoˇznˇen´ı z´ uˇcasnit se projekt˚ u nahr´av´an´ı ˇreˇcov´ ych datab´az´ı SPEECON a TEMIC2, Prof. Ing. Janu Uhl´ıˇrovi CSc., Prof. Ing. Pavlu Sovkovi ˇ CSc. a Doc. Ing. Romanu Cmejlovi, CSc. za umoˇznˇen´ı m´e u ´ˇcasti ve vˇetˇsinˇe zde uv´adˇen´ ych grant˚ u a v´ yzkumn´em z´ amˇeru. Nemohu opomenout podˇekovat vˇsem lidem a organizac´ım nˇejak´ ym zp˚ usobem vˇenuj´ıc´ım se problematice rozpozn´ av´ an´ı mluven´e ˇreˇci, zejm´ena tˇem kteˇr´ı do oblasti pˇrisp´ıvaj´ı v r´amci projekt˚ u pod tzv. “svobodn´ ymi” licencemi. V neposledn´ı ˇradˇe podˇekov´ an´ı patˇr´ı m´e rodinˇe, kter´a byla zaloˇzena bˇehem vzniku t´eto pr´ ace a to hlavnˇe za velkou trpˇelivost, kterou se mnou manˇzelka mˇela. D´ale bych r´ad podˇekoval Antonu Skorochodovi za v´ yznamn´e pˇrispˇen´ı do k´odu ohlednˇe komunikace s UCNK serverem, Hynku Boˇrilovi, Petru Zlatn´ıkovi, Josefu Rajnohovi a dalˇs´ım, kteˇr´ı jakkoliv k m´e pr´ aci pˇrispˇeli a jejichˇz jm´ena jsem nechtˇenˇe opomenul.
ix
ˇ ast I C´
Teoretick´ aˇ c´ ast
1
´ Uvod Moˇznost komunikace mluvenou ˇreˇc´ı se strojem je velk´ ym pˇr´an´ım snad vˇsech lid´ı, kteˇr´ı ˇ c je nejrozˇs´ıˇrenˇejˇs´ım prostˇredkem komunikace mezi s nˇejak´ ym zaˇr´ızen´ım pˇriˇsli do styku. Reˇ lidmi. Dodnes vˇsak nen´ı moˇzn´ a bezprobl´emov´a plynul´a komunikace ˇclovˇek-stroj na takov´e u ´rovni, aby stroj byl schopen napsat vn´ıman´e spont´ann´ı vˇety ˇclovˇeka, ˇci dokonce tˇemto typ˚ um vˇet porozumˇet a vykonat splniteln´e pˇr´an´ı ˇreˇcn´ıka. ˇ ala uplatnˇen´ı automatick´eho rozpozn´av´an´ı ˇreˇci - ASR (z angl. Automatic Speech Sk´ Recognition), resp. rozpozn´ av´ an´ı ˇreˇci s velk´ ym slovn´ıkem LVCSR (z angl. Large Voclabulary Continuous Speech Recognition), je skuteˇcnˇe velmi ˇsirok´a, poˇc´ınaje r˚ uzn´ ymi datab´ azov´ ymi syst´emy schopn´ ymi vn´ımat nˇekolik z´akladn´ıch hlasov´ ych povel˚ u, pˇres r˚ uzn´e diktovac´ı syst´emy (napˇr. automatick´a v´ yroba titulk˚ u pro handicapovan´e, ˇci studenty ciz´ıch jazyk˚ u), konˇce pˇrekl´ adac´ımi syst´emy z jednoho jazyka do jin´eho (z angl. Speech to Speech). Historie rozpozn´ avaˇc˚ u ˇreˇci sah´a aˇz k poˇc´atku sedmdes´at´ ych let 19. stolet´ı. Tehdy Alexandr Bell pˇriˇsel s myˇslenkou stroje, kter´ y by pom´ahal sluchovˇe postiˇzen´ ym lidem. Belovy laboratoˇre vˇsak zaznamenaly prvn´ı vˇetˇs´ı u ´spˇech na poli ˇreˇci aˇz v roce 1936, kdy pracovn´ıci laboratoˇre vyvinuli ˇreˇcov´ y syntez´ator. Tak se zrodil ”robotick´ y” hlas, kter´ y mˇel u ´spˇech v nepˇr´ıliˇs kvalitn´ıch n´ızko-rozpoˇctov´ ych filmech. Prvn´ı pokusy s rozpozn´ av´ an´ım se prov´adˇely v 50. letech, kdy se r˚ uzn´ı vˇedci pokouˇseli popsat z´ akladn´ı myˇslenky akustick´e fonetiky. V roce 1952 v Bellov´ ych laboratoˇr´ıch byl postaven syst´em pro rozpozn´ av´ an´ı izolovan´ ych ˇc´ıslovek pro jednoho mluvˇc´ıho. Syst´em pracoval na b´ azi mˇeˇren´ı doby spektr´aln´ıch rezonanc´ı samohl´asek kaˇzd´e ˇc´ıslovky. V roce 1959 na univerzitˇe College ve Velk´e Brit´anii byly pokusy postavit fon´emov´ y rozpozn´avaˇc pro rozpozn´ av´ an´ı 4 samohl´ asek a 9 souhl´asek. Srovn´avali pˇritom spektr´aln´ı ˇc´ary s dan´ ymi modely. Mnohem rychlejˇs´ı v´ yvoj rozpozn´avaˇc˚ u nastal d´ıky platnosti Mooreova z´akona o v´ yvoji v´ ykonu poˇc´ıtaˇc˚ u aˇz v 70. letech 20. stolet´ı. V´ yznamn´ ym miln´ıkem v rozpozn´av´an´ı ˇreˇci pak byla 80. l´eta, kdy se syst´emy pro ASR zaˇcaly realizovat pomoc´ı statistick´ ych metod na b´azi skryt´ ych Markovov´ ych model˚ u HMMs (z angl. Hidden Markov Models) [Rab93]. Pˇrestoˇze metoda rozpozn´ av´ an´ı pomoc´ı HMM byla v nˇekolika laboratoˇr´ıch pouˇz´ıv´ana (v´ yraznˇe IBM a Dragon Systems), do poloviny 80. let nebyla ˇz´adn´a publikace o rozpozn´ av´ an´ı pomoc´ı HMM rozˇs´ıˇrena [Rab93]. V roce 1989 vznikla na univerzitˇe v Cambridge prvn´ı verze HTK (z angl. Hidden Markov Model Toolkit) [You02]. Jedn´a se o kolekci knihoven a modul˚ u v jazyce C, kter´e umoˇzn ˇuj´ı stavbu rozpozn´ avaˇce na b´azi HMM. V polovinˇe 90. let aplikoval Mohr˚ uv t´ ym v AT&T laboratoˇr´ıch ohodnocen´e pˇrekladov´e automaty - WFST (z angl. Weighted Finite-State Transducers) v rozpozn´av´an´ı ˇreˇci [Moh97a]. K dispozici jsou dnes tzv. ATT n´ astroje pro operace se stavov´ ymi automaty
2
- tzn. FSM knihovna [Moha], n´ astroje pro jazykov´e modelov´an´ı pomoc´ı koneˇcn´ ych automat˚ u - GRM knihovna [Allb] a n´astroje pro dek´odov´an´ı, resp. rozpozn´av´an´ı - DCD knihovna [Mohb].
Pˇrehled souˇ casn´ eho stavu dan´ e vˇ edn´ı problematiky Ve vˇetˇsinˇe laboratoˇr´ı rozpozn´ av´ an´ı ˇreˇci jsou stejnˇe jako na Katedˇre teorie obvod˚ u s oblibou pouˇz´ıv´ any n´ astroje pro pr´ aci s HMM - HTK. Ty umoˇzn ˇuj´ı natr´enovat skryt´e Markovovy modely na z´ akladˇe olabelovan´ych ˇreˇcov´ ych datab´az´ı, vytvoˇrit n-gramov´ y jazykov´ y model pomoc´ı pˇredem pˇripraven´ ych rozs´ahl´ ych text˚ u a prov´est dek´odov´an´ı, resp. rozpozn´av´an´ı vstupn´ı promluvy dan´ ym jazykov´ ym modelem na z´akladˇe slovn´ıku reprezentovan´eho textov´ ym souborem (pˇrevod slov na posloupnost akustick´ ych jednotek) a HMM. Vyˇcerp´avaj´ıc´ı popis v [You02] spolu s dostupn´ ymi zdrojov´ ymi k´ody umoˇzn ˇuje bezprobl´emov´e studium mechanismu rozpozn´ av´ an´ı mluven´e ˇreˇci. Velkou nev´ yhodou je zde nejen absence optimalizace rozpozn´ avac´ı s´ıtˇe - RN (z angl. Recognition Network), ale i kopmlikovan´e zad´an´ı s´ıtˇe na u ´rovni akustick´ ych model˚ u. ˇ stina, Velk´ y probl´em pˇredstavuje rovnˇeˇz n-gramov´e modelov´an´ı pro ˇcesk´ y jazyk. Ceˇ stejnˇe jako ostatn´ı slovansk´e jazyky s v´ yjimkou Bulharˇstiny, je velmi ohebn´ y jazyk s mnoha tvary slov odvozen´ ych od z´ akladn´ıho tvaru slova lemma. S poˇctem slov tak nar˚ ust´a i sloˇzitost n-gramov´eho modelu (s n-tou mocninou) a probl´em nedostatku tr´enovac´ıch dat zp˚ usobuj´ıc´ı nekvalitn´ı odhad jazykov´eho modelu. Pouˇz´ıvan´ ym ˇreˇsen´ım je rozdˇelen´ı slov na morf´emy a n´ asledn´e natr´enov´ an´ı n-gramu na b´azi morf´em˚ u. Nev´ yhodou je vˇsak v´ yrazn´e sn´ıˇzen´ı prediktivn´ı schopnosti jazykov´eho modelu. T´emˇeˇr vyˇcerp´ avaj´ıc´ı pˇrehled souˇcasn´e problematiky rozpozn´av´an´ı ˇreˇci je v [Psu06].
C´ıle disertace Na z´akladˇe pˇredchoz´ıho textu lze c´ıle disertace shrnout do n´asleduj´ıc´ıch bod˚ u: 1. vytvoˇrit algoritmus, kter´ y sestroj´ı na z´akladˇe z´akladn´ıch znalost´ı i velmi sloˇzit´e pˇrekladov´e stavov´e automaty reprezentuj´ıc´ı jednotliv´e ˇc´asti rozpozn´avac´ı s´ıtˇe, 2. otestovat ATT n´ astroje pro ˇcesk´ y jazyk, 3. vytvoˇrit algoritmus pro moˇznou konverzi model˚ u mezi HTK a ATT n´astroji, 4. vytvoˇrit vlastn´ı dekod´er umoˇzn ˇuj´ıc´ı ze zadan´e optimalizovan´e rozpozn´avac´ı s´ıtˇe v ATT form´ atu a akustick´ ych model˚ u v HTK form´atu rozpoznat vstupn´ı promluvu, 5. nal´ezt vhodn´ y zdroj a zp˚ usob zpracov´an´ı dat pro vytvoˇren´ı ˇcesk´eho jazykov´eho modelu,
3
6. navrhnout jazykov´ y model pro ˇcesk´ y jazyk, kter´ y by kombinoval v´ yhody spoˇc´ıvaj´ıc´ı v moˇznostech n´ astroj˚ u pro zpracov´an´ı stavov´ ych automat˚ u a moˇznosti pouˇzit´ı morfologicky oznaˇckovan´eho korpusu.
4
Kapitola 1
Statistick´ e metody rozpozn´ av´ an´ı mluven´ eˇ reˇ ci
1.1
´ Uvod
Po prvn´ıch v´ yznamnˇejˇs´ıch u ´spˇeˇs´ıch s rozpozn´av´an´ım v pades´at´ ych letech se pˇredpokl´adalo, ˇze bˇehem nˇekolika let bude moˇzn´e zkonstruovat zaˇr´ızen´ı, kter´e automaticky a bez obt´ıˇz´ı bude schopno pˇrev´est promluvu na psan´ y text. Uved’me stˇeˇzejn´ı d˚ uvody proˇc je strojovˇe tak problematick´e rozpoznat vstupn´ı promluvu: • nestejnost promluv jako je odliˇsn´a barva hlasu, tempo, nebo koartikulace, • absolutnˇe jin´ y fyzik´ aln´ı popis hlasu pˇri ˇsepotu, norm´aln´ı promluvˇe, nebo kˇriku, • nestejnost sign´ alu promluvy pˇri r˚ uzn´ ych akustick´ ych pozad´ıch, resp. pˇri zpracov´an´ı sign´ alu r˚ uzn´ ymi analogov´ ymi cestami. V´ yvoj v t´eto oblasti pˇrinesl dva z´akladn´ı pˇr´ıstupy. Prvn´ı je tzv. porovn´ av´ an´ı obraz˚ u (z angl. template matching). Ten je pouˇzit pouze v pˇr´ıpadˇe rozpozn´av´an´ı izolovan´ ych slov a hlavn´ı princip spoˇc´ıv´ a ve srovn´ av´an´ı parametr˚ u rozpozn´avan´eho slova s mnoˇzinou vzor˚ u. Probl´em zmˇeny tempa ˇreˇci (variabilita d´elek jednotliv´ ych souhl´asek) je vyˇreˇsen pomoc´ı neline´arn´ı, tzv. bortiv´e ˇcasov´e osy. Dnes se jiˇz tento zp˚ usob nepouˇz´ıv´a ˇcasto. Podrobnˇe je metoda porovn´ av´ an´ı obraz˚ u pops´ana napˇr. v [Psu95]. Druh´ ym a dnes jiˇz bˇeˇzn´ ym pˇr´ıstupem je rozpozn´av´an´ı ˇreˇci na b´azi statistick´eho modelov´ an´ı [Psu06]. Z´ akladem jsou zde jiˇz zmiˇ novan´e Markovovy modely reprezentuj´ıc´ı bud’ jednotliv´e slova (pˇr´ıpad rozpozn´av´an´ı izolovan´ ych slov), nebo mnohem ˇcastˇeji r˚ uzn´e pod´ urovnˇe slov (pˇr´ıpad rozpozn´ av´an´ı souvisl´e ˇreˇci) – v t´eto pr´aci kontextovˇe nez´avisl´e, nebo kontextovˇe z´ avisl´e fon´emy. V´ yhoda v reprezentaci HMM jako fon´em˚ u spoˇc´ıv´a v konstantn´ım poˇctu natr´enovan´ ych model˚ u, tj. pro 45 ˇcesk´ ych fon´em˚ u, a okamˇzit´e dostupnosti vˇsech model˚ u. Nev´ yhodou je pak niˇzˇs´ı v´ ysledn´e sk´ore oproti Markovov´ ym mod-
5
el˚ um reprezentuj´ıc´ım pˇr´ımo slova - d˚ uvodem je pravdˇepodobnˇe vˇetˇs´ı obs´ahlost informace v HMM natr´enovan´em pro konkr´etn´ı slovo, neˇz v modelu slova vytvoˇren´em z pospojovan´ ych HMM fon´em˚ u.
1.2
Z´ akladn´ı sch´ ema
Rozpozn´ av´ an´ı je zde formulov´ano jako probl´em dek´ odov´ an´ı s maxim´ aln´ı aposteriorn´ı N pravdˇepodobnost´ı. Pˇredpokl´ adejme, ˇze W = {w1 , w2 , . . . , wN } = w1 je posloupnost N slov a necht’ O = {o1 , o2 , . . . , oT } je akustickou informac´ı (posloupnost´ı v´ ystupn´ıch znaˇcek) ´ ˆ tak, aby pravdˇepodobodvozenou ze sign´ alu promluvy. Uloha je nal´ezt posloupnost slov W nost posloupnosti slov pro danou akustickou informaci O P (W |O) byla maximalizov´ana. Podle Bayesova pravidla plat´ı ˆ |O) = max P (W |O) = max P (W )P (O|W ) , P (W W W P (O)
(1.1)
kde P (W |O) je pravdˇepodobnost, ˇze pˇri vysloven´ı posloupnosti slov W bude generov´ana posloupnost v´ ystupn´ıch znaˇcek O a P (W ) je aposteriorn´ı pravdˇepodobnost posloupnosti slov W (tj. pravdˇepodobnost, ˇze si ˇreˇcn´ık pˇreje vyslovit pr´avˇe tuto posloupnost slov). ˆ pro maxim´aln´ı P (W |O), P (O) je v tomto pˇr´ıpadˇe Jelikoˇz hled´ ame posloupnost slov W konstanta a m˚ uˇze b´ yt ignorov´ ana [Psu95]. Hled´an´ı maxima pravdˇepodobnosti P (W |O) je tak ekvivalentn´ı hled´ an´ı maxima sdruˇzen´e pravdˇepodobnosti P (W, O) ˆ , O) = max P (W, O) = max P (W )P (O|W ) . P (W W
W
(1.2)
´ Uloha rozpozn´ av´ an´ı tak m˚ uˇze b´ yt rozdˇelena do nˇekolika u ´rovn´ı[Rab93, Moh96]: 1. akustick´e zpracov´ an´ı ˇreˇcov´eho sign´alu - parametrizace 2. vytvoˇren´ı akustick´ ych model˚ u a s´ıtˇe mapuj´ıc´ı tyto modely na slova - reprezentace P (O|W ) 3. vytvoˇren´ı jazykov´eho modelu - reprezentace aposteriorn´ı pravdˇepodobnosti P (W ) ˆ aplikac´ı u 4. nalezen´ı nejpravdˇepodobnˇejˇs´ı posloupnosti slov W ´ˇcinn´eho algoritmu Tyto kroky jsou sch´ematicky zn´ azornˇeny na obr. 1.1.
1.3
Parametrizace dat
V aplikac´ıch rozpozn´ av´ an´ı ˇreˇci bylo publikov´ano mnoho parametrizac´ı [Psu06, Rab93, You02]. Jak´ ymsi ”standardem” se nejen na Katedˇre teorie obvod˚ u stala parametrizace sign´alu do tzv. Melovsk´ ych kepstr´aln´ıch koeficient˚ u a energie. Konkr´etnˇe bude v pr´aci pouˇzito 12 Melovsk´ ych kepstr´ aln´ıch koeficient˚ u a energie, jejich delta a akceleraˇcn´ı koeficienty. Celkem tedy budeme pracovat s 39-ti rozmˇern´ ym norm´aln´ım rozdˇelen´ım.
6
Obr´ azek 1.1: Princip rozpozn´av´an´ı ˇreˇci zaloˇzen´ y na statistick´em pˇr´ıstupu
1.3.1
Mel kepstr´ aln´ı koeficienty (MFCC)
Parametrizace MFCC patˇr´ı v oblasti rozpozn´av´an´ı ˇreˇci mezi nejv´ıce pouˇz´ıvan´e [Psu06]. Je navrˇzena tak, aby respektovala neline´arn´ı vlastnosti vn´ım´an´ı zvuk˚ u lidsk´ ym uchem. Kompenzace neline´ arn´ıho vn´ım´an´ı frekvenc´ı je vyˇreˇsena pomoc´ı line´arnˇe rozloˇzen´ ych bank troj´ uheln´ıkov´ ych filtr˚ u v Melovsk´e frekvenˇcn´ı ˇsk´ale definovan´e jako f . (1.3) fm = 2595 · log10 1 + 700 ˇ cov´ Reˇ y sign´ al s(k) jeˇz je pˇriveden na vstup je po preemf´azi segmentov´an na okna d´elky 10-32 ms s pˇrekryvem typicky 10 ms. Na segmenty je d´ale aplikov´ano Hammingovo ok´enko a pomoc´ı Fourierovy transformace spoˇcteno amplitudov´e spektrum S(f ). N´asleduje Melovsk´ a filtrace ve spektru bankou v´ yˇse zm´ınˇen´ ych troj´ uheln´ıkov´ ych filtr˚ u (obr. 1.2). Pro stˇredn´ı frekvence Melovsk´ ych filtr˚ u bm,i plat´ı
Obr´ azek 1.2: Melovsk´a banka troj´ uheln´ıkov´ ych filtr˚ u
bm,i = bm,i−1 + ∆m ,
(1.4)
kde p´asmo rozloˇzen´ı filtr˚ u ∆m dostaneme ∆m =
Bmw , M∗ + 1
(1.5)
7
kde bm,0 = 0 mel a i = 1, 2, . . . , M ∗ . Po vyn´ asoben´ı spektra Melovskou bankou filtr˚ u jsou spektr´aln´ı ˇc´ary v jednotliv´ ych p´as∗ mech bank seˇcteny. T´ımto zp˚ usobem jsme obdrˇzeli M mel-spektr´ aln´ıch koeficient˚ u ym (i) [You02]. Aplikac´ı n´ asleduj´ıc´ı diskr´etn´ı kosinov´e transformace (DCT) obdrˇz´ıme Melovsk´e kepstr´aln´ı koeficienty cm (j). ∗
cm (j) =
M X
log ym (i) cos
i=1
πj (i − 0, 5) , M∗
pro j = 0, 1, . . . , M,
(1.6)
kde M ∗ je poˇcet p´ asem Melovsk´e banky filtr˚ u a M je poˇcet poˇzadovan´ ych Melovsk´ ych kepstr´aln´ıch koeficient˚ u. Poˇcet tˇechto koeficient˚ u je moˇzn´e volit podstatnˇe menˇs´ı, neˇz je poˇcet p´ asem Melovsk´e banky filtr˚ u (v praxi staˇc´ı uvaˇzovat prvn´ıch M = 10−−13) [Psu06].
1.3.2
V´ ypoˇ cet kr´ atkodob´ e energie
Nult´ y koeficient cm (0) je u ´mˇern´ y logaritmu energie sign´alu. B´ yv´a vˇsak ˇcasto nahrazov´an logaritmem kr´ atkodob´e energie elog pˇr´ımo ze segment˚ u vstupn´ıho sign´alu s(k). elog = log
N −1 X
[s(k)w(N − 1 − k)]2 ,
(1.7)
k=0
kde N je poˇcet vzork˚ u pro dan´ y ˇreˇcov´ y segment a w(k) je funkce Hammingova okna.
1.3.3
Dynamick´ e koeficienty
Dynamick´e koeficienty oznaˇcovan´e jako delta ∆cm a delta-delta ∆2 cm (naz´ yvan´e i jako akceleraˇcn´ı) vyjadˇruj´ı ˇcasov´e zmˇeny vektor˚ u pˇr´ıznak˚ u. Pro kaˇzd´ y analyzovan´ y mikrosegment n se urˇcuj´ı line´ arn´ı regres´ı z 2L1 + 1 (resp. 2L2 + 1) po sobˇe jdouc´ıch mikrosegment˚ u ˇreˇcov´eho sign´ alu L1 P κ [cm (j)]n+κ [∆cm (j)]n =
−L1
L1 P
,
(1.8)
κ2
−L1 L2 P
2 ∆ cm (j) n =
−L2
κ [∆cm (j)]n+κ L2 P
,
(1.9)
κ2
−L2
s typickou hodnotou L1 = L2 = 1. Pro kaˇzd´ y analyzovan´ y mikrosegment v pˇr´ıpadˇe pouˇzit´ı 12 Melovsk´ ych kepstr´ aln´ıch koeficient˚ u a kr´atkodob´e energie dost´av´ame celkem 39 koeficient˚ u reprezentuj´ıc´ıch jednotliv´e vektory pˇr´ıznak˚ u o = [ce, ∆ce, ∆2 ce]T ,
(1.10) 8
kde ce = [cm , elog ] pˇredstavuje vektor zahrnuj´ıc´ı Melovsk´e kepstr´aln´ı koeficienty spoleˇcnˇe s energi´ı.
1.4 1.4.1
Akustick´ e modelov´ an´ı HMM
Markovov˚ uv model, t´eˇz Markovov˚ uv ˇretˇezec oznaˇcuje stochastick´ y proces, kter´ y m´a Markovovskou vlastnost. Ta ˇr´ık´a, ˇze v kaˇzd´em stavu procesu je pravdˇepodobnost navˇst´ıven´ı dalˇs´ıch stav˚ u nez´ avisl´ a na dˇr´ıve navˇst´ıven´ ych stavech. To znamen´a, ˇze chov´an´ı v Markovov´ ych ˇretˇezc´ıch je bezpamˇet’ov´e : V kaˇzd´em konkr´etn´ım stavu je moˇzno zapomenout historii (posloupnost stav˚ u pˇredch´azej´ıc´ı stavu souˇcasn´emu)[Kor02].1 Skryt´y Markovov˚ uv model - HMM je statistick´y model, ve kter´em je syst´em modelov´an na z´akladˇe Markovov´eho procesu s nepozorovanou posloupnost´ı stav˚ u. HMM v diskr´etn´ıch ˇcasov´ ych okamˇzic´ıch generuje n´ahodnou posloupnost vektor˚ u pozorov´an´ı (pˇr´ıznak˚ u) O = {o1 , o2 , . . . , oT }. HMM uˇz´ıvan´ y v aplikac´ıch rozpozn´av´an´ı mluven´e ˇreˇci se skl´ad´ a ze dvou ˇc´ ast´ı - ze stavov´eho automatu s koneˇcn´ ym poˇctem stav˚ u (reprezentov´ano matic´ı pˇrechod˚ u A - (1.11)) a z koneˇcn´eho poˇctu v´ ystupn´ıch distribuˇcn´ıch funkc´ı reprezentuj´ıc´ıch spektr´aln´ı charakter kr´ atk´ ych u ´sek˚ u ˇreˇcov´eho sign´alu. Pˇr´ıklad HMM ˇcasto pouˇz´ıvan´eho pro rozpozn´av´an´ı element´arn´ıch u ´sek˚ u ˇreˇci (fon´em˚ u) je zobrazen na obr. 1.3. 0.85
1
0.93
2 0.07
b1( ot )
0 0 A = 0 0 0
0.93 0.85 0 0 0
0.07 0.06 0.83 0 0
0.83 0.06
3
0.92 0.12
0.09
b2( ot )
0 0 a1,1 0.09 0 a2,1 0.12 0.05 = a3,1 0.92 0.08 a4,1 0 0 a5,1
4
0.08
5
0.05
b3( ot )
a1,2 a2,2 a3,2 a4,2 a5,2
a1,3 a2,3 a3,3 a4,3 a5,3
a1,4 a2,4 a3,4 a4,4 a5,4
a1,5 a2,5 a3,5 a4,5 a5,5
(1.11)
Obr´ azek 1.3: Pˇr´ıklad levo-prav´eho HMM vˇcetnˇe matice pˇrechod˚ u 1
Markovovy ˇretˇezce dostaly jm´eno po matematiku Andreji Markovovi.
9
Podm´ınˇen´e pravdˇepodobnosti pˇrechod˚ u ai,j urˇcuj´ı, s jakou pravdˇepodobnost´ı pˇrech´az´ı model ze stavu si v ˇcase t do stavu sj v ˇcase t + 1 ai,j = P (s(t + 1) = sj |s(t) = si ) ,
(1.12)
kde s(t) je stav HMM v ˇcase t. Stochastiˇcnost je v modelu zavedena splnˇen´ım N X
ai,j = 1
(1.13)
j=1
pro vˇsechny stavy si , i = 1, 2, . . . , N . Pokud je doln´ı troj´ uheln´ıkov´a ˇc´ast matice pˇrechod˚ u nulov´a, HMM model naz´ yv´ame levo-prav´ y - viz (1.11), obr. 1.3.
1.4.2
Emituj´ıc´ı stavy HMM
Funkce rozdˇelen´ı v´ ystupn´ı pravdˇepodobnost´ı bj (ot ) popisuj´ı spojit´e rozdˇelen´ı pravdˇepodobnosti vektoru pˇr´ıznak˚ u ot generovan´eho ve stavu sj v ˇcase t bj (ot ) = P (ot |s(t) = sj ) ,
(1.14)
kde P znaˇc´ı hustotu pravdˇepodobnosti [Rog98] 2 . Stochastiˇcnost je v modelu zavedena splnˇen´ım Z bj (ot )do = 1
(1.15)
o
pro vˇsechny emituj´ıc´ı stavy si , i = 1, 2, . . . , N . Jedn´ a se o spojit´e rozdˇelen´ı se smˇes´ı norm´aln´ıch hustotn´ıch funkc´ı (z angl. Continuous Gaussian Mixture Densities) [Psu06]. Je obecnˇe navrˇzeno pro v´ıce datov´ ych proud˚ u (z angl. streams). V´ ysledn´ a hustota je d´ana v´aˇzen´ ym pr˚ umˇerem jednotliv´ ych norm´aln´ıch hustotn´ıch funkc´ı. Obecn´ y v´ ypoˇcet bj (ot ) pro stav j, S datov´ ych proud˚ u a Ms smˇes´ı pro s-t´ y datov´ y proud je d´ an "M #γjs S s Y X bj (ot ) = cjsm N (ost ; µjsm , Σjsm ) , (1.16) s=1
m=1
kde ost = [o1 o2 ... on ]T je vstupn´ı vektor pˇr´ıznak˚ u, µjsm = [µ1 µ2 ... µn ]T je vektor stˇredn´ıch hodnot n-rozmˇern´eho norm´ aln´ıho rozdˇelen´ı, Σjsm je kovarianˇcn´ı matice n-rozmˇern´eho norm´aln´ıho rozdˇelen´ı a cjsm , resp. γjs jsou v´ahy pro m-tou hustotn´ı smˇes, resp. pro s-t´ y datov´ y proud. Definiˇcn´ı vztah pro v´ ypoˇcet hustotn´ı funkce norm´aln´ıho rozdˇelen´ı je 1 1 T −1 · exp − (ost − µjsm ) Σjsm (ost − µjsm ) . N (ost ; µjsm , Σjsm ) = p 2 (2π)ns |Σjsm | (1.17) 2
Je vhodn´e poznamenat, ˇze pro u ´ˇcely rozpozn´ av´ an´ı mluven´e ˇreˇci se dˇr´ıve pouˇz´ıvalo rozdˇelen´ı diskr´etn´ı kv˚ uli niˇzˇs´ı komplexnosti.
10
Vzhledem k vysok´e nekorelovanosti prvk˚ u vektor˚ u pˇr´ıznak˚ u je moˇzn´e kovarianˇcn´ı matici Σjsm povaˇzovat za diagon´ aln´ı a nahradit j´ı vektorem rozptyl˚ u r = [r1 r2 ... rn ]T , kter´ y pˇredstavuje diagon´ alu t´eto matice. V´ ypoˇcet (1.16) pak pˇrech´az´ı na bj (ot ) =
"M S s X Y s=1
#γjs cjsm N (ost ; µjsm , rjsm )
,
(1.18)
m=1
kde N (ost ; µjsm , rjsm ) = p (2π)ns
n
1 Qns
k=1 rjsmk
s (osk − µjsmk )2 1X · exp − 2 rjsmk
! .
(1.19)
k=1
V praxi se vˇsak sp´ıˇse pracuje s logaritmick´ ymi pravdˇepodobnostmi, a to kv˚ uli moˇzn´e ztr´atˇe pˇresnosti pˇri n´ asoben´ı ˇc´ısel menˇs´ıch jedn´e. Pro z´akladn´ı matematick´e operace dost´av´ ame log(P1 P2 ) = log(P1 ) + log(P 2) . (1.20) log(P1 + P2 ) = log(P1 ) + log 1 + PP12 V praxi pro souˇcet pravdˇepodobnost´ı je vhodn´e volit P1 ≥ P2 , potom je moˇzn´e log(1 + P2 /P1 ) aproximovat jako log(P1 /P2 ). Pro logaritmick´e pravdˇepodobnosti a,b se p˚ uvodn´ı operace souˇctu mˇen´ı na ladd(a, b) = ln(ea + eb ) = max(a, b) + f (|a − b|)
,
(1.21)
kde f (x) = ln(1 + e−x )
(1.22)
Zaved’me oper´ ator souˇctu N logaritmick´ ych pravdˇepodobnost´ı N G
ai = ln
i=1
N X
eai .
(1.23)
i=1
Aplikac´ı (1.20) na (1.18) a (1.19) dostaneme efektivn´ı zp˚ usob v´ ypoˇctu logaritmu bj (ot ) ln bj (ot ) =
S X s=1
γs
M G m=1
ln cjsm + ln p (2π)ns
1 Qn s
k=1 rjsmk
ns X (osk − µjsmk )2 − k=1
1
!
, 2 rjsmk (1.24)
kde je moˇzn´e pro urychlen´ı v´ ypoˇctu dopˇredu spoˇc´ıtat hodnotu Gjsm 1 ln Gjsm = ln cjsm + ln p . Qns n s (2π) k=1 rjsmk
(1.25)
11
1.5
Jazykov´ e modelov´ an´ı
´ Ulohou jazykov´eho modelu je poskytovat co nejpˇresnˇejˇs´ı odhad aposteriorn´ı pravdˇepodobnosti P (W ) pro libovolnou posloupnost slov W . Ne vˇzdy je vˇsak pro libovolnou posloupnost slov W nenulov´ y odhad aposteriorn´ı pravdˇepodobnosti P (W ). Tomuto omezen´ı se ˇr´ık´ a deterministick´e [Psu06]. Modelu jazyka, kter´ y nem´a deterministick´e omezen´ı a urˇcuje aposteriorn´ı pravdˇepodobnosti ke vˇsem posloupnostem slov, budeme ˇr´ıkat stochastick´y jazykov´y model. Jazykov´ y model by tak´e mˇel b´ yt schopen ud´avat odhady aposteriorn´ıch pravdˇepodobnost´ı nedokonˇcen´ ych posloupnost´ı slov W bˇehem vlastn´ıho rozpozn´av´an´ı v re´aln´em ˇcase bez nutnosti ˇcekat na ukonˇcen´ı promluvy. Je potˇreba uv´est, ˇze nˇekter´e v´ yklady v n´asleduj´ıc´ıch kapitol´ach jsou pˇrevzaty z [Psu06, Kat87, Ney95] a dalˇs´ıch zdroj˚ u. Pˇr´ısluˇsn´ y zdroj je vˇzdy citov´an. Autor kv˚ uli sjednocen´ı tˇechto zdroj˚ u zavedl nepatrnˇe odliˇsn´a znaˇcen´ı.
1.5.1
Stochastick´ y jazykov´ y model
Jazykov´ y model vyjadˇruje pravdˇepodobnost posloupnosti slov W = {w1 , w2 , . . . , wN }, nad´ale znaˇcen´e t´eˇz jako W = w1N . Pro pˇrirozen´e jazyky je nutn´e ocenit pravdˇepodobnost kaˇzd´eho slova na z´ akladˇe lev´eho kontextu (minul´e historie) ve vˇetˇe. Plat´ı P (W ) = P (w1 )P (w2 |w1 )P (w3 |w12 ) . . . P (wN |w1N −1 ) N Q P (wk |w1k−1 ) =
.
(1.26)
k=1
V praxi je velmi tˇeˇzk´e obdrˇzet jednotliv´e pravdˇepodobnosti P (wN |w1N −1 ). Pro slovn´ık ℵ o rozmˇeru |ℵ| a k-t´e slovo ve vˇetˇe existuje |ℵ|k−1 r˚ uzn´ ych histori´ı [Psu95]. Celkem je k tak nutn´e pro vˇsechna slova napoˇc´ıtat |ℵ| r˚ uzn´ ych pravdˇepodobnost´ı. Kromˇe probl´em˚ u N s nedostatkem pamˇeti bychom se setkali i s probl´emy absence vˇetˇsiny posloupnost´ı slov w1 v tr´enovac´ıch textech pˇrirozen´eho jazyka. V [Jel85a] je tento probl´em vyˇreˇsen rozdˇelen´ım u tak, ˇze vˇsechny historie konˇc´ıc´ı na vˇsech moˇzn´ ych histori´ı {w1k−1 } do menˇs´ıch soubor˚ k−1 stejn´a dvˇe slova {wk−2 } jsou oznaˇceny za ekvivalentn´ı, tj. k−1 P (wk |w1k−1 ) ∼ ) = P (wk |wk−2
(1.27)
a tedy P (W ) ∼ =
N Y
k−1 P (wk |wk−2 )
k=1
1.5.2
= P (w1 )P (w2 |w1 )
N Y
k−1 P (wk |wk−2 ) .
(1.28)
k=3
n-gramov´ y jazykov´ y model
Model jazyka (1.28) zaloˇzen´ y na pravdˇepodobnostech v´ yskytu trojic po sobˇe jdouc´ıch slov - trigram˚ u se naz´ yv´ a trigramov´y model. Obdobnˇe pro n-tice slov lze vytvoˇrit n-gramov´e 12
modely, pro kter´e plat´ı P (W ) ∼ =
N Y
k−1 P (wk |wk−n+1 ) .
(1.29)
k=1
Pro z´ısk´ an´ı jednotliv´ ych pravdˇepodobnost´ı n-gram˚ u se pouˇz´ıv´a rozs´ahl´ y tr´enovac´ı text, kter´ y by nav´ıc mˇel b´ yt zamˇeˇren na stejnou probl´emovou oblast, jako bude zpracov´avat v´ ysledn´ y rozpozn´ avaˇc. Odhad jednotliv´ ych pravdˇepodobnost´ı n-gram˚ u je zaloˇzen na zjiˇst’ov´ an´ı relativn´ı ˇcetnosti v´ yskyt˚ u slov, resp. jejich posloupnost´ı k−1 P (wk |wk−n+1 )=
k c(wk−n+1 ) k−1 c(wk−n+1 )
.
(1.30)
k Potˇrebujeme tak z´ıskat ˇcetnosti vˇsech n-gram˚ u c(wk−n+1 ) (tj. poˇcet, kolikr´at se k v tr´enovac´ım textu objevila posloupnost slov wk−n+1 ). Napˇr´ıklad pro slovn´ık o velikosti 10000 slov a trigramov´ y model tak potˇrebujeme z´ıskat 1012 ˇcetnost´ı. V praxi je nemoˇzn´e z´ıskat text, kde by se vˇsechny n-gramy vyskytovaly, a proto je velmi pravdˇepodobn´e, ˇze pˇri odvozen´ı parametr˚ u n-gramov´eho modelu pouze z relativn´ıch ˇcetnost´ı n-gram˚ u by nˇekter´e n-gramy vyskytuj´ıc´ı se v testovac´ım textu byly ocenˇen´e nulovou pravdˇepodobnost´ı, protoˇze se v tr´enovac´ım textu nevyskytuj´ı. Tento probl´em se naz´ yv´a probl´emem nedostateˇcn´ ych dat. Z d˚ uvod˚ u zaveden´ı jednoznaˇcnosti bude v n´asleduj´ıc´ıch podkapitol´ach pouˇzit term´ın m-gram a symbol nr bude oznaˇcovat celkov´ y poˇcet v´ yskyt˚ u vˇsech navz´ajem r˚ uzn´ ych k posloupnost´ı slov wk−m+1 , kter´e se objevily v tr´enovac´ım korpusu pˇresnˇe r-kr´at. D´ale budou pops´ any pˇredevˇs´ım ty metody odhad˚ u, kter´e umoˇzn ˇuje pouˇz´ıt AT&T GRM knihovna pro jazykov´e modelov´ an´ı [Alla], tedy Katz˚ uv model (v´ yhradnˇe pouˇz´ıv´an ve vˇsech experimentech t´eto pr´ ace) a model s absolutn´ım diskontem.
Zaveden´ı znaˇ cen´ı Uved’me seznam nejˇcastˇejˇs´ıch symbol˚ u pouˇz´ıvan´ ych v t´eto kapitole: k−1 k wk−m+1 m-gram, tj. slovo wk s histori´ı wk−m+1 , k−1 k wk−m+1 historie m-gramu wk−m+1 , k k c(wk−m+1 ) poˇcet v´ yskyt˚ u m-gram˚ u wk−m+1 v tr´enovac´ım korpusu, k−1 k−1 c(wk−m+1 ) poˇcet v´ yskyt˚ u histori´ı wk−m+1 , k−1 k−1 nr (wk−m+1 ) poˇcet vˇsech navz´ajem r˚ uzn´ ych slov wk se stejnou histori´ı wk−m+1 , kter´e se v tr´enovac´ım korpusu vyskytuj´ı pr´avˇe r-kr´at, k nr poˇcet vˇsech navz´ajem r˚ uzn´ ych m-gram˚ u wk−m+1 , kter´e se v tr´enovac´ım korpusu vyskytuj´ı pr´avˇe r-kr´at, k N − m + 1 celkov´ y poˇcet vˇsech m-gram˚ u wk−m+1 v tr´enovac´ım korpusu, tj. rozd´ıl poˇctu vˇsech slov tr´enovac´ıho korpusu N a d´elky historie m-gram˚ u 1−m.
13
Metoda maxim´ aln´ı vˇ erohodnosti Odvozen´ı v´ ypoˇctu aposteriorn´ıch pravdˇepodobnost´ı pro metodu maxim´ aln´ı vˇerohodnosti - d´ ale jen ML (z angl. Maximum Likelihood) spoˇc´ıv´a v nalezen´ı v´azan´eho extr´emu logaritmu pomocn´e vˇerohodnostn´ı funkce. Odvozen´ı je uvedeno napˇr. v [Psu06]. Pro mak−1 xim´alnˇe vˇerohodn´ y odhad P M L (wk |wk−m+1 ) podobnˇe jako v (1.30) plat´ı k−1 P M L (wk |wk−m+1 )=
k c(wk−m+1 ) k−1 c(wk−m+1 )
,
(1.31)
k−1 k pro odhad sdruˇzen´e pravdˇepodobnosti P M L (wk , wk−m+1 ), resp. P M L (wk−m+1 ) plat´ı k−1 k P M L (wk , wk−m+1 ) = P M L (wk−m+1 )=
k c(wk−m+1 ) , N −m+1
(1.32)
kde N je celkov´ y poˇcet slov ve slovn´ıku a N − m + 1 celkov´ y poˇcet m-gram˚ u s konstantn´ım m. Probl´em nedostateˇcn´ ych dat v tomto odhadu mus´ı b´ yt nˇejak kompenzov´an. Moˇznost´ı je zv´ yˇsit nulov´e pravdˇepodobnosti na nˇejakou nenulovou hodnotu a n´aslednˇe sn´ıˇzit jiˇz vypoˇc´ıtan´e nenulov´e odhady aposteriorn´ıch pravdˇepodobnost´ı kv˚ uli zachov´an´ı vˇety o u ´pln´e pravdˇepodobnosti. Tento proces se naz´ yv´a vyhlazov´ an´ı (z angl. smoothing). ML metoda tak b´ yv´ a z´ akladn´ım stavebn´ım kamenem pro r˚ uzn´e vyhlazovac´ı techniky. Good˚ uv-Turing˚ uv odhad Good˚ uv-Turing˚ uv - d´ ale jen GT odhad poch´az´ı z odhad˚ u ˇcetnost´ı nezn´am´ ych ˇzivoˇciˇsn´ ych druh˚ u. GT odhad ˇr´ık´ a, ˇze vyskytuje-li se dan´ y jev v cel´em souboru o velikosti N r-kr´ at, potom opraven´ a absolutn´ı ˇcetnost tohoto jevu r∗ je d´ana r∗ =
(r + 1)nr+1 , nr
(1.33)
kde nr je poˇcet vˇsech navz´ ajem r˚ uzn´ ych jev˚ u (shodn´ ych m-gram˚ u s konstantn´ım m) vyskyk tuj´ıc´ıch se pr´ avˇe r-kr´ at. GT odhad pravdˇepodobnosti m-gramu wk−m+1 je d´an k P GT (wk−m+1 )=
r∗ . N −m+1
(1.34)
ˇ Cetnost vˇsech vyskytuj´ıc´ıch se m-gram˚ u v textu pro konstantn´ı m je t´eˇz d´ana N −m+1=
∞ X
rnr .
(1.35)
r=1
14
k Z (1.33), (1.34) a (1.35) pro vˇsechny posloupnosti slov wk−m+1 dostaneme
P k k wk−m+1 :c(wk−m+1 )>0
k P GT (wk−m+1 )=
r∗ N −m+1
P
k k wk−m+1 :c(wk−m+1 )>0 ∞ ∞ P P ∗ (r+1)nr+1 r = n = r N −m+1 N −m+1 r=1 r=1 ∞ ∞ P P 1 1 = N −m+1 rnr = N +m−1 rnr r=2 r=1 n1 =1 − N −m+1
.
(1.36)
.
(1.37)
− n1
Dle vˇety o u ´pln´e pravdˇepodobnosti plat´ı P k k wk−m+1 :c(wk−m+1 )≥0
k P GT (wk−m+1 ) =
P k k wk−m+1 :c(wk−m+1 )>0
P
+
k k wk−m+1 :c(wk−m+1 )=0
k P GT (wk−m+1 )+ k P GT (wk−m+1 )=1
Z (1.36) a (1.37) plyne, ˇze GT odhad celkov´e pravdˇepodobnosti vˇsech nepozorovan´ ych jev˚ u je zaloˇzen na relativn´ı ˇcetnosti tzv. singleton˚ u - jev˚ u (m-gram˚ u s konstantn´ım m) vyskytuj´ıc´ıch se v cel´em tr´enovac´ım textu pr´avˇe jednou X
k )= P GT (wk−m+1
k k wk−m+1 :c(wk−m+1 )=0
n1 . N −m+1
(1.38)
Pro odhad podm´ınˇen´e pravdˇepodobnosti nepozorovan´ ych jev˚ u bychom analogick´ ym postupem dostali X
P
GT
k−1 (wk |wk−m+1 )
=
k wk :c(wk−m+1 )=0
k−1 n1 (wk−m+1 ) k−1 c(wk−m+1 )
,
(1.39)
k−1 k−1 kde n1 (wk−m+1 ) je poˇcet singleton˚ u s histori´ı wk−m+1 .
´ Ustupov´ e sch´ ema vyhlazov´ an´ı ´ Ustupov´ e sch´ema vyhlazov´an´ı (z angl. backing-off - d´ale v pˇr´ıpadˇe zkratek BO) spoˇc´ıv´ a pˇri nedostatku tr´enovac´ıch dat v n´ahradˇe v´ ypoˇctu pravdˇepodobnosti k−1 k−1 P (wk |wk−m+1 ) zobecnˇen´ym rozdˇelen´ım β(wk |wk−m+2 ) k−1 β(wk |wk−m+2 )
=
k c(wk−m+2 ) k−1 c(wk−m+2 )
,
(1.40)
k−1 kde wk−m+2 je tzv. zobecnˇen´ a historie - historie zkr´acen´a o posledn´ı slovo3 . Pravdˇepodobnosti pozorovan´ ych m-gram˚ u se odhaduj´ı na z´akladˇe jejich relativn´ıch ˇcetnost´ı 3
Tento zp˚ usob modifikace historie nemus´ı b´ yt pravidlem, b´ yv´ a vˇsak pouˇz´ıv´ an velmi ˇcasto
15
k−1 k c(wk−m+1 )/c(wk−m+1 ) sn´ıˇzen´ ych diskontn´ım souˇcinitelem 0 ≤ dc(wk . Odhady pravk−m+1 )≤1 dˇepodobnost´ı nepozorovan´ ych m-gram˚ u pak lze z´ıskat vyn´asoben´ım pravdˇepodobnosti k−1 k−1 ´ zobecnˇen´eho rozdˇelen´ı β(wk |wk−m+2 ) tzv. u ´stupovou v´ ahou B(wk−m+1 ). Ustupov´ e sch´ema lze vyj´ adˇrit n´ asledovnˇe
k c(wk−m+1 ) d k k−1 c(w ) k−1 BO k c(w k−m+1 k−m+1 ) P (wk−m+1 |wk−m+1 ) = B(wk−1 )β(w |wk−1 k−m+1
k pro c(wk−m+1 )>0
,
k k−m+2 ) pro c(wk−m+1 ) = 0
k
(1.41) kde P
1−
k wk :c(wk−m+1 )>0
k−1 B(wk−m+1 )=
k c(wk−m+1 ) k−1 ) ) k−m+1 c(w
dc(wk
P k wk :c(wk−m+1 )=0
k−m+1
,
k−1 β(wk |wk−m+2 )
(1.42)
kde ˇcitatel pˇredstavuje celkovou pˇrerozdˇelenou relativn´ı ˇcetnost smˇerem k nepozorovan´ ym jev˚ um a jmenovatel pak normalizaˇcn´ı ˇclen zaruˇcuj´ıc´ı, ˇze souˇcet pravdˇepodobnost´ı vˇsech jev˚ u bude roven 1. Pro odhad zobecnˇen´eho rozdˇelen´ı jiˇz nen´ı potˇreba tolik tr´enovac´ıch dat a je moˇzn´e pouˇz´ıt rekurzivn´ı formuli k−1 k−1 k ) . |wk−m+2 ) = P BO (wk−m+1 β(wk |wk−m+2
(1.43)
Z praktick´ ych d˚ uvod˚ u se tak´e pouˇz´ıv´a nam´ısto diskontn´ıho souˇcinitele diskontn´ı faktor λc(wk y je definov´ an jako ) , kter´ k−m+1
λc(wk
k−m+1 )
= 1 − dc(wk
(1.44)
k−m+1 )
Dosazen´ım (1.44) do (1.42) pak pro u ´stupovou v´ahu dost´av´ame P k−1 )= B(wk−m+1
k wk :c(wk−m+1 )>0
k c(wk−m+1 ) k−1 ) ) k−m+1 c(w
λc(wk
P k wk :c(wk−m+1 )=0
k−m+1
k−1 β(wk |wk−m+2 )
.
(1.45)
Line´ arn´ı interpolaˇ cn´ı sch´ ema vyhlazov´ an´ı Zde se narozd´ıl od zorovan´ ych v tr´enovac´ım k−1 k c(wk−m+1 )/c(wk−m+1 ) i v´aˇzen´ y pr˚ umˇer, kter´ y lze
u ´stupov´eho sch´ematu pro odhad pravdˇepodobnost´ı jev˚ u pokorpusu pouˇz´ıv´a krom relativn´ıch ˇcetnost´ı p˚ uvodn´ıho m-gramu k−1 zobecnˇen´e rozdˇelen´ı β(wk |wk−m+2 ). Z oboj´ıho se pak poˇc´ıt´ a zapsat jako
16
k c(wk−m+1 ) k−1 k−1 + 1 − d P LI (wk |wk−m+1 )=dc(wk k k−1 c(wk−m+1 ) β(wk |wk−m+2 ) k−m+1 ) c(wk−m+1 ) c(wk k−1 k−m+1 ) = 1 − λc(wk + λc(wk k−1 ) ) β(wk |wk−m+2 ) k−m+1
c(wk−m+1 )
.
(1.46)
k−m+1
Katz˚ uv diskontn´ı model V Katzovˇe modelu [Kat87] jsou relativn´ı ˇcetnosti pozorovan´ ych m-gram˚ u nahrazeny Goodov´ ym-Turingov´ ym odhadem, tj. k c(wk−m+1 ) k−1 c(wk−m+1 )
=
r
≈
k−1 c(wk−m+1 )
r∗ k−1 c(wk−m+1 )
.
(1.47)
D´ale je omezena mnoˇzina ”diskontovan´ ych” m-gram˚ u na takov´e, jejichˇz absolutn´ı ˇcetnost nen´ı vˇetˇs´ı, neˇz nˇejak´ a konstanta l > 0. Katz˚ uv diskontn´ı model je pak definov´an jako
P
KT
k−1 ) (wk |wk−m+1
=
k c(wk−m+1 ) k−1
c(wk−m+1 ) „ 1 − λc(wk
k−m+1
k−1 β(wk |wk−m+2 )
k c(wk−m+1 ) ) c(wk−1 ) k−m+1
P
2
P
k c(wk−m+1 )>l
pro
k 1 ≤ c(wk−m+1 )≤l
pro
k c(wk−m+1 )=0
3
k c(wk−m+1 ) 5 c(wk ) c(wk−1 ) k−m+1 k−m+1
4λ
wk :c(wk )≤l k−m+1
wk :c(wk )=0 k−m+1
pro «
k−1 β(wk |wk−m+2 )
(1.48) ´ Dobr´e v´ ysledky byly pozorov´ any pro l = 5, 6, 7. Uvahou, ˇze diskont bude pouˇzit pro k vˇsechny ˇcetnosti m-gram˚ u r = c(wk−m+1 , tj. l → ∞ a poˇzadavkem, ˇze GT odhad (1.39) bude v souladu s Katzov´ ym odhadem (1.48), tj. 1 − λr |l→∞ = dr |l→∞ =
r∗ , r
(1.49)
je moˇzn´e postupem uveden´ ym napˇr. v [Psu06] urˇcit diskontn´ı faktor λr (r + 1)nr+1 (l + 1)nl+1 −1 λr = 1 − 1− , 1≤r≤l . rnr n1
(1.50)
Ze srovn´ an´ı (1.41) a (1.48) vypl´ yv´a, ˇze Katz˚ uv model vyj´adˇren´ y ve tvaru (1.48) je moˇzn´e definovat z´ apisem (1.41) s t´ım, ˇze pro diskontn´ı souˇcinitel plat´ı 1 pro r > l h ih i−1 dc(wk = d = (1.51) r k−m+1 ) (r+1)nr+1 − (l+1)nl+1 1 − (l+1)nl+1 pro 1 ≤ r ≤ k rnr n1 n1 Katz˚ uv model je pouˇz´ıv´ an ve vˇsech experimentech se statistick´ ym jazykov´ ym modelem t´eto pr´ ace.
17
Model s absolutn´ım diskontem Z´akladn´ı myˇslenkou modelu s absolutn´ım diskontem - d´ale jen AD [Ney94] je zachovat k t´emˇeˇr nezmˇenˇen´e vysok´e poˇcty sdruˇzen´ ych jev˚ u wk−m+1 . Pˇredstava je, ˇze se se poˇcet v´ yskyt˚ u tˇechto sdruˇzen´ ych jev˚ u pˇr´ıliˇs nezmˇen´ı ani v pˇr´ıpadˇe zvolen´ı jin´eho tr´enovac´ıho korpusu ze stejn´e probl´emov´e oblasti a poˇcet slov ve slovn´ıku V . Zaveden´ım parametru trval´e odchylky bwk−1 budeme uvaˇzovat moˇznou promˇenlivost, resp. odchylku poˇctu k−m+1
k−1 v´ yskyt˚ u c(wk−m+1 ). Diskontn´ı souˇcinitel pak m˚ uˇzeme vyj´adˇrit jako
dc(wk
k−m+1 )
=
k c(wk−m+1 ) − bwk−1
k−m+1
.
k ) c(wk−m+1
(1.52)
Dosazen´ım (1.52) do (1.41) je pak moˇzn´e model s absolutn´ım diskontem vyj´adˇrit jako k c(wk−m+1 )−b k−1 w k−m+1 k pro c(wk−m+1 )>0 k c(wk−m+1 ) k−1 k−1 AD b k−1 β(wk |wk−m+2 ) k−1 P (wk |wk−m+1 ) = , w V −n0 (wk−m+1 ) k−m+1 k P ) = 0 pro c(w k−1 k−1 k−m+1 β(wk |wk−m+2 ) c(wk−m+1 ) k )=0 wk :c(w k−m+1
k−1 n0 (wk−m+1 )
(1.53) je poˇcet slov, kter´e se v tr´enovac´ım korpusu
kde V je poˇcet slov ve slovn´ıku a k−1 nevyskytly po historii wk−m+1 . Odvozen´ı parametru bwk−1 pomoc´ı metody odhadu s postupn´ym vynech´ av´ an´ım jedk−m+1 noho jevu je uvedeno napˇr. v [Psu06]. V´ ysledkem tohoto odvozen´ı je iteraˇcn´ı vzorec bwk−1
=
k−m+1
k−1 n1 (wk−m+1 ) )(1−b k−1 ) rnr (wk−1 k−m+1 w k−1 k−1 k−m+1 n1 (wk−m+1 )+2n2 (wk−m+1 )+ r−1−b k−1 r=3 w k−m+1 R P
k−1 pro ∀ wk−m+1
, (1.54)
k kde R = max(r) je nejvyˇsˇs´ı uvaˇzovan´ y poˇcet v´ yskyt˚ u m-gramu wk−m+1 . Z rovnice (1.53) vypl´ yv´ a, ˇze (1.55) 0 < bwk−1 < 1 . k−m+1
V [Psu06] je tak´e proveden odhad horn´ı meze bwk−1
, tj.
k−m+1
bwk−1
k−m+1
a doln´ı meze bwk−1
≤
k−1 n1 (wk−m+1 ) k−1 k−1 n1 (wk−m+1 )+2n2 (wk−m+1 )
k−1 pro ∀ wk−m+1
(1.56)
, tj.
k−m+1
bwk−1
k−m+1
≥
k−1 n1 (wk−m+1 ) R P k−1 k−1 n1 (wk−m+1 )+2n2 (wk−m+1 )+
r=3
k−1 r n (wk−m+1 ) r−1 r
k−1 pro ∀ wk−m+1
(1.57)
V praxi se pak vol´ı radˇeji hodnota, kter´a co nejv´ıce podhodnocuje vliv jev˚ u, kter´e nebyly pozorov´ any v tr´enovac´ım korpusu, tj. hodnota bl´ıˇz´ıc´ı se horn´ı mezi (1.56). 18
k−1 Dalˇs´ı moˇznost´ı je uvaˇzovat jen jeden parametr b pro vˇsechny historie wk−m+1 . M˚ uˇze to vˇsak d´ıky nedostatku parametr˚ u v´est na velmi vych´ ylen´e odhady pravdˇepodobnost´ı. Experiment´ aln´ı v´ ysledky vˇsak poukazuj´ı, ˇze uvaˇzov´an´ı historie se moc nevypl´ac´ı, a tak se ˇcasto pˇredpokl´ ad´ a, ˇze n1 . (1.58) bwk−1 ≈ b = k−m+1 n1 + 2n2
Model Kneser˚ uv-Ney˚ uv Kneser˚ uv-Ney˚ uv model [Ney95] vych´az´ı z jin´eho tvaru zobecnˇen´eho rozdˇelen´ı k−1 β(wk |wk−m+2 ) neˇz je uvedeno v (1.40) a to k−1 k−1 β(wk |wk−m+2 ) = β1 (wk |wk−m+2 )=
k c1 (wk−m+2 ) k−1 c1 (wk−m+2 )
,
(1.59)
1
(1.60)
kde X
k c1 (wk−m+2 )=
k−1 k−1 k−1 wk−m+2 :wk−m+2 ⊂wk−m+1
∧
k c(wk−m+1 )=1
a k−1 )= c1 (wk−m+2
X
k ) . c1 (wk−m+2
(1.61)
wk k k takov´ ych, ˇze slovu wk pˇredch´az´ı historie ) ud´ av´ a poˇcet singleton˚ u wk−m+2 c1 (wk−m+2 k−1 yv´ ano jako singletonov´e u ´stupov´e rozdˇelen´ı (z angl singleton wk−m+2 je rozdˇelen´ı (1.59) naz´ backing-off distribution). Dosazen´ım diskontn´ıho souˇcinitele
dc(wk
k−m+1 )
=
k )−b c(wk−m+1 k c(wk−m+1 )
.
(1.62)
pˇri uv´aˇzen´ı 1.59 do (1.41) dost´ av´ ame pro Kneser-Ney˚ uv model pˇredpis
k−1 P KN (wk |wk−m+1 )=
k c(wk−m+1 )−b k−1 c(wk−m+1 )
V b
k−1 −n0 (wk−m+1 ) k−1 c(wk−m+1 )
k pro c(wk−m+1 )>0 k c1 (wk−m+2 ) ) c1 c(wk−1 k−m+2 c1 (wk ) P k−m+2 c1 (wk−1 ) k k−m+2 wk :c(w )=0 k−m+2
k pro c(wk−m+1 )=0
.
(1.63)
1.5.3
Modely zaloˇ zen´ e na tˇr´ıd´ ach slov
Modely zaloˇzen´e na tˇr´ıd´ ach slov v podstatˇe slouˇz´ı jako pomocn´e u ´stupov´ y model ve spojen´ı s m-gramov´ ymi modely. Jsou totiˇz schopny zobecnit kontextov´e z´avislosti i na slova, kter´ a se v tr´enovac´ım korpusu v˚ ubec nevyskytuj´ı. Statistiky slovn´ıch tˇr´ıd se totiˇz z´ısk´avaj´ı mnohem snadnˇeji, neˇz statistiky slov samotn´ ych. 19
Pro zjednoduˇsen´ı prozat´ım pˇredpokl´adejme, ˇze se jedn´a o relaci zobrazen´ı z mnoˇziny slov do mnoˇziny slovn´ıch tˇr´ıd a n-gramov´ y model m˚ uˇze pouˇz´ıvat historii tˇr´ıd ck−1 k−m+1 k−1 nam´ısto historie slov wk−m+1 , tj. plat´ı k−1 P (wk |wk−m+1 ) → P (wk |ck−1 k−m+1 ) k−1 k−1 P (wk , ck |ck−1 k−m+1 ) = P (wk |ck−m+1 )P (ck |ck−m+1 ) k−1 = P (wk |ck )P (ck |ck−m+1 )
(1.64) ,
(1.65)
kde P (wk |ck ) je pravdˇepodobnost slova wk za podm´ınky, ˇze wk n´aleˇz´ı do tˇr´ıdy ck a P (ck |ck−1 epodobnost v´ yskytu tˇr´ıdy ck s histori´ı ck−1 ınˇenou k−m+1 ) je pravdˇ k−m+1 . Podm´ pravdˇepodobnost je tak moˇzn´e na z´akladˇe (1.65) vyj´adˇrit jako k−1 P (w|wk−m+1 ) = P (wk |ck )P (ck |ck−1 k−m+1 ) .
(1.66)
Pokud pouˇzijeme tˇr´ıdy zaloˇzen´e na slovn´ıch druz´ıch, m˚ uˇze jedno slovo patˇrit k v´ıce slovn´ım druh˚ um. Napˇr´ıklad slovo ”kolem” m˚ uˇze b´ yt pˇredloˇzka, pˇr´ıslovce i podstatn´e jm´eno v 7. p´adˇe jednotn´eho ˇc´ısla. Potom mus´ıme pravou stranu rovnice (1.66) vysˇc´ıtat pˇres vˇsechny tˇr´ıdy v naˇsem korpusu C X k−1 (1.67) )= P (wk |ck )P (ck |ck−1 P (w|wk−m+1 k−m+1 ) . ck ∈C
1.5.4
Posouzen´ı kvality jazykov´ eho modelu
Prvn´ı moˇznost´ı je pouˇz´ıt model v u ´loze rozpozn´av´an´ı mluven´e ˇreˇci a zjistit, o kolik se zlepˇsila pˇresnost rozpozn´ av´ an´ı oproti nˇejak´emu standardn´ımu jazykov´emu modelu etalonu. Jazykov´ y model vˇsak m˚ uˇze b´ yt posouzen i s´am bez akustick´eho modelu. Nejpouˇz´ıvanˇejˇs´ı m´ırou hodnocen´ı kvality jazykov´eho modelu je tzv. perplexita (z angl. perplexity) [Psu06] definovan´ a jako 1 , (1.68) PP = q N N P (w1 ) kde N je poˇcet slov v dan´em korpusu a P (w1K ) je odhad apriorn´ı pravdˇepodobnosti ud´avan´ y jazykov´ ym modelem. Je nutn´e rozliˇsovat mezi perplexitou testovac´ıho korpusu (z angl testset perplexity) a perplexitou tr´enovac´ıho korpusu (z angl. train-set perplexity), kter´a se ˇ poˇc´ıt´a na t´emˇze korpusu na jak´em byl jazykov´ y model natr´enov´an. Casto se pouˇz´ıv´ a logaritmick´ a podoba perplexity LP = log2 P P = −
1 log2 P (w1N ); . N
(1.69)
Pro m-gramov´e modely m´ a tento vztah tvar LP = log2 P P = −
1 N −m+1
N −m+1 X
k−1 log2 P (wk |wk−m+1 ); .
(1.70)
k=1
20
Lze ˇr´ıci, ˇze pokud je perplexita u ´lohy P P , potom obt´ıˇznost u ´lohy rozpozn´av´an´ı ˇreˇci je stejn´a, jako kdyby jazyk mˇel P P stejnˇe pravdˇepodobn´ ych slov.
1.6
Dek´ odovac´ı techniky
Nyn´ı byly pops´ any vˇsechny prvky potˇrebn´e pro konstrukci rozpozn´avaˇce mluven´e ˇreˇci tak, jak byly uvedeny v kapitole 1.2. M´ame tedy definovanou strukturu jazykov´eho modelu P (W ) a akustick´eho modelu P (O|W ) v podobˇe ohodnocen´eho stavov´eho automatu a potˇrebujeme nal´ezt optim´ aln´ı cestu podle vstupn´ıch vektor˚ u pozorov´an´ı v tomto automatu. Poznamenejme, ˇze oznaˇc´ıme-li posloupnost stav˚ u S a posloupnost vstupn´ıch vektor˚ u pˇr´ıznak˚ u obsahuje T pozorov´an´ı, mus´ı m´ıt kaˇzd´a posloupnost S generuj´ıc´ı O nejm´enˇe T + 2 stav˚ u. Vˇzdy totiˇz uvaˇzujeme alespoˇ n poˇc´ateˇcn´ı a koncov´ y neemituj´ıc´ı stav. Pro rozpozn´ avac´ı s´ıt’ reprezentovanou skryt´ ymi Markovov´ ymi modely, kde je posloupnost slov W jednoznaˇcnˇe urˇcena posloupnost´ı stav˚ u pro akustick´ y model plat´ı P (O|W ) =
X
P (O|S)P (S|W ) ,
(1.71)
S
kde P (O|S) je podm´ınˇen´ a pravdˇepodobnost jevu, ˇze model pˇri dan´e posloupnosti stav˚ uS (a t´ım je jednoznaˇcnˇe d´ ana i posloupnost slov W ) vygeneruje posloupnost pozorov´an´ı O a P (S|W ) je podm´ınˇen´ a pravdˇepodobnost, ˇze model modeluj´ıc´ı posloupnost slov W projde stavovou posloupnost´ı S. Pˇritom kaˇzd´ y stav si = s(t), pro t = 1, 2, . . . , T resp. pˇrechod m´ a jednoznaˇcnˇe pˇriˇrazen´e rozdˇelen´ı pravdˇepodobnosti bi () a kaˇzd´ y pˇrechod m´a definovanou pravdˇepodobnost aij pˇrechodu ze stavu i do stavu j tak jak je uvedeno v kapitole 1.4. Cel´a u ´loha dek´ odov´ an´ı m˚ uˇze b´ yt reprezentov´ana ( ) X ˆ = arg max P (W ) P (O|S)P (S|W ) . (1.72) W W
S
Omez´ıme-li sumu ve vztahu 1.72 pouze na nenulov´e hodnoty P (S|W ), tj. S ∈ ΦW , kde ΦW je mnoˇzina vˇsech moˇzn´ ych posloupnost´ı stav˚ u reprezentuj´ıc´ı posloupnost slov W , dostaneme definici u ´lohy dek´ odov´an´ı podle krit´eria MAP [Psu06] ( ) P ˆ = arg max P (W ) W P (O|S)P (S|W ) W S= Φ W ( ) . (1.73) P = arg max P (W ) P (O|SW )P (SW ) W SW =ΦW Experiment´ alnˇe bylo zjiˇstˇeno, ˇze pokud je pouze nejpravdˇepodobnˇejˇs´ı posloupnost stav˚ u S nam´ısto souˇctu pravdˇepodobnost´ı pˇres vˇsechna S ∈ ΦW , pˇresnost rozpozn´av´an´ı se pˇr´ıliˇs nezmˇen´ı. Po uplatnˇen´ı t´eto aproximace dost´av´ame dnes nejpouˇz´ıvanˇejˇs´ı Viterbiovo
21
krit´erium rozpozn´ av´ an´ı ˆ W
= arg max P (W ) max P (O|S)P (S|W ) S=ΦW W
.
(1.74)
= arg max P (W ) max P (O|SW )P (SW ) SW =ΦW W
1.6.1
Nalezen´ı posloupnosti stav˚ u s nejvˇ etˇs´ı vˇ erohodnost´ı
M´ ame-li pˇripraveny vˇsechny zdroje znalost´ı, m˚ uˇzeme pˇristoupit k samotn´emu rozpozn´ av´ an´ı pomoc´ı tzv. Viterbiho Algoritmu [Rab93]. Pro nalezen´ı nejvˇerohodnˇejˇs´ı posloupnosti stav˚ u s = (s1 , s2 , . . . , sT ) pro danou posloupnost vektor˚ u pˇr´ıznak˚ u O = (o1 , o2 , . . . , oT ) definujme promˇennou δt (i) =
max
s1 ,s2 ,...,st−1
P (s1 , s2 , . . . , st−1 , st = i, o1 , o2 , . . . , ot | M ) ,
(1.75)
kter´a oznaˇcuje nejvyˇsˇs´ı pravdˇepodobnost v´ yskytu posloupnosti o1 , o2 , . . . , ot v nalezen´e posloupnosti stav˚ u s1 , s2 , . . . , st−1 a koncov´ y stav i. Indukc´ı dostaneme δt+1 (j) = bj (ot+1 ) max [δt (i)aij ] . 1≤i≤N
(1.76)
Viterbiho algoritmus: 1. Inicializace: δ1 (i) = πi bi (o1 ), ψ1 (i) = 0
1≤i≤N
(1.77)
2. Rekurze: δt (j) = bj (ot ) max [δt−1 (i)aij ], 1≤i≤N
2≤t≤N (1.78) 1≤j≤N
ψt (j) = arg max [δt−1 (i)aij ], 1≤i≤N
2≤t≤N (1.79) 1≤j≤N
3. Ukonˇcen´ı4 : P ∗ = max [δT (i)]
(1.80)
s∗T = arg max [δT (i)]
(1.81)
1≤i≤N
1≤i≤N
4. Hled´ an´ı posloupnosti stav˚ u (od konce) s∗t = ψt+1 (s∗t+1 ),
t = T − 1, T − 2, . . . , 1.
(1.82)
N´aroˇcnost algoritmu zahrnuje N (N + 1)(T − 1) + N ≈ N 2 T souˇcin˚ u, pˇriˇcemˇz velkou v´ yhodou je absence souˇct˚ u pravdˇepodobnost´ı. M˚ uˇzeme tak snadno poˇc´ıtat v logaritmicky ´ch pravdˇepodobnostech bez pouˇzit´ı souˇcin˚ u. 4ˇ
Casto pˇredpokl´ ad´ ame ukonˇcen´ı ve stavu N, tud´ıˇz P ∗ = δT (N ) a s∗T = N
22
Viterbiho algoritmus s pouˇ zit´ım logaritm˚ u pravdˇ epodobnost´ı Definujme logaritmick´e promˇenn´e π ˜i = log(πi ), 1≤i≤N ˜bi (ot ) = log[bi (ot )], 1 ≤ i ≤ N, 1 ≤ t ≤ T ; a ˜ij = log(aij ), 1 ≤ i, j ≤ N Dalˇs´ı postup pak: 1. Inicializace:
δ˜1 (i) = π ˜i + bi (o1 ), ψ1 (i) = 0
1≤i≤N
(1.83)
(1.84)
2. Rekurze: h i δ˜t (j) = ˜bj (ot ) + max δ˜t−1 (i) + a ˜ij 1≤i≤N h i ψt (j) = arg max δ˜t−1 (i) + a ˜ij , 2 ≤ t ≤ T, 1 ≤ j ≤ N
(1.85)
1≤i≤N
3. Ukonˇcen´ı: P˜ ∗ = max [δ˜T (i)]
(1.86)
s∗T = arg max [δ˜T (i)]
(1.87)
1≤i≤N
1≤i≤N
4. Hled´ an´ı posloupnosti stav˚ u (od konce) s∗t = ψt+1 (s∗t+1 ),
t = T − 1, T − 2, . . . , 1.
(1.88)
N´aroˇcnost algoritmu je v tomto pˇr´ıpadˇe cca N 2 T souˇct˚ u. Jedn´a se tak o nejv´ yhodnˇejˇs´ı moˇznou implementaci algoritmu hled´an´ı nejlepˇs´ı posloupnosti stav˚ u. V´ yˇse uveden´ y algoritmus demonstruje na pˇr´ıkladˇe tˇr´ıstavov´eho HMM s pozorovac´ı posloupnost´ı ˇsesti vektor˚ u obr´azek 1.4, kde ˇsipky ukazuj´ı na stav i pˇredchoz´ıho vektoru o s nejvˇetˇs´ı ˇc´asteˇcnou pravdˇepodobnost´ı (1.85) a siln´e ˇc´ ary v´ yslednou posloupnost stav˚ u obdrˇzenou na z´akladˇe (1.86).
1.7
Z´ akladn´ı zp˚ usoby proch´ azen´ı graf˚ u
Obr. 1.4 popisuje nalezen´ı nejpravdˇepodobnˇejˇs´ı cesty v jednom modelu. To je ovˇsem pro rozpozn´ av´ an´ı ˇreˇci nedostateˇcn´e. Je potˇreba nal´ezt nejpravdˇepodobnˇejˇs´ı cestu v komplexn´ı rozpozn´ avac´ı s´ıti na u ´rovni stav˚ u. Z´akladem je vˇzdy Viterbiho algoritmus. Po obdrˇzen´ı posloupnosti vektor˚ u pˇr´ıznak˚ u O = o1 , o2 , . . . , oT se prostor stav˚ u rozpozn´avac´ı s´ıtˇe znaˇcnˇe zkomplikuje. Obr. 1.5 popisuje tuto skuteˇcnost na jednoduch´e rozpozn´avac´ı s´ıti slova ”osm”. Pro rozpozn´ avac´ı s´ıt’ ”ano-ne” bez zpˇetn´ ych pˇrechod˚ u je tat´aˇz situace zobrazena na obr. 1.6. 23
o2
o1
4
o3
0.08
o6
o5
~ ~ d3 (3) =b3( o3)+log(0.12)+ d 2(2) y3 (3)=2
~ (3) =b ( o )+log(0.12)+ ~ (2) d4 d3 3 4 y4 (3)=2
~ (3) =b ( o )+log(0.12)+ ~ (2) d5 d4 3 5 y5 (3) =2
~ (2) =b ( o )+log(0.06)+ ~ (1) d2 d1 2 2 y2 (2)=1
~ (2) =b ( o )+log(0.06)+ ~ (1) d3 d2 2 3 y3 (2)=1
~ (2) =b ( o )+log(0.06)+ ~ (1) d4 d3 2 4 y4 (2)=1
~ (2) =b ( o )+log(0.83)+ ~ (2) d5 d4 2 5 y5 (2)=2
~ ~ d2 (1) =b1(o2)+log(0.85)+ d 1(1) y2 (1)=1
~ ~ d3 (1) =b1( o3)+log(0.85)+ d 2(1) y3 (1)=1
~ (1) =b ( o )+log(0.85)+ ~ (1) d4 d3 1 4 y4 (1)=1
3
0.92
o4
~ (3) =b ( o )+log(0.92)+ ~ (3) d6 d5 3 6 y6 (3) =3
0.12
2
0.83 0.06
~ d1 (1) =b1 ( o1) y1 (1)=0
1
0.85 0.93
0
Obr´ azek 1.4: Demonstrace Viterbiho algoritmu o1
o2
o3
o4
o5
o6
o7
o_a11
bo#1 ( o1 )
bo#1 ( o2 )
bo#1 ( o3 )
bo#1 ( o4 )
bo#1 ( o5 )
bo#1 ( o6 )
bo#1 ( o7 )
bo#1 ( o8 )
bo#1 ( oN )
o_a22
bo#2 ( o1 )
bo#2 ( o2 )
bo#2 ( o3 )
bo#2 ( o4 )
bo#2 ( o5 )
bo#2 ( o6 )
bo#2 ( o7 )
bo#2 ( o8 )
bo#2 ( oN )
o#0
o8
oN
o_a01
o#1
o
o_a23
bo#3 ( o2 )
bo#3 ( o3 )
bo#3 ( o4 )
bo#3 ( o5 )
bo#3 ( o6 )
bo#3 ( o7 )
bo#3 ( o8 )
bo#3 ( oN )
bs#1 ( o1 )
bs#1 ( o2 )
bs#1 ( o3 )
bs#1 ( o4 )
bs#1 ( o5 )
bs#1 ( o6 )
bs#1 ( o7 )
bs#1 ( o8 )
bs#1 ( oN )
s_a22
bs#2 ( o1 )
bs#2 ( o2 )
bs#2 ( o3 )
bs#2 ( o4 )
bs#2 ( o5 )
bs#2 ( o6 )
bs#2 ( o7 )
bs#2 ( o8 )
bs#2 ( oN )
s_a33
bs#3 ( o1 )
bs#3 ( o2 )
bs#3 ( o3 )
bs#3 ( o4 )
bs#3 ( o5 )
bs#3 ( o6 )
bs#3 ( o7 )
bs#3 ( o8 )
bs#3 ( oN )
m_a11
bm#1( o1 )
bm#1( o2 )
bm#1( o3 )
bm#1( o4 )
bm#1( o5 )
bm#1( o6 )
bm#1( o7 )
bm#1( o8 )
bm#1( oN )
m_a22
bm#2( o1 )
bm#2( o2 )
bm#2( o3 )
bm#2( o4 )
bm#2( o5 )
bm#2( o6 )
bm#2( o7 )
bm#2( o8 )
bm#2( oN )
bm#3( o1 )
bm#3( o2 )
bm#3( o3 )
bm#3( o4 )
bm#3( o5 )
bm#3( o6 )
bm#3( o7 )
bm#3( o8 )
bm#3( oN )
o#1
o_a34
s#1
s
s_a11
s_a12
s#2 s_a23
s#3
o3
o_a01
bo#3 ( o1 )
o_a33
o#3
o2
o1
o#0
o_a12
o#2
o
o_a11
o_a12
o#2
o_a22
o_a23
e:e / o_a11
.
bo#1 ( o2 )
e:e / o_a12
.
bo#2 ( o2 )
bo#1 ( o1 )
bo#1 ( o2 ) bo#2 ( o2 )
e:e / o_a11
.
bo#1( o3 )
e:e / o_a12
.
bo#2( o3 )
e:e / o_a22
.
bo#2( o3 )
e:e / o_a23
.
bo#3( o3 )
e:e / o_a11
.
bo#1( o4 )
e:e / o_a12
.
bo#2( o4 )
bo#1 ( o3 ) bo#2 ( o3 )
s_a34
m#1
m
m_a12
m#2 m_a23
m#3
m_a33
m_a34
o#3
o_a33
o_a34
s#1
bo#3 ( o3 )
e:e / o_a22
.
e:e / o_a23
.
bo#3( o4 )
e:e / o_a33
.
bo#3 o4
e:o / o_a34
.
bs#1( o4 )
bo#2( o4 )
s_a11
s_a12
m#4
Obr´ azek 1.5: Princip proch´ azen´ı grafem pˇri zadan´e posloupnosti vektoru pˇr´ıznak˚ u
1.7.1
Hled´ an´ı do hloubky - DFS
Algoritmus hled´ an´ı do hloubky - DFS (z angl. Deepth-First-Search) vyuˇz´ıv´a datov´ y typ z´asobn´ık, nebo rekurzi. Podstatou pˇri proch´azen´ı grafu je ukl´ad´an´ı jiˇz navˇst´ıven´ ych stav˚ u a ukonˇcen´ı dalˇs´ıho pronik´an´ı pˇri n´asledn´em dosaˇzen´ı jiˇz navˇst´ıven´eho stavu, ˇci v´ yskytu v koncov´em stavu. N´ asleduj´ıc´ı pˇr´ıklad demonstruje tento algoritmus pomoc´ı rekurze v jazyce C [Sed03]. void traverse (int k, void (*visit)(int)) { link t; (*visit)(k); visited[k] = 1; for (t = adj[k]; t != NULL; t = t->next) if (!visited[t->v]) traverse(t->v, visit); }
Obr. 1.7 pak demonstruje kroky algoritmu DFS na jednoduch´em stavov´em automatu. 24
o1 o2 o3 o4 o5 o6
()_a01
()#1
oN
()_a11
()_a12 ()_a22
()#2 ()_a23
()#3
a#1
a
()_a33
a_a11
a_a12
a#2
a_a22
a_a23 a_a33
a#3 o_a34
n#1
n
n#1
n_a11
n_a12
n#2
n
n_a22
n_a23
n#3
n_a33
n#3
o_a11
e#1
o#2
n_a33
e_a11
e_a12
e
o_a22
o_a23
o#3
n_a22
n_a34
o_a12
o
n#2 n_a23
n_a34
o#1
n_a11
n_a12
e#2
e#3
o_a33
()#1
e_a22
e_a23 e_a33
()_a11
()_a12
()#2
()_a22
()_a23
()#3
()_a33
Obr´ azek 1.6: Rozpozn´avaˇc ”ano-ne” bez zpˇetn´ ych pˇrechod˚ u
Obr´ azek 1.7: Postupn´e navˇstˇevov´an´ı stav˚ u algoritmem DFS
1.7.2
Hled´ an´ı do ˇs´ıˇrky - BFS
Algoritmus hled´ an´ı do ˇs´ıˇrky - BFS (z angl. Breadth-First-Search) pouˇz´ıv´a abstraktn´ı datov´ y typ fronta (FIFO) [Sed03], do kter´e si ukl´ad´a nenavˇst´ıven´e c´ılov´e stavy dan´ ych pˇrechod˚ u v dan´em kroku. V n´ asleduj´ıc´ım kroku jsou pak z fronty ˇcteny a proces se opakuje. N´asleduj´ıc´ı pˇr´ıklad demonstruje tento algoritmus pomoc´ı datov´eho typu fronta (pˇr´ıkazy QUEUEinit() - inicializace fronty, QUEUEput() - uloˇzen´ı stavu do fronty, QUEUEget() vyjmut´ı stavu z fronty, QUEUEempty() - vrac´ı log. 1, pokud je v dan´ y okamˇzik fronta pr´azdn´ a). void traverse(int k, void (*visit)(int)) {
25
link t; QUEUEinit(V); QUEUEput(k); while (!QUEUEempty()) if (visited[k = QUEUEget()] == 0) { (*visit)(k); visited[k] = 1; for (t = adj[k]; t != NULL; t = t->next) if (visited[t->v] == 0) QUEUEput(t->v); } }
Obr. 1.8 pak demonstruje mezikroky algoritmu BFS (vˇzdy zpracov´any stavy z fronty uloˇzen´e v nejv´ıce vnoˇren´e smyˇcce v´ yˇse uveden´eho algoritmu) na jednoduch´em stavov´em automatu.
Obr´ azek 1.8: Mezikroky navˇstˇevov´an´ı stav˚ u algoritmem BFS
1.8
Algoritmus pro s´ıt’ realizovanou WFST
Jedn´ a se o Viterbiho algoritmus, kter´ y aplikujeme na danou rozpozn´avac´ı s´ıt’, se vstupem na u ´rovni stav˚ u. N´ asleduj´ıc´ı postup je pouˇzit v programu rct 5 coby dekod´eru (pouˇzit´ı uvedeno v kap. 7.8). Popiˇsme z´akladn´ı body zm´ınˇen´eho procesu: • pro proch´ azen´ı rozpozn´ avac´ı s´ıtˇe je pouˇzit algoritmus hled´an´ı do ˇs´ıˇrky (Breadth-First) [Sed03], pˇriˇcemˇz epsilon pˇrechody jsou ˇreˇseny algoritmem hled´an´ı do hloubky (DeepthFirst), • algoritmus zaloˇzen na generov´an´ı hypot´ez pro vybran´e stavy a segmenty ˇreˇci, • hypot´ezy jsou pro kaˇzd´ y segment seˇrazeny dle jejich hodnot (nalezen´ ych pomoc´ı souˇctu pravdˇepodobnost´ı – mixtur vektoru pˇr´ıznak˚ u v distribuˇcn´ıch funkc´ıch v´ıcerozmˇern´eho norm´ aln´ıho rozdˇelen´ı [Rab93, You02]) a n´aslednˇe podle krit´eri´ı proˇrez´ av´ an´ı ponech´ any jen ty nejd˚ uleˇzitˇejˇs´ı, 5
Konkr´etnˇe se jedn´ a o modul asr base.
26
• proces se takto opakuje, dokud nen´ı dosaˇzen posledn´ı segment reprezentovan´ y vektorem pˇr´ıznak˚ u vstupn´ı promluvy.
1.8.1
Proˇrez´ av´ an´ı rozpozn´ avac´ı s´ıtˇ e
Na obr. 1.9 je vidˇet z´ akladn´ı princip proch´azen´ı rozpozn´avac´ı s´ıtˇe. Mimo jin´e odtud plyne, ˇze pokud m´ ame alespoˇ n 2 pˇrechody z kaˇzd´eho stavu, potˇrebujeme generovat pro promluvu o stu ˇcasov´ ych u ´sek˚ u alespoˇ n 2100 = 1, 27×1030 hypot´ez! Takov´a pamˇet’ kter´a by udrˇzela takto obrovsk´e mnoˇzstv´ı informac´ı, vˇsak neexistuje, a tak se pouˇz´ıv´a proˇrez´ av´ an´ı (z angl. pruning) pˇri rozpozn´ av´ an´ı. V popisovan´em algoritmu se pouˇz´ıvaj´ı celkem 3 druhy proˇrez´av´ an´ı: 1. zachov´ an´ı N-nejlepˇ s´ıch hypot´ ez pro stejn´ y c´ılov´ y stav - napˇr. pro hypot´ezy s c´ılov´ ymi stavy 1,2,2,3,2,3,3,4,5,6 vznikne pro N=1 mnoˇzina hypot´ez s c´ılov´ ymi stavy 1,2,3,4,5,6. 2. stanoven´ı maxim´ aln´ıho poˇ ctu hypot´ ez pro dan´ y segment - rozumn´e rozmez´ı takto generovan´ ych hypot´ez (seˇrazen´ ych od nejv´ yhodnˇejˇs´ı k nejhorˇs´ı) je cca 300 10000. 3. svazkov´ e proˇ rez´ av´ an´ı - z angl. beam pruning - vol´ıme rozmez´ı pravdˇepodobnosti, kde seˇrazen´e hypot´ezy pro dan´ y segment akceptujeme. Tento parametr b´ yv´ a v rozpozn´ avaˇc´ıch voliteln´ y a bude pouˇzit i v grafech popisuj´ıc´ı v´ ysledky rozpozn´av´an´ı t´eto pr´ ace. 5 0
1
2
3
4
1 6
5 0
1
2
3
4
1
2
1
2
2
3
1
2
2
3
6
5 0
1
2
3
4 6
5 0
1
2
3
4
2
3
3
4
5
6
6
5 0
1
2
3
4 6
Obr´ azek 1.9: Princip generov´an´ı hypot´ez pˇri proch´azen´ı s´ıtˇe
27
Kapitola 2
Stavov´ e automaty
2.1
´ Uvod
Stavov´e automaty, resp. transducery jsou s velk´ ym u ´spˇechem pouˇz´ıv´any jako kompletn´ı reprezentace zdroj˚ u znalost´ı (angl. Knowledge Sources) jazykov´ ych model˚ u [Moh97a, Cho06, Sza01], a slovn´ık˚ u [Moh94]. Jejich z´akladn´ı v´ yhoda pro pouˇzit´ı v rozpozn´av´an´ı ˇreˇci spoˇc´ıv´ a v moˇznosti optimalizace s´ıtˇe mapuj´ıc´ı ˇc´asti akustick´ ych model˚ u na slova tzv. rozpozn´ avac´ı s´ıtˇe. Cel´ a teorie stavov´ ych automat˚ u je velmi vhodn´a pro optimalizaci s´ıtˇe akustick´ ych model˚ u, nebot’ um´ı do sebe zahrnout vˇse, co dekod´ery pouˇz´ıvan´e v rozpozn´ av´ an´ı ˇreˇci potˇrebuj´ı. Konkr´etnˇe jde v pˇr´ıpadˇe zdroj˚ u znalost´ı o moˇznosti sjednocen´ı stejn´ ych cest (shoduj´ıc´ı se zaˇc´atky a konce r˚ uzn´ ych slov), stlaˇcen´ı jednotliv´ ych ocenˇen´ı smˇerem k poˇc´ ateˇcn´ımu uzlu a pouˇzit´ı operace kompozice pro vytvoˇren´ı vlastn´ı s´ıtˇe. V pˇr´ıpadˇe cel´e s´ıtˇe teorie automat˚ u nab´ız´ı moˇznost jej´ı fin´aln´ı optimalizace, popˇr. odstranˇen´ı −pˇrechod˚ u. K vlastn´ımu dek´ odov´ an´ı je pak pouˇzit Viterbiho dekod´er stejnˇe jako je tomu i v bˇeˇznˇe pouˇz´ıvan´ ych s´ıt´ıch. Ten ovˇsem pracuje s jiˇz pˇredem pˇripravenou s´ıt´ı na niˇzˇs´ı u ´rovni (´ uroveˇ n akustick´ ych model˚ u, resp. slov), a tak tento dekod´er nepotˇrebuje dalˇs´ı podp˚ urn´e algoritmy pro ”nalepen´ı” akustick´ ych model˚ u na vstupn´ı jazykov´ y model pomoc´ı slovn´ıku. Poznamenejme, ˇze n´ asleduj´ıc´ı texty byly vytvoˇreny na z´akladˇe [Moh02b, Moh02a, Mel03] a dalˇs´ıch zdroj˚ u (vˇzdy citov´ano). AT&T knihovna FSM byla pouˇzita pro z´ısk´an´ı uv´adˇen´ ych pˇr´ıklad˚ u FSM operac´ı. Pro vykreslen´ı automat˚ u byl pouˇzit n´astroj graphviz [itwc].
2.2
Koneˇ cn´ y automat
Koneˇcn´ y automat (d´ ale jen FSM, resp. FSA z angl. Finite-State Machine, resp. FiniteState Acceptor), jak bude v n´ asleduj´ıc´ım v´ ykladu uvedeno, je vˇzdy definov´an jako nˇejak´ a 28
n-tice mnoˇzin (stavy, pˇrechody, ...), resp. prvk˚ u (poˇc.stav, ...). Definice: Deterministick´y koneˇcn´y automat M je pˇetice M = (Σ, Q, E, i, F ) ,
(2.1)
kde Q je koneˇcn´ a mnoˇzina vnitˇrn´ıch stav˚ u, Σ je koneˇcn´a vstupn´ı abeceda, E je zobrazen´ı z Q × (Σ ∪ {}) do Q, i ∈ Q je poˇc´ ateˇcn´ı stav a F ⊆ Q je mnoˇzina koncov´ych stav˚ u. Deterministick´ y koneˇcn´ y automat [Mel03] pracuje tak, ˇze zpracov´av´a danou posloupnost vstupn´ıch symbol˚ u. Pˇrechod t = (t− , l(t)) ∈ E je urˇcen stavem t− , ve kter´em se automat nach´ az´ı a jednoznaˇcn´ ym symbolem l(t), kter´ y je ˇcten ze vstupn´ıho ˇretˇezce. Pˇrechod oznaˇcen´ y pr´ azdn´ym symbolem znamen´a, ˇze tomuto stavu neodpov´ıd´a ˇz´adn´ y vstup. Pˇri pˇrechodu pˇrejde automat do nov´eho stavu a pˇreˇcte jeden vstupn´ı symbol. Symboly se ˇctou zleva doprava. Cesta v M je posloupnost navazuj´ıc´ıch pˇrechod˚ u t1 , t2 , . . . , tn , pro kter´e plat´ı − t+ i = ti+1 ,
i = 1, . . . , n − 1 .
(2.2)
´ eˇsn´ Uspˇ a cesta π = t1 , t2 , . . . , tn je cesta z poˇc´ateˇcn´ıho stavu i do koncov´eho stavu f ∈ F . π je ˇretˇezec sloˇzen´ y z posloupnosti symbol˚ u jednotliv´ ych pˇrechod˚ u dan´e celkov´e cesty ˇ l(π) = l(t1 ) . . . l(tn ). Retˇezec x je pˇrijat automatem M , pokud existuje celkov´a cesta π s posloupnost´ı symbol˚ u x tak, ˇze l(π) = x . (2.3) Definice: Nedeterministick´y koneˇcn´y automat M je pˇetice M = (Σ, Q, E, i, F ) ,
(2.4)
kde Q je koneˇcn´ a mnoˇzina vnitˇrn´ıch stav˚ u, Σ je koneˇcn´a vstupn´ı abeceda, E je zobrazen´ı z Q × (Σ ∪ {}) do Q, i ∈ Q je poˇc´ateˇcn´ı stav a F ⊆ Q je mnoˇzina koncov´ ych stav˚ u. − + − Pˇrechod t = (t , l(t), t ) ∈ E je urˇcen stavem t , ve kter´em se automat nach´az´ı, stavem t+ , kam ukazuje dan´ a spojnice a symbolem l(t), kter´ y je ˇcten ze vstupn´ıho ˇretˇezce. Znamen´ a to, ˇze oproti deterministick´emu automatu zde nemus´ı b´ yt pro jednotliv´e stavy pˇrechod s jedineˇcn´ ym symbolem, ale cel´a mnoˇzina pˇrechod˚ u s t´ımto symbolem. Ostatn´ı vlastnosti jsou spoleˇcn´e s deterministick´ ym koneˇcn´ ym automatem (2.1).
2.3
Polookruh
Ohodnocen´e automaty s koneˇcn´ ym poˇctem stav˚ u uveden´e v n´asleduj´ıc´ım v´ ykladu vyˇzaduj´ı zaveden´ı pojmu polookruh (z angl. semiring). Je to uˇziteˇcn´e d´ıky jednotn´emu
29
tvaru operac´ı s ohodnocen´ımi [Moh02a, Kui86]. Polookruh (K, ⊕, ⊗, ¯0, ¯1) je tak mnoˇzina K obsahuj´ıc´ı dvˇe asociativn´ı matematick´e operace ⊕ a ⊗, pro kter´e plat´ı ¯ 0 ⊕ a = a ⊕ ¯0 = a ¯ ⊗ a = a ⊗ ¯1 = a 1
a∈K .
(2.5)
Napˇr´ıklad polookruhem je (N, +, ×, 0, 1). Ceny pouˇz´ıvan´e pro rozpozn´av´an´ı ˇreˇci ˇcasto reprezentuj´ı pravdˇepodobnosti. Patˇriˇcn´ y polookruh pro uveden´e pouˇzit´ı se tak naz´ yv´ a pravdˇepodobnostn´ı polookruh (R, +, ×, 0, 1). Jak jiˇz bylo uvedeno v pˇredchoz´ı kapitole, je v´ yhodn´e poˇc´ıtat s logaritmy pravdˇepodobnost´ı. Logaritmick´y polookruh m´ a pro tento pˇr´ıpad tvar (R+ ∪ {∞}, ladd, +, ∞, 0), kde ladd(a, b) = ln(ea + eb )
(2.6)
a kde e−∞ = 0 a − ln(0) = ∞. Pokud je pouˇz´ıv´ an Viterbiho algoritmus, kde se operace souˇctu nevyskytuje, s v´ yhodou pouˇz´ıv´ ame tzv. tropick´y polookruh (z angl. tropical semiring) [Sim78], kter´ y se v oblasti zpracov´ an´ı ˇreˇci pouˇz´ıv´a velmi ˇcasto (R+ ∪ {∞}, max, +, ∞, 0).
2.4
Ohodnocen´ y stavov´ y automat
Definice: ohodnocen´ y stavov´ y automat (d´ale jen WFSA z angl. Weighted Finite-State Acceptor) A = (Σ, Q, E, i, F, λ, ρ) (2.7) pˇres polookruh K je d´ an koneˇcnou vstupn´ı abecedou1 Σ, koneˇcnou mnoˇzinou stav˚ u Q, koneˇcn´ ym poˇctem pˇrechod˚ u E ⊆ Q × (Σ ∪ {}) × K × Q, poˇc´ateˇcn´ım stavem i ∈ Q, mnoˇzinou koncov´ ych stav˚ u F ⊆ Q, poˇc´ateˇcn´ı cenou λ a koncovou ohodnocenou funkc´ı ρ. − Pˇrechod t = (t , l(t), w(t), t+ ) ∈ E m˚ uˇze b´ yt reprezentov´an spojnic´ı ze zdrojov´eho − + stavu t do c´ılov´eho stavu t se symbolem l(t) a cenou w(t). Pˇrechod oznaˇcen´ y pr´azdn´ ym symbolem znamen´ a, ˇze tomuto stavu neodpov´ıd´a ˇz´adn´ y vstup. Cesta v A je posloupnost navazuj´ıc´ıch pˇrechod˚ u t1 , t2 , . . . , tn , pro kter´e plat´ı − t+ i = ti+1 ,
i = 1, . . . , n − 1 .
(2.8)
´ eˇsn´ Uspˇ a cesta π = t1 , t2 , . . . , tn je cesta z poˇc´ateˇcn´ıho stavu i do koncov´eho stavu f ∈ F . π je ˇretˇezec sloˇzen´ y z posloupnosti symbol˚ u jednotliv´ ych pˇrechod˚ u dan´e celkov´e cesty l(π) = l(t1 ) . . . l(tn ). Ohodnocen´ı cesty w(π)je ⊗ operace mezi inicializaˇcn´ı cenou, cenami jednotliv´ ych pˇrechod˚ u a koneˇcnou cenou ρ(t+ n) w(π) = λ ⊗ w(t1 ) ⊗ w(t2 ) ⊗ . . . ⊗ w(tn ) ⊗ ρ(t+ n) . 1
(2.9)
Moˇzno oznaˇcit i jako mnoˇzinu vstupn´ıch symbol˚ u.
30
dáma/0.5 0
<sil>/1
1
2
na/0.5 na/0.5
jezdec/0.5
pět/0.5 5
e/1
3
6
čtyři/0.5
4
<sil>/0.5 <sil>/0.5
8
7
Obr´azek 2.1: Pˇr´ıklad WFSA
č:čtyři/0.5
1
t:<eps>/1
2
i:<eps>/1
3
š:čtyři/0.5
0
ř:<eps>/0.5 r:<eps>/0.5
4
i:<eps>/1
5
d:dva/1 6
v:<eps>/1
7
a:<eps>/1
8
Obr´azek 2.2: Pˇr´ıklad WFST ˇ ezec x je pˇrijat automatem A, pokud existuje alespoˇ Retˇ n jedna u ´spˇeˇsn´a cesta π s posloupnost´ı symbol˚ u x tak, ˇze l(π) = x . (2.10) V´ ysledn´e ohodnocen´ı udˇelen´e automatem A a posloupnosti x je d´ano ⊕ operacemi mezi cenami vˇsech u ´spˇeˇsn´ ych cest π s posloupnost´ı jednotliv´ ych symbol˚ u x. WFSA tak oceˇ nuje vstupn´ı posloupnost symbol˚ u. Dohodou je stanoveno, ˇze stavy se znaˇc´ı kruˇznicemi a jsou oˇc´ıslov´any dle jejich poˇrad´ı. Poˇc´ateˇcn´ı stav je reprezentov´ an silnou kruˇznic´ı, koncov´e pak zdvojenou. Ceny a symboly budou znaˇceny jako l(t)/w(t). Koneˇcn´a cena ρ(f ) koncov´eho stavu f ∈ F je v koncov´em stavu oznaˇcena f /ρ(f ), ˇci vynech´ana pokud ρ(f ) = ¯1(uveden´ y pˇr´ıklad) podobnˇe jako inicializaˇcn´ı cena λ. Na obr. 2.1 vid´ıme ˇc´ast jazykov´eho modelu pro hlasov´e ovl´ad´an´ı hry ˇsachy, kde slova coby symboly skrz kaˇzdou celkovou cestu reprezentuj´ı moˇznou variantu posloupnosti slov. w(π) pak d´av´a vˇerohodnost dan´e posloupnosti. Ceny v u ´loh´ach rozpozn´ av´ an´ı ˇreˇci velmi ˇcasto reprezentuj´ı z´aporn´e logaritmy pravdˇepodobnost´ı, resp. vˇerohodnost´ı.
2.5
Ohodnocen´ y pˇrekladov´ y stavov´ y automat
Ohodnocen´e pˇrekladov´e automaty s koneˇcn´ ymi stavy2 (d´ale jen WFST z angl. Weighted Finite-State Transducers) se od WFSA liˇs´ı doplnˇen´ım pˇrechod˚ u nam´ısto jednoho symbolu p´ arem (i, o) vstupn´ıho symbolu i a v´ ystupn´ıho symbolu o. 2
Moˇzno naz´ yvat i jako transducery.
31
konstrukˇcn´ı operace uzavˇ ren´ı A∗ sjednocen´ı A∪B zˇretˇezen´ı AB rozd´ıl A − B FSA pr˚ unik A ∩ B FSA kompozice A ◦ B FST
optimalizaˇcn´ı - identick´e odstr. epsilon determinizace minimalizace FSA
ostatn´ı otoˇcen´ı inverze projekce (FSM→FSA) ekvivalence stlaˇ cen´ı cen nejlepˇ s´ı cesta
Tabulka 2.1: V´ ybˇer bin´ arn´ıch a un´arn´ıch operac´ı mezi jednotliv´ ymi FSM Definice Ohodnocen´ y transducer (WFST) T = (Σ, Ω, Q, E, i, F, λ, ρ)
(2.11)
pˇres polookruh K je d´ an koneˇcnou vstupn´ı mnoˇzinou symbol˚ u Σ, koneˇcnou v´ ystupn´ı mnoˇzinou symbol˚ u Ω, koneˇcnou mnoˇzinou stav˚ u Q, koneˇcn´ ym poˇctem pˇrechod˚ u E ⊆ Q × (Σ ∪ {}) × (Ω ∪ {}) × K × Q, poˇc´ateˇcn´ım stavem i ∈ Q, mnoˇzinou koneˇcn´ ych stav˚ u F ⊆ Q, poˇc´ ateˇcn´ı cenou λ a koneˇcnou ohodnocenou funkc´ı ρ. Pˇrechod t = (t− , li (t), lo (t), w(t), t+ ) ∈ E m˚ uˇze b´ yt reprezentov´an spojnic´ı ze zdro− + jov´eho stavu t do c´ılov´eho stavu t se vstupn´ım symbolem li (t), v´ ystupn´ım symbolem lo (t) a cenou w(t). Definice cesty, jej´ı posloupnosti symbol˚ u a cen je shodn´a s WFSA. Pˇribyla zde posloupnost v´ ystupn´ıch symbol˚ u (ˇretˇezce) celkov´e cesty a ta je d´ana sloˇzen´ım jednotliv´ ych v´ ystupn´ıch symbol˚ u pod´el t´eto cesty. Gramatiku reprezentovanou na obr. 2.1 pomoc´ı WFSA lze stejnˇe dobˇre reprezentovat pomoc´ı WFST pˇrid´an´ım nˇejak´ ych v´ ystupn´ıch symbol˚ u nejˇcastˇeji identick´ ych se vstupn´ımi. Nen´ı zde ˇz´adn´a nov´a informace, reprezentace pomoc´ı WFST se vˇsak d´a pouˇz´ıt stejnˇe dobˇre jako pomoc´ı WFSA. Na obr. 2.2 je zn´ azornˇen pˇr´ıklad reprezentace slovn´ıku mapuj´ıc´ıho jednotliv´e fon´emy do slov pomoc´ı WFST, kde ceny coby pravdˇepodobnosti reprezentuj´ı vˇerohodnosti alternativn´ıch v´ yslovnost´ı.
2.6
Z´ akladn´ı operace mezi stavov´ ymi automaty
WFSA, resp. WFST je moˇzn´e zpracov´avat pomoc´ı operac´ı [Moh02a, Roc97], viz tab. 2.1, kde silnˇe vytiˇstˇen´e operace jsou d˚ uleˇzit´e pro konstrukci rozpozn´avaˇce ˇreˇci.
2.6.1
Sjednocen´ı (souˇ cet)
Pokud WFSA C obsahuje identick´e celkov´e cesty π jako WFSA A a B, plat´ı C = A ∪ B, resp. C = A + B .
(2.12)
Grafick´ a reprezentace operace sjednocen´ı je zn´azornˇena na obr. 2.3. 32
0
zelená/0.300
0
1/0
zelená/0.400
červená/0.5 1
modrá/0 ž lutá/0.600
modrá/1.200
2/0.800
A:
2/0.300
B: červená/0.5 <eps>/0 6
0
<eps>/0 3
zelená/0.300
1
zelená/0.400 modrá/1.200
4/0
modrá/0 ž lutá/0.600
2/0.800
5/0.300
C: Obr´ azek 2.3: Pˇr´ıklad sjednocen´ı (souˇctu) dvou WFSA
2.6.2
Zˇretˇ ezen´ı (souˇ cin)
Pokud jsou celkov´e cesty WFSA C sˇretˇezeny celkov´ ymi cestami automat˚ u A a B v tomto poˇrad´ı, plat´ı C = AB , (2.13) grafick´ a reprezentace operace zˇretˇezen´ı je zn´azornˇena na obr. 2.4.
0
zelená/0.300
0
1/0
zelená/0.400
červená/0.5 1
modrá/0 ž lutá/0.600
modrá/1.200
2/0.800
A:
2/0.300
B: červená/0.5 0
zelená/0.400 zelená/0.300
1
modrá/0 ž lutá/0.600
2
<eps>/0.800
3
4/0
modrá/1.200 5/0.300
C: Obr´ azek 2.4: Pˇr´ıklad zˇretˇezen´ı (souˇcinu) dvou WFSA
33
2.6.3
Uzavˇren´ı
Pokud jsou celkov´e cesty WFSA C sjednocen´ım libovoln´eho poˇctu opakov´an´ı celkov´ ych cest automatu B, plat´ı C = B∗ =
inf X
Bn ,
(2.14)
n=0
grafick´ a reprezentace operace uzavˇren´ı je zn´azornˇena na obr. 2.5. zelená/0.400
1/0
zelená/0.400 0
<eps>/0
<eps>/0
3/0
0
modrá/1.200
modrá/1.200
<eps>/0.300
2/0.300
B:
1/0
2/0.300
C: Obr´ azek 2.5: Pˇr´ıklad uzavˇren´ı WFSA
2.6.4
Otoˇ cen´ı
Pokud posloupnosti symbol˚ u, tvoˇr´ıc´ı celkov´e cesty WFSA C jsou v reverzn´ım poˇrad´ı oproti posloupnostem symbol˚ u celkov´ ych cest automatu A, plat´ı C = Ar ,
(2.15)
grafick´ a reprezentace operace otoˇcen´ı (z angl. reverse) je zn´azornˇena na obr. 2.6. červená/0.5 0
4/0
zelená/0.400 zelená/0.300
1
modrá/0 ž lutá/0.600
2
<eps>/0.800
3
modrá/1.200 5/0.300
A: červená/0.5 <eps>/0 0
C:
5
<eps>/0.300
zelená/0.400 modrá/1.200
6
4
<eps>/0.800
3
modrá/0 ž lutá/0.600
2
zelená/0.300
1/0
Obr´ azek 2.6: Pˇr´ıklad otoˇcen´ı WFSA
34
2.6.5
Inverze
Pokud u WFST A vymˇen´ıme vstupn´ı symboly za v´ ystupn´ı, dostaneme WFST C. Plat´ı C = A−1 , (2.16) grafick´ a reprezentace operace inverze je zn´azornˇena na obr. 2.7. červená:včela/0.5 0
zelená:slon/0.300
včela:červená/0.5
1
modrá:kočka/0 ž lutá:pes/0.600
2/0.800
0
slon:zelená/0.300
1
kočka:modrá/0 pes:ž lutá/0.600
2/0.800
C:
A:
Obr´ azek 2.7: Pˇr´ıklad inverze WFST
2.6.6
Projekce
Odstran´ıme-li vstupn´ı (resp. v´ ystupn´ı) symboly WFST A, obdrˇz´ıme WFSA C. Plat´ı C = π1 (A) ,
(2.17)
grafick´ a reprezentace operace projekce je zn´azornˇena na obr. 2.8. červená/0.5
červená:včela/0.5 0
zelená:slon/0.300
1
modrá:kočka/0 ž lutá:pes/0.600
0
2/0.800
zelená/0.300
1
modrá/0 ž lutá/0.600
2/0.800
C:
A:
Obr´ azek 2.8: Pˇr´ıklad projekce WFST na WFSA
2.6.7
Odstranˇ en´ı epsilon pˇrechod˚ u
Operaci odstranˇen´ı epsilon pˇrechod˚ u nejl´epe ilustruje obr. 2.9. Vlastn´ı algoritmus byl podrobnˇe pops´ an v [Moh00].
2.6.8
Pr˚ unik
Pokud WFSA C obsahuje identick´e celkov´e cesty π jako WFSA A a z´aroveˇ n WFSA B, plat´ı C = A ∩ B, (2.18) grafick´ a reprezentace operace pr˚ uniku je zn´azornˇena na obr. 2.10.
35
červená/0.5 červená/0.5
1
zelená/0.300
červená/0.5 <eps>/0 0
1
zelená/0.300
zelená/0.300
modrá/0 ž lutá/0.600
2
<eps>/0.5
zelená/0.400
<eps>/0 4
zelená/0.400 modrá/1.200
2
3/0.800
5/0
0
modrá/0
4/0
modrá/1.200 ž lutá/0.600
5/0.300
3/0.800
6/0.300
B:
modrá/0.5 ž lutá/1.100
C:
Obr´ azek 2.9: Pˇr´ıklad odstranˇen´ı epsilon pˇrechod˚ u WFSA
A:červená/0.5 0
B: zelená/0.300
1
modrá/0 ž lutá/0.600
2/0.800
zelená/0.400 0/0
červená/0.200 modrá/0.600
1
ž lutá/1.299
2/0.5
C: 3/0.800 modrá/0.600 0
červená/0.699
1
zelená/0.700
2
ž lutá/1.899
4/1.299
Obr´ azek 2.10: Pˇr´ıklad pr˚ uniku dvou WFSA
2.6.9
Rozd´ıl
Pokud WFSA C obsahuje identick´e celkov´e cesty π jako WFSA A bez celkov´ ych cest FSA B, plat´ı C = A − B, (2.19) grafick´ a reprezentace operace rozd´ılu je zn´azornˇena na obr. 2.11.
2.6.10
Konexe (oˇrez´ an´ı)
Pokud stavov´ y automat obsahuje nadbyteˇcn´e stavy, resp. pˇrechody jako WFSA A (obr. 2.12) tzn. takov´e, pˇres kter´e nevede celkov´a cesta, je stavov´ y automat bez tˇechto stav˚ u, resp. pˇrechod˚ u (WFSA C na obr. 2.12) ekvivalentn´ı. Odstranˇen´ı tˇechto nadbyteˇcn´ ych stav˚ u, resp. pˇrechod˚ u se naz´ yv´a konexe (Z angl. connection).
36
A:červená/0.5 0
B: zelená/0.300
1
modrá/0 ž lutá/0.600
zelená
2/0.800
červená modrá
0
C:
ž lutá
1
2
červená/0.5 červená/0.5
1
červená/0.5
2
zelená/0.300
zelená/0.300
0
3
modrá/0 ž lutá/0.600
4/0.800
Obr´ azek 2.11: Pˇr´ıklad rozd´ılu dvou WFSA C:červená/0.5
A: zelená/0.200
3
4/0.200
červená/0.5 0
0 modrá/0
zelená/0.300
1
zelená/0.300
modrá/0 ž lutá/0.600
1
2/0.800
2/0.800
ž lutá/0.600 červená/0 5
Obr´ azek 2.12: Pˇr´ıklad konexe WFSA
2.6.11
Ekvivalence
Dva WFSA jsou ekvivalentn´ı, pokud pˇriˇrazuj´ı stejn´e ceny pro kaˇzdou moˇznou vstupn´ı posloupnost. Ceny mohou b´ yt rozm´ıstˇeny odliˇsnˇe, ohodnocen´ı vˇsech moˇzn´ ych u ´spˇeˇsn´ ych cest mus´ı b´ yt zachov´ ana. Pˇr´ıklad dvou ekvivalentn´ıch WFSA A a B je na obr. 2.13. Dva WFST jsou ekvivalentn´ı, pokud mapuj´ı stejnou v´ ystupn´ı posloupnost a stejn´e ohodnocen´ı u ´spˇeˇsn´ ych cest. Rozm´ıstˇen´ı cen pod´el celkov´e cesty b´ yt identick´e nemus´ı. B:
A: 2/0.300 modrá/0.699 0
červená/0.300
1
0
červená/0
1
modrá/0 ž lutá/0.300
2/1.299
ž lutá/0.899
3/0.400
Obr´ azek 2.13: Pˇr´ıklad dvou ekvivalentn´ıch WFSA
37
2.6.12
Nejpravdˇ epodobnˇ ejˇs´ı cesta (cesty)
Tato operace je seˇrazen´ım n u ´spˇeˇsn´ ych cest WFSA A vzestupnˇe dle jejich ohodnocen´ı. Tak vznik´ a acyklick´ y WFSA, jak je zn´azornˇeno na obr. 2.14, kde WFSA B je pro n = 1 a WFSA C pro n = 3. A:
červená/0.5 červená/0.5
1
červená/0.5
zelená/0.300
2
zelená/0.300
0
3
modrá/0 ž lutá/0.600
4/0.800
B: 0
zelená/0.300
1
modrá/0
2/0.800
C: zelená/0.300
<eps>/0
0
<eps>/0 <eps>/0
2
modrá/0
3/0.800
1
4
7
zelená/0.300
červená/0.5
5
8
ž lutá/0.600
6/0.800
červená/0.5 9
zelená/0.300
10
modrá/0
11/0.800
Obr´ azek 2.14: Pˇr´ıklad hled´an´ı nejpravdˇepodobnˇejˇs´ıch cest
2.6.13
N´ ahodn´ a cesta (cesty)
Tato operace je n n´ ahodnˇe vybran´ ych celkov´ ych cest WFSA A. Tak vznik´a podobnˇe jako u pˇredchoz´ı operace acyklick´ y WFSA, jak je zn´azornˇeno na obr. 2.15, kde WFSA B je pro n = 1 a WFSA C pro n = 3.
2.6.14
Proˇrez´ av´ an´ı
Zavedeme-li pr´ ah pro cenu celkov´ ych cest ct a odstran´ıme celkov´e cesty s cenou vˇetˇs´ı, neˇz je tento pr´ ah, mluv´ıme o proˇrez´av´an´ı WFSA. N´azorn´ y pˇr´ıklad proˇrez´av´an´ı (z angl. pruning) WFSA A s ct = 1 je na obr. 2.16.
38
A:
červená/0.5 1
červená/0.5
červená/0.5
2
zelená/0.300
zelená/0.300
0
modrá/0 ž lutá/0.600
3
4/0.800
B: 0
červená/0.5
červená/0.5
1
2
červená/0.5
3
zelená/0.300
4
modrá/0
5/0.800
C: červená/0.5
0
červená/0.5
1
zelená/0.300 zelená/0.300
5
7
modrá/0
2
zelená/0.300
3
ž lutá/0.600
4/0.800
6/0.800
modrá/0 8/0.800
Obr´ azek 2.15: Pˇr´ıklad hled´an´ı n´ahodn´ ych cest
2.6.15
Skl´ ad´ an´ı
Skl´ ad´ an´ı3 (z angl. composition) je kl´ıˇcovou operac´ı mezi jednotliv´ ymi FST. Z´apis t´eto operace pro WFST T , kter´ y je sloˇzen ze dvou WFST R a S je T =R◦S .
(2.20)
Skl´ad´an´ı m´ a za n´ asledek vytvoˇren´ı cesty mapuj´ıc´ı posloupnost symbol˚ u u na posloupnost symbol˚ u w pr´ avˇe kdyˇz WFST R mapuje posloupnost u na posl. v a souˇcasnˇe WFST S mapuje posl. v na posl. w. Ceny jsou pak v´ ysledkem oper´atoru ⊗ mezi odpov´ıdaj´ıc´ımi pˇrechody WFST R a S [Moh02a, Roc97]. Vu ´loze rozpozn´ av´ an´ı ˇreˇci se skl´ad´an´ı ˇcasto pouˇz´ıv´a pro spojov´an´ı jednotliv´ ych u ´rovn´ı reprezentovan´ ych tzv. rozpozn´ avac´ı kask´ adou. Stavy v´ ysledn´eho WFST po operaci skl´ad´an´ı (2.20) jsou d´ any p´ arem stav˚ u jednotliv´ ych WFST R a S, pokud • Poˇc´ ateˇcn´ı stav je p´ arem poˇca´teˇcn´ıch stav˚ uRaS • Koncov´e stavy jsou p´ ar koncov´ ych stav˚ uRaS 0 • Pro kaˇzd´ y p´ ar pˇrechod˚ u tR z r do r a tS z s do s0 existuje pˇrechod t z (r, s) do (r0 , s0 ) tak, ˇze v´ ystupn´ı symbol tR je roven vstupn´ımu symbolu tS Pˇrechod t tak pˇreb´ır´ a vstupn´ı symbol z tR , v´ ystupn´ı z tS a ohodnocen´ı jako ⊗ operaci cen tR a tS . Problematika pr´ azdn´ ych pˇrechod˚ u je diskutov´ana napˇr. v [Moh00]. 3
T´eˇz moˇzno pouˇz´ıt i v´ yrazu kompozice
39
A:
červená/0.5 1
červená/0.5
červená/0.5
2
zelená/0.300
zelená/0.300
0
modrá/0 ž lutá/0.600
3
4/0.800
B: 0
zelená/0.300
1
modrá/0 ž lutá/0.600
2/0.800
Obr´ azek 2.16: Pˇr´ıklad proˇrez´av´an´ı WFSA a:b/0.600
c:a/0.300 a:b/0.100 0
1
a:a/0.400
2
R:
0
3/0.600
b:b/0.5
b:a/0.200
b:c/0.300
1
a:b/0.400
2/0.699
S: c:b/0.900 c:b/0.700
(0,0)
a:c/0.400
(1,1)
(1,2)
a:b/1
a:b/0.800
(3,2)/1.299
T: Obr´ azek 2.17: Pˇr´ıklad skl´ad´an´ı dvou WFST
Na uveden´em pˇr´ıkladˇe (obr. 2.17) je pouˇzit tropick´ y polookruh, operace ⊗ tak znamen´a souˇcet (ceny seˇcteny).
2.6.16
Determinizace
WFST je deterministick´ y, pokud kaˇzd´ y z jeho stav˚ u m´a nejv´ yˇse jeden pˇrechod s dan´ ym vstupn´ım symbolem [Moh02a]. Operaci zapisujeme B = det(A) .
(2.21)
Obr´ azek 2.18 ukazuje pˇr´ıklad determinizace automatu A1 . Napˇr´ıklad vezmeme-li vstupn´ı posloupnost ”ae”, jsou zde 2 u ´spˇeˇsn´e cesty s cenami {1 + 8 = 9, 3 + 11 = 14}. Minimum 9 je ocenˇen´ı pˇriˇrazovan´e automatem A2 posloupnosti ”ae”. Pro algoritmus v n´asleduj´ıc´ım v´ ykladu [Moh02a] jsou vˇsechny stavy dosaˇziteln´e dan´ ym vstupn´ım symbolem z dan´eho stavu vloˇzeny do spoleˇcn´e podmnoˇziny. I kdyˇz r˚ uzn´e cesty s identickou posloupnost´ı vstupn´ıch symbol˚ u mohou d´avat r˚ uzn´a ocenˇen´ı, pouze minim´aln´ı hodnota tohoto ocenˇen´ı m˚ uˇze b´ yt v´ ystupem determinizovan´eho WFSA. Pˇreb´yvaj´ıc´ı ceny tak mus´ı 40
b´ yt zachov´ any pro zajiˇstˇen´ı identiˇcnosti vˇsech u ´spˇeˇsn´ ych a nejlepˇs´ıch cest. Proto podmnoˇziny pouˇz´ıvan´e v algoritmu determinizace obsahuj´ı p´ary (q, w) stavu q a pˇreb´ yvaj´ıc´ı ceny w.
A1 :
A2 :
Obr´ azek 2.18: WFSA A1 pˇred determinizac´ı a determinizovan´ y WFSA A2 Poˇc´ ateˇcn´ı podmnoˇzina S = {i, 0}, kde i je poˇc´ateˇcn´ı stav p˚ uvodn´ıho automatu. Napˇr´ıklad pro automat A1 z obr. 2.18 je poˇc´ateˇcn´ı podmnoˇzina {0, 0}. Pro kaˇzd´ y symbol a ze vstupn´ı abecedy Σ oznaˇcuj´ıc´ı nejm´enˇe jeden pˇrechod ze stavu uvnitˇr podmnoˇziny S je v novˇe vznikaj´ıc´ım automatu vytvoˇren nov´ y pˇrechod t vedouc´ı z tohoto stavu. Vstupn´ı symbol pˇrechodu t je a a ocenˇen´ı t je minimum ze vˇsech moˇzn´ ych souˇct˚ u w + l, kde w je pˇreb´ yvaj´ıc´ı cena a l je v´ aha a-pˇrechodu ze stavu uvnitˇr podmnoˇziny S. C´ılov´ y stav q 0 pˇrechodu t je v podmnoˇzinˇe S 0 = (q 0 , w0 ), kde w0 je patˇriˇcn´a pˇreb´ yvaj´ıc´ı cena. Napˇr´ıklad stav 0 v A2 odpov´ıd´a poˇc´ateˇcn´ı podmnoˇzinˇe {0, 0} vytvoˇren´e algoritmem. Pˇrechod automatu A2 ze stavu 0 se symbolem ”a” je z´ısk´an ze dvou pˇrechod˚ u se symbolem ”a” ze stavu 0 automatu A1 . Jeho ocenˇen´ı pˇredstavuje minimum cen dvou zmiˇ novan´ ych pˇrechod˚ u a jeho c´ılov´emu stavu odpov´ıd´a podmnoˇzina S = {(1, 1 − 1 = 0), (2, 3 − 1 − 2)}. Cel´ y algoritmus determinizace WFSA pomoc´ı podmnoˇzin dobˇre ilustruje automat A2 na obr. 2.18. Na obr. 2.19 je pˇr´ıklad determinizace slovn´ıku ˇc´ıslovek. Jak je z obr´azku vidˇet, determinizace zajiˇst’uje jedineˇcn´ y vstupn´ı symbol pro pˇrechod z kaˇzd´eho stavu a sjednocen´ı shoduj´ıc´ıch se poˇc´ ateˇcn´ıch cest. V´ ysledn´ y automat tedy neobsahuje redundantn´ı cesty. 2 ˇ Casov´ a n´ aroˇcnost je u ´mˇern´ a n , kde n je poˇcet stav˚ u. Je moˇzn´e dok´azat, ˇze ne vˇsechny ohodnocen´e automaty lze determinizovat. Nicm´enˇe plat´ı, ˇze determinizovat lze kaˇzd´ y acyklick´ y WFSA nebo WFST [Moh02a]. Obecnˇe lze ˇr´ıci, ˇze v pˇr´ıpadech blok˚ u urˇcen´ ych pro rozpozn´ av´ an´ı ˇreˇci je vˇetˇsina automat˚ u tak´e determinizovateln´a. 41
0
d:deset
1
d:dva
6
d:dvacet
7
v:<eps>
10
v:<eps>
15
16
s:<eps>
22
A:
2
v:<eps>
9
d:dvanáct o:osm
e:<eps>
23
s:<eps>
a:<eps>
d:<eps> 0
1
v:<eps>
11
a:<eps>
17
m:<eps>
c:<eps>
n:<eps>
6
e:<eps>
c:dvacet a:<eps>
2
s:<eps>
B:
5
m:<eps>
12
18
7
8
9
10
n:dvanáct <eps>:dva
o:osm
4
t:<eps>
5
e:<eps>
á:<eps>
t:<eps>
13
c:<eps>
19
14
20
t:<eps>
21
24
3
4
e:<eps>
8
a:<eps>
s:<eps> e:deset
3
11
t:<eps>
e:<eps>
á:<eps>
13 t:<eps>
14
c:<eps>
15
16
17
t:<eps>
18
12
Obr´ azek 2.19: Pˇr´ıklad determinizace jednoduch´eho lexikonu
2.6.17
Stlaˇ cen´ı
Pro moˇznost pouˇzit´ı operace minimalizace na ohodnocen´ y koneˇcn´ y automat pops´an´e n´ıˇze je nutn´e stlaˇcit ocenˇen´ı pˇrechod˚ u. Stlaˇcen´ı ocenˇen´ı je speci´ aln´ı operace pˇrev´ ahov´ an´ı (z angl. reweighting) [Moh02a, Moh97a, Moh97b]. N´ asleduj´ıc´ı v´ yklad tuto operaci popisuje pro tropick´ y polookruh. Pro ostatn´ı typy polookruh˚ u plat´ı analogick´ y postup. Kaˇzd´ y netrivi´aln´ı automat m˚ uˇze b´ yt pˇrev´ahov´ an nekoneˇcnˇe mnoha zp˚ usoby tak, ˇze v´ ysledn´ y automat bude ekvivalentn´ı. Pˇredpokl´adejme, ˇze WFSA A m´ a jeden koncov´ y stav fA . Necht’ V : Q → R je libovoln´a funkce, naz´ yvan´ a potencion´ aln´ı funkce stav˚ u, pomoc´ı kter´e se kaˇzd´emu ohodnocen´ı (poˇc´ateˇcn´ımu λ, pˇrechodov´ ym w(t) i koncov´emu ρ(fA )) pˇriˇrad´ı nov´e hodnoty λ←λ + V (i) w(t)←w(t) + (V (t+ ) − V (t− )) ρ(fA )←ρ(fA ) + (V (iA ) − V (fA ))
.
(2.22)
T´ımto zp˚ usobem se nezmˇen´ı celkov´e ohodnocen´ı ˇz´adn´e z u ´spˇeˇsn´ ych cest. C´ılem operace stlaˇcen´ı cen smˇerem k poˇc´ ateˇcn´ımu stavu je nal´ezt a pouˇz´ıt takovou potencion´aln´ı funkci V splˇ nuj´ıc´ı rovnice (2.22), aby pro kaˇzd´ y stav q ∈ Q platilo V (q) = d(q), kde d(q) je minimum ze vˇsech ohodnocen´ı cesty ze stavu q do koncov´eho stavu fA . Pˇr´ıklad operace stlaˇcen´ı WFSA A2 z obr. 2.18 je na obr. 2.20.
2.6.18
Minimalizace
Kaˇzd´ y deterministick´ y automat m˚ uˇze b´ yt minimalizov´ an dle dnes jiˇz bˇeˇzn´ ych algoritm˚ u [Rev92] Operaci zapisujeme jako B = min(A) .
(2.23) 42
A2 :
A3 :
a/1 b/2
1
b/1
f/9
c/5
0
a/0
e/8
3/0
f/1
c/4
0
d/8
e/11
d/10
e/9
f/12
e/11
2
e/0
1
3/9 e/0 f/1
2
Obr´ azek 2.20: Pˇr´ıklad aplikace stlaˇcen´ı na WFSA A2 V´ ysledn´ y automat B m´ a po minimalizaci nejmenˇs´ı moˇzn´ y poˇcet stav˚ u a pˇrechod˚ u ze vˇsech moˇzn´ ych deterministick´ ych automat˚ u ekvivalentn´ıch p˚ uvodn´ımu automatu A. Minimalizace ohodnocen´eho koneˇcn´eho automatu pˇr´ımo vyˇzaduje pˇred vlastn´ım procesem stlaˇcen´ı cen. Pˇr´ıklad minimalizace automatu A3 z obr. 2.20 je zobrazen na obr. 2.21. A3 :
A4 :
a/0 b/1
f/1
b/1
c/4
0
a/0
e/0
1
3/9
d/10 e/11
2
c/4
0
e/0
d/10
f/1
e/11
e/0 f/1
1
2/9
Obr´ azek 2.21: Pˇr´ıklad minimalizace WFSA A3 V pˇr´ıpadˇe aplikace minimalizace na ohodnocen´ y pˇrekladov´ y automat - WFST je nutnost´ı tento automat pˇrev´est zak´ odov´ an´ım p´ar˚ u vstupnˇe-v´ ystupn´ıch symbol˚ u na WFSA. Jde v podstatˇe o vytvoˇren´ı kl´ıˇcov´eho WFST s jedn´ım stavem mapuj´ıc´ıho kaˇzdou pouˇzitou kombinaci vstupn´ıch i v´ ystupn´ıch symbol˚ u vˇsech pˇrechod˚ u na nov´ y symbol4 . Ten je pak pouˇzit v zak´ odovan´em WFSA jako vstupn´ı symbol. Analogicky je tomu i pro pˇr´ıpad dek´odov´ an´ı. <eps>
a 4
7
n c
9
v
d 0
1
e
o 2
á
10 e
c 8
t
11
6
s 3 s
m 5
Obr´ azek 2.22: Pˇr´ıklad minimalizace determinizovan´eho lexikonu z obr. 2.19 4
Nutno poznamenat, ˇze ceny lze t´eˇz zak´ odovat. Je tedy moˇzn´e v pˇr´ıpadˇe nedeterminizovateln´eho automatu pˇrev´est WFST na WFSA, resp. na FSA.
43
Minimalizace FSA je celkem v´ ykonn´ y proces; ˇcasov´a n´aroˇcnost je zde u ´mˇern´a m + n, resp. m log n pro acyklick´ y pˇr´ıpad, resp. obecn´ y pˇr´ıpad, kde m je poˇcet pˇrechod˚ u a n poˇcet stav˚ u. Objevily se tak i algoritmy, kter´e minimalizaci pouze aproximuj´ı a t´ım je tak cel´ y proces m´enˇe hardwarovˇe n´ aroˇcn´ y [Cas03]. Pˇr´ıklad minimalizace determinizovan´eho lexikonu z obr. 2.19 ilustruje obr. 2.22.
44
Kapitola 3
Stavov´ y automat jako rozpozn´ avac´ı s´ıt’
3.1 3.1.1
Z´ akladn´ı topologie Hlavn´ı komponenty
G - WFSA reprezentuj´ıc´ı jazykov´ y model T´eˇz naz´ yv´ ame WFSA gramatiky. Automat by mˇel zaˇc´ınat a konˇcit promluvu modelem ticha. V´ ahy WFSA zde vˇzdy pˇredstavuj´ı apriorn´ı pravdˇepodobnosti slov, resp. jejich z´aporn´e logaritmy. O modelov´ an´ı samotn´em bude v´ıce naps´ano v kapitol´ach 1.5 a 6.2. Zjednoduˇsen´ y pˇr´ıklad automatu G pro hru ˇsachy je zobrazen na obr. 2.1. Reprezentaci bigramov´eho, resp. trigramov´eho modelu pomoc´ı WFSA pro dvˇe slova ilustruje obr. 3.1, resp. obr. 3.2. w1:w1/P(w1|w1) w2:w2/P(w2|w1) w1:w1/P(w1) 0
1
w2:w2/P(w2|w2)
w1:w1/P(w1|w2)
2
w2:w2/P(w2)
Obr´ azek 3.1: Bigramov´ y model pro slova w1 a w2
45
w1/P(w1|w1,w1)
w1,w1 w1/P(w1|w1)
w1/P(w1) 0
w2/P(w2|w1)
w1
w1/P(w1|w2,w1)
w2/P(w2|w1,w1)
w1/P(w1|w1,w2) w2/P(w2|w2,w1)
w1,w2 w2/P(w2|w1,w2)
w2,w1 w1/P(w1|w2,w2)
w2/P(w2|w2,w2) w2/P(w2) w2
w2/P(w2|w2)
w2,w2
w1/P(w1|w2)
Obr´ azek 3.2: Trigramov´ y model pro slova w1 a w2
n 1 2 3 .. .
n´ azev unigram bigram trigram
poˇ cet stav˚ u 1 1+k 1 + k + k2
poˇ cet pˇ rechod˚ u k k + k2 k + k2 + k3
Tabulka 3.1: Sloˇzitost n-gramov´eho modelu dle n a poˇctu slov k
L - WFST reprezentuj´ıc´ı slovn´ık Na obr. 2.2 je uk´ azka automatu L pro slova ”dva” a ”ˇctyˇri”. Vstupn´ı symboly zde reprezentuj´ı kontextovˇe nez´ avisl´e fon´emy a v´ ystupn´ı pak slova, kter´a mus´ı n´aleˇzitˇe korespondovat s automatem G pˇripravovan´e rozpozn´avac´ı s´ıtˇe. Pravdˇepodobnosti, resp. jejich z´aporn´e logaritmy reprezentuj´ı alternativn´ı v´ yslovnosti jednotliv´ ych slov. Napˇr. slovo ”ˇctyˇri” jak je na obr. 2.2 uvedeno (”ˇctyˇri”,”ˇstyˇri”,”ˇctyry”,”ˇstyry”). Lze vˇsak i patˇriˇcn´ y fon´em vynechat pomoc´ı pˇrechodu. C - FST kontextov´ e z´ avislosti Moˇznosti jak reprezentovat kontextovou z´avislost fon´em˚ u pouˇzit´e v t´eto pr´aci demonstruje obr´ azek 3.3. Trif´ onov´ a reprezentace vede na velk´ y poˇcet model˚ u (teoreticky 423 = 74088, v praxi se vˇsak pouˇzije kolem 10000) a tedy i na komplexnˇejˇs´ı rozpozn´avac´ı s´ıt’. Dif´ onov´ a reprezentace na obr. 3.3c dle [Nou04] pak pˇredstavuje vhodn´ y kompromis mezi monofonn´ı a trif´ onovou reprezentac´ı akustick´ ych model˚ u. Poˇcet dif´on˚ u je teoreticky 2 42 = 1764, pˇri experimentech pouˇzito 1108. Dalˇs´ı v´ yhodou t´eto dif´onov´e reprezentace je sn´ıˇzen´ı poˇctu stav˚ u model˚ u na dva.
46
<sil>
c
<sil>
c+ii
ii
l
<sil>
c−ii+l
ii−l
<sil>
a)
b)
<sil>
c
c+ii
ii
ii+l
l
<sil>
c)
Obr´ azek 3.3: Slovo ”c´ıl” reprezentov´ano modely a) monof´on˚ u b) trif´on˚ u c) dif´on˚ u FST mapuj´ıc´ı kontextovˇe z´avisl´e fon´emy (trif´ony, resp. dif´ony) na kontextovˇe nez´avisl´e. Automat C pro trif´ ony je pomˇernˇe komplexn´ı, nebot’ obsahuje n2 + n + 1 stav˚ u 3 2 a n + 2n + n pˇrechod˚ u, kde n je poˇcet fon´em˚ u. Na obr. 3.4 je z d˚ uvod˚ u pˇrehlednosti zobrazen automat C pouze pro dva fon´emy. Vstupn´ı posloupnost ”a b a a” bude mapov´ana na ”a+b a-b+a b-a+a a+a”, resp. na ”a/ b b/a a a/b a a/a ” pouˇzijeme-li HTK, resp. AT&T znaˇcen´ı trif´ on˚ u. a:a <sp>:sp <sil>:sil
1 a:a−a
a:a−a+a
a:b−a
a:b−a+a 3 <sp>:sp <sil>:sil
a:a+a a:a−a+b 4
b:b+a b:a−b+a 0
a:a+b
a:b−a+b 5 b:a−b b:b−b+a b:b+b b:a−b+b b:b−b+b <sp>:sp 6
b:b−b 2
<sil>:sil
b:b
Obr´ azek 3.4: Pˇr´ıklad FST kontextov´e z´avislosti pro trif´ony
47
Automat C pro dif´ ony byl navrˇzen tak, aby reprezentoval modelov´an´ı slov dif´ony dle [Nou04]. Vstupn´ı posloupnost ”a b a a” tak bude automatem z obr. 3.5 mapov´ana na ”a a+b b b+a a a+a a”. <eps>:a <eps>:a
a:a <sp>:sp <sil>:sil
<sp>:sp
1
2
a:a+a
5 a:b+a
b:a+b 3
<sil>:sil 0
<eps>:b
<sil>:sil
4
b:b+b
6
<eps>:b
b:b <sp>:sp
Obr´ azek 3.5: Pˇr´ıklad FST kontextov´e z´avislosti pro dif´ony Opaˇcn´eho mapov´ an´ı (automat C −1 ) dos´ahneme inverz´ı automatu. Poznamenejme, ˇze bezkontextov´e fon´emy (”<sil>” a ”<sp>”) mus´ı b´ yt mapov´any samy na sebe jak je vidˇet na obr´ azc´ıch 3.4 a 3.5. H - WFST reprezentuj´ıc´ı ˇ casov´ e dom´ eny HMM Markovovy modely se skl´ adaj´ı ze dvou ˇc´ast´ı. Jedna reprezentuje spektr´aln´ı charakter modelovan´ ych ˇc´ ast´ı promluvy a druh´a pak charakter ˇcasov´ y (dobu trv´an´ı jednotliv´ ych u ´sek˚ u) [Rab93, Moh02a]. Pr´ avˇe ˇcasov´a dom´ena HMM je obecnˇe reprezentovateln´a ohodnocen´ ym pˇrekladov´ ym automatem. Zjednoduˇsen´ y pˇr´ıklad automatu H pro 5 model˚ u je uveden na obr. 3.6. sil#0:<eps>/2.424 sil#1:<eps>/0.054
sil#2:<eps>/0.077
sil#0:<eps>/0.185 sil#0:<eps>/2.520
2
sil#1:<eps>/2.929
3
sil#2:<eps>/3.284
4/0
1 sil#2:<eps>/3.285
<eps>:sil/0 sp#1:<eps>/0.185 5
sp#1:<eps>/2.520
6/0
<eps>:sp/0 a−k+c#0:<eps>/0.531 0
<eps>:a−k+c/0 <eps>:b−n+ou/0
7
a−k+c#0:<eps>/0.886
b−n+ou#0:<eps>/0.656 <eps>:ss−p+a/0
11
b−n+ou#0:<eps>/0.731
ss−p+a#0:<eps>/0.501 15
ss−p+a#0:<eps>/0.931
a−k+c#1:<eps>/0.980 8 b−n+ou#1:<eps>/0.750 12 ss−p+a#1:<eps>/0.907 16
a−k+c#2:<eps>/0.695 a−k+c#1:<eps>/0.469
9
a−k+c#2:<eps>/0.691
10/0
b−n+ou#2:<eps>/1.082 b−n+ou#1:<eps>/0.638
13
b−n+ou#2:<eps>/0.413
14/0
ss−p+a#2:<eps>/1.194 ss−p+a#1:<eps>/0.516
17
ss−p+a#2:<eps>/0.360
18/0
Obr´ azek 3.6: Pˇr´ıklad vytvoˇren´ı HMM WFST
48
3.1.2
Rozpozn´ avac´ı s´ıt’
M´ ame-li pˇripraven´e ˇctyˇri v´ yˇse zm´ınˇen´e komponenty v podobˇe stavov´ ych automat˚ u, m˚ uˇzeme zkomponovat rozpozn´ avac´ı s´ıt’. Protoˇze automaty H a L jsou acyklick´e, je nutn´e na nˇe pˇred vlastn´ı kompozic´ı aplikovat operaci uzavˇren´ı. Pˇr´ıklad uzavˇren´eho H automatu je na obr. 3.7. V´ yslednou rozpozn´avac´ı s´ıt’ RN je moˇzn´e obdrˇzet jako RN = min(det(H ◦ det(C ◦ det(L ◦ G)))) ,
(3.1)
RN = min(det(H ◦ det(L ◦ G))) ,
(3.2)
resp.
m´ame-li k dispozici modely kontextovˇe z´avisl´ ych, resp. nez´avisl´ ych fon´em˚ u. Poznamenejme, ˇze v [Moh02a] autoˇri poukazuj´ı na nutnost zaveden´ı pomocn´ ych symbol˚ u pro odliˇsen´ı homonym coby fon´em˚ u na konci slov se stejnou v´ yslovnost´ı ve slovn´ıku. Zat´ımco angliˇctina je jazyk s vysok´ ym v´ yskytem homonym stejnˇe znˇej´ıc´ıch, ale jinak se zapisuj´ıc´ıch (napˇr. ”read” - ”red”), homonyma v ˇceˇstinˇe se v drtiv´e vˇetˇsinˇe pˇr´ıpad˚ u ˇctou a zapisuj´ı stejnˇe (napˇr. ”pila”). Z vlastn´ıch zkuˇsenost´ı mohu konstatovat ˇze tento postup nen´ı pro ˇceˇstinu nezbytn´ y. sil#2:<eps>/3.285 sil#2:<eps>/0.077
sil#0:<eps>/0.185 sil#0:<eps>/2.424 1
sil#0:<eps>/2.520
<eps>:sil/0
sil#1:<eps>/2.929
3
sil#1:<eps>/0.054
sil#2:<eps>/3.284
2 4/0
<eps>:<eps>/0
<eps>:<eps>/0 sp#1:<eps>/0.185 a−k+c#2:<eps>/0.691 a−k+c#2:<eps>/0.695
sp#1:<eps>/2.520
5
<eps>:sp/0
10/0
6/0 <eps>:<eps>/0 19/0
<eps>:<eps>/0
0
a−k+c#1:<eps>/0.469
9
a−k+c#1:<eps>/0.980
<eps>:a−k+c/0 a−k+c#0:<eps>/0.531 a−k+c#0:<eps>/0.886
<eps>:b−n+ou/0
8
7 b−n+ou#0:<eps>/0.656 b−n+ou#0:<eps>/0.731 11
b−n+ou#1:<eps>/0.750 12
b−n+ou#2:<eps>/1.082 b−n+ou#1:<eps>/0.638 13
b−n+ou#2:<eps>/0.413 14/0
<eps>:<eps>/0
<eps>:<eps>/0 <eps>:ss−p+a/0 ss−p+a#0:<eps>/0.501 15
ss−p+a#0:<eps>/0.931
ss−p+a#1:<eps>/0.907
ss−p+a#2:<eps>/0.360 ss−p+a#2:<eps>/1.194 ss−p+a#1:<eps>/0.516
16
18/0
17
Obr´ azek 3.7: Uzavˇren´ y HMM WFST z obr. 3.6
49
ˇ ast II C´
Softwarov´ e n´ astroje
50
Kapitola 4
´ Uvod Na poli rozpozn´ av´ an´ı ˇreˇci bylo vyvinuto mnoho n´astroj˚ u, jejich aktu´aln´ı seznam je moˇzn´e nal´ezt napˇr. na [wwwa]. V n´ asleduj´ıc´ıch kapitol´ach bude pˇribl´ıˇzen n´astroj Hidden Markov Model Toolkit - HTK [wwwb], kter´ y je ˇs´ıˇren jako open-source a n´astroje firmy AT&T [Moha, Mohb, Allb], kter´e jsou dostupn´e pouze v bin´arn´ım form´atu. Je potˇreba poznamenat, ˇze nyn´ı lze novˇe velmi efektivnˇe nam´ısto FSM knihovny pouˇz´ıt jej´ı otevˇrenou variantu od stejn´ ych autor˚ u nazvanou OpenFst [Ril] napsanou v jazyce C++. Pro realizaci uveden´ ych operac´ı automat˚ u s koneˇcn´ ymi stavy jsou pouˇzity FSM knihovny v4.0 od AT&T (Mohri a kol. 2000). Z volnˇe dostupn´ ych knihoven je tato jedna z nejv´ ykonnˇejˇs´ıch, avˇsak je dostupn´a pouze v bin´arn´ı formˇe. Pro natr´enov´ an´ı HMM reprezentuj´ıc´ıch ˇcesk´e trif´ony je pouˇzit HTK toolkit v3.2.1 [wwwb]. Data pro tr´enov´ an´ı poch´azej´ı z ˇreˇcov´e datab´aze SPEECON (cca 800 mluvˇc´ıch), ˇ kter´a je pro studentsk´e u ´ˇcely k dispozici na katedˇre teorie obvod˚ u FEL CVUT. Pro zpracov´ an´ı dat pˇri tr´enov´an´ı pomoc´ı HTK a transformace HTK lattice form´atu na AT&T FSM form´ at byl naps´ an program hdp - HTK data preparation toolkit. Pro vytvoˇren´ı pˇrekladov´ ych automat˚ u H, C, L, G z voln´eho textu, ˇci mlf soubor˚ u a vytvoˇren´ı dopˇredn´eho nedeterministick´eho automatu z rozpozn´avac´ı kask´ady je vyv´ıjen program rct - recognition cascade toolkit. Ten v souˇcasn´e dobˇe umoˇzn ˇuje tyto n´asleduj´ıc´ı v´ yznamn´e operace: • vytvoˇrit s´ıtˇe H, C, L, G a t´ım kompletn´ı rozpozn´avac´ı kask´adu ve form´atu sobor˚ u AT&T • aplikovat Viterbiho algoritmus na rozpozn´avac´ı s´ıt’ HLG, resp. HCLG • konvertovat akustick´e modely vytvoˇren´e n´astrojem HTK na ATT form´at ˇ eho n´arodn´ıho korpusu • z´ısk´ avat cenn´ a data z Cesk´ • pouˇz´ıvat stejn´e indexy shlukovan´ ych stav˚ u jako moduly HTK knihoven
51
Ze souˇcasn´ ych v´ yznamn´ ych veˇrejnˇe dostupn´ ych zdroj˚ u dat bych uvedl otevˇren´ y repozit´aˇr VoxForge [wvo], kter´ y je zaloˇzen na tzv. volnˇe dostupn´ ych audioknih´ach LibriVox [wli] publikovan´ ych jako voln´e d´ılo. Hlavn´ım jazykem je zde angliˇctina. Za v´ yznamn´e projekty v oblasti rozpozn´av´an´ı ˇreˇci povaˇzuji: • Julius [Jul] open source LVCSR syst´em podporuj´ıc´ı jazykov´e modely ve form´atu ARPA a akustick´e modely v HTK form´atu. V r´amci projektu jsou i nab´ızeny data pro japonˇstinu (angliˇctina pouze pro nekomerˇcn´ı vyuˇzit´ı). • CMU Sphinx [wsp] open source LVCSR syst´em ˇs´ıˇren pod BSD licenc´ı, v r´amci projektu dostupn´e open source modely pro angliˇctinu. Dostupn´ y je t´eˇz port pro pocket PC. • ISIP ASR projekt [wIS] open source LVCSR syst´em ˇs´ıˇren´ y jako voln´e d´ılo.
52
Kapitola 5
HTK Hidden Markov Model Toolkit - HTK pˇredstavuje kompletn´ı n´astroje pro tr´enov´an´ı skryt´ ych Markovov´ ych model˚ u libovoln´e topologie a s n-rozmˇern´ ym norm´aln´ım rozdˇelen´ım emituj´ıc´ıch stav˚ u pro voliteln´e n, voliteln´ y poˇcet smˇes´ı norm´aln´ıch hustotn´ıch funkc´ı a voliteln´ y poˇcet datov´ ych proud˚ u s moˇznost´ı sd´ılen´ı na vˇsech moˇzn´ ych u ´rovn´ıch HMM. Vyˇcerp´ avaj´ıc´ı popis n´ astroj˚ u HTK je uveden v [You02]. Uved’me jen, ˇze HTK d´ale poskytuje komplexn´ı n´ astroje pro parametrizaci dat, rozpozn´av´an´ı a editov´an´ı HMM. N´astroje, kter´e byly v pr´ aci pouˇzity zde budou pops´any v takov´e sloˇzitosti v jak´e byly pouˇz´ıv´any.
5.1
Parametrizace
HCopy - n´ astroj pro parametrizaci, resp. konverzi zvukov´ ych soubor˚ u. Pouˇzity n´asleduj´ıc´ı univerz´ aln´ı parametry: -S fn soubor fn pˇredstavuje seznam cest vstupn´ıch a v´ ystupn´ıch soubor˚ u promluv. -C fn fn - konfiguraˇcn´ı soubor, jehoˇz pˇr´ıklad s nejd˚ uleˇzitˇejˇs´ımi parametry je uveden n´ıˇze. #Coding Params - pages 298 - 301 in HTK Book SOURCEKIND = WAVEFORM SOURCEFORMAT = NOHEAD SOURCERATE = 625 #vzorkovac´ ı frekvence (x 100 ns) TARGETKIND = MFCC_E_D_A #druh parametrizace TARGETRATE = 100000.0 #segmentace - posouv´ an´ ı okna (x 100ns) WINDOWSIZE = 250000.0 #d´ elka okna (x 100ns) USEHAMMING = T #n´ asoben´ ı vst. segmentu Hammingov´ ym ok´ enkem PREEMCOEF = 0.97 #koeficient preemfaze NUMCHANS = 26 #pocet kanalu banky filtru CEPLIFTER = 22 #koeficient kepstr´ aln´ ı liftrace NUMCEPS = 12 #poˇ cet kepstr´ aln´ ıch koeficient˚ u
53
ENORMALISE = T #USESILDET = T
#normalizace podle energie #pouˇ zit´ ı detektoru ˇ reˇ c/pauza
(F)
Zde uv´ adˇen´ y konfiguraˇcn´ı soubor byl pouˇzit v experimentech. Konfigurace je nastavena pro vstupn´ı soubory se vzorkovac´ı frekvenc´ı 16kHz, pouˇzita parametrizace na 12 Melovsk´ ych kepstr´aln´ıch koeficient˚ u plus energie, z toho pak dalˇs´ıch 13 delta a 13 akceleraˇcn´ıch koeficient˚ u. V´ yznam ostatn´ıch parametr˚ u je moˇzn´e dohledat v [You02]. konfiguraˇcn´ıho souboru.
5.2
Tr´ enov´ an´ı model˚ u
HCompV - n´ astroj pro v´ ypoˇcet glob´aln´ı stˇredn´ı hodnoty µ a kovarianˇcn´ı matice Σ, resp. jej´ı diagon´ aly r. Pouˇzit´ı: HCompV [univ. volby] [hmm]
Soubor hmm pˇredstavuje definici topologie jednoho HMM. Pˇr´ıklad pro HMM s 2rozmˇern´ ym norm´ aln´ım rozdˇelen´ım: ~o~
2 <MFCC> ~h "proto1" 5 <State> 2 <Mean> 2 0.0 0.0 2 1.0 1.0 <State> 3 <Mean> 2 0.0 0.0 2 1.0 1.0 <State> 4 <Mean> 2 0.0 0.0 2 1.0 1.0 5 0.0 1.0 0.0 0.0 0.0 0.6 0.4 0.0 0.0 0.0 0.6 0.4 0.0 0.0 0.0 0.7 0.0 0.0 0.0 0.0 <EndHMM>
0.0 0.0 0.0 0.3 0.0
Seznam univerz´ aln´ıch voleb:
54
-S fn -M dn -c dn -m
soubor fn pˇredstavuje seznam cest soubor˚ u s pˇr´ıznaky adres´ aˇr dn pˇredstavuje c´ılovou cestu k uloˇzen´ı HMM (soubor dn/hmmdefs)s glob´aln´ımi parametry µ a Σ, resp. r odhad glob´ aln´ıch stˇredn´ıch hodnot (zaps´ano jako jeden vektor) do adres´ aˇre dn obnoven´ı stˇredn´ıch hodnot v HMM def. souboru
HERest - n´ astroj pro tr´enov´ an´ı HMM vyuˇz´ıvaj´ıc´ı zapouzdˇrenou verzi Baum-Welchova algoritmu [Rab93, You02]. Pouˇzit´ı: HERest [univ. volby] hmmList
Soubor hmmList je obsahuje seznam n´azv˚ u vˇsech HMM. Pokud jsou dva n´azvy HMM vedle sebe, prvn´ı je tzv. logick´ym HMM pˇriˇrazen´ ym k n´asleduj´ıc´ımu fyzick´emu HMM. Rozd´ıl mezi log. a fyz. HMM spoˇc´ıv´a pouze v jeho jm´enˇe, parametry jsou shodn´e (soubor hmmdefs tak obsahuje pouze definice fyzick´ ych HMM). V n´asleduj´ıc´ım pˇr´ıkladˇe HMM seznamu jsou logick´ ymi HMM uu-nn+e, i-k+n a m-ii+v. u-tt+ii uu-nn+e nn+uu i-k+n ss-k+uu m-ii+v m-ii+m ...atd...
Seznam univerz´ aln´ıch voleb: -S fn -H fn -I fn -M dn -s fn -t f [i l]
5.3 HHEd
soubor fn pˇredstavuje seznam cest soubor˚ u s pˇr´ıznaky cesta k p˚ uvodn´ımu definiˇcn´ımu souboru fn (hmmdefs) HMM cesta ke vstupn´ımu mlf souboru fn s fonetick´ ym pˇrepisem vˇet adres´ aˇr dn pˇredstavuje c´ılovou cestu k uloˇzen´ı definiˇcn´ıch soubor˚ u HMM po natr´enov´ an´ı (soubor dn/hmmdefs). uloˇzen´ı z´ aporn´ ych souˇct˚ u log. pravdˇepodobnost´ı vˇsech stav˚ u (5.2) do souboru fn (soubor stats - viz d´ale) nastaven´ı prahu proˇrez´av´an´ı na hodnotu f [You02, Psu06]. V pˇr´ıpadˇe zad´ an´ı koeficient˚ u i a l je pr´ah zvˇetˇsen o hodnotu i a proces se opakuje dokud neprojde, nebo nenastane celkem l opakov´an´ı
Shlukov´ an´ı kontextovˇ e z´ avisl´ ych fon´ em˚ u - editor HMM definiˇcn´ıch soubor˚ u hmmdefs. Pouˇzit´ı:
HHEd [univ. volby] fn.hed hmmList
55
Kde fn.hed je soubor s pˇr´ıkazy editoru - pˇr´ıklady tˇech nejpouˇz´ıvanˇejˇs´ıch budou uvedeny d´ale a hmmList je seznam n´ azv˚ u HMM k editaci. Nejpouˇz´ıvanˇejˇs´ı univerz´aln´ı volby byly H a M, kter´e jsou identick´e s n´ astrojem HERest.
5.3.1
shlukov´ an´ı ˇr´ızen´ e daty
Chceme-li pouˇz´ıt shlukovan´e stavy HMM, m´ame dvˇe moˇznosti jak vlastn´ı shlukov´an´ı prov´est. Prvn´ı je pomˇernˇe jednoduch´e shlukov´an´ı ˇr´ızen´e daty [You02, Psu06], kde se pouˇz´ıv´ a vztah v´ aˇzen´e Euklidovy vzd´alenosti mezi shluky i a j v u n u 1 X (µik − µjk )2 d(i, j) = t , (5.1) n σik σjk k=1
kde µlk a σlk jsou k-t´e prvky vektor˚ u stˇredn´ı hodnoty µl a smˇerodatn´e odchylky σ l nrozmˇern´eho norm´ aln´ıho rozdˇelen´ı hustoty pravdˇepodobnosti ve stavu l. Obsahuj´ı-li shluky v´ıce stav˚ u, vyb´ır´ a se nejvˇetˇs´ı vzd´alenost mezi stavy. Shlukov´an´ı daty vˇsak neumoˇzn ˇuje ”vyrobit” nov´e trif´ ony, kter´e se pˇri tr´enov´an´ı nevyskytly. Tento z´avaˇzn´ y nedostatek ˇreˇs´ı druh´a metoda shlukov´ an´ı.
5.3.2
shlukov´ an´ı zaloˇ zen´ e na fonetick´ ych rozhodovac´ıch stromech
N´asleduj´ıc´ı konfiguraˇcn´ı soubor pro n´astroj HHEd definuje mnoˇzinu ot´azek (za pˇr´ıkazem TR 0) a ud´ av´ a zp˚ usob jak´ ym se maj´ı tvoˇrit shlukovan´e stavy (za pˇr´ıkazem TR2) RO TR QS QS QS
7000.0 data/stats 0 ’L_similar2’ { "j-*","i-*","ii-*" } ’L_fr_bk_vowel19’ { "uu-*","oo-*","aa-*","u-*","o-*","a-*" } ’R_sylab_maker1’ { "*+l","*+r","*+uu","*+u","*+ou","*+oo","*+o","*+ii", "*+i","*+eu","*+ee","*+e","*+au","*+aa","*+a" } QS ’L_sylab_maker1’ { "l-*","r-*","uu-*","u-*","ou-*","oo-*","o-*","ii-*", "i-*","eu-*","ee-*","e-*","au-*","aa-*","a-*" } QS ’R_fr_bk_vowel2’ { "*+e","*+i" } QS ’L_similar1’ { "j-*","i-*" } ...atd... TR 2 TB 720.0 "c2_" {(c, *-c, *-c+*, c+*).state[2]} TB 5000.0 "c3_" {(c, *-c, *-c+*, c+*).state[3]} TB 720.0 "c4_" {(c, *-c, *-c+*, c+*).state[4]} ...atd... NC 1 "a3_" {(*-a+*,a+*,*-a).state[3]}
56
...atd... TR 1 CO "data/tiedlist" ST "data/trees"
Pˇr´ıkaz NC definuje shlukov´ an´ı ˇr´ızen´e daty. Je uveden ˇcistˇe demonstrativnˇe a doporuˇcuji ho nepouˇz´ıvat kv˚ uli n´ asledn´e nemoˇznosti syntetizovat trif´ony nevyskytuj´ıc´ı se v tr´enovac´ım setu. Soubor stats je z´ısk´ an pomoc´ı parametru -s stats n´astroje HERest a kaˇzd´a ˇr´adka obsahuje ˇc´ıslov´ an´ı trif´ on˚ u, jejich n´azev, poˇcet v´ yskyt˚ u v tr´enovac´ım setu a sumy z´ap. log. pravdˇepodobnost´ı X − log P (Oi |µp , rp ) (5.2) i
stav˚ u s. Pˇr´ıklad souboru stats je uveden n´ıˇze. 1 "u-p+uu" 2 "ss-k+uu" 3 "v-zz+e" 4 "ou-k+e" 417 "a-c+ii" 954 "aa-c+e" 1015 "aa-c+l" ...atd...
1 5 5 13 659 377 106
1.108081 1.861922 2.626662 12.010897 7.986808 6.997828 5.025526 5.459836 14.221378 23.159161 19.077389 23.544138 944.080566 1541.300659 2397.085938 1171.068481 1108.445679 1834.993164 280.616699 247.487595 414.357513
Postup konstrukce fonetick´ eho rozhodovac´ıho stromu fon´emu *-c+*:
- pˇr´ıklad pro 3. (prostˇredn´ı) stav
1. do poˇc´ ateˇcn´ıho dˇelen´ı jsou vybr´any vˇsechny prostˇredn´ı stavy pro fon´emy typu *-c+* (soubor stats) - mnoˇzina S = {s1 , . . . , sK }. Necht’ jsou tyto stavy sv´az´any tak, ˇze tvoˇr´ı jedin´ y stav se z´ ap. log. pravdˇepodobnost´ı H(S) = −
X
log P (Oi |µp , rp ) .
(5.3)
i
2. pro vˇsechny ot´ azky v konfiguraˇcn´ım souboru pro HHEd je napoˇc´ıt´ana hodnot´ıc´ı funkce vypov´ıdaj´ıc´ı kvalitu (strmost Gaussov´ ych kˇrivek) rozdˇelen´ı mnoˇziny vˇsech stav˚ u na dvˇe skupiny −[H(S I )|q + H(S II )|q ] + H(S) , (5.4) kde H(S I )|q , resp. H(S II )|q jsou z´ap. logaritmy shlukovan´ ych stav˚ u platn´e pro kladnou (I), resp. z´ apornou (II) odpovˇed’ na ot´azku q podobnˇe jako v (5.3).
57
3. vybere se ot´ azka s nejvˇetˇs´ı hodnot´ıc´ı funkc´ı a pˇriˇrad´ı se dˇelic´ımu uzlu. Pokud H(S I )|q , resp. H(S II )|q je menˇs´ı, neˇz zvolen´ y pr´ah (zde 5000), vytvoˇr´ı se i-t´ y shlukovan´ y stav pro prostˇredn´ı stavy mnoˇziny fon´em˚ u *-c+* CC3_i. V opaˇcn´em pˇr´ıpadˇe se vytvoˇr´ı nov´ y uzel. 4. vybere se dalˇs´ı uzel bez pˇriˇrazen´e ot´azky, oznaˇc´ı se za dˇelic´ı a proces se opakuje od bodu 2 dokud nejsou vyˇcerp´ any vˇsechny uzly. j−* i−* ii−* +
−
uu−* oo−* aa−* u−* o−* a−* +
j−* i−* +
−
l−* r−* uu−* u−* ou−* oo−* *+l *+r *+uu *+u *+ou *+oo o−* ii−* i−* eu−* ee−* e−* *+o *+ii *+i *+eu *+ee *+e au−* aa−* a−* *+au *+aa *+a + − + − *+e *+i +
C3_3
C3_4
C3_6
−
C3_7
C3_5
−
C3_1
C3_2
Obr´ azek 5.1: Pˇr´ıklad fonetick´eho rozhodovac´ıho stromu
5.4
Vytvoˇren´ı libovoln´ eho modelu pomoc´ı rozhodovac´ıho stromu
Rozhodovac´ı stromy pro jednotliv´e stavy trif´on˚ u vytvoˇren´e v´ yˇse uveden´ ym postupem pouˇzijeme k vytvoˇren´ı setu trif´ on˚ u pro danou testovac´ı mnoˇzinu dat, resp. set trif´on˚ u. N´ıˇze uveden´ y v´ ypis ukazuje pˇr´ıklad stromu (soubor trees) pro prostˇredn´ı stav (3) vˇsech trif´on˚ u typu *-c+*. QS ’L_similar2’ { "j-*","i-*","ii-*" } QS ’L_fr_bk_vowel19’ { "uu-*","oo-*","aa-*","u-*","o-*","a-*" } QS ’R_sylab_maker1’ { "*+l","*+r","*+uu","*+u","*+ou","*+oo","*+o","*+ii", "*+i","*+eu","*+ee","*+e","*+au","*+aa","*+a" } QS ’L_sylab_maker1’ { "l-*","r-*","uu-*","u-*","ou-*","oo-*","o-*","ii-*", "i-*","eu-*","ee-*","e-*","au-*","aa-*","a-*" } QS ’R_fr_bk_vowel2’ { "*+e","*+i" } QS ’L_similar1’ { "j-*","i-*" }
58
...atd... c[3] { 0 -1 -2 -3 -4 -5 } ...atd...
’L_similar2’ ’L_fr_bk_vowel19’ ’R_sylab_maker1’ ’L_sylab_maker1’ ’R_fr_bk_vowel2’ ’L_similar1’
-1 -3 "c3_4" -4 "c3_1" "c3_6"
-5 -2 "c3_5" "c3_3" "c3_2" "c3_7"
Obr. 5.1 pak ukazuje jeho podobu. N´ıˇze je uveden pˇr´ıklad konfiguraˇcn´ıho souboru pro n´astroj HHEd, kde soubor trees pˇredstavuje rozhodovac´ı stromy pro vˇsechny stavy, soubor tr2.mod poˇzadovan´ y seznam trif´ on˚ u a soubor tie pak v´ ystupn´ı seznam trif´on˚ u s definicemi logick´ ych HMM. "LT data/trees" "AU tr2.mod" "CO tie"
5.5
Rozpozn´ av´ an´ı
HVite - dekod´er na b´ azi Viterbiho algoritmu. Umoˇzn ˇuje rozpozn´av´an´ı pomoc´ı zadan´e s´ıtˇe na u ´rovni slov (soubor wdn), slovn´ıku (soubor dict) a seznamu HMM (hmmList). Pouˇzit´ı: HHEd [univ. volby] fn.hed hmmList
Seznam univerz´ aln´ıch voleb:
59
-S fn -H fn -w fn -s i -t f [i l]
-r f -p f -v f -a
-I fn -i fn -b silence
soubor fn pˇredstavuje seznam cest soubor˚ u s pˇr´ıznaky cesta k definiˇcn´ımu souboru fn (hmmdefs) HMM soubor fn pˇredstavuje s´ıt’ na u ´rovni slov (wdn) nastaven´ı n´ asoben´ı vah s´ıtˇe wdn na hodnotu i, standardnˇe nastaveno 1 p´ asov´e proˇrez´ av´an´ı na pr´ah f. V pˇr´ıpadˇe m´odu zarovn´av´an´ı a zad´an´ı koeficient˚ u i a l je pˇri ne´ uspˇeˇsn´em zarovn´an´ı pr´ah zvˇetˇsen o hodnotu i a proces se opakuje do u ´spˇeˇsn´eho zarovn´an´ı, nebo dosaˇzen´ı hodnoty prahu l nastaven´ı n´ asobitele pravdˇepodobnosti alternativn´ı v´ yslovnosti na f (slovn´ık obsahuje pro jedno slovo v´ıce fon. pˇrepis˚ u), standardnˇe 1 nastaven´ı log. pravdˇepodobnosti vloˇzen´ı slova na f, standardnˇe 0 povolen´ı proˇrez´av´an´ı na konc´ıch slov a nastaven´ı prahu f m´ od zarovn´ av´ an´ı - vstupn´ı promluvy jsou zn´amy (mlf soubor, parametr -I), program tak navr´at´ı ˇcasov´e u ´seky jednotliv´ ych fon´em˚ u (mlf soubor definovan´ y parametrem -i) fn definuje vstupn´ı mlf soubor pro m´od zarovn´av´an´ı fn definuje v´ ystupn´ı mlf soubor pro m´od zarovn´av´an´ı pouˇzit´ı slova silence jako hranice vˇet v m´odu zarovn´av´an´ı
pˇr´ıklad wdn:
pˇr´ıklad dict:
VERSION=1.0 N=7 L=7 I=0 W=!NULL I=1 W=!NULL I=2 W=silence I=3 W=ano I=4 W=!NULL I=5 W=ne I=6 W=silence J=0 S=6 E=1 J=1 S=0 E=2 J=2 S=2 E=3 J=3 S=3 E=4 J=4 S=5 E=4 J=5 S=2 E=5 J=6 S=4 E=6
silence [] sil ano ctyˇ ˇ ri devˇ et dva dvˇ e jedna ne nula osm pˇ et sedm sest ˇ tˇ ri
3 !NULL
2
silence
ano
0 !NULL
5
a n o sp cc t i rr i sp d e v j e t sp d v a sp d v j e sp j e d n a sp n e sp n u l a sp o s m sp p j e t sp s e d m sp ss e s t sp t rh i sp
6
silence
1
!FINAL
0 ne
Obr´ azek 5.2: Pˇr´ıklad realizace rozp. s´ıtˇe ano-ne souborem wdn
60
HResult - n´ astroj pro porovn´ av´ an´ı mlf soubor˚ u - nejˇcastˇeji z´akladn´ıho (zn´am´eho) a v´ ystupn´ıho (obdrˇzen´eho z rozpozn´ avaˇce) - rec.mlf. Pouˇzit´ı: HResult [univ. volby] hmmList rec.mlf
Seznam univerz´ aln´ıch voleb: -I fn -t
fn definuje vstupn´ı mlf soubor do v´ ypisu pˇrid´ a i srovn´an´ı nespr´avnˇe rozpoznan´ ych vˇet
Z´akladn´ı form´ at v´ ypisu vypad´a n´asledovnˇe ------------------------ Overall Results -------------------------SENT: %Correct=89.03 [H=138, S=17, N=155] WORD: %Corr=97.83, Acc=97.60 [H=856, D=7, S=12, I=2, N=875] ===================================================================
kde H znamen´ a poˇcet spr´ avn´ ych, N poˇcet celkov´ ych, D poˇcet ztracen´ ych, S ´ nahrazen´ ych a I poˇcet pˇridan´ ych poloˇzek v rozpoznan´em mlf souboru. Uspˇeˇsnost poˇc´ıt´ana jako H Corr = × 100% N a pˇresnost H −I Acc = × 100% . N
poˇcet je vy(5.5)
(5.6)
61
Kapitola 6
AT&T n´ astroje Podobnˇe jako v kapitole 5 zde bude uveden pouze nejˇcastˇeji pouˇz´ıvan´ y v´ yˇcet n´astroj˚ u s jejich voliteln´ ymi parametry pˇri konstrukc´ıch rozpozn´avaˇc˚ u.
6.1 6.1.1
knihovna DCD Stavba RN
dmake - n´ astroj pro stavbu optimalizovan´e rozpozn´avac´ı s´ıtˇe z jednotliv´ ych komponent pomoc´ı jejich optimalizace a postupn´e kompozice zprava doleva, tak jak je zad´ano v jeho parametrech. Vlastnosti jednotliv´ ych komponent je dobr´e bl´ıˇze specifikovat (parametry -a, -b, -n pˇred n´ azvem souboru reprezentuj´ıc´ı komponentu pomoc´ı FSM - viz n´ıˇze). Pouˇzit´ı: dmake [-a fsm | -b fsm | -n fsm | -f file | -c c | -l l | -mv? ]
Pouˇzity n´ asleduj´ıc´ı parametry: -a fn
-b fn
-n fn
-m -v
oznaˇcuje soubor fn za acyklick´ y pˇrekladov´ y automat. Ten je pˇred vlastn´ı kompozic´ı d´ an programem do jednoznaˇcn´e podoby a uzavˇren. Pˇr´ıkladem je reprezentace slovn´ıku a ˇcasov´e ˇc´asti HMM model˚ u. V´ ystupn´ı symboly a v´ ahy by mˇely b´ yt co nejv´ıce stlaˇceny k poˇc´ateˇcn´ımu stavu. oznaˇcuje soubor fn za bi-determinizovateln´ y pˇrekladov´ y automat, t.j. lze determinizovat automat samotn´ y i jeho inverzn´ı variantu. Pˇr´ıkladem je reprezentace jazykov´eho modelu a FST kontextov´e z´avislosti. oznaˇcuje soubor fn za bl´ıˇze nespecifikovan´ y. M˚ uˇze tak b´ yt oznaˇcena libovoln´ a komponenta v pˇr´ıpadˇe ne´ uspˇeˇsnosti zad´an´ı v´ yˇse zm´ınˇen´ ych typ˚ u. minimalizuje1 vˇsechny vstupn´ı ˇc´asti i zkomponovan´ y v´ ysledn´ y automat. verbose v´ ystup na stderr.
62
N´asleduj´ıc´ı pˇr´ıklad demonstruje zkomponov´an´ı rozpozn´avac´ı s´ıtˇe z WFST ˇcasov´e ˇc´asti HMM hmm.fst, FST kontextov´e z´avislosti cntx.fst, WFST slovn´ıku lex.fst a WFSA jazykov´eho modelu gram.fst. , dmake -mv -a hmm.fst -b cntx.fst -a lex.fst -b gram.fsa >hclg.fst
6.1.2
Pˇr´ıprava model˚ u
amcompile - n´ astroj pro konverzi textov´e reprezentace HMM model˚ u definovan´ ych v textov´em AT&T DCD (obdrˇzen´ ych napˇr. programem rct - viz kap. 7.7) na bin´arn´ı form´at pro n´astroj drecog. Form´ at AT&T DCD akustick´ ych model˚ u je podrobnˇeji popsan´em v kapitole 7.7. Pouˇzit´ı: amcompile hmmset.am
kde soubor hmmset.am obsahuje seznam jednotliv´ ych u ´rovn´ı HMM model˚ u tak jak je pops´ano v kap. 7.7. Bin´ arn´ı reprezentace se pak nach´az´ı na stdout.
6.1.3
Rozpozn´ av´ an´ı
drecog - n´ astroj pro rozpozn´ av´ an´ı na z´akladˇe zadan´e RN (hclg.fst), akustick´ ych model˚ u (model.am) a seznamu cest vstupn´ıch promluv (fea.scp). Pouˇzit´ı pro rozpozn´av´an´ı: drecog [univ. parametry] drecog.conf fea.scp
kde drecog.conf je konfiguraˇcn´ı soubor jehoˇz pˇr´ıklad je uveden n´ıˇze. # koment´ aˇ re lze ps´ at pouze na nov´ y ˇ r´ adek, nikoliv jak je uvedeno n´ asledovnˇ e # vyˇ zadovan´ e parametry: fsms data/hclg.fst #cesta k~rozpozn´ avac´ ı s´ ıti, nepovinn´ e pro zarov. model data/model.am #cesta k~bin´ arn´ ı reprezentaci AT&T DCD HMM beam 20 #hodnota p´ asov´ eho proˇ rez´ av´ an´ ı dur_mult 1 #n´ asobitel koef. setrv´ an´ ı ve stavu gram_mult 1 #n´ asobitel jazykov´ eho modelu self_loop false #false - smyˇ cky rozvinuty v~zadan´ e RN model_level state #state - ´ uroveˇ n stav˚ u HMM, model - ´ uroveˇ n HMM #voliteln´ e parametry final_state_mode prefer #ignore|prefer (def.)|require arcs_max 10000 #max. poˇ cet hypot´ ez na segment (default: INT_MAX) response_type onebest #onebest (def.),lattice - v´ yst. mˇ r´ ıˇ zka hyp. prom. suppress_labels int1 int2 #konverze v´ yst symbol˚ u na <eps> - (sil)
63
kde dur mult a gram mult jsou pˇri v´ ypoˇctu celkov´e v´ahy total sv´az´any dle total =
ac dur mult + dc + gc , gram mult gram mult
(6.1)
kde ac jsou v´ ahy akustick´ ych model˚ u, dc v´ahy koeficient˚ u setrv´an´ı ve stavu jsou-li pouˇzity (jinak 0) a gc v´ ahy jazykov´eho modelu. Pro zarovn´ av´ an´ı, resp. ”podrobn´e” rozpozn´av´an´ı je nutn´e specifikovat souborem fsmlist bud’ seznam cest k automat˚ um, nebo far archiv reprezentuj´ıc´ı jednotliv´e RN (v nejjednoduˇsˇs´ım pˇr´ıpadˇe RN reprezentuj´ıc´ı jedinou moˇznou vˇetu - pˇr´ıpad zarovn´av´an´ı). Pouˇzit´ı: drecog [univ. parametry] drecog.conf fsmlist fea.scp
Pouˇzity n´ asleduj´ıc´ı parametry: -i str
-X -v
6.2
zad´ an´ı form´ atu vstupn´ıch promluv, kde str m˚ uˇze b´ yt bud’ ”raw” - pouze data bez hlaviˇcky, ”blasr”, ˇci ”ssw” (default), pˇriˇcemˇz posledn´ı dva uveden´e form´ aty nejsou obecnˇe zn´amy. nastaven´ı big-endian pro vstupn´ı promluvy pˇri pouˇzit´ı parametru -i raw verbose v´ ystup - vypisuj´ı se na stderr n´asleduj´ıc´ı informace: utt: - poˇrad´ı promluvy, recog: 1 = rozpozn´av´an´ı probˇehlo u ´spˇeˇsnˇe (0 napˇr pˇri pr´azdn´em vstupu), final: 1 = pˇri rozpozn´av´an´ı bylo dosaˇzeno koncov´eho stavu, nframes: - poˇcet vektor˚ u pˇr´ıznak˚ u v promluvˇe, nres: - poˇcet v´ ystupn´ıch FSM na promluvu, nres: - pr˚ umˇern´ y poˇcet aktivn´ıch pˇrechod˚ u (hypot´ez) na jeden segment, time:.- doba rozpozn´av´an´ı dan´e promluvy [sec].
grmtools
6.2.1
Vytvoˇren´ı statistick´ eho jazykov´ eho modelu
grmcount - n´ astroj pro vytvoˇren´ı ˇc´ıtac´ıho FSM, pro pozdˇejˇs´ı modelov´an´ı gramatiky n´astrojem grmmake. N´ astroj poˇc´ıt´a v´ yskyt vˇsech moˇzn´ ych cest vˇsech automat˚ u uveden´em ve far archivu (stdin) - z´ıskan´eho napˇr. z textu n´astrojem farcompilestrings. V´ ystupem je tzv. ˇc´ıtac´ı fsm. Napˇr. z n´ asleduj´ıc´ıho text˚ u (pˇreveden´ ych do tvaru koneˇcn´ ych automat˚ u n´astrojem farcompilestrings) - soubor grmdes.txt vznikne pro bigramovou verzi automat na obr. 6.1 byl mˇ el mˇ el mˇ el
by by by to
to mˇ el to to zkusit zkusit
64
Pˇr´ıklad pouˇzit´ı: farcompilestrings grmdes.txt -i grmdes.lab|\ grmcount -n2 -s"<st>" -f"<en>" -i grmdes.lab>cnt.fsm
grmdes.lab je soubor symbol˚ u pro far-archiv. V´ ysledn´ y automat cnt.fsm je zobrazen na obr. 6.1. Pouˇzity n´ asleduj´ıc´ı parametry: 2/0
byl/1 měl/3
<st>/4 3/0
by/1
byl/1 to/3 4/0 by/3
měl/1 <en>/1
0/0
to/4
5/0
měl/4
1/0
zkusit/2 <en>/1
6/0
by/2 to/1
<en>/4
zkusit/2
<en>/2 7/0
Obr´ azek 6.1: Pˇr´ıklad ˇc´ıtac´ıho automatu
-n n -s i ”s”
-f i ”s” -i fn
ˇc´ıt´ an´ı pro n-gram ˇr´adu n. specifikace symbolu zaˇc´atku vˇety (nevyskytuj´ı se ve vstupn´ım textu). Moˇzn´e bud’ indexem symbolu i, nebo symbolem samotn´ ym ”s” - v tom pˇr´ıpadˇe nutn´e specifikovat soubor symbol˚ u parametrem -i specifikace symbolu konce vˇety, plat´ı stejn´e podm´ınky jako pro parametr -s. specifikace souboru symbol˚ u fn
grmmake - n´ astroj vytvoˇr´ı jazykov´ y model stdout dle ˇc´ıtac´ıho FSM stdin. Implicitn´ı metoda vyhlazov´ an´ı je Katz˚ uv model (viz kapitola 1.5.2). Je moˇzn´e pouˇz´ıt i model s absolutn´ım diskontem (viz kapitola 1.5.2), nebo vyhlazov´an´ı vypnout [Allb]. Pˇr´ıklad z obr. 6.1 je na obr. 6.2.
65
zkusit/0.698 <en>/1.504
to/1.504 3
<eps>/4.080
to/0.003
<en>/1.396 měl/1.396
0/0 <en>/1.396
by/1.791 1
zkusit/2.197 <eps>/5.046
to/1.396
<eps>/5.451 7
<eps>/4.971
<eps>/4.421 byl/2.890
4
5
by/0.698 2
by/0.010 měl/1.504
byl/1.396 6
<eps>/3.947 <en>/0.005 měl/0.291
Obr´ azek 6.2: Pˇr´ıklad automatu reprezentuj´ıc´ıho jazykov´ y model
66
Kapitola 7
´ Uvod do programu rct Program rct - Recognition Cascade Tool byl pr˚ ubˇeˇznˇe vyv´ıjen po celou dobu doktorandsk´eho studia. V souˇcasnosti program rct umoˇzn ˇuje u ´pravu mlf soubor˚ u, pr´aci ´ s datab´ az´ı KARLIK, pˇrevody symbol˚ u z form´atu AT&T na HTK, pˇrevody jazykov´ ych model˚ u HTK lattice na AT&T fsm, stavbu slovn´ıkov´eho FST, stavbu FST kontextov´e z´avislosti, stavbu HMM WFST, stavbu WFSA reprezentuj´ıc´ı pravdˇepodobnosti model˚ u pro vstupn´ı pˇr´ıznaky, u ´pravy vstupn´ıch pˇr´ıznak˚ u, konverzi HTK HMM model˚ u na AT&T DCD form´ at, u ´pravu v´ ystupu rozpozn´avaˇce AT&T DCD n´astroj˚ u pro HTK n´astroj HResult a vlastn´ı rozpozn´ av´ an´ı.
7.1
Univerz´ aln´ı parametry
Univerz´ aln´ı parametry jsou v pˇr´ıkazov´e ˇr´adce uv´adˇeny vˇzdy jako prvn´ı. Jejich seznam je n´asleduj´ıc´ı. -t nastaven´ı textov´e reprezentace pro zpracov´an´ı FSM, standardnˇe nastavena bin´ arn´ı reprezentace -d dir nastaven´ı cesty (dir ) k HTK definiˇcn´ım soubor˚ um HMM, kde by se mˇely nach´ azet soubory macros, hmmdefs a tiedlist -b moˇznost vynech´an´ı zpˇetn´eho pˇrechodu v modelu ticha (sil ), standardnˇe model ticha vytv´aˇren vˇcetnˇe zpˇetn´eho pˇrechodu -s file v souboru file jsou uloˇzeny po ˇr´adk´ach cesty jednotliv´ ych soubor˚ u (nejˇcastˇeji ˇreˇcov´ ych promluv) urˇcen´ ych ke zpracov´an´ı -p int klestˇen´ı pˇri rozpozn´av´an´ı. poˇcet aktivn´ıch hypot´ez na segment nastaven na int. Pouze pro parametr -V -a float multiplikaˇcn´ı koeficient jazykov´eho modelu. Pˇri rozpozn´av´an´ı ud´av´ a ˇc´ıslo, kter´ ym se vyn´asob´ı vstupn´ı rozpozn´avac´ı s´ıt’. Pouze pro parametr -V
67
7.2
Zpracov´ an´ı mlf-soubor˚ u
Pro vlastn´ı rozpozn´ av´ an´ı AT&T n´astroji, pˇr´ıpadnˇe modifikaci vstupn´ıho textu na u ´roveˇ n slabik, ˇci morf´em˚ u byly navrˇzeny n´asleduj´ıc´ı funkce. Nutno poznamenat, ˇze ve vˇsech n´aslednˇe uveden´ ych pˇr´ıpadech se pˇredpokl´ad´a vstupn´ı mlf soubor na stdin a v´ ystupn´ı mlf soubor pak na stdout. -Gm seˇrazen´ı jednotliv´ ych poloˇzek mlf souboru do ˇr´adk˚ u, kaˇzd´a promluva -Gms tak pˇredstavuje jeden ˇr´adek. Pouˇzito zejm´ena pro n´aslednou aplikaci n´ astroje farcompilestrings. -Ym pˇrevod mlf souboru na slabikovou verzi. Slova jsou rozdˇelena algoritmem PUML [L´ a05], kter´ y rozdˇel´ı slovo na skupiny souhl´asek a samohl´asek, slabiku pak vyhodnocuje jako skupinu samohl´asek ke kter´e je pˇrid´ an prav´ y kontext skupiny souhl´asek d´elky n + 1, resp. n pro celkov´ y poˇcet souhl´ asek 2n + 1, resp. 2n ve skupinˇe pˇredstavuj´ıc´ı prav´ y kontext a lev´ y kontext d´elky n ze skupiny souhl´asek 2n + 1, ˇci 2n ve skupinˇe pˇredstavuj´ıc´ı lev´ y kontext. -GkMm f rozdˇelen´ı mlf souboru na morf´emy, kter´e zat´ım pˇredstavuj´ı rozdˇelen´ı slov na z´ akladn´ı ˇc´asti (pˇredpona+koˇren) a pˇr´ıpony. Rozdˇelen´ı je provedeno na z´ akladˇe souboru morfologick´eho popisu (soubor f ), kter´ y by mˇel obsahovat vˇsechny koncovky (vzory) pro vˇsechna pouˇzit´a slova - viz kapitola 9. Na n´ asleduj´ıc´ım pˇr´ıkladˇe je demonstrov´ano pouˇzit´ı tˇechto funkc´ı. vstupn´ı mlf soubor:
u ´prava pomoc´ı -Ym:
u ´prava pomoc´ı -GkMm:
#!MLF!# "*/mb73bc103003.lab" protestn´ ı j´ ızda sanit .
#!MLF!# "*/mb73bc103003.lab" protestn´ ı <sp> j´ ızd a <sp> sanit <sp> .
u ´prava pomoc´ı -Gm:
#!MLF!# "*/mb73bc103003.lab" pro tes tn´ ı <sp> j´ ız da <sp> sa nit <sp> . u ´prava pomoc´ı -Gms:
protestn´ ı j´ ızda sanit
<sil> protestn´ ı j´ ızda sanit <sil>
68
7.3
´ Uprava soubor˚ u symbol˚ u
V t´eto kategorii byl vytvoˇren algoritmus pro pˇrevod k´odov´an´ı fon´em˚ u z jednoznakov´e abecedy na v´ıceznakovou a algoritmus pro redukci souboru symbol˚ u na symboly, kter´e jsou obsaˇzeny v zadan´em automatu. -cc pro zpracov´ an´ı pouˇzit standardn´ı vstup/v´ ystup -R f.sym na stdout ponech´a ze souboru f.sym pouze symboly, kter´e jsou obsaˇzeny v automatu na stdin. Standardnˇe je pro FSM nastaven bin´arn´ı vstup, volba -t pˇred hlavn´ım parametrem nastav´ı textov´ y vstup. pˇr´ıklad souboru symbol˚ u pro FST kontextov´e z´ avislosti:
u ´prava pomoc´ı -cc:
<eps> <sil> <sp> a/<eps>_<eps> a/<eps>_ˇ s a/H_t’ b/a_e l/z_´ y
<eps> sil sp a a+ss ch-a+tt a-b+e z-l+ii
7.4
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
Pˇreindexov´ an´ı vstupn´ıch symbol˚ u v automatu
Tato operace se t´ yk´ a hlavnˇe zpracov´an´ı trif´on˚ u. Vytvoˇr´ıme-li programem rct FST kontextov´e z´ avislosti C, obdrˇz´ıme soubor obsahuj´ıc´ı n3 symbol˚ u, kde n je poˇcet fon´em˚ u. Je moˇzn´e pouˇz´ıt pouze redukci a pˇridˇelit nov´e indexy pouh´ ym ˇc´ıt´an´ım. Myˇslenka je zaloˇzena na moˇznosti disponovat stejn´ ymi indexy jednotliv´ ych HMM tak jak je tomu v HTK knihovn´ ach. -r fn1 fn2
7.5
ke vˇsem vstupn´ım symbol˚ um v souboru fn1 je nalezen index (nutno definovat cestu k definiˇcn´ım soubor˚ um HMM univerz´aln´ım parametrem -d) HMM a vstupn´ı symboly s nov´ ymi indexy jsou zaps´any do souboru fn2. Pak je naˇcten automat ze stdin, star´e indexy vstupn´ıch symbol˚ u jsou nahrazeny nov´ ymi a takto upraven´ y automat je odesl´an na stdout.
Zpracov´ an´ı v´ ystupu
V´ ystupem rozpozn´ avaˇce v AT&T DCD n´astroj´ıch je posloupnost slov realizovan´ a mnoˇzinou FSA - souborem far. Chceme-li pouˇz´ıt HTK n´astroj HResult kter´ y vypoˇc´ıt´ a
69
vlastn´ı u ´spˇeˇsnost rozpozn´ av´ an´ı, potˇrebujeme obdrˇzet mlf soubor reprezentuj´ıc´ı v´ ystupn´ı promluvy. K tomu slouˇz´ı n´ asleduj´ıc´ı parametr. -M g.s scp
7.6
na stdin je far soubor obdrˇzen´ y z AT&T rozpozn´avaˇce drecog, g.s je popisovac´ı soubor symbol˚ u gramatiky a scp je soubor, obsahuj´ıc´ı po ˇr´ adc´ıch seznam cest k jednotliv´ ym pˇr´ıznak˚ um, reprezentuj´ıc´ı promluvy. Na stdout se pak nach´az´ı poˇzadovan´ y mlf soubor.
Zpracov´ an´ı pˇr´ıznak˚ u
Pro rozpozn´ av´ an´ı n´ astrojem AT&T drecog jsou jedn´ım z moˇzn´ ych form´at˚ u hol´a data 1 reprezentuj´ıc´ı vlastn´ı pˇr´ıznaky typu float (32 bit˚ u). Dalˇs´ı moˇznost´ı u ´pravy kepstr´aln´ıch pˇr´ıznak˚ u je jejich normalizace na celkov´ y pr˚ umˇer dat, na kter´ ych se tr´enovaly HMM modely. V praxi to znamen´ a v´ ypoˇcet pr˚ umˇeru vˇsech segment˚ u vˇsech dat tr´enovac´ı mnoˇziny TR a testovac´ı mnoˇziny TS (napˇr. pomoc´ı HTK n´astroje HCompV). Vlastn´ı normalizaci pak provedeme pˇriˇcten´ım rozd´ılu vektor˚ u T¯R − T¯S ke vˇsem segment˚ um reprezentuj´ıc´ı kepstr´aln´ı rovinu testovac´ıch dat. Pˇredstavuje to zp˚ usob jak obej´ıt moˇznost rozd´ıln´ ych mikrofon˚ u, ˇci akustick´ ych kan´ al˚ u v pˇri poˇrizov´ an´ı tr´enovac´ıch a testovac´ıch dat. -E
-U a s
nutno pouˇz´ıvat ve spojen´ı s univerz´aln´ım parametrem -s. Odˇr´ızne 12 bit˚ u pˇredstavuj´ıc´ıch hlaviˇcku jednotliv´ ych HTK soubor˚ u pˇr´ıznak˚ u uveden´ ych v souboru jejich seznamu za parametrem -s a v´ ysledn´e soubory uloˇz´ı na stejn´e m´ısto s rozd´ılnou pˇr´ıponou .fea. Seznam cest k tˇemto nov´ ym soubor˚ um je na stdout nutno pouˇz´ıvat ve spojen´ı s univerz´aln´ım parametrem -s. Uprav´ı vˇsechny pˇr´ıznaky jednotliv´ ych HTK soubor˚ u pˇr´ıznak˚ u uveden´ ych za parametrem ¯ ¯ -s tak, ˇze k nim pˇriˇcte rozd´ıl TR − TS , kde a pˇredstavuje definiˇcn´ı soubor pr˚ umˇeru tr´enovac´ı mnoˇziny dat T¯R a kde b pˇredstavuje definiˇcn´ı soubor pr˚ umˇeru testovac´ı mnoˇziny dat T¯S . Seznam cest k tˇemto nov´ ym soubor˚ um je na stdout
pˇr´ıklad soubor˚ u a, resp. b : <MFCC_E_D_A> <MEAN> 39 -2.382369e+00 -2.991617e+00 -1.603375e+00 2.098884e+00 -6.115943e+00 ...
7.7
Konverze HTK HMM model˚ u na AT&T DCD form´ at
Dalˇs´ı nutnost´ı pro rozpozn´ av´an´ı n´astrojem AT&T drecog je dan´ y form´at model˚ u. Ten je reprezentov´ an souborem splt.am, kter´ y se odkazuje na jednotliv´e hierarchick´e u ´rovnˇe 1
v t´eto pr´ aci kepstr´ aln´ı koeficienty + energie, jejich delta a akceleraˇcn´ı koef. - celkem 39 na segment
70
Markovov´ ych model˚ u. Pro tuto konverzi bylo s v´ yhodou pouˇzito otevˇren´ ych HTK knihoven umoˇzn ˇuj´ıc´ıch naˇc´ıt´ an´ı a zpracov´ an´ı HTK HMM definiˇcn´ıch soubor˚ u. -C fn
-Ct fn
vytvoˇr´ı soubor splt.am spolu s definiˇcn´ımi soubory Markovov´ ych model˚ u v nˇem uveden´ ych. Indexov´an´ı jednotliv´ ych HMM, resp. jejich stav˚ u je prov´ adˇeno na z´akladˇe souboru fn. Ten m˚ uˇze b´ yt zad´an ve 2 smyslu symbol˚ u pro jednotliv´e HMM (koeficienty setrv´an´ı ve stavu jsou napoˇc´ıt´ av´ any pouze v tomto pˇr´ıpadˇe), nebo ve smyslu symbol˚ u stav˚ u. Podm´ınkou spr´avn´e funkce je um´ıstˇen´ı symbol˚ u pro modely ticha a pauzy tak jak je zobrazeno na n´asleduj´ıc´ım pˇr´ıkladˇe. vytvoˇreno pro pˇrevod HMM se shlukovan´ ymi stavy. fn zde mus´ı b´ yt soubor symbol˚ u reprezentuj´ıc´ı jm´ena HMM. Indexy stav˚ u jednotliv´ ych HMM (tedy i soubor fn) je vˇsak potˇreba vytvoˇrit pomoc´ı parametru -r kv˚ uli nutn´e shodˇe s indexov´an´ım model˚ u uvnitˇr HTK knihoven.
N´asleduj´ıc´ı pˇr´ıklad zobrazuje pouˇzit´ı parametru -C pro ˇctyˇri modely. L.sym pˇredstavuje soubor symbol˚ u reprezentuj´ıc´ı jm´ena Markovov´ ych model˚ u a H.sym pak jejich ˇ adek odkazuj´ıc´ı na definiˇcn´ı soubor kostavy. splt.am je v´ ystupem tohoto algoritmu. R´ eficient˚ u setrv´ an´ı ve stavu je vytvoˇren pouze je-li specifikov´an vstupn´ı soubor symbol˚ u reprezentuj´ıc´ı HMM. Soubor splt.hmm reprezentuje po ˇr´adc´ıch jednotliv´e HMM, kde prvn´ı ˇc´ıslo znamen´ a index HMM, druh´e poˇcet v´ yskyt˚ u (nen´ı podstatn´e) a dalˇs´ı pak indexy na jednotliv´e emituj´ıc´ı stavy. Obr´ azek 7.1 zobrazuje n´avaznost jednotliv´ ych soubor˚ u.
mean pdf st
var dur
Obr´ azek 7.1: Struktura model˚ u DCD knihovny
71
L.sym: <eps> <sil> <sp> a o~4
H.sym: 0 1 2 3
<eps> <sil>#0 <sil>#1 <sil>#2 <sp>#1 a#0 a#1 a#2 o#0 o#1 o#2
0 1 2 3 4 5 6 7 8 9 10
v´ ystupn´ı soubor splt.am:
splt.hmm:
hmms states pdfs means variances state_durations
1 2 3 4
splt.hmm splt.st splt.pdf splt.mean splt.var splt.dur
1 1 1 1
1 2 3 4 5 6 7 8 9 10
Soubor splt.st reprezentuje po ˇr´ adk´ach emituj´ıc´ı stavy HMM, kde prvn´ı sloupec znamen´ a index stavu, druh´ y poˇcet v´ yskyt˚ u (-1 znamen´a nepouˇzito) a d´ale pak po sobˇe n´asleduj´ı indexy jednotliv´ ych mixtur a jejich v´ahy. Akustick´e modely v AT&T DCD form´atu nezahrnuj´ı pravdˇepodobnostn´ı matici pˇrechod˚ u. D´a se vˇsak nahradit distribuˇcn´ı funkc´ı setrv´an´ı ve stavu. Jestliˇze pravdˇepodobnost pˇrechodu do stejn´eho stavu je v HTK aii , potom pravdˇepodobnost, ˇze HMM setrv´a di segment˚ u ve stejn´em stavu je d´ana geometrickou distribuˇcn´ı funkc´ı (1 − aii )adiii −1 di ≥ 1 pi (di ) = . (7.1) 0 di ≤ 0 Stˇredn´ı hodnota je spoˇc´ıt´ ana jako d¯i =
1 , 1 − aii
(7.2)
a rozptyl potom 1 2 1 σdi = d¯i = . 2 2(1 − aii )2
(7.3)
Takto jsou spoˇc´ıt´ any jednotliv´e hodnoty souboru splt.dur, kter´ y reprezentuje pro kaˇzd´ y stav stˇredn´ı hodnotu a rozptyl. Soubor splt.pdf zahrnuje indexy stˇredn´ıch hodnot a rozptyl˚ u (diagon´ aly kovarianˇcn´ıch matic v´ıcerozmˇern´eho norm´aln´ıho rozdˇelen´ı), a hodnotu b´aze (0 znamen´ a b´ aze nepouˇzita).
72
splt.dur:
splt.st - prvn´ı 2 mixture:
1 -1 7.80e+00 3.04e+01 2 -1 3.64e+01 6.62e+02 3 -1 2.06e+01 2.13e+02 4 -1 1.95e+01 1.90e+02 atd .. 10 -1 2.77e+00 3.83e+00
1 -1 193 0.100469 2 -1 225 0.129627 3 -1 257 0.122439 4 -1 225 0.129627 atd. ... 10 -1 161 0.00000
194 226 258 226
splt.pdf: 0.045112 0.020172 0.024472 0.020172
... ... ... ...
1 1 1 0 2 2 2 0 3 3 3 0 4 4 4 0 atd. ... 162 0.087337 ... 288 288 288 0
Soubory splt.mean a splt.var reprezentuj´ı stˇredn´ı hodnoty a rozptyly (diagon´aly kovarianˇcn´ıch matic v´ıcerozmˇern´eho norm´aln´ıho rozdˇelen´ı). Form´at je shodn´ y s dˇr´ıve uv´adˇen´ ymi form´aty. splt.mean - prvn´ı 2 pˇr´ıznaky:
splt.var - prvn´ı 2 pˇr´ıznaky:
1 -1 0.000000e+00 0.000000e+00 ... 1 -1 1.000000e+00 1.000000e+00 ... 2 -1 5.427643e+00 -6.866843e+00 ... 2 -1 7.478480e+00 2.573437e+01 ... 3 -1 5.064353e+00 -2.239911e+00 ... 3 -1 1.128059e+01 2.815436e+01 ... atd. ... atd. ... 288 -1 -9.095788e+00 -1.425313e+00 ... 288 -1 8.665616e+00 8.845456e+00 ...
7.8
Rozpozn´ av´ an´ı programem rct
Souˇcasn´ y stav algoritmu pro rozpozn´av´an´ı programu rct je moˇzn´e posoudit z v´ ysledk˚ u v sekci 10. Algoritmus zaloˇzen´ y na b´azi Viterbiho algoritmu pouˇz´ıv´a vˇsechny druhy proˇrez´av´ an´ı uveden´ ych v kap. 1.8.1, pˇriˇcemˇz volitelnˇe nastavit lze pouze proˇrez´av´an´ı typu beam. Algoritmus pouˇz´ıv´ a HTK knihovny, a tak je nutn´e specifikovat cestu k HTK HMM definiˇcn´ım soubor˚ um. Vstupem je rozpozn´avac´ı s´ıt’ H ◦ L ◦ G, resp. H ◦ C ◦ L ◦ G, definiˇcn´ı soubor symbol˚ u a dan´ a promluva, resp. soubor se seznamem cest k dan´ ym promluv´am. V´ ystupem pak mlf soubor.
73
-V f1 [f2]
rozpozn´ an´ı vstupn´ı promluvy (uveden´e za univ. parametrem -o), resp. promluv (seznam za univ. parametrem -s) pomoc´ı rozpozn´avac´ı s´ıtˇe (stdin) a seznamu vstupn´ıch symbol˚ u t´eto s´ıtˇe f1. Ten je automaticky rozpozn´ an (na z´akladˇe v´ yskytu znak˚ u # a ve druh´em ˇr´adku tohoto souboru symbol˚ u) zda se jedn´a n´azvy shlukovan´ ych stav˚ u, ˇci nikoliv. V´ ystupem je standardnˇe rozpoznan´a posloupnost slov (stdout) reprezentovan´ a pomoc´ı FSA, resp. zˇretˇezen´e posl. slov (far arch´ıv), pokud je vstupem jedin´ a promluva (volba -o), resp. seznam cest na vstupn´ı promluvy (volba -s). V´ ystup m˚ uˇze b´ yt i rovnou v HTK mlf form´atu, pokud je specifikov´ an seznam symbol˚ u slov f2. Implicitn´ı hodnota pro n´asoben´ı vah (univ. parametr -a) je 1 a pro proˇrez´av´an´ı typu beam 100. Nutnost´ı je parametr -d, kter´ ym specifikujeme cestu k HTK HMM definiˇcn´ım soubor˚ um.
74
Kapitola 8
Generov´ an´ı jednotliv´ ych ˇ c´ ast´ı rozpozn´ avac´ı s´ıtˇ e
8.1
Jazykov´ y model
Na u ´vod je dobr´e poznamenat, ˇze vyˇcerp´avaj´ıc´ı moˇznosti generov´an´ı jazykov´ ych model˚ u pod´ av´ a set AT&T n´ astroj˚ u grmtools. Program rct tak obsahuje algoritmy generov´an´ı FSA, resp. WFSA, reprezentuj´ıc´ı jazykov´ y model pouze na z´akladˇe HTK lattice souboru. -gl fn
-gh fn
8.2
pˇrevod bezv´ ahov´eho HTK lattice (stdin) na FSA (stdout) a vygenerov´ an´ı souboru symbol˚ u fn. Vytvoˇreno zejm´ena pro pˇrevod v´ ystupu HTK n´ astroje HParse a moˇznost srovn´av´an´ı v´ ysledk˚ u rozpozn´av´an´ı za pouˇzit´ı HTK a AT&T n´astroj˚ u. Poznamenejme, ˇze pro spr´avnou funkci algoritmu je nutn´e zaˇc´ınat a konˇcit jazykov´ y model symbolem ticha (“sil“). pˇrevod HTK lattice ARPA form´atu [You02] stdin na WFSA stdout a vygenerov´ an´ı souboru symbol˚ u fn. V souˇcasnosti je funkˇcn´ı pouze reprezentace bigramu (navrˇzeno pro zpracov´an´ı v´ ystupu HTK n´astroje HLStats s parametrem -b) a jen textov´ y form´at v´ ystupu reprezentuj´ıc´ı WFSA.
Slovn´ık
Zp˚ usoby vytvoˇren´ı slovn´ıkov´eho WFST programem rct jsou vˇzdy zaloˇzen´e na zpracov´an´ı vstupn´ıch symbol˚ u jazykov´eho WFSA napˇr. G.sym, seznamu slov (wlist) a k nˇemu pˇr´ısluˇs´ıc´ımu seznamu jejich jednoznakov´ ych fonetick´ ych pˇrepis˚ u (pron). V´ ystupem je pak reprezentace slovn´ıkov´eho WFST a soubor symbol˚ u jednotliv´ ych fon´em˚ u. Pˇr´ıklady potˇrebn´ ych vstupn´ıch soubor˚ u ukazuje n´asleduj´ıc´ı v´ ypis.
75
G.sym: <eps> <sil> <sp> tˇ ri ctyˇ ˇ ri pˇ et
0 1 2 3 4 5
-l f1 f2 f3
-ls f1 f2 f3 -lL f1 f2 f3
wlist:
pron:
ˇtyˇ c ri pˇ et tˇ ri
ˇtyˇ c ry pjet tˇ Ry
pouˇzije definiˇcn´ı soubor symbol˚ u gramatiky stdin, seznam slov f1 a seznam jejich fonetick´ ych pˇrepis˚ u f2 (jejich ˇrazen´ı po ˇr´adc´ıch si mus´ı navz´ ajem odpov´ıdat) pro vytvoˇren´ı WFST reprezentuj´ıc´ıho slovn´ık stdout a seznamu jeho symbol˚ u f3. Pˇr´ıklad pro v´ yˇse uveden´e pˇr´ıklady vstupn´ıch soubor˚ u je na obr. 8.1 nahoˇre. funguje stejn´ ym zp˚ usobem jako parametr -l, na konec slov vˇsak pˇrid´av´ a model kr´ atk´e pauzy, viz obr. 8.1 dole. funguje obdobnˇe jako parametr -ls, pro jednotliv´a slova vˇsak uvaˇzuje i alternativn´ı v´ yslovnost. Data pro alternativn´ı v´ yslovnost si program rct naˇc´ıt´ a ze souboru rctdata/paltpron.txt. Zde je dobr´e upozornit, ˇze pokud pˇripravujeme model gramatiky pomoc´ı nˇejak´eho mlf souboru, je na m´ıstˇe ˇ nutnost jeho modifikace. Casto se st´av´a, ˇze mlf soubor obsahuje dva term´ıny znamenaj´ıc´ı jedno slovo akor´at s jin´ ym fonetick´ ym pˇrepisem, napˇr´ıklad ˇ ctyˇ ri-ˇ styˇ ri. Zde je potˇreba toto odstranit, tedy pro uveden´ y pˇr´ıklad v´ yskyty slov ˇ styˇ ri nahradit slovy ˇ ctyˇ ri. To je moˇzn´e prov´est pomoc´ı parametru -m (stdin/stdout), kde se k nahrazov´an´ı slov pouˇz´ıv´ a soubor rctdata/altpron.txt, kter´ y by mˇel korespondovat s v´ yˇse uveden´ ym souborem potˇrebn´ ym pro vytvoˇren´ı alternativn´ı v´ yslovnosti. Pˇr´ıklad WFST vytvoˇren´eho t´ımto zp˚ usobem je na obr. 8.2.
rctdata/altpron.txt:
rctdata/paltpron.txt:
$b B /B/ $b´ e $c C /C/ $c´ e ctyˇ ˇ ri ˇ ctyry ˇ styry ˇ styˇ ri
b@ b´ e c@ c´ e ctyˇ ˇ ri ˇ ctyry ˇ styry ˇ styˇ ri
8.3
FST kontextov´ e z´ avislosti
Pouˇz´ıv´ ame-li trif´ ony jako z´ akladn´ı fonetickou jednotku (HMM modely je pak reprezentuj´ı), potˇrebujeme tento pˇrekladov´ y automat ke kompozici se s´ıt´ı LG. Jak jiˇz bylo pops´ano 2 automat je pomˇernˇe sloˇzit´ y (n + n + 1 stav˚ u a n3 + 2n2 + n pˇrechod˚ u, kde n je poˇcet fon´em˚ u - 45 pro ˇceˇstinu). Nicm´enˇe po jeho kompozici CLG = C ◦ LG m´a automat CLG srovnatelnou sloˇzitost jako p˚ uvodn´ı LG. 76
0
<sil>:<sil>
1
č:čtyř i
2
t:<eps>
p:pět
j:<eps>
7
t:tř i
3
8
Ř:<eps>
11
12
y:<eps>
ř :<eps>
4
e:<eps>
t:<eps>
9
y:<eps>
y:<eps>
5
6
10
13
l
0
<sil>:<sil>
1
č:čtyř i
2
p:pět t:tř i
8
13
t:<eps>
j:<eps>
Ř:<eps>
3
9
14
y:<eps>
e:<eps>
y:<eps>
ls
4
10
15
ř :<eps>
t:<eps>
<sp>:<eps>
5
11
y:<eps>
6
<sp>:<eps>
<sp>:<eps>
7
12
16
Obr´ azek 8.1: Pˇr´ıklad vytvoˇren´ı WFST slovn´ıku pomoc´ı parametr˚ u -l a -ls
č:<eps>
č:<eps>
0
<sil>:<sil>
1
<eps>:čtyř i
2
š:<eps>
27
j:<eps>
32
Ř:<eps>
p:pět t:tř i
š:<eps>
3
9
15
21
28
33
t:<eps>
4
t:<eps>
10
t:<eps>
16
t:<eps>
e:<eps>
y:<eps>
22
29
34
y:<eps>
y:<eps>
y:<eps>
y:<eps>
t:<eps>
<sp>:<eps>
5
11
17
23
30
ř :<eps>
r:<eps>
r:<eps>
ř :<eps>
<sp>:<eps>
6
12
18
24
y:<eps>
7
y:<eps>
13
y:<eps>
y:<eps>
<sp>:<eps>
<sp>:<eps>
19
<sp>:<eps>
25
<sp>:<eps>
8
14
20
26
31
35
Obr´azek 8.2: Pˇr´ıklad vytvoˇren´ı WFST slovn´ıku s alternativn´ımi v´ yslovnostmi pomoc´ı parametru -lL -x fn
-xd fn
8.4
vstupem (stdin) je soubor symbol˚ u slovn´ıku (fon´emy), v´ ystupem pak 3 u ´pln´ y soubor symbol˚ u trif´on˚ u poˇctu (n + 1) (n je poˇcet fon´em˚ u) fn a v´ ystupn´ı FSA (stdout) v textov´em form´atu. Pro spr´avnou funkci je potˇreba ve v´ ystupn´ım automatu zamˇenit vstupn´ı symboly s v´ ystupn´ımi (AT&T operace fsminvert). vytvoˇr´ı se FST kontextov´e z´avislosti pro dif´ony, jinak tot´eˇz jako pˇredchoz´ı parametr.
WFST reprezentuj´ıc´ı Markovovy modely
Pˇripomeˇ nme, ˇze Markovovy modely se zahrnuj´ı dvˇe ˇc´asti. Prvn´ı je stavov´ y automat s definovan´ ymi pravdˇepodobnostmi pˇrechod˚ u reprezentuj´ıc´ı ˇcasov´e vlastnosti element´arn´ıch u ´sek˚ u ˇreˇci, druhou pak definice v´ıcerozmˇern´ ych norm´aln´ıch rozdˇelen´ı, resp. jejich
77
hustotn´ıch funkc´ı reprezentuj´ıc´ı spektr´aln´ı vlastnosti element´arn´ıch u ´sek˚ u ˇreˇci. Koneˇcn´ ym automatem bez znalosti vstupn´ı promluvy je moˇzn´e reprezentovat pouze prvn´ı ˇc´ast. -Hw fn
-Ht fn
vstupem (stdin) je soubor symbol˚ u FST kontextov´e z´avislosti (trif´ony), resp. slovn´ıku (fon´emy), v´ ystupem pak u ´pln´ y soubor vstupn´ıch symbol˚ u Markovov´ ych model˚ u (generov´an jm´enem fon´emu a n´asledn´ ym pˇrid´an´ım indexu stavu) (fn - soubor Hw.sym na n´asleduj´ıc´ım pˇr´ıkladˇe) a WFST (stdout), kde v´ ahy znamenaj´ı z´aporn´e pˇrirozen´e logaritmy pravdˇepodobnost´ı pˇrechod˚ u jednotliv´ ych HMM aij . Nutnost´ı je pouˇz´ıt univerz´aln´ı parametr -d hmm, kde hmm je cesta k definiˇcn´ım soubor˚ um HTK HMM. rozd´ıl t´eto volby oproti parametru -Hw spoˇc´ıv´a v pˇredpokl´adan´em shlukov´ an´ı vˇsech stav˚ u v zadan´ ych definiˇcn´ıch souborech pro HMM (volba -d). N´ azvy symbol˚ u a jejich indexy (soubor H.sym na n´asleduj´ıc´ım pˇr´ıkladˇe) tak pˇr´ımo odpov´ıdaj´ı n´azv˚ um a index˚ um definovan´ ych pro shlukovan´e stavy HTK HMM definiˇcn´ımi soubory a HTK knihovnami. Pˇr´ıklad sestaven´ı touto cestou pomoc´ı souboru symbol˚ u uveden´eho v n´ asleduj´ıc´ıch pˇr´ıkladech pro 5 model˚ u C.sym je na obr. 8.3
. C.sym: <eps> <sil> <sp> k/a_c n/b_O p/ˇ s_a
8.5
Hw.sym: 0 1 2 3 4 5
<eps> <sil>#0 <sil>#1 <sil>#2 <sp>#1 k/a_c#0 k/a_c#1 k/a_c#2 n/b_O#0 n/b_O#1 n/b_O#2 p/ˇ s_a#0 p/ˇ s_a#1 p/ˇ s_a#2
H.sym: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
<eps> n2_8 k2_8 p4_7 p3_3 n4_6 k4_4 p2_7 k3_3 sill silr
0 133 158 376 666 803 815 936 1088 1204 1205
Vytvoˇren´ı WSFA reprezentuj´ıc´ıho pravdˇ epodobnosti stav˚ u promluvy
Tato procedura je nutn´ a pouze v pˇr´ıpadˇe, ˇze rozpozn´av´ame pomoc´ı AT&T n´astroje fsmcompose. Jedn´ a se v podstatˇe o napoˇc´ıt´an´ı pravdˇepodobnost´ı vˇsech model˚ u pro vˇsechny 78
sill:<eps>/2.424 silst:<eps>/0.054 sill:<eps>/0.185 sill:<eps>/2.520 <eps>:<sil>/0
1
2
silr:<eps>/0.077 silst:<eps>/2.929
3
silr:<eps>/3.284
4/0
silst:<eps>/3.285
silst:<eps>/0.185
<eps>:<sp>/0
5
silst:<eps>/2.520
k2_8:<eps>/0.531 0
<eps>:k/a_c/0 <eps>:n/b_O/0
7
k2_8:<eps>/0.886
n2_8:<eps>/0.656 <eps>:p/š_a/0
11
n2_8:<eps>/0.731
p2_7:<eps>/0.501 15
p2_7:<eps>/0.931
6/0 k3_3:<eps>/0.980 8 n3_5:<eps>/0.750 12 p3_3:<eps>/0.907 16
k4_4:<eps>/0.695 k3_3:<eps>/0.469
9
k4_4:<eps>/0.691
10/0
n4_6:<eps>/1.082 n3_5:<eps>/0.638
13
n4_6:<eps>/0.413
14/0
p4_7:<eps>/1.194 p3_3:<eps>/0.516
17
p4_7:<eps>/0.360
18/0
Obr´ azek 8.3: Pˇr´ıklad vytvoˇren´ı HMM WFST pro shlukovan´e stavy
segmenty, kter´e jsou pak reprezentov´any jednotliv´ ymi vahami. Potˇrebn´ y WFSA tak obsahuje T + 1 stav˚ u a n ∗ T pˇrechod˚ u, kde T je poˇcet segment˚ u vstupn´ı promluvy a n poˇcet HMM model˚ u reprezentuj´ıc´ıch fon´emy. -O fn
vytvoˇr´ı WFSA (stdout) na z´akladˇe souboru vstupn´ıch symbol˚ u HMM WFSTfn, HTK definiˇcn´ıch soubor˚ u HMM definovan´ ych podle cesty za univ. parametrem -d a souboru promluvy HTK mfc form´atu definovan´e za parametrem -o. Je moˇzn´e pouˇz´ıt i univ. parametr -s kter´ y zpracuje cel´ y seznam mfc soubor˚ u uveden´ y za t´ımto parametrem a v´ ysledn´e WFSA v bin´ arn´ım form´atu se objev´ı zˇretˇezenˇe (far arch´ıv) na stdout. Pˇr´ıklad pro tˇri segmenty je zobrazen na obr. 8.4. Poznamenejme, ˇze proces neumoˇzn ˇuje zadat jako vstup symboly ve tvaru n´azv˚ u shlukovan´ ych stav˚ u.
79
<sil>#0:1/55.07
k/a_c#0:5/75.13
<sil>#0:1/58.52
<sil>#1:2/61.57
<sil>#1:2/67.68 k/a_c#1:6/80.43
0
<sil>#2:3/54.41 <sp>#1:4/78.92
1
<sil>#0:1/57.53 <sil>#1:2/67.15
2
<sil>#2:3/60.76 <sp>#1:4/79.00
k/a_c#0:5/73.02
<sil>#2:3/60.88
k/a_c#0:5/75.03
k/a_c#1:6/78.87
<sp>#1:4/80.31
k/a_c#1:6/80.11
3/0
Obr´ azek 8.4: Pˇr´ıklad WFSA reprezentuj´ıc´ı pravdˇepodobnosti stav˚ u promluvy
80
Kapitola 9
Zpracov´ an´ı datab´ aze s morfologick´ ymi k´ ody
9.1
ˇ Zpracov´ an´ı dat z Cesk´ eho n´ arodn´ıho korpusu
ˇ y n´ Cesk´ arodn´ı korpus (d´ ale jen UCNK) umoˇzn ˇuje zaregistrovan´ ym uˇzivatel˚ um zad´ avat dotazy do zvolen´e datab´ aze. Seznam dostupn´ ych korpus˚ u lze nal´ezt na [Fila]. Pro experimenty v t´eto pr´ aci byl vybr´an korpus SYN2000. Poznamenejme, ˇze zde uveden´e texty popisuj´ıc´ı morfologick´ y k´od z UCNK jsou pˇrevzaty z [Kop].
9.1.1
Struktura UCNK korpusu SYN2000
Korpus SYN2000 [Filb] je oznaˇcen jako ˇz´anrovˇe vyv´aˇzen´ y korpus, kde pˇrevaˇzuj´ı texty z let 1990 aˇz 1999. Obsahuje cca 100 mil. slov, kaˇzd´e slovo m´a pˇriˇrazen´ y z´akladn´ı tvar (lemma) a morfologickou znaˇcku (TAG). Struktura morfologick´e znaˇcky, resp. TAGu je zn´azornˇena tabulkou 9.1, kde POS je slovn´ı druh (z angl. part of speeech). A C D I 1 POS
adjektivum (pˇr´ıdavn´e jm´eno) numer´ al (ˇc´ıslovka, nebo ˇc´ıseln´ y v´ yraz s ˇc´ıslicemi) adverbium (pˇr´ıslovce) interjekce (citoslovce) 2 SPO
3 GEN
4 NUM
5 CAS
6 PGE
7 PNU
8 PER
9 TEN
10 GRA
11 NEG
12 VOI
15 OPT
16 ASP
Tabulka 9.1: Struktura morfologick´e znaˇcky v UCNK korpusu 81
J N P R T V X Z
konjunkce (spojka) substantivum (podstatn´e jm´eno) pronomen (z´ ajmeno) prepozice (pˇredloˇzka) partikule (ˇc´ astice) verbum (sloveso) nezn´ am´ y, neurˇcen´ y, neurˇciteln´ y slovn´ı druh interpunkce, hranice vˇety
SPO je detailn´ı urˇcen´ı slovn´ıho druhu (z angl. zkratky SUBPOS ). Detailn´ı slovn´ı druh slouˇz´ı pˇredevˇs´ım k urˇcen´ı dalˇs´ıch relevantn´ıch morfologick´ ych kategori´ı, kter´e jsou uvedeny na dalˇs´ıch pozic´ıch (ne vˇzdy vˇsak jednoznaˇcnˇe). Ze znaku pouˇzit´eho pro detailn´ı urˇcen´ı slovn´ıho druhu je moˇzn´e jednoznaˇcnˇe vyvodit hlavn´ı slovn´ı druh (pozice 1). ! # , . : ; = ? ^ } @ 0 1 2 3 4 5 6 7 8
zkratka jako adverbium hranice vˇety (jen u ”virtu´aln´ıho” slova ”###”) slovo ”kr´ at” (slovn´ı druh: spojka) spojka podˇradic´ı (vˇc. ”aby” a ”kdyby” ve vˇsech tvarech) zkratka jako adjektivum interpunkce vˇseobecnˇe (ne vˇsak ”virtu´aln´ı” slovo ### jako hranice vˇety) zkratka jako substantivum ˇc´ıslo psan´e ˇc´ıslicemi (znaˇckov´ano jako slovn´ı druh: ˇc´ıslovka - ’C’) ˇc´ıslovka ”kolik” spojka souˇradic´ı ˇc´ıslovka psan´ a ˇr´ımsk´ ymi ˇc´ıslicemi zkratka jako sloveso slovn´ı tvar, kter´ y nebyl morfologickou anal´ yzou rozpozn´an (znaˇckov´ano jako slovn´ı druh: nezn´am´ y - ’X’) pˇredloˇzka s pˇripojen´ ym ”-ˇ n” (nˇej), ”proˇ n”, ”naˇ n”, atd. (znaˇckov´ano jako slovn´ı druh: z´ ajmeno - ’P’) vztaˇzn´e pˇrivlastˇ novac´ı z´ajmeno ”jehoˇz”, ”jej´ıˇz”, ... slovo pˇred pomlˇckou zkratka jako ˇc´ıslovka vztaˇzn´e nebo t´ azac´ı z´ajmeno s adjektivn´ım skloˇ nov´an´ım (obou typ˚ u: ”jak´ y”, ”kter´ y”, ”ˇc´ı”, ...) z´ ajmeno ”on” ve tvarech po pˇredloˇzce (tj. ”n-”: ”nˇej”, ”nˇeho”, ...) reflex´ıvn´ı z´ ajmeno ”se” v dlouh´ ych tvarech (”sebe”, ”sobˇe”, ”sebou”) reflex´ıvn´ı z´ ajmeno ”se”, ”si” pouze v tˇechto tvarech, a d´ale ”ses”, ”sis” pˇrivlastˇ novac´ı z´ ajmeno ”sv˚ uj” 82
9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j
vztaˇzn´e z´ ajmeno ”jenˇz”, ”jiˇz”, ... po pˇredloˇzce (”n-”: ”nˇehoˇz”, ”n´ıˇz”, ...) adjektivum obyˇcejn´e sloveso, tvar pˇr´ıtomn´eho nebo budouc´ıho ˇcasu adjektivum, jmenn´ y tvar z´ ajmeno ukazovac´ı (”ten”, ”onen”, ...) vztaˇzn´e z´ ajmeno ”coˇz” souˇc´ ast pˇredloˇzky, kter´a nikdy nestoj´ı samostatnˇe (”nehledˇe”, ”vzhledem”, ...) pˇr´ıdavn´e jm´eno odvozen´e od slovesn´eho tvaru pˇr´ıtomn´eho pˇrechodn´ıku kr´ atk´e tvary osobn´ıch z´ajmen (”mˇe”, ”mi”, ”ti”, ”mu”, ...) citoslovce (znaˇckov´ano jako slovn´ı druh: citoslovce - ’I’) vztaˇzn´e z´ ajmeno ”jenˇz” (”jiˇz”, ...), bez pˇredloˇzky z´ ajmeno t´ azac´ı nebo vztaˇzn´e ”kdo”, vˇc. tvar˚ u s ”-ˇz” a ”-s” z´ ajmeno neurˇcit´e ”vˇsechen”, ”s´am” pˇr´ıdavn´e jm´eno odvozen´e od slovesn´eho tvaru minul´eho pˇrechodn´ıku substantivum, obyˇcejn´e samostatnˇe stoj´ıc´ı z´ajmena ”sv˚ uj”, ”nesv˚ uj”, ”tentam” osobn´ı z´ ajmena (vˇc. tvaru ”tys”) z´ ajmeno t´ azac´ı/vztaˇzn´e ”co”, ”copak”, ”coˇzpak” pˇredloˇzka, obyˇcejn´a z´ ajmeno pˇrivlastˇ novac´ı ”m˚ uj”, ”tv˚ uj”, ”jeho” (vˇc. plur´alu) ˇc´ astice (slovn´ı druh ’T’) adjektivum pˇrivlastˇ novac´ı (na ”-˚ uv” i ”-in”) pˇredloˇzka vokalizovan´a (”ve”, ”pode”, ”ku”, ...) z´ ajmena z´ aporn´ a (”nic”, ”nikdo”, ”nijak´ y”, ”ˇz´adn´ y”, ...) slovn´ı tvar, kter´ y byl rozpozn´an, ale znaˇcka (ve slovn´ıku) chyb´ı z´ ajmeno ”co” spojen´e s pˇredloˇzkou (”oˇc”, ”naˇc”, ”zaˇc”) z´ ajmeno neurˇcit´e (”nˇejak´ y”, ”nˇekter´ y”, ”ˇc´ıkoli”, ”cosi”, ...) ˇc´ıslovka neurˇcit´ a (”mnoho”, ”m´alo”, ”tolik”, ”nˇekolik”, ”kdov´ıkolik”, ...) pˇr´ıslovce (bez urˇcen´ı stupnˇe a negace; ”pozadu”, ”naplocho”, ...) kondicion´ al slovesa b´ yt (”by”, ”bych”, ”bys”, ”bychom”, ”byste”) ˇc´ıslovka druhov´ a, adjektivn´ı skloˇ nov´an´ı (”jedny”, ”dvoj´ı”, ”desater´ y”, ...) slovesn´ y tvar pˇrechodn´ıku pˇr´ıtomn´eho (”-e”, ”-´ıc”, ”-´ıce”) slovesn´ y tvar: infinitiv pˇr´ıslovce (s urˇcen´ım stupnˇe a negace; ”velk´ y”, ”zaj´ımav´ y”, ...) ˇc´ıslovky druhov´e ”jedny” a ”nejedny” slovesn´ y tvar rozkazovac´ıho zp˚ usobu ˇc´ıslovka druhov´ a >= 4, substantivn´ı postaven´ı (”ˇctvero”, ”desatero”, ...)
83
k l m n o p q r s t u v w x y z
ˇc´ıslovka druhov´ a >= 4, adjektivn´ı postaven´ı, kr´atk´ y tvar (”ˇctvery”, ...) ˇc´ıslovky z´ akladn´ı 1-4, ”p˚ ul”, ...; sto a tis´ıc v nesubstantivn´ım skloˇ nov´an´ı slovesn´ y tvar pˇrechodn´ıku minul´eho, pˇr´ıp. (zastarale) pˇrechodn´ık pˇr´ıtomn´ y dokonav´ y ˇc´ıslovky z´ akladn´ı >= 5 ˇc´ıslovky n´ asobn´e neurˇcit´e (”-kr´at”: ”mnohokr´at”, ”tolikr´at”, ...) slovesn´e tvary minul´eho aktivn´ıho pˇr´ıˇcest´ı (vˇcetnˇe pˇridan´eho ”-s”) archaick´e slovesn´e tvary minul´eho aktivn´ıho pˇr´ıˇcest´ı (zakonˇcen´ı ”-t’”) ˇc´ıslovky ˇradov´e slovesn´e tvary pas´ıvn´ıho pˇr´ıˇcest´ı (vˇc. pˇridan´eho ”-s”) archaick´e slovesn´e tvary pˇr´ıtomn´eho a budouc´ıho ˇcasu (zakonˇcen´ı ”-t’”) ˇc´ıslovka t´ azac´ı n´ asobn´a ”kolikr´at” ˇc´ıslovky n´ asobn´e (”-kr´at”: ”pˇetkr´at”, ”poprv´e” ...) ˇc´ıslovky neurˇcit´e s adjektivn´ım skloˇ nov´an´ım (”nejeden”, ”tolik´at´ y”, ”nˇekolik´ at´ y” ...) zkratka, slovn´ı druh neurˇcen/nezn´am´ y zlomky zakonˇcen´e na ”-ina” (znaˇckov´ano jako slovn´ı druh: ˇc´ıslovka - ’C’) ˇc´ıslovka t´ azac´ı ˇradov´a ”kolik´at´ y”
GEN je rod (z angl. gender) F H I M N Q T X Y Z
neurˇcuje se femininum (ˇzensk´ y rod) femininum nebo neutrum (tedy nikoli maskulinum) maskulinum inanimatum (rod muˇzsk´ y neˇzivotn´ y) maskulinum animatum (rod muˇzsk´ y ˇzivotn´ y) neutrum (stˇredn´ı rod) femininum singul´ aru nebo neutrum plur´alu (pouze u pˇr´ıˇcest´ı a jmenn´ ych adjektiv) masculinum inanimatum nebo femininum (jen plur´al u pˇr´ıˇcest´ı a jmenn´ ych adjektiv) libovoln´ y rod (F/M/I/N) masculinum (animatum nebo inanimatum) ’nikoli femininum’ (tj. M/I/N; pˇredevˇs´ım u pˇr´ıslovc´ı)
NUM je ˇc´ıslo (z angl. number). D P
neurˇcuje se du´ al (pouze 7. p´ ad feminin) plur´ al (mnoˇzn´e ˇc´ıslo) 84
S W X
singul´ ar (jednotn´e ˇc´ıslo) pouze v kombinaci s jmenn´ ym rodem ’Q’ (singul´ar pro feminina, plur´al pro neutra) libovoln´e ˇc´ıslo (P/S/D)
CAS je p´ ad (z angl. case). 1 2 3 4 5 6 7 X
neurˇcuje se nominativ (1. p´ ad) genitiv (2. p´ ad) dativ (3. p´ ad) akuzativ (4. p´ ad) vokativ (5. p´ ad) lokativ (6. p´ ad) instrument´ al (7. p´ ad) libovoln´ y p´ ad (1/2/3/4/5/6/7)
PGE je pˇrivlastˇ novac´ı rod ( z angl. zkratky POSSGENDER). Rody muˇzsk´ y neˇzivotn´ y a stˇredn´ı se nikdy nevyskytuj´ı samostatnˇe.’M’ se m˚ uˇze vyskytnout jen u pˇrivlastˇ novac´ıch adjektiv (ne u pˇr´ıslovc´ı). F M X Z
neurˇcuje se femininum (ˇzensk´ y rod) maskulinum animatum (rod muˇzsk´ y ˇzivotn´ y) libovoln´ y rod (F/M/I/N) ’nikoli femininum’ (tj. M/I/N; u pˇrivlastˇ novac´ıch adjektiv)
PNU je pˇrivlastˇ novac´ı ˇc´ıslo z angl. zkratky POSSNUMBER). P S
neurˇcuje se plur´ al (mnoˇzn´e ˇc´ıslo) singul´ ar (jednotn´e ˇc´ıslo) PER je osoba (z angl. person).
1 2 3 X
neurˇcuje se 1. osoba 2. osoba 3. osoba libovoln´ a osoba (1/2/3)
85
TEN je ˇcas (z angl. tense). F H P R X
neurˇcuje se futurum (budouc´ı ˇcas) minulost nebo pˇr´ıtomnost (P/R) pr´ezens (pˇr´ıtomn´ y ˇcas) minul´ y ˇcas libovoln´ y ˇcas (F/R/P) GRA je stupeˇ n (z angl. grade).
1 2 3
neurˇcuje se 1. stupeˇ n 2. stupeˇ n 3. stupeˇ n NEG je negace (z angl. negation).
A N
neurˇcuje se afirmativ (bez negativn´ı pˇredpony ”ne-”) negace (tvar s negativn´ı pˇredponou ”ne-”) VOI je aktivum / pas´ıvum (z angl. voice)
A P
neurˇcuje se aktivum nebo ’nikoli pas´ıvum’ pas´ıvum OPT je varianta, stylov´ y pˇr´ıznak apod. (z angl. option).
1 2 3 4 5 6 7 8 9
neurˇcuje se (”z´ akladn´ı” tvar pro kategorie v pozic´ıch 1-14) varianta, v´ıcem´enˇe rovnocenn´a (”m´enˇe ˇcast´a”) ˇr´ıdk´ a, archaick´ a nebo kniˇzn´ı varianta velmi archaick´ y tvar, t´eˇz hovorov´ y velmi archaick´ y nebo kniˇzn´ı tvar, pouze spisovn´ y (ve sv´e dobˇe) hovorov´ y tvar, ale v z´asadˇe tolerovan´ y ve veˇrejn´ ych projevech hovorov´ y tvar (koncovka standardn´ı obecn´e ˇceˇstiny) hovorov´ y tvar (koncovka standardn´ı obecn´e ˇceˇstiny), varianta k ’6’ zkratky speci´ aln´ı pouˇzit´ı (tvary z´ajmen po pˇredloˇzk´ach apod.)
86
ASP je vid (z angl. aspect). P I B
perfektivum (dokonav´e sloveso) imperfektivum (nedokonav´e sloveso) obouvid´e sloveso
Protoˇze jedin´ ym ofici´ aln´ım moˇzn´ ym zp˚ usobem pˇr´ıstupu do datab´aze UCNK je pomoc´ı programu bonito [Kop], kter´ y je plnˇe grafick´ y a neumoˇzn ˇuje zpracov´an´ı dat pomoc´ı skript˚ u, byl vyvinut komunikaˇcn´ı modul pro program rct. -GUn q -GUq t q
-GUs l -GUf -Gku
9.1.2
vyp´ıˇse poˇcet v´ yskyt˚ u dotazu q v UCNK syntaxe dotazu dle manu´alu k programu bonito [Kop]. vyp´ıˇse v´ ysledek dotazu q v UCNK syntaxe dotazu dle manu´alu k programu bonito [Kop]. Form´at v´ ysledku f lze specifikovat pomoc´ı dalˇs´ıho ˇretˇezce. Napˇr´ıklad vol´an´ı rct -GUq "word,lemma,tag" \"lesem\" vr´ at´ı lesem \{col0 coll\} /les/NNIS7-----A---- attr vyp´ıˇse frekvenˇcn´ı anal´ yzu slov (vˇcetnˇe morfologick´ ych znaˇcek) pro lemma l napln´ı MYSQL datab´azi SYN2000 pro vˇsechna lemma slov na stdin vytvoˇr´ı soubor morfologick´eho popisu na z´akladˇe naplnˇen´e MYSQL datab´ aze parametrem -GUf.
MYSQL Datab´ aze pro ukl´ ad´ an´ı slov a jejich morfologick´ ych znaˇ cek
W_Word D_Distribution D_W_Id INT(10) D_T_Id INT(10)
W_Id INT(10) W_Word VARCHAR(64) Indexes
D_Lemma_W_Id INT(10) D_NOccur INT(10) Indexes
T_Tag T_Id INT(10) T_Tag CHAR(16) Indexes
Obr´ azek 9.1: Sch´ema datab´aze pro ukl´ad´an´ı morfologick´ ych struktur slov Program rct je v souvislosti s korpusem SYN2000 pouˇzit s volbou -GUf. Pomoc´ı t´e se do MYSQL datab´ aze (struktura viz obr. 9.1) uloˇz´ı nejen vˇsechna slova z nˇejak´e tr´enovac´ı 87
mnoˇziny slov a jejich morfologick´e k´ody, ale i slova pˇr´ıbuzn´a (slova se spoleˇcn´ ym lem1 matem). Datab´ aze je pak pouˇzita pro vytvoˇren´ı morfologick´eho analyz´atoru . Jej´ı hlavn´ı v´ yznam spoˇc´ıv´ a v jak´esi cache, kter´a zamezuje opakovan´ ym ˇz´adostem na UCNK server.
9.2
Soubor morfologick´ eho popisu
V dobˇe v´ yvoje programu rct byla k dispozici datab´aze UJC [Tˇe85]. Ta slouˇzila jako zdroj dat pro soubor morfologick´eho popisu jehoˇz uk´azka je uvedena n´ıˇze. #NOUNS <MODELS> 184 ˚ ukol d´ elka ... atd ... <WORDS> 1320 v´ yvoz ˇ sp´ ıgl ˇ skodovka ... atd ... #ADJECTIVES <MODELS> 103 jin´ y jin´ y jin´ y jin´ y prvn´ ı prvn´ ı prvn´ ı prvn´ ı ... atd ... <WORDS> 1425 nyplov´ y nespolehliv´ y konkurenˇ cn´ ı ... atd ... zd˚ urazˇ novati zd˚ urazˇ novati zd˚ urazˇ novati zd˚ urazˇ novati naj´ ıti naj´ ıti naj´ ıti naj´ ıti ... atd ... <WORDS> 549 naj´ ıti vyj´ ıti zd˚ urazˇ novati vyjadˇ rovati
0 ka
u~u~0 ky ce
110211 110211 110321
´ y ´ y ´ a ´ e 0 0 0 0
_ ku
u~em ko
y ce
˚ u kou
u ˚m ky
y ek
_ k´ am
eH ky
y ky
k´ aH
kami
´ eho ´ y ou ´ e ho 0 0 0
_ _ _ _ 0 _ _ _
0 ´ em ´ e ´ em 0 m 0 m
´ em ´ ym ou ´ ym m m 0 m
´ ı ´ e ´ e ´ a 0 0 0 0
´ yH ´ yH ´ yH ´ yH H H H H
y ´m y ´m ´ ym y ´m 0 0 0 0
e ´ e ´ ´ e a ´ 0 0 0 0
0 _ _ _ _ _ _ _
0 y ´H ´ yH y ´H _ H H H
´ ymi y ´mi ´ ymi y ´mi mi mi mi mi
oval oval ovala ovalo ˇ sel ˇ sel s ˇla s ˇlo
ujeme _ _ _ jdeme _ _ _
_ _ _ _ jdete jdˇ ete _ _
uj´ ı _ _ _ jdou _ _ _
ovat _ _ _ j´ ıt _ _ _
_ _ _ _ _ _ _ _
_ _ ov´ any _ _ _ ˇ sly _
ovali _ ovaly _ s ˇli ˇ sly ˇ sly _
5 ˚ ukol 5 u ˚kol 6 d´ elka
e ´ho e ´ho e ´ e ´ho ho ho 0 ho
´ emu ´ emu ´ e ´ emu 0 mu 0 mu
23 222 23 222 22 227 uji _ _ _ jdu _ _ _
5151 5131 5261 5241
ujeˇ s uj _ _ jdeˇ s jdi _ _
1 1 1 1
2 2 7 6
uje _ _ _ jde _ _ _
_ _ _ _ _ _ _ _
6 jin´ y 11 jin´ y 11 prvn´ ı _ _ _ _ _ _ _ _
_ ov´ an ov´ ana ov´ ano s ˇel _ _ ˇ slo
naj´ ıti naj´ ıti zd˚ urazˇ novati zd˚ urazˇ novati
1
Z d˚ uvodu ˇcasov´e nen´ aroˇcnosti byl zvolen jazyk C# platformy .NET. Program generuj´ıc´ı morfologick´ y analyz´ ator z datab´ aze se jmenuje rctsharp.
88
... atd ... #ADVERBS 1996 nezbytnˇ e 66 zejm´ ena 1104118 .. atd ... #UC_NOUNS 28517 vnitro 110412 vnitra 110412 znˇ en´ ı 157416 .. atd ...
14 311
1 10 1
Jedn´a se o sekce model˚ u (vzor˚ u) pro dan´e slovn´ı druhy, se seznamem vˇsech koncovek pro p´ady v jednotn´em a mnoˇzn´em ˇc´ısle n´asledovan´e sekcemi, kde jsou slova model˚ um pˇriˇrazena. S t´ımto souborem je moˇzn´e jak vytv´aˇret FST reprezentuj´ıc´ı morfologick´ y analyz´ator, tak rozdˇelen´ı slov na morf´emy, tj. koˇreny a pˇr´ıpony. -Gkb fn vytvoˇren´ı FST mapuj´ıc´ıho slova na morfologick´e k´ody (stdout) za pouˇzit´ı souboru vstupn´ıch symbol˚ u - slov (fn ) a morfologick´eho popisu pˇriveden´eho do stdin. Pˇr´ıklad jednoduch´eho morfologick´eho analyz´atoru vytvoˇren´eho touto cestou je uveden na obr. 9.3. -GkM fn rozdˇel´ı slova pˇriveden´a na stdin na morf´emy dle souboru morfologick´eho popisu fn. -GkMm f vstupem je mlf file, jinak tot´eˇz jako v´ yˇse uveden´a volba.
9.3
Pouˇ zit´ e k´ odov´ an´ı morfologick´ ych znaˇ cek
Na u ´vod je nutn´e poznamenat, ˇze v pr´aci jsou pouˇzity 2 r˚ uzn´e typy k´odov´an´ı. Prvn´ı je pops´ an tabulkami 9.16 aˇz 9.22 a v z´asadˇe s n´ım pracuje program rct. Morfologick´e k´ody zahrnuj´ı pro ohebn´e slovn´ı druhy slovn´ı druh, ˇc´ıslo, rod a p´ad v tomto poˇrad´ı. Tzn., ˇze napˇr. z´ ajmeno jednotn´eho ˇc´ısla ˇzensk´eho rodu a 4. p´adu by bylo k´odov´ano symbolem pro_sg_fe_n_. Pro 4 ohebn´e slovn´ı druhy, kter´e ˇceˇstina m´a tak pˇripad´a 56 k´od˚ u na jeden druh. Slovesa jsou ˇrazena do 25 skupin, k´od pak z´aleˇz´ı na n´asleduj´ıc´ım: • rozkazovac´ı zp˚ usob - slovn´ı druh, ˇc´ıslo, osoba a k´od ”imp”; pˇr´ıklad pro rozkazovac´ı zp˚ usob 2. osobu mnoˇzn´eho ˇc´ısla je ver_pl_se_imp_ • pˇr´ıtomn´ y ˇcas - slovn´ı druh, ˇc´ıslo, osoba a k´od ”pr”; pˇr´ıklad pro 2. osobu mnoˇzn´eho ˇc´ısla je ver_pl_se_pr_ • minul´ y ˇcas - slovn´ı druh, ˇc´ıslo, rod (ˇcinn´ y - trpn´ y) a osoba; pˇr´ıklad pro ˇzensk´ y rod 2. osobu mnoˇzn´eho ˇc´ısla trpn´eho rodu je ver_pl_se_pass_fe_
89
p´ ad 1. 2. 3. 4. 5. 6. 7.
n´ azev nominative genitive dative accusative vocative locative instrumental
k´ od n g d a v l i 0
Tabulka 9.16: K´ ody p´ ad˚ u ˇ cesk´ y n´ azev podstatn´ e jm´ eno pˇr´ıdavn´ e jm´ eno z´ ajmeno ˇ c´ıslovka sloveso pˇr´ıslovce pˇredloˇ zka spojka ˇ c´ astice citoslovce
anglick´ y n´ azev noun adjective pronoun numeral verb adverb preposition conjunction particle intersection
k´ od nou adj pro num ver adv pre con par int
stál
1
tam
2
samotný
3
vysoký
4
sloup
5
Obr´azek 9.2: Pˇr´ıklad vˇety ”st´al tam samotn´ y vysok´ y sloup” U reprezentovan´e pomoc´ı FSA
Tabulka 9.17: K´ ody slovn´ıch druh˚ u n´ azev singular plural
k´ od sg pl
Tabulka 9.18: K´ ody pro ˇc´ıslo osoba 1. 2. 3.
k´ od fi se th
Tabulka 9.19: K´ ody pro osobu ˇ cesk´ y n´ azev muˇ zsk´ y neˇ zivotn´ y muˇ zsk´ yˇ zivotn´ y ˇ zensk´ y stˇredn´ı
anglick´ y n´ azev masculine inanimate masculine animate feminine neuter
k´ od mi ma fe ne
Tabulka 9.20: K´ ody pro rod ˇ cesk´ y n´ azev ˇ cinn´ y trpn´ y
anglick´ y n´ azev past passive
k´ od past pass
Tabulka 9.21: K´ ody pro slovesn´ y rod vyj´ adˇren´ı podmiˇ novac´ıho zp˚ usobu zvratn´ e z´ ajmeno
nahoř e:adv_ tam:adv_ stál:ver_sg_past_mi_ stál:ver_sg_past_ma_ udělal:ver_sg_past_mi_ udělal:ver_sg_past_ma_ opravdový:adj_sg_mi_a_ opravdový:adj_sg_mi_n_ opravdový:adj_sg_ma_n_ samotný:adj_sg_mi_a_ samotný:adj_sg_mi_n_ vysoký:adj_sg_mi_a_ vysoký:adj_sg_mi_n_ vysoký:adj_sg_ma_n_ sloup:nou_sg_mi_a_ sloup:nou_sg_mi_n_ poř ádek:nou_sg_mi_a_ poř ádek:nou_sg_mi_n_ <sil>:<sil>
0
Obr´azek 9.3: Pˇr´ıklad morfologick´eho analyz´atoru M realizovan´eho pomoc´ı FST
mod zvr
Tabulka 9.22: Ostatn´ı druhy slov 90
slovn´ı druh V P N,C,A
k´ od POS SPO GEN NUM PER TEN VOI POS NUM GEN CAS PGE PNU POS NUM GEN CAS POS
Tabulka 9.23: K´ odov´ an´ı morfologick´ ych znaˇcek programem sharprct dle symbol˚ u popsan´ ych v kapitole 9.1.1 adj_sg_ma_n_ 0
ver_sg_past_ma_ ver_sg_past_mi_
1
adv_
2
adj_sg_mi_a_ adj_sg_mi_n_
3
adj_sg_mi_a_ adj_sg_mi_n_
4
nou_sg_mi_a_ nou_sg_mi_n_
5
Obr´ azek 9.4: FSA P = π2 (U ◦ M ), kde U je na obr. 9.2 a M na obr. 9.3 Druh´ y zp˚ usob k´ odov´ an´ı morfologick´ ych znaˇcek vznikl na z´akladˇe k´od˚ u, resp. TAG˚ u uv´adˇen´ ych v UCNK korpusech. Znamen´a to, ˇze k´od je sloˇzen ze znak˚ u uveden´ ych v kapitole 9.1.1. V´ ystupn´ı k´ ody morfologick´ ych znaˇcek z FST morfologick´eho analyz´atoru M jsou uvedeny v tab. 9.23. Poznamenejme, ˇze dle experiment´aln´ıch v´ ysledk˚ u se uk´azalo, ˇze je v´ yhodn´e pˇredloˇzky v˚ ubec netransformovat na morfologick´ y k´od. Napˇr´ıklad pˇredloˇzky v a ve by transformac´ı na jednoduch´ y k´od pre dle tab. 9.17 ztratily informaci o rodu slova v prav´em kontextu. Tj. klidnˇe bychom napˇr´ıklad pˇripustili moˇznost ve j´ amˇe.
9.4
Sestaven´ı FSM pro gramatiku
N´asleduj´ıc´ı postup byl u ´spˇeˇsnˇe ovˇeˇren a je pouˇzit ve vˇsech experimentech t´ ykaj´ıc´ıch se modelov´ an´ı na z´ akladˇe morfologick´ ych znaˇcek. 1. vytvoˇr´ıme FST morfologick´eho analyz´atoru M (jednoduch´ y pˇr´ıklad na obr. 9.3), 2. kompozic´ı vˇet reprezentovan´ ych pomoc´ı FSA (pˇr. na obr. 9.2) s morf. analyz´atorem reprezentovan´ ym pomoc´ı FST a n´aslednou projekc´ı v´ ystupn´ıch symbol˚ u dle P = π2 (U ◦ M )
(9.1)
dost´ av´ ame sadu FSA P (pˇr. na obr. 9.4), 3. n´astroji grmtools dle kap. 6.2 ze sady FSA P vygenerujeme n-gramov´ y statistick´ y model grm(P ), 4. formul´ı G = π2 (grm(P ) ◦ M −1 ) (9.2) dost´ av´ ame FSM G reprezentuj´ıc´ı gramatiku.
91
poˇ cet slov 9 42 101 206 663
M 1/18 1/91 1/216 1/449 1/1616
grm(P ) 18/61 71/320 92/582 131/1170 233/3697
G 20/67 73/440 94/1990 133/6290 235/63713
HLG 604/1079 3578/6379 8007/15512 16304/34005 53491/155684
Tabulka 9.24: Uk´ azka z´ avislosti sloˇzitosti automat˚ u M ,P , G a HLG na poˇctu pouˇzit´ ych slov pro n = 2
92
ˇ ast III C´
Tvorba rozpozn´ avaˇ c˚ u
93
Kapitola 10
Experiment´ aln´ı v´ ysledky
10.1
Pouˇ zit´ y hardware
Vˇsechny experimenty byly prov´adˇeny na clusteru magi katedry teorie obvod˚ u. Jedn´ a se o nˇekolik PC s procesorem AMD Athlon(tm) 64 X2 Dual Core 4400+ (2200MHz) s operaˇcn´ım syst´emem linux. Vlastn´ı skripty psan´e v skriptovac´ım jazyce Bourne shell [itwh] jsou spouˇstˇeny syst´emem pro front´aln´ı distribuce u ´loh SGE [itwf]. Vˇsechny ˇcasy uv´adˇen´e zde ve v´ ysledc´ıch jsou souˇctem dob trv´an´ı proces˚ u vˇsech uzl˚ u, tj. teoreticky je vˇse pˇrepoˇc´ıt´ ano na jedno j´ adro procesoru AMD Athlon(tm) 4400+.
10.2
Pouˇ zit´ e ˇreˇ cov´ e datab´ aze
Hlavn´ı ˇreˇcovou datab´ az´ı byla zvolena datab´aze SPEECON, ˇc´ast dospˇel´ ych lid´ı [Pol03]. Celkem tak bylo k dispozici cca 300 hodin ˇreˇcov´eho sign´alu od 580 r˚ uzn´ ych lid´ı.
10.3
Akustick´ e modely
V experimentech se pouˇz´ıvaj´ı Markovovy modely reprezentuj´ıc´ı monof´ony, dif´ony, resp. trif´ ony popsan´e v kapitole 3.3. Akustick´e modely jsou parametrizov´any n´astrojem HCopy (kap. 5.1 - uveden i pouˇzit´ y konfiguraˇcn´ı soubor) a tr´enov´any n´astrojem HERest (kap. 5.2). ze sady n´ astroj˚ u HTK. Tr´enovac´ı data pro experimenty uv´adˇen´e v kapitole 10.6 pˇredstavuj´ı kompletn´ı datab´ azi SPEECON. Tr´enovac´ı data pro experimenty uv´adˇen´e v kapitole 10.7 byla pouˇzita s d˚ urazem na obdrˇzen´ı co nejvyˇsˇs´ıho sk´ore. Byly tak z ˇreˇcov´e datab´aze SPEECON vybr´ any promluvy pouze ˇzen v prostˇred´ı office s tich´ ym pozad´ım (tj. nikoliv se zapnut´ ym hudebn´ım pˇrehr´avaˇcem).
94
10.4
Jazykov´ e modely
Jazykov´e modelov´ an´ı pouˇzit´e v experimentech nese nedostatek v ekvivalenci tr´enovac´ı a testovac´ı mnoˇziny dat. D˚ uvodem, proˇc autor vybral toto ˇreˇsen´ı, je zejm´ena jednoduchost. Uved’me pˇrehled vˇsech tˇr´ı jazykov´ ych model˚ u a vliv uveden´eho nedostatku na jednotliv´e modely: 1. uniformn´ı model - pouˇzit v testech kap. 10.7. N´asobitel jazykov´eho modelu je v tˇechto testech nastaven vˇzdy na hodnotu 1. Zde ekvivalence tr´enovac´ı a testovac´ı mnoˇziny nem´ a velk´ y v´ yznam, nebereme-li v u ´vahu moˇznost vˇetˇs´ı mnoˇziny slov pro tr´enov´ an´ı jazykov´eho modelu. 2. bigram - tento bigram na b´azi slov je pouˇzit v kapitole 10.6 a v testu slabikov´eho modelu (kap. 10.7). Jeho volba sice m˚ uˇze vypadat na prvn´ı pohled nesmyslnˇe, ale zde ˇslo hlavnˇe o porovn´ an´ı v´ ykonu dekod´er˚ u. 3. n-gram na b´ azi morfologick´ ych znaˇ cek - pouˇzit v testech kap. 10.7. Model je pops´ an v kapitole 9.1. Jelikoˇz jde o model zaloˇzen´ y na tˇr´ıd´ach slov, kter´ y je schopn´ y velmi dobˇre zobecˇ novat kontextov´e z´avislosti (kap. 1.5.3 ) nemˇel by b´ yt uveden´ y nedostatek ekvivalence tr´enovac´ı a testovac´ı mnoˇziny dat probl´emem. Je zde pouˇzita Katzova metoda vyhlazov´ an´ı tˇr´ıd. Morfologick´ y analyz´ator pouˇzit´ y pro tento typ jazykov´eho ˇ modelu je zkonstruov´ an na z´ akladˇe Cesk´eho n´arodn´ıho korpusu metodami uveden´ ymi v kap. 9.1. ˇ Podrobn´ y postup konstrukce vˇsech zde pouˇzit´ ych model˚ u je uveden v [Sta].
10.5
Rozpozn´ avac´ı s´ıt’
Konstrukce rozpozn´ avac´ı s´ıtˇe popsan´a v kap. 3.1.2 v tomto pˇr´ıpadˇe nevyhovuje, nebot’ ne kaˇzd´ y FST, resp. WFST je determinizovateln´ y. Pro pˇr´ıpady jazykov´eho modelu, kde s´ıt’ L ◦ G je determinizovateln´ a pouˇzijeme n´asleduj´ıc´ı u ´pravu formule (3.2), resp. (3.1). Pouˇzijeme tak CLG = min [det [C ◦ min(det(L ◦ G))]] (10.1) HCLG = de [min (det (en (H ◦ CLG)))] pro s´ıt’ s kontextovˇe z´ avisl´ ymi fon´emy, resp. HLG = de {min [det [en [H ◦ min(det(L ◦ G))]]]}
(10.2)
pro s´ıt’ s kontextovˇe nez´ avisl´ ymi fon´emy. Pokud s´ıt’ L ◦ G nen´ı determinizovateln´a, pouˇzijeme CLG = de [min (det (en (C ◦ L)))] ◦ G , (10.3) HCLG = de [min (det (en (H ◦ CLG)))]
95
pro s´ıt’ s kontextovˇe z´ avisl´ ymi fon´emy, resp. HLG = de [min (det (en (H ◦ L)))] ◦ G
(10.4)
pro s´ıt’ s kontextovˇe nez´ avisl´ ymi fon´emy. Poznamenejme, ˇze ohodnocen´e pˇrekladov´e automaty L a H uveden´e v (10.1) aˇz (10.4) jsou uzavˇren´e (kap. 2.6.3), operace en, resp. de znamenaj´ı zak´ odov´ an´ı WFST na FSA, resp. dek´odov´an´ı FSA na WFST pˇres nˇejak´ y pomocn´ y FST (kap. 2.6.18 ). V pˇr´ıpadˇe pouˇzit´ı shlukovan´ ych stav˚ u v akustick´ ych modelech (kap. 5.3) je nutn´e pˇred vlastn´ı konstrukc´ı HCLG s´ıtˇe pˇreindexovat vstupn´ı symboly CLG v (10.1), resp. (10.3) s´ıtˇe na indexy model˚ u HMM tak jak je tomu v HTK knihovn´ach (kap.7.4).
10.6
Experiment´ aln´ı srovn´ an´ı dostupn´ ych dekod´ er˚ u
Pro porovn´ an´ı jednotliv´ ych dekod´er˚ u byly pouˇzity akustick´e HMM modely se ˇctyˇrmi hustotn´ımi funkcemi natr´enovan´e na cel´e datab´azi SPEECON, ˇc´asti dospˇel´ ych lid´ı. • testovac´ı promluvy jsou podmnoˇzinou tr´enovac´ıch promluv pro akustick´e modely, • testovac´ı promluvy jsou ekvivalentn´ı tr´enovac´ım promluv´am jazykov´eho modelu. Jak jiˇz bylo uvedeno, k dispozici jsou 3 dekod´ery s Viterbiho algoritmem. 1. drecog z AT&T DCD n´ astroj˚ u popsan´ ych (kapitola 6.1.3). Ten je d´ale rozdˇelen na • kontextov´ y HCLG - automat reprezentuj´ıc´ı HMM je zakomponov´an do rozpozn´ avac´ı s´ıtˇe HCLG - vstupn´ı symboly pˇredstavuj´ı stavy HMM, • kontextov´ y CLG - vstupn´ı symboly rozpozn´avac´ı s´ıtˇe CLG pˇredstavuj´ı jednotliv´e HMM. Jejich pravdˇepodobnosti setrv´an´ı ve stavu jsou pˇrepoˇc´ıt´av´any pˇri konverzi z HTK model˚ u tak, jak je uvedeno v kap. 7.7. 2. rct v reˇzimu Viterbiho dekod´eru (kapitola 7.8). 3. HVite z HTK (kapitola 5.5). Tento test si klade za c´ıl porovnat jednotliv´e dekod´ery podle v´ ykonu, resp. ˇcasov´e n´aroˇcnosti. V testech je vˇzdy experiment´alnˇe nalezen n´asobitel jazykov´eho modelu, pot´e se s t´ımto parametrem prov´ ad´ı v´ ykonnostn´ı test. V tomto srovn´avac´ım testu byl pouˇzit bigramov´ y model slov s Katzov´ ym vyhlazov´an´ım.
10.6.1
Nalezen´ı optim´ aln´ıho n´ asobitele jazykov´ eho modelu
Pro dosaˇzen´ı optim´ aln´ıch v´ ysledk˚ u bylo nutn´e nal´ezt hodnotu koeficientu n´asobitele vah jazykov´eho modelu. Obr. 10.1 a tab. 10.1 ukazuje v´ ysledky testu pro jednotliv´e druhy dekod´er˚ u. Z´ amˇernˇe zde byla zvolena vysok´a hodnota kpp pro dosaˇzen´ı nejvyˇsˇs´ıho moˇzn´eho sk´ore. Odtud plynou i vysok´e ˇcasy rozpozn´av´an´ı v grafu.
96
typ drecog CLG drecog HCLG rct HVite
n´ asobitel vah RN 30 7.4 4 5
Tabulka 10.1: Optim´ aln´ı velikost n´asobitele vah RN pro jednotliv´e dekod´ery dle test˚ u
Obr´azek 10.1: Z´ avislost u ´spˇeˇsnosti a koeficient˚ u n´asobitele vah RN na dobˇe rozpozn´av´an´ı - 125 slov, datab´ aze SPEECON
10.6.2
Vliv p´ asov´ eho proˇrez´ av´ an´ı
Vliv koeficientu p´ asov´eho proˇrez´av´an´ı (d´ale jen kpp) rozpozn´avac´ı s´ıtˇe demonstruje schopnosti rozpozn´ avac´ıch syst´em˚ u, kter´e nemohou fungovat jednoznaˇcnˇe s dan´ ymi parametry podobnˇe jako v pˇredchoz´ım pˇr´ıpadˇe s n´asobitelem vah RN. Obr. 10.2 ukazuje v´ ysledek z´ avislost´ı na koeficientu p´asov´eho proˇrez´av´an´ı pro poloˇzky typu ”CD” z datab´aze SPEECON. Seˇrazen´ı jednotliv´ ych dekod´er˚ u od nejrychlejˇs´ıho k nejpomalejˇs´ımu je shrnuto v tabulce 10.2.
97
Obr´azek 10.2: Z´ avislost u ´spˇeˇsnosti a koeficient˚ u p´asov´eho proˇrez´av´an´ı - kpp na dobˇe rozpozn´ av´ an´ı - 125 slov, datab´ aze SPEECON
typ drecog HCLG HVite drecog CLG rct
kpp [-] 21 70 100 100
ˇ cas [sec] 113 163 175 1550
u ´spˇ eˇsnost [%] 97.32 96.34 89.02 94.88
Tabulka 10.2: V´ ysledky test˚ u jednotliv´ ych dekod´er˚ u
10.6.3
Vliv architektury
Bylo realizov´ ano porovn´ an´ı dekod´eru rct pˇreloˇzen´eho pro 32 a 64 bitovou architekturu x86. V´ ysledkem bylo rychlejˇs´ı dek´odov´an´ı aˇz o 25% na 64 bitov´e platformˇe.
10.6.4
Vyhodnocen´ı srovn´ avac´ıch test˚ u dekod´ er˚ u
Na z´ akladˇe test˚ u z nichˇz vyˇsel nejl´epe n´astroj firmy AT&T drecog v m´odu rozpozn´ avac´ı s´ıtˇe se vstupn´ımi symboly stav˚ u HMM, tj. rozpozn´avac´ı s´ıt’ typu HCLG, resp. HLG, byl tento typ dekod´eru pouˇzit i pro n´asleduj´ıc´ı test, kter´ y posoud´ı n´aroˇcnost navrˇzen´eho n-gramov´eho jazykov´eho modelu zaloˇzen´eho na tˇr´ıd´ach slov pro jednotliv´a n.
10.7
Srovn´ avac´ı test jazykov´ ych model˚ u
Test je uzavˇren´ y, tj. ˇze testovac´ı mnoˇzina dat je podmnoˇzinou tr´enovac´ı mnoˇziny dat. Znamen´ a to, ˇze 98
• testovac´ı promluvy jsou podmnoˇzinou tr´enovac´ıch promluv pro akustick´e modely, • testovac´ı promluvy jsou ekvivalentn´ı tr´enovac´ım promluv´am jazykov´eho modelu. Testovac´ı sada dat pˇredstavuje poloˇzky typu S0, kde se jedn´a celkem o 111 vˇet, 954 slov a 5769 znak˚ u, viz pˇr´ıklady n´ıˇze. Poˇcet vˇsech navz´ajem r˚ uzn´ ych slov je N = 663. Uk´azka 3 vˇet z poloˇzek S0 je uvedena n´ıˇze. a nemohla tu vzniknout ani tradiˇ cn´ ı vˇ seobecnˇ e pˇ rij´ ıman´ a autokracie za tˇ ech pˇ et let jsem ho pˇ rece jen trochu ochoˇ cil z ˇe uˇ z mi leccos ˇ rekl sp´ ıs ˇ si mysl´ ım ˇ ze by mˇ el ˇ z´ ıt podle z´ akon˚ u svat´ e t´ ory
Pˇrevedeme-li vˇety na slabiky algoritmem PUML uveden´ ym v kapitole 7 a popsan´ ym v [L´a05], dostaneme testovac´ı set o 111 vˇet´ach a 2950 slabik´ach (model mezislovn´ı kr´atk´e pauzy se zde tak´e poˇc´ıt´ a jako slabika). Poˇcet vˇsech navz´ajem r˚ uzn´ ych slabik je N = 689. Pro hlavn´ı testov´ an´ı byly pouˇzity n´asleduj´ıc´ı jazykov´e modely. 1. uniformn´ı jazykov´ y model - v grafech a tabulk´ach oznaˇcen p´ısmenem U. Model je pouˇzit z d˚ uvod˚ u moˇznosti porovn´av´an´ı s ostatn´ımi jazykov´ ymi modely. Protoˇze s´ıt’ LG tohoto modelu je determinizovateln´a, byla pouˇzita optimalizovanˇejˇs´ı forma rozpozn´ avac´ı s´ıtˇe (10.2), resp. (10.1). 2. n-gramov´ y model zaloˇzen´ y na morfologick´ ych k´odech slov - v grafech a tabulk´ach oznaˇcen MCnn. Z d˚ uvodu nedeterminizovatelnosti s´ıtˇe LG tohoto modelu byla pouˇzita m´enˇe optimalizovan´ a forma rozpozn´avac´ı s´ıtˇe, tj. (10.4), resp. (10.3). Maxim´aln´ı u ´roveˇ n tˇechto tˇr´ıdov´ ych n-gram˚ u je limitov´ana hardwarem. Pro pˇredstavu uved’me, ˇze nejsloˇzitˇejˇs´ı s´ıt’ v testech, tj. bin´arn´ı reprezentace quadragramov´eho modelu (8 mil. stav˚ u. 15 mil. pˇrech.) pro monof´ony pˇredstavuje soubor o velikosti cca 300MB.
10.7.1
Monof´ ony
Srovn´ an´ı v´ ysledk˚ u test˚ u pro monofonn´ı rozpozn´avaˇc s uniformn´ım jazykov´ ym modelem a n-gramov´ ymi modely zaloˇzen´ ych na morfologick´ ych k´odech popsan´ ych v kapitole 9 je uvedeno v grafech na obr. 10.3. Tabulka 10.3 zobrazuje parametry a v´ ysledky jednotliv´ ych pokus˚ u. N´ asobitel vah byl v tomto pˇr´ıpadˇe pro uniformn´ı rozdˇelen´ı slov 1 a pro jazykov´e modely zaloˇzen´e na morfologick´ ych k´odech 4.1.
99
Obr´ azek 10.3: Uzavˇren´ y test, monof´ony, 46 hustotn´ıch funkc´ı, N = 663 slov
typ JM uniformn´ı MC - bigram MC - trigram MC - quadragram
sloˇ zitost G 669/1993 235/63713 3622/328309 17192/895459
sloˇ zitost HLG 7257/12940 53491/155684 1582699/3088613 7849147/14726588
u ´spˇ eˇsnost [%] 70.44 90.36 96.75 98.01
pˇresnost [%] 66.67 89.31 96.23 97.59
ˇ cas [sec] 186 1552 9099 12776
kpp [-] 206 41 46 47
Tabulka 10.3: Uzavˇren´ y test, monof´ony, 46 hustotn´ıch funkc´ı, N = 663 slov Srovn´ an´ı v´ ysledk˚ u test˚ u pro monofonn´ı rozpozn´avaˇc zaloˇzen´ y na slabik´ach s uniformn´ım a n-gramov´ ym jazykov´ ym modelem je na obr. 10.4. Tabulka 10.4 zobrazuje vybran´ a nejlepˇs´ı sk´ ore pro jednotliv´e jazykov´e modely. Vˇsechny modely pouˇz´ıvaj´ı n´asobitel vah 5.1 krom uniformn´ıho (1).
100
Obr´azek 10.4: Uzavˇren´ y test jazykov´eho modelu zaloˇzen´eho na slabik´ach, monof´ony, 46 hustotn´ıch funkc´ı, N = 689 slabik
typ JM uniformn´ı bigram trigram quadragram pentagram hexagram
sloˇ zitost G 694/2759 694/3087 2398/7302 4824/12446 7434/17747 10016/22936
sloˇ zitost HLG 1665/3788 8722/18220 23234/47852 47594/98206 78046/161498 110502/229795
u ´spˇ eˇsnost [%] 31.36 41.80 52.64 55.53 55.76 55.93
pˇresnost [%] 23.63 41.15 51.76 54.58 54.85 55.02
ˇ cas [sec] 70 61 87 96 100 101
kpp [-] 196 21 21 21 21 21
Tabulka 10.4: Uzavˇren´ y test jazykov´eho modelu zaloˇzen´eho na slabik´ach, monof´ony, 46 hustotn´ıch funkc´ı, N = 689 slabik Nepˇresnosti jsou zp˚ usobeny: • fonetickou transkripc´ı slabik. Napˇr´ıklad slovo op-ˇ rel bude foneticky pˇreloˇzeno na slovo ob-ˇ rel, • model kr´ atk´e pauzy umoˇzn ˇuje pˇreskoˇcit jedin´ y emituj´ıc´ı stav, kter´ y HMM m´a. Vede ´ eˇsnost to na vysok´ y poˇcet v´ yskyt˚ u modelu pro kr´atkou pauzu v rozpoznan´e vˇetˇe. Uspˇ uniformn´ıho modelu pro slabiky byla dle test˚ u o 10% vˇetˇs´ı neˇz pˇresnost.
10.7.2
Dif´ ony
Vstupn´ı data jsou stejn´ a jako v podkapitole 10.7.1. Zde se testuj´ı kontextovˇe z´avisl´e fon´emy - dif´ ony. V´ ysledek testu analogick´ y s obr. 10.3 je na obr. 10.5. Srovn´an´ı pomoc´ı tab. 10.5 umoˇzn ˇuje srovn´ an´ı s ostatn´ımi akustick´ ymi modely. n-gramov´e jazykov´e modely v tomto testu zde mˇely pouˇzity n´asobitel vah 5.1 (uniformn´ı pak 1). Poznamenejme, ˇze
101
v tomto pˇr´ıpadˇe nen´ı jist´ a, zda posledn´ı hodnota pro trigramov´ y model je koneˇcn´a. Zde uˇz ˇslo o velmi rozs´ ahlou s´ıt’. Z d˚ uvod˚ u ˇcasov´e n´aroˇcnosti byl test pˇredˇcasnˇe ukonˇcen.
Obr´ azek 10.5: Uzavˇren´ y test, dif´ony, 46 hustotn´ıch funkc´ı, N = 663 slov Srovn´ an´ı v´ ysledk˚ u rozpozn´ av´an´ı pro r˚ uzn´ y poˇcet hustotn´ıch funkc´ı je na obr. 10.6.
Obr´azek 10.6: Uzavˇren´ y test, dif´ ony, bigramov´ y model zaloˇzen´ y na morfologick´ ych k´odech, srovn´an´ı pro 16, 23 a 46 hustotn´ıch funkc´ı, N = 663 slov
102
typ JM uniformn´ı MC - bigram MC - trigram
sloˇ zitost G 669/1993 235/63713 3622/328309
sloˇ zitost HLG 12025/18576 85703/283042 515940/901199
u ´spˇ eˇsnost [%] 81.55 91.40 97.69
pˇresnost [%] 51.36 88.16 95.91
ˇ cas [sec] 285 4012 11909
kpp [-] 131 51 51
Tabulka 10.5: Uzavˇren´ y test, dif´ony, 46 hustotn´ıch funkc´ı, N = 663 slov
10.7.3
Trif´ ony
Vstupn´ı data jsou stejn´ a jako v podkapitole 10.7.1. Zde se testuj´ı kontextovˇe z´avisl´e fon´emy - trif´ ony. V´ ysledek testu analogick´ y s obr. 10.3 je na obr. 10.7. Tab. 10.6 opˇet shrnuje jednotliv´e testy uniformn´ıho (koef. n´asobitele vah rozpozn´avac´ı s´ıtˇe zvolen 1) a na morfologick´ ych k´ odech zaloˇzen´eho modelu.
Obr´ azek 10.7: Uzavˇren´ y test, trif´ony, 46 hustotn´ıch funkc´ı, N = 663 slov
typ JM uniformn´ı MC - bigram MC - trigram
sloˇ zitost G 669/1993 235/63713 3622/328309
sloˇ zitost HLG 10697/18630 66253/255669 411325/776114
u ´spˇ eˇsnost [%] 78.20 92.24 98.32
pˇresnost [%] 71.38 90.78 98.01
ˇ cas [sec] 307 727 1780
kpp [-] 156 31 36
Tabulka 10.6: Uzavˇren´ y test, trif´ony, 46 hustotn´ıch funkc´ı, N = 663 slov Srovn´ an´ı v´ ysledk˚ u rozpozn´ av´an´ı pro r˚ uzn´ y poˇcet hustotn´ıch funkc´ı je na obr. 10.8.
103
Obr´azek 10.8: Uzavˇren´ y test, trif´ ony, bigramov´ y model zaloˇzen´ y na morfologick´ ych k´odech, srovn´an´ı pro 16, 23 a 46 hustotn´ıch funkc´ı, N = 663 slov
104
Kapitola 11
Shrnut´ı 11.1
Splnˇ en´ı c´ıl˚ u
Z´akladn´ımi c´ıli bylo: 1. vytvoˇrit algoritmus, kter´ y sestroj´ı na z´akladˇe z´akladn´ıch znalost´ı i velmi sloˇzit´e pˇrekladov´e stavov´e automaty reprezentuj´ıc´ı jednotliv´e ˇc´asti rozpozn´avac´ı s´ıtˇe, 2. otestovat ATT n´ astroje pro ˇcesk´ y jazyk, 3. vytvoˇrit algoritmus pro moˇznou konverzi model˚ u mezi HTK a ATT n´astroji, 4. vytvoˇrit vlastn´ı dekod´er umoˇzn ˇuj´ıc´ı ze zadan´e optimalizovan´e rozpozn´avac´ı s´ıtˇe v ATT form´ atu a akustick´ ych model˚ u v HTK form´atu rozpoznat vstupn´ı promluvu, 5. nal´ezt vhodn´ y zdroj a zp˚ usob zpracov´an´ı dat pro vytvoˇren´ı ˇcesk´eho jazykov´eho modelu, 6. navrhnout jazykov´ y model pro ˇcesk´ y jazyk, kter´ y by kombinoval v´ yhody spoˇc´ıvaj´ıc´ı v moˇznostech n´ astroj˚ u pro zpracov´an´ı stavov´ ych automat˚ u a moˇznosti pouˇzit´ı morfologicky oznaˇckovan´eho korpusu.
11.1.1
Algoritmus generov´ an´ı FST z blok˚ uˇ c´ asteˇ cn´ ych znalost´ı
Pro synt´ezu FST z blok˚ u ˇc´ asteˇcn´ ych znalost´ı byl vyvinut rct. Zp˚ usob pouˇzit´ı programu rct pro generov´ an´ı koneˇcn´ ych automat˚ u reprezentuj´ıc´ı jednotliv´e ˇc´asti rozpozn´avac´ı s´ıtˇe je uveden v kap. 3.
11.1.2
Otestov´ an´ı ATT n´ astroj˚ u pro ˇ cesk´ y jazyk
Byly rozebr´ any a provˇeˇreny moˇznosti nov´e teorie v´aˇzen´ ych pˇrekladov´ ych automat˚ u pˇri zpracov´ an´ı ˇcesk´eho jazyka. V uv´adˇen´ ych experimentech (kap. 10) byly pozorov´any jevy, kter´e jsou pro ˇcesk´ y jazyk charakteristick´e: • velk´e mnoˇzstv´ı kr´ atk´ ych jednoslabiˇcn´ ych pˇredloˇzek v ˇcesk´em jazyce zp˚ usobuje jejich z´amˇenu, ˇci nechtˇen´e vloˇzen´ı, 105
• akustick´ a podobnost slov zp˚ usobuje z´amˇenu rovnˇeˇz, • probl´em homonym m˚ uˇze v´est k myln´emu v´ ysledku pˇri pouˇzit´ı JM zaloˇzen´eho na tˇr´ıd´ ach slov.
11.1.3
Konverze akustick´ ych model˚ u z HTK do ATT
Zp˚ usob vytvoˇren´ı akustick´ ych model˚ u pro ATT n´astroje pomoc´ı rct (modul htk base) je uveden v kap. 8.4. Pˇripomeˇ nme, ˇze zde byly pouˇzity HTK knihovny pro naˇc´ıt´an´ı HMM, takˇze je zaruˇcena kompatibilita s ˇradou jin´ ych projekt˚ u.
11.1.4
Vytvoˇren´ı Viterbiho dekod´ eru
Manu´ al k rozpozn´ av´ an´ı pomoc´ı rct je uveden v kap. 7.8. Z´akladn´ı modul pro uli ˇcasov´e n´aroˇcnosti (kap. 10.6.2) byl dalˇs´ı v´ yvoj rozpozn´ av´ an´ı je pojmenov´ an asr base. Kv˚ pozastaven a testy pokraˇcovaly s nejrychlejˇs´ım n´astrojem ATT drecog. Nicm´enˇe z d˚ uvod˚ u jednoduchosti a pˇrehlednosti algoritmu m˚ uˇze b´ yt v´ yhradnˇe pouˇzit pro studijn´ı u ´ˇcely.
11.1.5
Zdroj pro jazykov´ y model
ˇ y n´arodn´ı korpus [Fila] umoˇzn Zde byl s v´ yhodou pouˇzit Cesk´ ˇuj´ıc´ı pˇr´ıstup k oznaˇckovan´ ym text˚ um. Popis pouˇzit´ı UCNK pro u ´ˇcely rozpozn´av´an´ı je podrobnˇe pops´an v kap. 9.1. Modul rct pro pˇripojen´ı na UCNK server je pojmenov´an ucnk comm anton.
11.1.6
N´ avrh JM
Zp˚ usob n´ avrhu jazykov´eho modelu zaloˇzen´eho na tˇr´ıd´ach slov je pops´an v kapitol´ach 1.5.3, 9.1 a 10. Experimenty jsou uvedeny v kapitole 10. Model se vyznaˇcuje relativnˇe dobrou u ´spˇeˇsnost´ı za cenu vysok´e sloˇzitosti rozpozn´avac´ı s´ıtˇe a t´ım i pomalost´ı v rozpozn´av´an´ı (cca 1-4 sec na jedno slovo, tj. 3 - 12 kr´at pomalejˇs´ı, neˇz verze JM s uniformn´ım modelem).
11.2
Pˇr´ınosy v´ ysledk˚ u pr´ ace
V kapitol´ ach 3 a 6 je podrobnˇe pops´an zp˚ usob modelov´an´ı rozpozn´avac´ı s´ıtˇe a pouˇzit´ı n´astroj˚ u firmy AT&T pro rozpozn´av´an´ı mluven´e ˇreˇci. Velmi podrobnˇe je provedena reˇserˇse teprve v ned´ avn´e dobˇe publikovan´e rozs´ahl´e nov´e teorie v´aˇzen´ ych pˇrekladov´ ych automat˚ u a nalezena ˇrada souvislost´ı t´eto teorie s jin´ ymi v´ yznamn´ ymi technikami rozpozn´av´an´ı ˇreˇci. ˇ e Republice zat´ım nikde nen´ı podobn´a reˇserˇse uvedena. Nejde Poznamenejme, ˇze v Cesk´ jen o pouˇz´ıv´ an´ı n´ astroj˚ u s uzavˇren´ ym k´odem (knihovny GRM, FSM, DCD a LEXTOOLS ) ale novˇe i o moˇznost pouˇz´ıt otevˇrenou variantu FSM knihovny - Open-FST [Ril]. ˇ eho n´arodn´ıho korpusu a jejich D´ale byl vytvoˇren zp˚ usob z´ısk´av´an´ı cenn´ ych dat z Cesk´ n´asledn´e vyuˇzit´ı v podobˇe konstrukce jazykov´eho modelu zaloˇzen´eho na tˇechto datech. 106
Jedn´a se hlavnˇe o z´ısk´ av´ an´ı frekvenˇcn´ı anal´ yzy potˇrebn´ ych slov, vˇsech tvar˚ u slov k dan´emu lemmatu a jejich morfologick´ ych znaˇcek. Vˇse je moˇzn´e nal´ezt kromˇe kapitoly 9.1 i ve velmi ˇ ˇ podrobn´e formˇe v [Sta] a [Stb].
107
Literatura [Alla] [Allb] [All07]
[Cas03]
[Cho06]
[Dra06] [Fila] [Filb]
[Haj04] [Jel85a]
Allauzen, C., Mohri, M., Roark, B. A general weighted grammar library. Allauzen, C., Mohri, M., Roark, B. GRM library - grammar library. http://www.research.att.com/ fsmtools/grm/. Allauzen, C., Riley, M., Schalkwyk, J., Skut, W., Mohri, M. OpenFst: A general and efficient weighted finite-state transducer library. In Proceedings of the Ninth International Conference on Implementation and Application of Automata, (CIAA 2007), volume 4783 of Lecture Notes in Computer Science, pages 11–23. Springer, 2007. http://www.openfst.org. Caseiro, D., Trancoso, I. A tail-sharing WFST composition algorithm for large vocabulary speech recognition. Acoustics, Speech, and Signal Processing, 2003. Proceedings. (ICASSP ’03). 2003 IEEE International Conference on., 1:356– 359, 2003. Choueiter, G., Povey, D., Chen, S.F., Zweig, G. Morpheme-based language modeling for arabic LVCSR. Acoustics, Speech and Signal Processing, 2006. ICASSP 2006 Proceedings. 2006 IEEE International Conference on., 1:1053– 1056, 2006. Dr´ abkov´ a, J. Tvorba jazykov´eho modelu zaloˇzen´eho na tˇr´ıd´ ach. Disertaˇcn´ı pr´ace, FM, TUL, Liberec, 2006. ˇ y n´arodn´ı korpus - dostupn´e korFilozofick´ a fakulta University Karlovy. Cesk´ pusy. http://ucnk.ff.cuni.cz/struktura.php. ˇ y n´arodn´ı korpus - SYN2000. Filozofick´ a fakulta University Karlovy. Cesk´ ´ ˇ eho n´ Ustav Cesk´ arodn´ıho korpusu FF UK, Praha 2000. Dostupn´ y z WWW: http://www.korpus.cz. Hajiˇc, J. Disambiguation of rich inflection (computational morphology of czech). Karolinum Charles University Press, Praha, 1, 2004. Jelinek, F. The developement of an experimental discrete dictation recognizer. Proceedings of the IEEE., 11:1616–1624, 1985.
108
[Jel85b]
[Jul] [Kat87]
[Kop] [Kor02] [Kui86]
[L´a05] [Mel03] [Moha] [Mohb] [Moh94]
[Moh96]
[Moh97a] [Moh97b] [Moh97c] [Moh00] [Moh02a]
Jelinek, F. Markov source modeling of text generation. The Impact of Processing Techniques on Communication (Skwirzynski, J.K., ed.) Nijhoff, Dordrecht, The Netherlands., 1985. Julius project team, Nagoya Institute of Technology. Open-source large vocabulary CSR engine julius. http://julius.sourceforge.jp/. Katz, S., M. Estimation of probabilities from sparse data for the language model component of a speech recognizer. IEEE Transaction on Acoustic, Speech, and Signal Processing, 35(3):400–401, 1987. Kopˇrivov´ a, M., Kocek, J. Manu´al korpusov´eho manaˇzeru bonito. http://ucnk.ff.cuni.cz/bonito. Koren´ aˇr, V. Stochastick´e procesy. Vysok´a ˇskola ekonomick´a v Praze - ISBN 80-245-0311-5, 1. edition, 2002. Kuich, W., Salomaa, A. Semirings, automata, languages. Number 5 in EATCS Monographs on Theoretical Computer Science. Springer-Verlag Berlin, Germany., 1986. L´ ansk´ y, J. Slabikov´ a komprese. Diplomov´ a pr´ ace MFF UK, 2005. ˇ Melichar, B. Jazyky a pˇreklady. CVUT Praha, 2003. Mohri, M., Pereira, F., Railey, M. AT&T FSM library - finite-state machine library. http://www.research.att.com/ fsmtools/fsm/. Mohri, M., Railey, M. DCD library - speech recognition decoder library. http://www.research.att.com/ fsmtools/dcd/. Mohri, M., Pereira, F. Compact representations by finite-state transducers. 32nd Annual Meeting of the Association for Computational Linguistics, San Francisco, California, 1994. Mohri, M., Pereira, F., Railey, M. Weighted automata in text and speech processing. Extended Finite State Models of Language: Proceedings of the ECAI’96 Workshop, pages 46–50, 1996. Mohri, M. Finite-state transducers in language and speech processing. Association for Computational Linguistic, 23:2, 1997. Mohri, M. Minimization algorithms for sequential transducter. Theoretical Computer science, 234:177–201, 1997. Mohri, M., Riley, M. Network optimizations for large vocabulary speech recognition. MIT Press , Cambridge, Massachusetts, 25:3, 1997. Mohri, M., Pereira, F. The design principles of weighted finite-state transducer library. Theoretical Computer Sience, 231:17–32, 2000. Mohri, M., Pereira, F. Weighted finite state transducers in speech recognition. Computer Speech and Language, 1:69–88, 2002.
109
[Moh02b] Mohri, M., Pereira, F. Weighted finite state transducers in speech recognition. Computer Speech and Language, 1:69–88, 2002. [Moh04] Mohri, M., Pereira, F. A generalized construction of integrated speech recognition transducers. Acoustics, Speech, and Signal Processing, 2004. Proceedings. (ICASSP ’04). IEEE International Conference on, 1:I– 761–4, 2004. [Ney94] Ney, H., Essen, U., Knesser, R. On structuring probabilistic dependences in stochastic language modeling. Computer Speech and Language., 8(1):1–38, 1994. [Ney95] Ney, H., Knesser, R. Improved backing-off for m-gram language modelling. Proceedings of ICASSP, 1:181–184, 1995. [Nou04] Nouza, J., Nouza, T. A voice dictation system for a million-word czech vocabulary. Proc. of ICCCT 2004, Austin, USA, ISBN 980-6560-17-5., 1:142–152, 2004. [Per97] Pereira, F., Riley, M. Speech recognition by composition of weighted finite automata. MIT Press , Cambridge, Massachusetts, 1997. ˇ [Pol03] Poll´ ak, P., Cernock´ y, J. Czech Speecon Adult database, Speech Driven Interˇ faces for Consumer applications (speecon) project. FEL CVUT Praha, 2003. [Psu95] Psutka, J. Komunikace s poˇc´ıtaˇcem mluvenou ˇreˇc´ı. Academia, nakladatelstv´ı ˇ ISBN 80-200-0203-0, 1. edition, 1995. Akademie vˇed CR, [Psu06] Psutka, J., Muller, L., Matouˇsek, J., Radov´a, V. Mluv´ıme s poˇc´ıtaˇcem ˇcesky. ˇ ISBN 80-200-1309-1, 1. edition, Academia, stˇredisko spoleˇcn´ ych ˇcinnost´ı AV CR, 2006. [Rab93] Rabiner, L., Juang, B., H. Fundamentals Of Speech Recognition. Englewood Cliffs, N.J., PTR Prentice Hall, c1993. 507 p. TK7895.S65R33, 1993. [Rev92] Revuz, D. Minimisation of acyclic deterministic automata in linear time. Theoretical Computer Science., 92:181–189, 1992. [Ril] Riley, M. Openfst library. http://openfst.org/. [Roc97] Roche, E., Schabes, Y. Finite-State Language Processing. 464p, ISBN 0-26218182-7, 1997. ˇ [Rog98] Rogalewicz, V. Pravdˇepodobnost a statistika pro inˇzen´yry. Vydavatelstv´ı CVUT, 1. edition, 1998. [Sed03] Sedgewick, R. Algoritmy v C. SoftPress s.r.o, ISBN 80-96497-56-9, 1 edition, 2003. [Sim78] Simon, I. Limited subsets of a free monoid. Proceedings of the 19th Annual Symposium on Foundation of Computer Science., pages 143–150, 1978. [Spo07] Spoustov´ a, D., Hajiˇc, J., Votrubec, J., Krbec, P., Kvˇetoˇ n, P. The best of two worlds: Cooperation of statistical and rule-based taggers for czech. Proceedings of the Workshop on Balto-Slavonic Natural Language Processing., pages 67–74, 2007.
110
[Sza01]
[Tˇe85] [Uhl07] [Vil06] [wIS] [wli] [wsp] [wvo] [wwwa] [wwwb] [You02] ˇ [Sta] ˇ [Stb]
Szarvas, M., Furui, S. The use of finite-state transducers for modeling phonological and morphological constraints in automatic speech recognition. Tokyo Institute of Technology., 1, 2001. Tˇeˇsitelov´ a, M. a kol. Kvantitativn´ı charakteristiky souˇcasn´e ˇceˇstiny. Academica, 1985. ˇ Uhl´ıˇr, J. a kol. Technologie hlasov´ych komunikac´ı. CVUT v Praze, ISBN 807184-786-0, 2007. Villarejo, L. Building a morphological analyzer for regular nouns in swedish using FSTs. NLP1 - GSLT courses., 1, 2006. Institute for signal and information processing - speech recognition. http://www.isip.piconepress.com/projects/speech/. LibriVox. http://librivox.org/. The CMU sphinx group open source speech recognition engines. http://cmusphinx.sourceforge.net/. VoxForge. http://www.voxforge.org/. ASRNews. http://www.asrnews.com/. HTK. http://htk.eng.cam.ac.uk/. Young, S. The HTK Book (for HTK Version 3.2.1). Microsoft Corporation, Cambridge University Engineering Department, 3.2 edition, 2002. ˇ Stemberk, P. AT&T FSM & GRM knihovny pro rozpozn´av´an´ı ˇreˇci. http://gaya.agron.org/wz/skola/fsm-howto/grmtools.html. ˇ Stemberk, P. UCNK korpus jako zdroj dat pro rozpozn´av´an´ı ˇreˇci. http://gaya.agron.org/wz/ucnk-howto/.
111
Autorovy publikace ˇ [St03]
ˇ [St04a] ˇ [St04b]
ˇ [St04c]
ˇ [St04d]
ˇ [St05a] ˇ [St05b]
ˇ [St05c]
ˇ [St05d]
ˇ [St05e]
ˇ Stemberk, P. Miniaturn´ı platformy s procesorem ARM pro zpracov´an´ı ˇreˇci. ˇ Pˇr´ıspˇevek ve sborn´ıku, Anal´yza a zpracov´ an´ı sign´ al˚ u IV Vydavatelstv´ı CVUT, Praha, ISBN 80-01-02768-6, 1:129–139, 2003. ˇ Stemberk, P. Implementation of self-designed IIR filter. POSTER 2004 [CDˇ ROM], Praha: CVUT v Praze, FEL, 2004. ˇ Stemberk, P. Introduction to speech recognition based on FSM. Pˇr´ıspˇevek ve ˇ Ustav ´ sborn´ıku, 14. Czech-German Workshop , AV CR, radiotechniky a elektroniky, Praha, ISBN 80-86269-11-6, 1:106–109, 2004. ˇ Stemberk, P. Platforma LART a zpracov´an´ı ˇreˇci. Pˇr´ıspˇevek ve sborn´ıku, Anal´yza a ˇ zpracov´ an´ı sign´ al˚ u V, Vydavatelstv´ı CVUT, Praha, ISBN 80-01-03139-X, 1:66–76, 2004. ˇ Stemberk, P. Speech recognition based on FSM and HTK toolkits. Pˇr´ıspˇevek ˇ ˇ ve sborn´ıku, Digital Technologies 2004, EDIS-Zilina University publishers, Zilina, ISBN 80-8070-334-5, 1:55–60, 2004. ˇ Stemberk, P. Comparison of chosen ASRs based on FSM. Pˇr´ıspˇevek ve sborn´ıku, ˇ POSTER 2006 [CD-ROM]. Praha: CVUT FEL Praha, 2005. ˇ Stemberk, P. Increasing the recognition speed by using FSM. Pˇr´ıspˇevek ve sborn´ıku, Electronic Speech Signal Processing 2005, TUDpress, Dresden, ISBN 3-938863-17-X, 1:310–315, 2005. ˇ Stemberk, P. Modern´ı metody automatick´eho rozpozn´av´an´ı ˇreˇci. Pˇr´ıspˇevek ve sborn´ıku, ATP 2005, VUT Brno, Fakulta elektrotechniky a komunikaˇcn´ıch technologi´ı, Brno, ISBN 80-214-2925-9, 1:87–94, 2005. ˇ Stemberk, P. Speech recognition using finite-state automata. Pˇr´ıspˇevek ve ˇ sborn´ıku, Anal´yza a zpracov´ an sign´ al˚ u VI. Vydavatelstv´ı CVUT, Praha, ISBN 80-01-03217-5, 1:114–124, 2005. ˇ Stemberk, P. Speech recognizer based on the FSM. Pˇr´ıspˇevek ve sborn´ıku, ˇ POSTER 2005 [CDROM]. CVUT FEL Praha, pages 66–76, 2005.
112
ˇ ˇ [St05f] Stemberk, P. Using AT&T FSM toolkit for speech recognition. Pˇr´ıspˇevek ve sborn´ıku, Anal´yza a zpracov´ an´ı ˇreˇcov´ych a biologick´ych sign´ al˚ u. Vydavatelstv´ı ˇ CVUT, Praha, ISBN 80-01-03412-7., 1:36–45, 2005. ˇ ˇ [St05g] Stemberk, P. Using FSM based ASR on the czech speech database SPEECON. ˇ Pˇr´ıspˇevek ve sborn´ıku, Digital Technologies 2005, EDIS-Zilina University publishˇ ers, Zilina, ISBN 80-8070-486-4, 1:76–79, 2005. ˇ ˇ [St05h] Stemberk, P.(50%), Hanˇzl, V.(50%). Finite-state transducer toolkit for faster ASR. In ASIDE 2005 - Applied Spoken Language Interaction in Distributed Environments - Book of Abstracts [CD-ROM]. Grenoble : International Speech Communication Association, ISBN 87-90834-85-2, 1, 2005. ˇ ˇ [St06a] Stemberk, P. Speech recognizer construction using AT&T toolkit. Pˇr´ıspˇevek ve sborn´ıku, Anal´yza a zpracov´ an´ı ˇreˇcov´ych a biologick´ych sign´ al˚ u - Sborn´ık prac´ı ˇ 2006. Vydavatelstv´ı CVUT, Praha, ISBN 80-01-03621-9, 1:65–71, 2006. ˇ ˇ [St06b] Stemberk, P. Speech recognizer construction using the optimized network. Pˇr´ıspˇevek ve sborn´ıku, Nov´e smery v spracov´ an´ı sign´ alov VIII, Akad´ema ozbroˇ jen´ych s´ıl gen. Milana R. Stef´ anika, Tatransk´e Zruby, ISBN 80-8040-294-9, 1:301– 304, 2006. ˇ ˇ [St07] Stemberk, P. Pouˇzit´ı morfologick´ ych k´od˚ u pro ˇcesk´ y jazykov´ y model. Pˇr´ıspˇevek ve sborn´ıku, Anal´yza a zpracov´ an´ı ˇreˇcov´ych a biologick´ych sign´ al˚ u. Vydavatelstv´ı ˇ CVUT, Praha, ISBN 978-80-01-03940-3, 1:43–48, 2007.
113
Literatura pouˇ zit´ a pro tvorbu publikac´ı testov´ an´ı a v´ yvoj software ˇ e Budˇejovice, ISBN 80-85828-21-9, [Her01] Herout , P. Uˇcebnice jazyka C. Kopp, Cesk´ 2001. ˇ e Budˇejovice, ISBN 80-7232[Her04] Herout , P. Uˇcebnice jazyka C - 2.d´ıl. Kopp, Cesk´ 221-4, 2004. [itwa] GAWK. http://www.gnu.org/software/gawk/. [itwb] Gnuplot homepage. http://www.gnuplot.info/. [itwc] Graphviz - Graph Visualization Software. http://www.graphviz.org/. [itwd] MySQL C API. http://dev.mysql.com/doc/refman/4.1/en/c.html. [itwe] MYSQL manu´ al. http://mm.gene.cz/. [itwf] Sun Grid Engine. http://www.sun.com/software/sge/. [itwg] The GAWK Manual. http://www.cs.utah.edu/dept/old/texinfo/gawk/gawk_toc.html. [itwh] UNIX Shell Script Tutorials & Reference. http://www.injunea.demon.co.uk/ /pages/page201.htm. ˇ [itwi] Ceskoslovensk´ e sdruˇzen´ı uˇzivatel˚ u TeXu. http://www.cstug.cz/. [Sed03] Sedgewick, R. Algoritmy v C. SoftPress s.r.o, ISBN 80-96497-56-9, 1 edition, 2003. ˇ e Budˇejovice, ISBN 80-7232-110-2, 2002. [Vir02a] Virius , M. Od C k C++. Kopp, Cesk´ ˇ e Budˇejovice, ISBN 80-7232-176-5, 2002. [Vir02b] Virius , M. Od C++ k C#. Kopp, Cesk´
114