Ukryte modele Markowa jako metoda rozpoznawania mowy

11

Click here to load reader

description

Dokument opisuje sposób oraz etapy analizy mowy z wykorzystaniem ukrytych modeli markowa. Zobacz więcej na: mstanek.blogspot.com

Transcript of Ukryte modele Markowa jako metoda rozpoznawania mowy

Page 1: Ukryte modele Markowa jako metoda rozpoznawania mowy

Ukryte Modele Markowa w rozpoznawaniu mowyMichał Stanek

Data seminarium: 24 styczeń 2006Data oddania dokumentu: 26 styczeń 2006

Streszczenie

Dokument omawia zagadnienia związane z rozpoznawaniem mowy za pomocą ukrytych modeli markowa. Omówiony został proces kon­strukcji systemu, wykorzystanie modeli markowa w praktycznym działaniu oraz budowa zintegrowanego systemu rozpoznawania mowy SPHINX 4.

1. Wstęp

Historia systemów rozpoznawania mowy sięga początków lat 50-tych, kiedy to w Bell Laboratory zaczęto prace nad systemem do rozpoznawania izolowanych cyfr. Wykorzystywano wtedy informacje na temat różnic w rezonansach spectrów. Koniec lat 50-tych, lata 60-te oraz 70-te to dalszy rozwój tej dziedziny. Poza analizą spectrów zaczęto wykorzystywać informacje statystyczne, porównywać wzorce. Powstały matematyczne podstawy oraz formalizacja wielu metod w tym metody [2]:

• nieliniowego skalowania pary słów w celu ich porównania,

• liniowe kodowanie predykcyjne,

• dwupoziomowe programowanie dynamiczne,

• jednoprzebiegowa metoda Bridle'a i Browna,

• ukryte modele Markowa oraz

• sieci neuronowe.

Wiele z prac rozpoczętych w tamtym okresie zakończyło się sukcesami, między inny­mi system IBM'a (opracowywany ponad 20 lat) osiąga on bardzo dobre rezultaty przy rozpoznawaniu mowy ciągłej.

Obecnie poprawia się opracowywane wcześniej techniki, lecz niewątpliwie najwięk­szą popularnością cieszą się ukryte modele markowa. Są one tak popularne i tak często wykorzystywane, że wiele osób myśli, iż stanowią one jedyne słuszne i prawi­dłowe rozwiązanie problemu rozpoznawania mowy.

2. Rodzaje systemów rozpoznawania mowy

Wyróżnić możemy różne rodzaje systemów rozpoznawania mowy [1]. Istniejące sys­temy podzielić możemy na takie, których zadaniem jest rozpoznawania mowy ciągłej i takie które mają wykrywać wystąpienia izolowanych słów (wbrew pierwszemu wra­żeniu rozpoznawanie pojedynczych słów nie jest wcale sprawą łatwiejszą).

Wyróżnić możemy również systemy przeznaczone dla jednej konkretnej osoby, czyli

1

Page 2: Ukryte modele Markowa jako metoda rozpoznawania mowy

ukierunkowane w celu rozpoznawania sygnału dźwiękowego z pewną z góry określo­ną charakterystyką, oraz takie które muszą rozpoznać słowa wypowiadane przez wielu potencjalnych rozmówców.

Wreszcie ze względu na wielkość wyróżnić możemy systemy małe, średnie oraz duże. Jako systemy małe rozumiemy takie w których łączna ilość rozpoznawanych słów lub zwrotów nie przekracza 100. Systemy takie cechują się najwyższą skutecz­nością oraz potrafią poradzić sobie z rozpoznawaniem mowy wielu osób. Średnie systemy to takie w których łączna liczba rozpoznawanych słów nie przekracza 3 tysięcy. Aktualnie badania oraz prace rozwojowe prowadzi się nad systemami tej wła­śnie wielkości. W końcu systemy duże to takie w których liczba rozpoznawanych słów sięga nawet 20 tysięcy. W trakcie tworzenia takich systemów pojawia się wiele komplikacji, zwłaszcza jeżeli chcemy stworzyć system uniwersalny potrafiący roz­poznawać mowę wielu osób. Jeszcze trudniej stworzyć taki system tej wielkości działający w czasie rzeczywistym.

3. Etapy rozpoznawania mowy

Każdy system rozpoznawania mowy składa się z zasadniczo podobnych modułów, z których każdy odpowiedzialny jest za analizę otrzymanych danych na odpowiednim dla niego poziomie. Zasadniczo nie ma znaczenia jakich algorytmów i metod używa­my w trakcie procesu rozpoznawania mowy, czy są to przykładowo sieci neuronowe czy też może ukryte modele markowa, ogólny schemat pozostaje niezmienny. Sche­mat ten przedstawiony jest na rysunku 1, a każdy z kroków analizy sygnału zostanie omówiony w dalszej części tego podpunktu.

Rysunek 1: Etapy rozpoznawania mowy ([3] str. 19)

Etap analizy sygnału dźwiękowego

Pierwszym oraz zasadniczym etapem w czasie rozpoznawania sygnału dźwiękowego jest etap analizy tego sygnału. Jest on niezmiernie istotny z punktu widzenia funkcjo­nowania całego systemu. Jak widzimy na rysunku 1, błędy powstałe na tym etapie odbiją się na wszystkich następnych krokach. Podczas tego etapu dochodzi do wydo­bycia pewnych wartości charakteryzujących dany sygnału wejściowy. Należą do nich między innymi zmiana amplitudy w czasie oraz zmiana natężenia poszczególnych częstotliwości w czasie (rys. 2). Od nas zależy jakie cechy będą dla nas interesujące. Niemniej jednak istnieje już szereg parametrów, które potwierdziły swoje praktyczne znaczenie[2], między innymi parametry cepstralne oraz wartości zmian energii sygnału.

2

Page 3: Ukryte modele Markowa jako metoda rozpoznawania mowy

Rysunek 2: Wykres amplitudy od czasu oraz natężenia częstotliwości od czasu – spektrogram ([2] str. 7)

Rysunek 3: Przykładowa konfiguracja filtrów dla fazy wstępnej ([2] str. 5)

Kiedy ustalimy już zestaw podstawowych parametrów jakie chcemy wydobywać z dźwięku (rysunek 2 przedstawia przykładową konfigurację filtrów dźwiękowych), kolejnym etapem jest ustalenie długości ramki dźwiękowej. Zastosowanie ramki po­woduje, że pomiaru parametrów dokonujemy nie z całego sygnału dźwiękowego, a tylko z jego fragmentu. Ramki dźwiękowe w zależności od podejścia mogą na siebie nachodzić lub też nie. Podział sygnału dźwiękowego na ramki powoduje iż uzyskuje­my ciąg pomiarów z których każdy jest wektorem odpowiednio zdefiniowanych przez nas cech. Taki wektor trafia następnie do etapu analizy, gdzie następuje próba zakwa­lifikowania danego zestawu obserwacji do wcześniej wprowadzonych wzorców. Zanim to się jednak stanie stoimy przed jeszcze jednym problemem, jakim jest ciągło­ść wartości parametrów charakteryzujących każdą ramkę.

Rysunek 4: Podział sygnału dźwiękowego na ramki

Wiele metod maszynowego uczenia w tym także ukryte modele markowa posiadają dyskretny charakter, i aby móc je zastosować dysponować musimy dyskretnym oraz skończonym zestawem dopuszczalnych stanów. Problem ten rozwiązuje się za po­mocą kwantyzacji danego sygnału.

Problem doboru progów dla poszczególnych parametrów rozwiązujemy zazwyczaj z wykorzystaniem algorytmów klasteryzujących np. K-means. Po utworzeniu od­powiednich klastrów każdy parametr zostaje zakwalifikowany do odpowiedniego z nich i jego numer zostaje dalej zwracany. Możliwe jest, że klasteryzacji podlega cały wektor w n-wymiarowej przestrzeni, dzięki czemu możliwe jest zmniejszenie do jed­nego wymiaru wektora wejściowego zwracając po prostu numer klastra, który jest

3

Page 4: Ukryte modele Markowa jako metoda rozpoznawania mowy

najbardziej podobny do danego zestawu parametrów sygnału. Rozwiązanie takie upraszcza również dalszą konstrukcję modelu w którym nie musimy rozważać tak dużej liczby kombinacji różnego rodzaju parametrów wejściowych.

Rozpoznanie sygnału za pomocą ukrytych modeli markowa

Analizę ciągu wektorów będących parametrami charakteryzującymi dany sygnał dźwiękowy możemy przeprowadzić przy wykorzystaniu ukrytych modeli markowa. Jak wiemy modele te są wykorzystywane tam gdzie dysponujemy jedynie ciągiem ob­serwacji, a same przejścia pomiędzy poszczególnymi stanami systemu są dla nas niewiadome. Z takim właśnie przypadkiem spotykamy się w czasie analizy sygnałów dźwiękowych pod kątem rozpoznawania mowy. Zanim jednak przejdziemy dalej chciałbym przedstawić pewne charakterystyczne typy ukrytych modeli markowa szczególnie przydatne w czasie analizowania sygnałów dźwiękowych.

Rysunek 5: Typy ukrytych modeli markowa (a) - model ergodyczny, (b) i (c) - model Bakisa

Na rys. 6 (a) widzimy tradycyjny graf dla stacjonarnego procesu markowa pierwszego rzędu. Jest to model ergodyczny, czyli taki w którym z każdego stanu do każdego istnieje połączenie. W procesie analizowania sygnału dźwiękowego okazało się jed­nak, że zarówno w procesie uczenia jak i w późniejszym procesie rozpoznawania wzorca dużo bardziej skuteczne okazały się modele markowa charakteryzujące się pewną określoną własnością. Model taki widzimy na rys. 6 (b), tą charakterystyczną cechą jest to, że nie mamy połączeń do poprzednich stanów (stanów o numerze niższym niż aktualny). Modele takie nazywamy lego-prawymi (left-righ hmm models) lub modelami Bakisa. Macierz prawdopodobieństw przejścia pomiędzy sta­nami jest macierzą trójkątną górną (1).

(1)

Wprowadza się również kolejne ograniczenie, jakim jest maksymalna liczba stanów o które może nastąpić przesunięcie do przodu oznaczana symbolem 'Δ'. Wszystkie te zależności zawarte są w nierównościach (2). Wprowadzenie ich zasadniczo ułatwia znalezienie parametrów modelu w trakcie procesu nauki np. za pomocą algorytmu Welcha, wektor π jest z góry określony (ponieważ zawsze zaczynam w stanie o nume­

4

Page 5: Ukryte modele Markowa jako metoda rozpoznawania mowy

rze 1), a na macierz A jest nałożone dużo ograniczeń zasadniczo zmniejszających po­tencjalną przestrzeń rozwiązań.

(2)

Kolejną niekorzystną cechą jaka charakteryzuje podstawowy model markowa jest to, że prawdopodobieństwo pozostania w danym stanie maleje wykładniczo z czase,. Nie jest to pożądana cecha, chcielibyśmy aby model mógł pozostać w każdym stanie przez pewien okres czasu (rys. 6). Prowadzi to do kolejnej modyfikacji reprezentacji ukrytego modelu markowa i wiąże się z późniejszymi komplikacjami w postaci modyfikacji algorytmu Welcha, który musi dodatkowo wyznaczyć parametr D, okre­ślający maksymalny czas w jakim układ może przebywać w danym stanie.

Rysunek 6: Model markowa w którym uwzględniamy czas pozostania w danym stanie

Skoro omawiamy już modyfikację wprowadzane do ukrytych modeli markowa ze względu na możliwości analizowania sygnału dźwiękowego, warto wspomnieć rów­nież, o tym, że są one również wykorzystywane do modelowania reguł gramatycznych języka. Zastosowanie ukrytych modeli markowa zamiast gramatyki bezkontekstowej umożliwia nam wyrażenie większej ilości danych np. podczas modelowania możliwych połączeń np. słów w zdania. Aby to osiągnąć, niezbędne jest umożliwienie układowi przejścia bez wygenerowania obserwacji, łuk taki oznaczamy symbolem ø (rys. 7)

Rysunek 7: Rozszerzenie modelu o możliwość przejść między stanami bez obserwacji

Na rysunku 7 (c) przedstawiony jest model markowa za pomocą którego wygene­rować możemy dowolnie długą cyfrę. Rozwiązanie z wprowadzeniem przejścia nie produkującego obserwacji jest również przydatne do opisania np. słów, które posiada­ją różne możliwe wymowy, rysunek 7 b przedstawia taki graf dla słowa „two”.

Skoro omówione mamy już typy modeli markowa przejdziemy teraz do zagadnienia samego rozpoznawania. Tutaj stajemy przed kolejnym bardzo istotnym zagadnieniem jakim jest wybór najmniejszej rozpoznawanej jednostki. Jednostką taką może być przykładowo słowo. Podejście takie jest dobre dla systemów małych, w których

5

Page 6: Ukryte modele Markowa jako metoda rozpoznawania mowy

mamy ograniczoną liczbę słów. Problem pojawia się w przypadku gdy chcemy roz­poznawać około 10 000 słów. Zakładając, że dysponujemy tylko 5 przykładami wymowy każdego słowa liczba przykładów dla jakich będziemy szukać parametrów modelu (proces nauki) rośnie do ogromnej liczby 50 000 słów. Nawet jeżeli udało by nam się zebrać tak ogromną liczbę danych, system nasz będzie w stanie rozpoznać je­dynie te 10 000 słów. Alternatywnym podejściem jest rozpoznawanie fonemów1, umożliwia nam to rozpoznanie potencjalnie dowolnego słowa. Nie jest jednak bez wad, dla języka angielskiego mamy około 40-50 fonemów[1], co wymaga przy­gotowania około 2500 przykładów uczących. Jednak skuteczność systemów opartych na tym paradygmacie jest około 50% mniejsza niż systemów rozpoznających całe sło­wa, wynika to z pewnych zależności kontekstowych (koartykulacji), kiedy poprzedni fonem zmienia brzmienie fonemu po nim następującego.

Alternatywnym podejściem jest rozpoznawanie sylab. Systemy oparte na tej zasadzie są już dużo dokładniejsze niż systemy oparte na fonemach, niestety w języku angiel­skim dysponujemy około 10 000 możliwych sylab, co znowu czyni proces przygotowywania danych bardzo uciążliwym. Możemy zmniejszyć tą liczbę próbując rozpoznawać podwójne sylaby (demi-syllables), przykładowo dla angielskiego słowa bed, musielibyśmy rozpoznać wtedy dwa wzorce /B AE/ + /AE D/. Dzięki takiemu podejściu i faktowi, że część sylab nie może występować obok siebie ilość danych jakie musimy przygotować spada do „zaledwie” 2 000.

Zdecydowanie najlepsze są systemy które rozpoznają tak zwane trójdźwięki (tripho­nes) – fonemy występujące w kontekście. Słowo „bed” składa się z następujących trójdźwięków: SILBAE BAED AEDSIL (gdzie SIL oznacza ciszę). Jednak skoro posiada­my aż 50 fonemów dla języka angielskiego (w języku polskim występuje około 78), to rozważając kombinację wszystkich trójek takich fonemów otrzymujemy astrono­miczną liczbę 503 = 125 000. Jednak podobnie jak w przypadku sylab większość kombinacji nie jest możliwa w języku, dodatkowo stosuje się pewien zabieg uogól­nienia w którym określa się że dany fonem poprzedza np. samogłoska, co zapisujemy VTV (v – vowel).

Każde z przedstawionych tutaj podejść ma swoje wady oraz zalety, różnią się zarów­no możliwościami jakie oferują jak również czasochłonnością przygotowania danych uczących. Kiedy jednak zdecydujemy się na któreś z nich przechodzimy do kolejnego etapu jakim jest skonstruowanie ukrytych modeli markowa. Modeli tych konstruuje­my dokładnie tyle ile chcemy jednostek wykrywać. Dla systemu rozpoznającego 10 słów stworzymy 10 modeli, każdy rozpoznający dane słowo. Dla systemu roz­poznającego fonemy stworzymy 50 modeli, każdy rozpoznający pojedynczy fonem. Załóżmy jednak w tej chwili, że rozpoznawać chcemy te 10 słów, musimy zatem utworzyć 10 ukrytych modeli markowa oraz wyznaczyć ich parametry, tak aby każdy mógł rozpoznać dokładnie jedno słowo. Aby tego dokonać musimy jeszcze dyspono­wać odpowiednimi przykładami uczącymi, czyli ciągami obserwacji, w naszym przypadku będzie to lista wektorów parametrów charakteryzujących dany wyraz. Wy­znaczenie parametrów każdego z tych modeli odbywa się za pomocą algorytmu Welcha, który uruchamiamy z danymi każdej obserwacji dla rozpoznawanych jedno­stek.

Etap rozpoznawania sygnału dźwiękowego, polega na tym, że każdy sygnał trafia do wszystkich modeli i staramy się odpowiedzieć na pytanie jakie jest prawdopodo­bieństwo wygenerowania danego sygnału przez ten model. W tym momencie

1 Fonem jest najmniejszą jednostką dźwięku posiadającą znaczenie w języku.

6

Page 7: Ukryte modele Markowa jako metoda rozpoznawania mowy

możemy stworzyć tablicę rankingową słów, a w zasadzie modeli które uzyskały naj­większe prawdopodobieństwa, lub też wybrać ten jeden który uzyskał największe prawdopodobieństwo (rys. 8). Podobna sytuacja występuje jeżeli analizujemy fone­my, sylaby czy trójdźwięki, musimy dysponować dokładnie taką liczbą ukrytych modeli markowa jaką mamy zamiar wykrywać.

Rysunek 8: ([3] str. 5)

Analiza leksykalna

Jesteśmy już za etapem wykrywania podstawowych jednostek z dźwięku. W tym momencie kończy się właściwie proces, w którym bierzemy pod uwagę parametry sygnału dźwiękowego. Kolejnym etapem jest analiza leksykalna, jest ona przeprowa­dzana jednak tylko wtedy kiedy rozpoznawana jednostka jest mniejsza niż słowo, gdyż jej zadaniem jest ustalenie najbardziej prawdopodobnego słowa na podstawie wyników uzyskanych z poprzedniego etapu dopasowania wzorców dźwiękowych. Na rys. 9 przedstawione są dwa modele markowa, pierwszy odpowiedzialny za wykrycie fonemu /s/, drugi natomiast za wykrycie słowa „sad”, jak widać model odpowiedzial­ny za wykrycie słowa określa reguły składania poszczególnych fonemów. Przykład z tym słowem jest jednak trywialny, ponieważ prawdopodobieństwa przejść pomiędzy poszczególnymi stanami są ustalone na 1.0, co jest równoznaczne z zastosowaniem na przykład automatu skończonego w celu wykrycia słowa. Oczywiście wykorzystanie ukrytych modeli markowa na tym poziomie nie jest konieczne, jest jednak bardzo po­mocne jeżeli dane słowo może być wypowiadane w różny sposób (np. uwzględniając akcent). Aby odpowiedzieć na pytanie które słowo (model markowa określające zasa­dy konstrukcji słowa) jest najbardziej prawdopodobny dla danego ciągu obserwacji należy wykorzystać algorytm Viterbiego.

Rysunek 9: Modele markowa dla rozpoznania fonemu i słowa

7

Page 8: Ukryte modele Markowa jako metoda rozpoznawania mowy

Analiza syntaktyczna

Kolejnym etapem analizy mowy jest łączenie słów w zdania i wypowiedzi. Jest to realizowane przez zdefiniowanie gramatyki rozpoznawanego języka, a następnie sprawdzanie czy rozpoznane słowo (wraz ze słowami je poprzedzającymi) zgadza się z tymi regułami. Etap ten zazwyczaj służy do określenia odpowiednich ograniczeń na wyniki uzyskane z warstwy dokonującej analizy leksykalnej, która zwraca po­szczególne słowa. Oczywiście zakładając, że warstwa leksykalna zwraca nie jeden a wiele wyników, każdy z odpowiednim prawdopodobieństwem, słowa te można sprawdzić pod kątem tego czy jest możliwe ich wystąpienie w takiej sekwencji, a na­stępnie jak dana sekwencja słów jest prawdopodobna w danym języku. Odpowiedzi na takie pytania udzielają np. słowniki N-gramowe, które zawierają prawdopodo­bieństwa wystąpienia danego słowa w kontekście o długości n-1. Oczywiście prawdopodobieństwa takie uzyskuje się po wcześniejszej analizie statystycznej kor­pusu2. Naturalnym sposobem wyrażenia słowników n-gramowych jest konstrukcja ich w postaci modeli markowa.

Rysunek 10: Model języka w postaci modelu markowa

Jeżeli obliczyliśmy już wszystkie prawdopodobieństwa możliwe jest znalezienie ścieżki, podobnie jak to się odbywało na etapie analizy leksykalnej, za pomocą np. al­gorytmu Viterbiego, dla której maksymalizowana jest wartość prawdopodobieństwa.

Analiza semantyczna

Analiza semantyczna podobnie jak poprzednie etapu służy do ograniczenia liczby możliwych odpowiedzi systemu, poprzez minimalizację prawdopodobieństwa wy­stąpienia pewnych sekwencji słów. Analiza semantyczna polega na badaniu kontekstu całej wypowiedzi i bazowaniu na wcześniej uzyskanych informacjach. Przykładowo jeżeli wiemy, że mówca opowiada właśnie o jego nowym motorze, możemy ograniczyć lub też zwiększyć prawdopodobieństwa wystąpienia wypowiedzi charak­teryzujących pojazdy a zminimalizować prawdopodobieństwa wypowiedzi charakteryzujących ludzi.

2 Korpus – zbiór reprezentatywnych tekstów dla danego języka.

8

Page 9: Ukryte modele Markowa jako metoda rozpoznawania mowy

Omówione poszczególne etapy rozpoznawania mowy, na zakończenie warto podsu­mować przedstawione wcześniej informacje. Na rysunku 11 znajduje się ogólny schemat działania systemu rozpoznawania mowy [5].

Rysunek 11: Model języka w postaci modelu markowa

4. Pakiet rozpoznawania mowy SPHINX 4

Na rynku dostępne jest już dość sporo programów umożliwiających rozpoznawanie mowy, za większość z nich niestety musimy zapłacić dość znaczną kwotę, a metody w nich użyte objęte są tajemnicą. Dla zainteresowanych badaniami w dziedzinie roz­poznawania mowy z pomocą przychodzi jednak pakiet SPHINX który poza tym że posiada bardzo dokładną dokumentacje jest systemem open sourcowym. Składa się on również z modułów które mogą być niezależnie wymieniane i poprawiane. Sche­mat budowy SPINXa 4 przedstawiony jest na rysunku 12.

9

Page 10: Ukryte modele Markowa jako metoda rozpoznawania mowy

Rysunek 12: Schemat budowy systemu SPHINX 4

Trzy najważniejsze jego moduły to:

• FronEnd – przetwarzający sygnał wejściowy w ciąg cech, za pomocą zesta­wu filtrów, mamy pełną możliwość konfigurowania zarówno jakie filtry chcemy wykorzystywać jak również w jakiej kolejności (rys. 13). Moduł ten zaimplementowane najczęściej wykorzystywanych filtry typu MEL, FIR, od­wrotne transformaty kosinusowe, dyskretne transformaty fouriera, odwrotne dyskretne transformaty fouriera i wiele innych.

• Linguist – moduł odpowiedzialny za rozpoznawanie wzorców oraz przy­gotowanie drzew przeszukiwań.

• Search Manager – odpowiedzialny jest za przeszukiwanie przestrzeni możli­wych rozwiązań zdefiniowanych za pomocą SearchGraphów i wybranie tych najbardziej prawdopodobnych.

Rysunek 13: Schemat działania modułu FrontEnd

Moduł Linguist składa się z następujących modułów:

• AcousticModel – odpowiedzialny jest za rozpoznawanie sygnałów akustycz­nych, co domyślnie robione jest to za pomocą ukrytych modeli markowa.

• Dictionary – zawiera zestaw słów rozpoznawany przez system oraz dla każdego słowa określa zestaw jednostek składowych (pochodzących z Aco­usticModel) oraz reguły ich łączenia.

• LanguageModel – zawiera reguły gramatyczne danego języka. Moduł ten

10

Page 11: Ukryte modele Markowa jako metoda rozpoznawania mowy

może wykorzystywać słowniki n-gramowe, gramatyki bezkontekstowe, transduktory skończenie stanowe itp.

Wynikiem działania modułu Linguist jest graf przeszukiwań SearchGraph przedsta­wiony na rysunku 14.

Rysunek 14: Schemat budowa grafu przeszukiwań

Graf ten trafia następnie do modułu Decoder a dokładniej SearchManager od­powiedzialnego za wyszukanie najlepszego dopasowania danego ciągu obserwacji do odpowiedniej ścieżki w SearchGraphie. Do tego celu wykorzystywane mogą być al­gorytmy A*, DeepFirst lub też algorytm Viterbiego. Za ocenę poszczególnych rozwiązań odpowiedzialny jest moduł Scorer, natomiast moduł Pruner odpowiada za usuwanie z grafu SearchGraph wierzchołków, których prawdopodobieństwo, że na­leżą do rozwiązania jest zbyt małe.

Literatura:[1] An Overview of Speech Recognition: lecture 12, http://www.cs.rochester.edu/u/james/CSC248/Lec12.pdf

[2] Rozpoznawanie izolowanych słów języka polskiego http://www.cin.pojan.net/sris/sem.pdf

[3] A tutorial on hidden markov models and selected application in speech reco­gnition, Lawrence R. Rabiner, Procedings of the IEEE, vol. 77, NO. 2, February 1989

[4] Sphinx IV: A flexible open source framework for speech recognition, Willie Wal­ker, Paul Lamere, Philip Kwok, Bhiksha Raj, Rita Singh, Evandro Gouvea, Peter Wolf, Joe Woelfel

[5] Speech recognition for voice based control, Y. S. Naous, G. F. Choueiter, M. I. Ohannessian and M. A. Al-Alaoui

11