Professional Documents
Culture Documents
Michał Stanek
Data seminarium: 24 styczeń 2006
Data 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,
• 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.
1
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.
2
Rysunek 2: Wykres amplitudy od czasu oraz natężenia częstotliwości od czasu –
spektrogram ([2] str. 7)
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
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.
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
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.
5
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
6
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ć.
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.
7
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.
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.
8
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].
9
Rysunek 12: Schemat budowy systemu SPHINX 4
10
może wykorzystywać słowniki n-gramowe, gramatyki bezkontekstowe,
transduktory skończenie stanowe itp.
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