Upload
trandung
View
220
Download
0
Embed Size (px)
Citation preview
WYDZIAŁ INŻYNIERII MECHANICZNEJ I ROBOTYKI
KATEDRA WIBROAKUSTYKI
Praca dyplomowa
magisterska
Imię i nazwisko Michał Salasa
Kierunek studiów Inżynieria Akustyczna
Temat pracy dyplomowej Analiza metod głębokiego uczenia
maszynowego do modelowania
mowy polskiej
Opiekun pracy dr inż. Jakub Gałka
Kraków, rok 2015
Spis treści
- 3 -
Spis treści
WSTĘP ....................................................................................................................................................... 5
CEL PRACY .............................................................................................................................................. 7
ROZDZIAŁ 1 WPROWADZENIE W PROBLEMATYKĘ ................................................................. 8
1.1 AUTOMATYCZNE ROZPOZNAWANIE MOWY .................................................................................... 8
1.1.1 Założenia systemu ASR ...................................................................................................... 10
1.1.2 Parametryzacja sygnału akustycznego............................................................................... 12
1.1.3 Model akustyczny ............................................................................................................... 13
1.1.4 Model językowy .................................................................................................................. 16
1.2 GŁĘBOKIE SIECI NEURONOWE W KONTEKŚCIE MODELOWANIA AKUSTYCZNEGO MOWY .............. 17
1.2.1 Architektura głębokiej sieci neuronowej ............................................................................ 17
1.2.2 Hybryda DNN-HMM ......................................................................................................... 20
1.2.3 Bottleneck Features (BNF) ................................................................................................ 22
ROZDZIAŁ 2 PRZYGOTOWANIE ŚRODOWISKA PROGRAMISTYCZNEGO ORAZ
DANYCH NIEZBĘDNYCH DO PRZEPROWADZENIA BADAŃ ................................................... 24
2.1 WYKORZYSTYWANE OPROGRAMOWANIE ..................................................................................... 24
2.1.1 Kaldi – zestaw narzędzi do automatycznego rozpoznawania mowy .................................. 24
2.1.2 ATLAS – biblioteki numeryczne ......................................................................................... 25
2.1.3 OpenFST – zestaw narzędzi do modelowania automatów skończonych ............................ 26
2.1.4 CUDA – platforma do obliczeń równoległych ................................................................... 26
2.1.5 SRILM – zestaw narzędzi do modelowania językowego .................................................... 27
2.1.6 FaNT – narzędzie do przetwarzania nagrań dźwiękowych ................................................ 27
2.2 KORPUSY MOWY POLSKIEJ ........................................................................................................... 27
2.2.1 Charakterystyka korpusów ................................................................................................. 28
2.2.2 Wydzielenie podzbiorów korpusów .................................................................................... 30
2.2.3 Zakłócanie korpusów ewaluacyjnych ................................................................................. 33
ROZDZIAŁ 3 TRENING MODELI AKUSTYCZNYCH ................................................................... 42
3.1 WYGENEROWANIE INFORMACJI JĘZYKOWYCH ............................................................................. 42
3.2 KONSTRUKCJA DANYCH TRENINGOWYCH .................................................................................... 45
3.3 TRENING MFCC-GMM-HMM .................................................................................................... 45
3.4 TRENING BNF-GMM-HMM ....................................................................................................... 57
3.5 TRENING FBANK-DNN-HMM ................................................................................................... 65
Spis treści
- 4 -
ROZDZIAŁ 4 EWALUACJA ORAZ ANALIZA PORÓWNAWCZA WYNIKÓW ........................ 70
4.1 OPIS ANALIZOWANYCH METRYK .................................................................................................. 70
4.2 KOMPILACJA GRAFÓW DEKODUJĄCYCH ....................................................................................... 72
4.3 DOSTROJENIE KONFIGURACJI DEKODERA ..................................................................................... 74
4.4 PORÓWNANIE SKUTECZNOŚCI MODELI AKUSTYCZNYCH ............................................................... 79
4.5 PORÓWNANIE ODPORNOŚCI MODELI AKUSTYCZNYCH NA ZAKŁÓCENIA ....................................... 80
4.5.1 Odporność na zaszumienie ................................................................................................. 80
4.5.2 Odporność na pogłos ......................................................................................................... 91
PODSUMOWANIE ............................................................................................................................... 102
BIBLIOGRAFIA ................................................................................................................................... 103
SPIS ILUSTRACJI ................................................................................................................................ 106
ZAŁĄCZNIK - WYNIKI EWALUACJI ............................................................................................. 109
Spis treści
- 5 -
Wstęp
Automatyczne rozpoznawanie mowy jest technologią rozwijaną nieustannie od lat
trzydziestych XX wieku. Od tamtego czasu powstało wiele ważnych teorii i rozwiązań,
które regularnie zwiększały skuteczność i wszechstronność implementowanych
systemów. Był to systematyczny i powolny rozwój, który w ostatnich kilku latach nabrał
ogromnego tempa.
W przeszłości, systemy ASR (ang. Automatic Speech Recognition) funkcjonowały
raczej jako ciekawostka niż jako ważny element w komunikacji człowieka z maszyną.
Miały na to wpływ głównie stosunkowo wysoka zawodność systemów oraz brak realnego
zapotrzebowania (klasyczna metoda myszy i klawiatury była zdecydowanie bardziej
wygodna). W ostatnim dziesięcioleciu sytuacja uległa diametralnej zmianie. Pojawiły się
technologiczne rozwiązania, dla których wygodniejszym i bardziej naturalnym sposobem
kontroli stał się ludzki głos (systemy wspomagające w samochodach, idea inteligentnych
domów, wirtualni asystenci w telefonach komórkowych i inne przenośne urządzenia takie
jak zegarki elektroniczne). Co więcej, dostęp do coraz szybszych jednostek
obliczeniowych (pojawienie się wielordzeniowych CPU oraz GPGPU) oraz możliwość
gromadzenia ogromnych ilości danych dzięki sieci Internet pozwoliły na tworzenie
znacznie skuteczniejszych i szybszych modeli wykorzystywanych w rozpoznawaniu
mowy.
W automatycznym rozpoznawaniu mowy znalazło się również miejsce dla znanych
już wcześniej metod głębokiego uczenia maszynowego, które jednak nie były aktywnie
rozwijane ze względu na ogromną złożoność obliczeniową. Wraz z opisanym wcześniej
przyrostem technologicznym i wzrostem zainteresowania systemami ASR coraz więcej
jednostek naukowych zaczęło uważnie badać te metody. Powstało wiele
ogólnodostępnych narzędzi programistycznych, które pozwalają przeprowadzać swoje
własne badania i eksperymenty.
W niniejszej pracy dyplomowej podjęto próbę przeprowadzania swoich własnych
eksperymentów wykorzystując najnowsze dostępne metody modelowania akustycznego
mowy. Autor chciał przebadać wpływ metod głębokiego uczenia maszynowego na
skuteczność modeli akustycznych mowy polskiej oraz porównać ich wszechstronność z
klasycznym sposobem modelowania.
Wstęp
- 6 -
W rozdziale pierwszym przedstawiono krótką historię ewolucji systemów
automatycznego rozpoznawania mowy oraz opisano podstawowe pojęcia niezbędne do
zrozumienia kluczowych mechanizmów kryjących się za tą technologią. Dokonano
również przeglądu dostępnej literatury pod kątem zastosowania głębokich sieci
neuronowych do modelowania akustycznego mowy oraz omówiono szczegółowo te
metody, które będą w niniejszej pracy analizowane.
Rozdział drugi dotyczy przygotowania środowiska programistycznego niezbędnego
do przeprowadzenia opisanych w pracy eksperymentów. Opisano w nim pokrótce
najważniejsze wykorzystywane oprogramowanie oraz zawarto drobne wskazówki co do
jego instalacji. W rozdziale drugim scharakteryzowano również korpusy mowy polskiej,
które stanowiły źródło danych treningowych, deweloperskich i ewaluacyjnych.
Omówiono też dokładnie sposób w jaki wygenerowano z nich odpowiednie podzbiory
nagrań oraz metody wprowadzenia zakłóceń akustycznych do podzbiorów
ewaluacyjnych.
W rozdziale trzecim umieszczono kompletny przebieg treningów trzech
analizowanych modeli akustycznych w środowisku Kaldi wraz z opisaniem wywołań
najistotniejszych programów i skryptów. Zawarto tutaj także wszystkie informacje
niezbędne do odtworzenia tych eksperymentów.
Rozdział czwarty rozpoczyna się od opisu metryk wykorzystywanych do ewaluacji
systemów automatycznego rozpoznawania mowy. Najważniejszą częścią czwartego
rozdziału jest przedstawienie i analiza wyników otrzymanych z ewaluacji trzech
systemów zbudowanych z wykorzystaniem wytrenowanych modeli akustycznych.
Porównano tutaj ogólną skuteczność systemów zaobserwowaną na wyselekcjonowanych
korpusach testowych oraz ich odporność na różnego rodzaju zakłócenia akustyczne.
Cel pracy
- 7 -
Cel pracy
Celem pracy jest przede wszystkim przeprowadzenie jednych z pierwszych
eksperymentów wykorzystujących metody głębokiego uczenia maszynowego do
modelowania akustycznego mowy polskiej i wytrenowanie modeli akustycznych dla
języka polskiego o jak największej skuteczności.
Autor ma na celu również przeprowadzenie analizy wykorzystywanych metod pod
kątem ogólnej skuteczności i wydajności zbudowanych z ich pomocą systemów ASR z
porównaniem do metod klasycznych. Porównaniu ulegnie również odporność systemów
na różnego rodzaju zakłócenia akustyczne.
Wprowadzenie w problematykę
- 8 -
Rozdział 1
Wprowadzenie w problematykę
W poniższym rozdziale przedstawione zostaną podstawowe zagadnienia związane z
automatycznym rozpoznawaniem mowy oraz sztucznymi sieciami neuronowymi.
Zostanie również dokonany przegląd literatury pod kątem różnych metod polegających
na wykorzystaniu głębokich sieci neuronowych do akustycznego modelowania mowy,
które to metody stały się w ostatnim dziesięcioleciu ważną alternatywą dla klasycznego
podejścia.
1.1 Automatyczne rozpoznawanie mowy
Historia automatycznego rozpoznawania mowy (ang. Automatic Speech Recognition,
ASR) ma swój początek w latach trzydziestych XX wieku. Pierwszy, odnotowany przez
literaturę naukową, system rozpoznawania mowy został skonstruowany w 1952 roku w
zakładzie Bell Labolatories. Trzech naukowców: Davis, Biddulph oraz Balashek
utworzyli system, który był w stanie rozpoznawać cyfry wypowiadane przez
pojedynczego mówcę w sposób izolowany (z przerwami). Główny mechanizm bazował
na prostym dopasowaniu wzorca, którym dla każdej wypowiadanej cyfry były trajektorie
wyznaczone przez dwa pierwsze formanty (zagęszczenia energii) w widmie
częstotliwościowym sygnału [4]. Od tego momentu coraz więcej ośrodków naukowych
wykazywało zainteresowanie tą tematyką.
Kolejne systemy, budowane głównie w USA, Japonii oraz Związku Radzieckim,
cechowały się coraz większymi możliwościami (rozpoznawanie głosek, dynamiczne
czasowe dopasowanie wypowiedzi, rozpoznawanie ciągłych fraz). Powstawały też
pierwsze komercyjne wdrożenia tej technologii (firma Threshold Technology założona
przez Toma Martina).
W połowie lat siedemdziesiątych dwoma głównymi ośrodkami naukowymi, w których
rozwijano technologię rozpoznawania mowy, było IBM pod przewodnictwem Freda
Jelinka oraz AT&T Bell Laboratories. Obie grupy obrały sobie za cel rozwinięcie różnych
elementów systemów ASR co zaowocowało szybszym rozwojem tej gałęzi nauki. W
IBM utworzono system Tangora, który cechował się dużym jak na współczesne czasy,
rozmiarem słownika dzięki wprowadzeniu statystycznych modeli językowych (n-
Wprowadzenie w problematykę
- 9 -
gramów) [11]. Dzięki tym pracom statystyczne modele językowe stały się integralną
częścią większość późniejszych systemów rozpoznawania mowy. System tworzony w
AT&T Laboratories miał zostać wykorzystany w publicznych liniach telefonicznych i z
tego względu jego główną siłą musiała być niezależność od mówcy. Pracę w IBM
przyczyniły się do rozwinięcia technik statystycznego modelowania zjawisk
akustycznych mowy (Ukryte Modele Markowa) oraz wykorzystywania tak zwanych
‘słów kluczy’ [28].
Ogromnym krokiem naprzód w latach osiemdziesiątych było powszechne
zastępowanie dotychczasowego ‘bezpośredniego’ dopasowywania wzorców mowy (w
dziedzinie częstotliwości) bardziej wyrafinowanym statystycznym modelowaniem
akustycznym opartym na Ukrytych Modelach Markowa. To podejście wcześniej znane
było tylko w nielicznych ośrodkach, a do jego upowszechnienia przyczyniła się duża
liczba publikacji naukowych, w których temat HMM był wyjaśniany. Statystyczne
podejście, pozwalające na okiełznanie bardzo dużej zmienności mowy, stało się żelaznym
elementem każdego systemu ASR i przetrwało do dziś – bardziej szczegółowe
omówienie tego tematu znajduje się w kolejnych rozdziałach.
Współcześnie wiele jednostek naukowych na świecie specjalizuje się w systemach
automatycznego rozpoznawania mowy. Rozbudowywanych jest również wiele
komercyjnych rozwiązań (głównie wirtualni asystenci), które z roku na rok stają się coraz
bardziej popularne. Do kluczowych rozwiązań w tym temacie należą takie produkty jak
Siri (firmy Apple), Google Now (Google), S Voice (Samsung) i Cortana (Microsoft).
Cechą charakterystyczną automatycznego rozpoznawania mowy jest jego
interdyscyplinarny charakter. Aby dobrze zrozumieć i rozwijać związane z nim
technologie należy mieć wiedzę (przynajmniej poglądową) w wielu różnych dziedzinach
nauki. Interesujące zestawienie najważniejszych dyscyplin naukowych związanych z
rozpoznawaniem mowy wraz z ich przykładowym zastosowaniem zostało przedstawione
przez Rabinera i Juanga [18]:
Przetwarzanie Sygnałów – ekstrakcja istotnych (z perspektywy przetwarzania
mowy) informacji pochodzących z zarejestrowanych sygnałów akustycznych
poprzez analizę czasowo-częstotliwościową.
Wprowadzenie w problematykę
- 10 -
Akustyka – opisanie praw i zależności związanych z generowaniem i
odbieraniem sygnału mowy (fali akustycznej) przez specjalizowane organy
człowieka (trakt głosowy, narząd słuchu).
Rozpoznawanie wzorców – efektywna klasyfikacja nowych serii danych na
podstawie wcześniej zgromadzonego zbioru danych treningowych.
Teoria informacji – procedury estymacji parametrów modeli
probabilistycznych, programowanie dynamiczne (algorytm Viterbiego).
Lingwistyka – wykrywanie relacji między wypowiadanymi częściami mowy
(fonologia), analizowanie znaczenia słów (semantyka) struktur gramatycznych
w obrębie danego języka.
Fizjologia – zrozumienie mechanizmów zachodzących w centralnym układzie
nerwowym człowieka związanych z szeroko pojętym przetwarzaniem mowy
oraz próba przełożenia ich na odpowiednie algorytmy (sztuczne sieci
neuronowe).
Informatyka – umiejętność efektywnego implementowania algorytmów
koniecznych do prawidłowego funkcjonowania systemu rozpoznawania
mowy.
1.1.1 Założenia systemu ASR
Głównym zadaniem systemu automatycznego rozpoznawania mowy jest znalezienie
dla analizowanego sygnału akustycznego (sygnału mowy) jego najdokładniejszej
transkrypcji (zapisu słownego). Biorąc pod uwagę ogromną zmienność sygnału mowy
wynikającą z różnorodności warunków akustycznych oraz różnego sposobu wymawiania
słów przez różnych mówców zadanie to jest bardzo skomplikowane.
Zadanie przetworzenia mowy na tekst można traktować jako próbę odkodowania
nadanej informacji (w tym przypadku słów), która poprzez pewien kanał zaszumiający
została przekonwertowana na sygnał akustyczny [12]. Idealnym rozwiązaniem tego
problemu byłaby sytuacja, w której znając dokładny model kanału zaszumiającego oraz
dysponując kompletnym zestawem zdań możliwych do utworzenia w danym języku,
generowalibyśmy sygnał akustyczny dla każdego możliwego zdania i szukali takiej
reprezentacji akustycznej, która najlepiej ‘pasuje’ do oryginalnej wypowiedzi.
Wprowadzenie w problematykę
- 11 -
Metryką służącą do poszukiwania najlepszego dopasowania jest w systemach
rozpoznawania mowy prawdopodobieństwo. Jest to metryka, która najlepiej sprawuje się
w warunkach bardzo dużej zmienności mowy. Wywodzi się ona z modelu
Bayesowskiego, którego zastosowanie w rozpoznawaniu mowy zostanie teraz
przedstawione.
Potraktujmy akustyczny sygnał mowy O jako sekwencję pewnych obserwacji oi
wygenerowanych przez mówcę zmieniających się w czasie
𝑂 = 𝑜1, 𝑜2, 𝑜3, … , 𝑜𝑡. (1.1)
W taki sam sposób możemy zapisać dowolny ciąg W słów wi
𝑊 = 𝑤1, 𝑤2, 𝑤3, … , 𝑤𝑡. (1.2)
Pytaniem, na które próbujemy odpowiedzieć podczas dekodowania wypowiedzi brzmi:
„Jakie jest najbardziej prawdopodobne zdanie spośród wszystkich zdań danego języka L
dla analizowanego akustycznego sygnału mowy O?”. Odpowiedź można zapisać w
postaci
�̂� = argmax𝑊
𝑃(𝑊|𝑂) . (1.3)
Wykorzystując regułę Bayesa 𝑃(𝑥|𝑦) =𝑃(𝑦|𝑥)𝑃(𝑥)
𝑃(𝑦) możemy zastąpić powyższe równanie
równaniem
�̂� = argmax𝑊
𝑃(𝑂|𝑊)𝑃(𝑊)
𝑃(𝑂). (1.4)
Rozwiązanie powyższego równania (nazywane dekodowaniem) gwarantuje nam
znalezienie zdania, które najlepiej pasuje do zadanego sygnału akustycznego.
Komponenty P(O|W) i P(W) są w tym przypadku kluczowe i oznaczają odpowiednio
prawdopodobieństwo wystąpienia danego sygnału mowy O dla hipotetycznego zdania W
(wyznaczane przez model akustyczny) oraz prawdopodobieństwo wystąpienia zdania W
w danym języku (wyznaczane przez model językowy). Prawdopodobieństwo P(O)
można zignorować, ponieważ jest stałe dla danego przypadku (dla każdego
hipotetycznego zdania cały czas analizujemy ten sam ciąg obserwacji). Ostatecznie
otrzymujemy
�̂� = argmax𝑊
𝑃(𝑂|𝑊)𝑃(𝑊) . (1.5)
Wprowadzenie w problematykę
- 12 -
1.1.2 Parametryzacja sygnału akustycznego
Przed przystąpieniem do dekodowania sygnału akustycznego należy go
sparametryzować czyli przedstawić w formie sekwencji akustycznych wektorów cech
(wektorów obserwacji). Każdy z tych wektorów reprezentuje najistotniejsze cechy mowy
w określonym przedziale czasowym. Istnieje kilka metod parametryzacji sygnału
akustycznego spośród których najpopularniejsza jest metoda ekstrakcji współczynników
MFCC (ang. Mel-Frequency Cepstral Coefficients).
Rys. 1 Przykład parametryzacji MFCC
Proces ekstrakcji MFCC rozpoczyna się od podzielenia sygnału akustycznego na
ramki o określonej szerokości i zakładkowaniu (zazwyczaj jest to odpowiednio 25 i 10
milisekund). Przyjmuje się, że w tym czasie sygnał mowy jest stacjonarny [30]. Kolejnym
krokiem jest wymnożenie widma częstotliwościowego ramek sygnału przez bank filtrów
trójkątnych znajdujących się na skali melowej (która symuluje rozdzielczość
częstotliwościową ucha ludzkiego), wyciągnięciu logarytmu energii z każdego
otrzymanego pasma oraz wykonaniu na powstałych współczynnikach transformacji
dekorelującej DCT (ang. Discrete Cosine Transform). 12 pierwszych współczynników
cepstralnych tworzy wyjściowy wektor MFCC. W celu zachowania informacji o
temporalnych zmianach sygnału z otrzymanej sekwencji wektorów MFCC oblicza się
jeszcze pochodne pierwszego i drugiego rzędu, tworząc ostateczny ciąg wektorów
Wprowadzenie w problematykę
- 13 -
obserwacji o 39 elementach. Ogólny przebieg parametryzacji przedstawiono na
poniższym rysunku.
Rys. 2 Przebieg parametryzacji MFCC [30]
1.1.3 Model akustyczny
Modele akustyczne służą do znalezienia prawdopodobieństwa P(O|W), czyli
prawdopodobieństwa wystąpienia danej sekwencji wektorów obserwacji (cech) O dla
określonego zdania W. W aktualnie rozwijanych systemach rozpoznawania mowy
zadanie to jest realizowane przez Ukryte Modele Markowa (ang. Hidden Markov
Models), w których prawdopodobieństwo obserwacji każdego stanu emitującego jest
modelowane przez miksturę gaussowską (ang. Gaussian Mixture Model). W niniejszym
podrozdziale zostanie omówiony ten typ modelowania.
W skrócie, Ukryty Model Markowa jest generatorem sekwencji pewnych wektorów
obserwacji. Jest to automat skończenie stanowy, który zmienia swój stan w każdej
kolejnej jednostce czasu i jeśli wejściowy stan jest stanem emitującym to z określonym
prawdopodobieństwem, generowany jest wektor obserwacji. Co więcej przejście między
dwoma stanami również realizuje się z określonym prawdopodobieństwem. Ukryty
Model Markowa jest w pełni scharakteryzowany przez następujące parametry:
Wprowadzenie w problematykę
- 14 -
𝑄 = 𝑞1, 𝑞2, … 𝑞𝑁 - zbiór stanów,
𝐴 = 𝑎01, 𝑎02, … , 𝑎𝑛1, … , 𝑎𝑛𝑚 - macierz przejść, w której element 𝑎𝑖𝑗 jest
prawdopodobieństwem przejścia ze stanu i do stanu j,
𝑂 = 𝑜1, 𝑜2, … , 𝑜𝑁 - zbiór obserwacji,
𝐵 = 𝑏𝑖(𝑜𝑡) - zbiór prawdopodobieństw emisji obserwacji t przez stan emitujący i,
𝑞0, 𝑞𝑒𝑛𝑑 - stany nieemitujące obserwacji: początkowy i końcowy.
Każdy z tych parametrów ma swój odpowiednik w zadaniu rozpoznawania mowy.
Najczęściej wykorzystywaną topologią Ukrytych Modeli Markova jest model Bakisa
składający się z pięciu stanów (trzech emitujących), a przejścia między stanami
dozwolone są tylko w kierunku końcowego stanu (ang. left-to-right topology) oraz w
obrębie tego samego stanu (ang. self-loops). Trzy stany emitujące reprezentują
pojedynczy fonem mowy. Zbiór obserwacji O składa się w wektorów cech
wyekstrahowanych z sygnału mowy (MFCC).
Rys. 3 Topologia modelu Bakisa z trzema stanami emitującymi [30]
Do treningu Ukrytych Modeli Markova jak i do dekodowania wyrażeń za ich pomocą
musimy zdefiniować funkcję B, która będzie wyznaczać prawdopodobieństwo emisji
określonego wektora cech O przez jeden ze stanów z Q. W początkowych
Wprowadzenie w problematykę
- 15 -
implementacjach systemów ASR wykorzystywano w tych celu algorytm kwantyzacji
wektorowej (ang. Vector Quantization). Algorytm ten mimo swojej prostoty okazał się
być niewystarczający do modelowania ogromnej złożoności sygnału mowy.
Współcześnie do estymacji prawdopodobieństwa obserwacji wykorzystuje się funkcje
gęstości prawdopodobieństwa, z których najbardziej efektywne są mikstury gaussowskie
(ang. Gaussian Mixture Models) będące ważoną sumą pojedynczych gaussianów.
Pojedynczy, jednowymiarowy gaussian opisany jest wzorem
𝑓(𝑥|𝜇, 𝜎) =
1
√2𝜋𝜎2exp (−
(𝑥−𝜇)2
2𝜎2),
(1.6)
gdzie µ oznacza średnią gaussiana a σ2 jego wariancję.
Estymacja prawdopodobieństwa emisji t-tej obserwacji przez j-ty stan modelu
Markowa wykorzystując jednowymiarowy gaussian przedstawia się następująco
𝑏𝑗(𝑜𝑡) =
1
√2𝜋𝜎2exp (−
(𝑜𝑡−𝜇)2
2𝜎2).
(1.7)
Wektor obserwacji w przypadku rozpoznawania mowy składa się z 39 elementów dlatego
do estymacji prawdopodobieństwa należy wykorzystać wielowymiarowe gaussiany. Przy
założeniu, że poszczególne elementy wektora cech są od siebie niezależne (wektor jest
zdekorelowany) możemy do estymacji prawdopodobieństwa wykorzystać gaussiany z
diagonalną macierzą kowariancji i tego typu macierz wykorzystuje się w praktyce. Ma to
duże znaczenie we współczesnych systemat ASR z dwóch powodów. Po pierwsze,
zastosowanie pełnej macierzy kowariancji w znaczącym stopniu zwiększyłoby liczbę
obliczeń, spowalniając cały system. Po drugie, do dobrego wyestymowania parametrów
modeli z pełną macierzą kowariancji potrzebna byłaby bardzo duża ilość danych. Aby
wyestymować prawdopodobieństwo obserwacji będącej D-wymiarowym wektorem cech
używając D-wymiarowego gaussiana z diagonalną macierzą kowariancji
wykorzystujemy zależność
𝑏𝑗(𝑜𝑡) = ∏
1
√2𝜋𝜎𝑗𝑑2
exp (−1
2
(𝑜𝑡𝑑−𝜇𝑗𝑑)2
𝜎𝑗𝑑2 )𝐷
𝑑=1 . (1.8)
W rzeczywistości modelowanie wektora cech pojedynczym wielowymiarowym
gaussianem byłoby zbyt dużym uproszczeniem (poszczególne elementy wektora cech nie
muszą mieć rozkładu normalnego). Aby poprawnie modelować obserwacje akustyczne
należy wykorzystać ważoną sumę wielowymiarowych gaussianów. Taka suma
Wprowadzenie w problematykę
- 16 -
gaussianów nazywa się miksturą gaussowską (ang. Gaussian Mixture Models) a
estymacja prawdopodobieństwa obserwacji realizowana jest przez następującą zależność
𝑏𝑗(𝑜𝑡) = ∑ 𝑐𝑗𝑚1
√2𝜋|𝛴𝑗𝑚|exp [(𝑥 − 𝜇𝑗𝑚)
𝑇𝛴𝑗𝑚
−1(𝑜𝑡 − 𝜇𝑗𝑚)]𝑀𝑚=1 .
(1.9)
1.1.4 Model językowy
W systemie automatycznego rozpoznawania niezbędne są dwa komponenty
odpowiedzialne za modelowanie języka: leksykon oraz model językowy. Leksykon
zawiera informacje o wielowariantowej transkrypcji fonetycznej każdego słowa, które
może być rozpoznane przez system ASR. Transkrypcja fonetyczna realizowana jest w
oparciu o wybrany alfabet fonetyczny, który zależny jest od analizowanego języka.
Istnieje wiele międzynarodowych alfabetów fonetycznych takich jak International
Phonetic Alphabet czy X-SAMPA, które wykorzystują ujednolicone symbole do
reprezentacji poszczególnych części mowy.
Kluczowym elementem systemu ASR jest model językowy. Odpowiada on za
wyliczenie prawdopodobieństwa P(W), czyli prawdopodobieństwa wystąpienia
określonej sekwencji słów (zdania) dla danego języka. Najpopularniejsze modele
językowe wykorzystywane w rozpoznawaniu mowy to N-gramowe modele statystyczne.
Estymacja parametrów takiego modelu polega na gromadzeniu statystyk dotyczących
częstości występowania sekwencji słów (pojedynczych słów dla unigramów, par słów dla
bigramów itd.) w określonych korpusach treningowych. W ogólnym przypadku
estymacja MLE (ang. Maximum Likelihood Estimation) parametrów modelu N-
gramowego opisana jest zależnością
𝑃(𝑤𝑚|𝑤𝑛−𝑁+1𝑛−1 ) =
𝐶(𝑤𝑛−𝑁+1𝑛−1 𝑤𝑛)
𝐶(𝑤𝑛−𝑁+1𝑛−1 )
, (1.10)
gdzie funkcja C(xy) oznacza częstość występowania w korpusie uczącym ciągu xy.
Systemy ASR do rozpoznawania mowy swobodnej korzystają najczęściej z
trigramowych modeli językowych. Do budowania większych modeli potrzebna jest
bardzo duża ilość danych, a modele takie przyjmują zbyt duże rozmiary, aby mogły być
wykorzystywane w praktycznych implementacjach. Modele N-gramowe można również
dostrajać do poszczególnych domen, w których ma działać system ASR (np. rejestracja
rozpraw sądowych).
Wprowadzenie w problematykę
- 17 -
Oprócz modeli N-gramowych w rozpoznawaniu mowy można również
wykorzystywać modele oparte o gramatyki regułowe. Są to zacznie prostsze modele,
które bezpośrednio definiują reguły według których mogą łączyć się w zdania słowa
zawężając w ten sposób dostępne słownictwo i złożoność modelu. Gramatyki regułowe
są wykorzystywane najczęściej w aplikacjach mobilnych, w prostych systemach
dialogowych lub w systemach służących do głosowej kontroli urządzeń.
1.2 Głębokie Sieci Neuronowe w kontekście modelowania akustycznego
mowy
1.2.1 Architektura głębokiej sieci neuronowej
Głęboka sieć neuronowa (ang. Deep Neural Network) to wielowarstwowy perceptron
MLP (ang. Multi-Layer Perceptron) z kilkoma ukrytymi warstwami [10]. Sieć tego typu
opisana jest równaniem
𝑣𝑙 = 𝑓(𝑧𝑙) = 𝑓(𝑊𝑙𝑣𝑙−1 + 𝑏𝑙), (1.11)
dla (0 < l < 1), gdzie z to wektor pobudzenia, v to wektor aktywacji, W to macierz wag
poszczególnych neuronów, b to wektor biasu, l to numer warstwy sieci. Przykładowa
topologia głębokiej sieci neuronowej z trzema warstwami ukrytymi przedstawiona jest
na poniższym rysunku.
Rys. 4 Przykładowa architektura głębokiej sieci neuronowej z trzema ukrytymi
warstwami [32]
Wprowadzenie w problematykę
- 18 -
W większości przypadków funkcja aktywacji f(.) jest funkcją sigmoidalną
𝜎(𝑧) =1
1+𝑒−𝑧 , (1.12)
której wartości wyjściowe zawierają się w przedziale (0,1).
Warstwa wyjściowa sieci jest dobierana ze względu na rodzaj rozwiązywanego
problemu. W kontekście przetwarzania mowy jest to z reguły problem klasyfikacji. Dla
tego typu problemu każdy neuron wyjściowej warstwy sieci reprezentuje pewną klasę
i∈{1,…,C}, gdzie C = NL to całkowita ilość klas. Wartość i-tego wyjściowego neuronu,
oznaczaną jako Pdnn(i|o), jest prawdopodobieństwem z jakim wektor wejściowy o
(podawany na wejściową warstwę sieci) przynależy do i-tej klasy. Aby wartości
neuronów wyjściowych spełniały wymogi rozkładu prawdopodobieństwa muszą być
znormalizowane funkcją softmax
𝑣𝑖
𝐿 = 𝑃𝑑𝑛𝑛(𝑖|𝑜) = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥𝑖(𝑧𝐿) =𝑒𝑧𝑖
𝐿
∑ 𝑒𝑧𝑗
𝐿𝐶𝑗=1
, (1.13)
gdzie 𝑧𝑖𝐿 jest i-tym elementem wektora pobudzenia 𝑧𝐿.
Parametry głębokiej sieci neuronowej {W,b} (macierz wag oraz wektor biasu)
estymowane są podczas procedury treningu. Trening zawsze charakteryzuje się pewnym
kryterium treningu oraz algorytmem uczącym i jest wykonywany dla próbek trenujących
𝑆 = {(𝑜𝑚, 𝑦𝑚)|0 ≤ 𝑚 < 𝑀}, gdzie M jest liczbą wszystkich próbek, 𝑜𝑚 jest m-tym
wejściowym wektorem obserwacji a 𝑦𝑚 jest pożądanym wektorem wyjściowym.
Kryterium treningu stosowane w problemie klasyfikacji to kryterium entropii
krzyżowej CE (ang. cross-entropy) opisane zależnością
𝐽𝐶𝐸(𝑊, 𝑏; 𝑆) =1
𝑀∑ 𝐽𝐶𝐸(𝑊, 𝑏; 𝑜𝑚, 𝑦𝑚)𝑀
𝑚=1 , (1.14)
w którym
𝐽𝐶𝐸(𝑊, 𝑏; 𝑜, 𝑦) = − ∑ 𝑦𝑖𝑙𝑜𝑔𝑣𝑖𝐿𝐶
𝑖=1 , (1.15)
gdzie 𝑦𝑖 = 𝑃𝑒𝑚𝑝(𝑖|𝑜) jest zaobserwowanym prawdopodobieństwem, że wektor
obserwacji o należy do klasy i, a 𝑣𝑖𝐿 = 𝑃𝑑𝑛𝑛(𝑖|𝑜) to samo prawdopodobieństwo
wyestymowane z sieci neuronowej. W większości badanych przypadków (także w
klasyfikacji ramek MFCC do określonego fonu) wektor obserwacji przynależy tylko
Wprowadzenie w problematykę
- 19 -
do jednej klasy, czyli 𝑦𝑖 = 1 (jeśli o należy do i-tej klasy) a równanie uprasza się do
następującej postaci
𝐽𝑁𝐿𝐿(𝑊, 𝑏; 𝑜, 𝑦) = −𝑙𝑜𝑔𝑣𝑐𝐿, (1.16)
gdzie NLL oznacza ujemny logarytm prawdopodobieństwa (ang. negative log
likelihood).
Dysponując zgromadzonym zbiorem próbek trenujących oraz ustaliwszy odpowiednie
dla danego problemu kryterium treningu parametry głębokiej sieci neuronowej mogą być
wyestymowane wykorzystując algorytm wstecznej propagacji błędów BP [ang.
backpropagation algorithm] [21]. Algorytm ten wykorzystywany jest w uczeniu
nadzorowanym wielowarstwowych sieci neuronowych i opisuje sposób w jaki powinny
być modyfikowane parametry poszczególnych warstw tej sieci w każdej iteracji treningu.
Cechą szczególną tego algorytmu jest fakt, że błąd klasyfikacji jest przesyłany między
kolejnymi warstwami (zaczynając od wyjściowej i kończąc na wejściowej) i służy on
bezpośrednio do modyfikowania parametrów każdej kolejnej warstwy. Pełne
wyprowadzenie tego algorytmu dla przedstawionej wcześniej topologii i kryterium
treningu przedstawione jest w książce Dong Yu [32].Poniżej przedstawiono końcowe
formuły pozwalające wykorzystać algorytm w procedurze treningowej. Parametry
poszczególnych warstw modyfikowane są w oparciu o zależności
𝑊𝑡+1𝑙 ← 𝑊𝑡
𝑙 − 𝜀∆𝑊𝑡𝑙 (1.17)
i
𝑏𝑡+1𝑙 ← 𝑏𝑡
𝑙 − 𝜀∆𝑏𝑡𝑙 , (1.18)
gdzie 𝑊𝑡𝑙 i 𝑏𝑡
𝑙 są odpowiednio macierzą wag i wektorem biasu warstwy l po t-tej iteracji,
∆𝑊𝑡𝑙 =
1
𝑀𝑏∑ ∇𝑊𝑡
𝑙
𝑀𝑏
𝑚=1
𝐽(𝑊, 𝑏; 𝑜𝑚, 𝑦𝑚)
(1.19)
i
∆𝑏𝑡𝑙 =
1
𝑀𝑏∑ ∇𝑏𝑡
𝑙
𝑀𝑏
𝑚=1
𝐽(𝑊, 𝑏; 𝑜𝑚, 𝑦𝑚)
(1.20)
Wprowadzenie w problematykę
- 20 -
są odpowiednio średnim gradientem macierzy wag i średnim gradientem wektora
biasu w t-tei iteracji wyznaczonymi na podstawie 𝑀𝑏 próbek treningowych (ang. batch
size), ε jest współczynnikiem uczenia (ang. learning rate) a ∇𝑥𝑙 jest gradientem kryterium
treningu J liczonym po x. Dla kryterium entropii krzyżowej gradienty wynoszą
odpowiednio
∇𝑊𝑡𝑙𝐽𝐶𝐸(𝑊, 𝑏; 𝑜, 𝑦) = (𝑣𝑡
𝐿 − 𝑦)(𝑣𝑡𝐿−1)𝑇, (1.21)
∇𝑏𝑡𝑙𝐽𝐶𝐸(𝑊, 𝑏; 𝑜, 𝑦) = (𝑣𝑡
𝐿 − 𝑦). (1.22)
Trening głębokiej sieci neuronowej, choć teoretycznie wydaje się być prostą
implementacją odpowiednich algorytmów, jest zadaniem wymagającym. Aby efektywnie
wytrenować głęboką sieć neuronową należy zmierzyć się z wieloma praktycznymi
problemami takimi jak: wstępne przetworzenie danych wejściowych, inicjalizacja
modelu sieci neuronowej (początkowe wartości jej parametrów), uniknięcie
przetrenowania sieci (zbytniego dopasowania się do danych uczących), randomizacja
próbek wejściowych, dostrojenie parametru decydującego o szybkości uczenia się sieci
(ang. learning-rate) i wiele innych. Prawidłowe zrealizowanie tego zadania wymaga
podjęcia wielu decyzji, które w znaczący sposób wpływają na końcowy rezultat.
1.2.2 Hybryda DNN-HMM
Pierwsze próby polegające na stworzeniu modelu akustycznego będącego kombinacją
modelu głębokiej sieci neuronowej i Ukrytych Modeli Markowa, który zastąpiłby
klasyczną kombinację GMM-HMM, miały miejsce już w latach 80tych. Zaproponowano
wiele różnych architektur oraz algorytmów trenujących [25] jednak nie dawały one
wyraźnie lepszych rezultatów niż klasyczne podejście, a ogromna złożoność
obliczeniowa tego typu rozwiązań nie pozwalała na efektywne przeprowadzanie
eksperymentów w tamtych czasach. Jednym z podejść zapoczątkowanych w tamtych
czasach było wykorzystanie głębokiej sieci neuronowej jako estymatora
prawdopodobieństw obserwacji dla stanów modelu HMM. Przykład takiej architektury
zaprezentowano na rysunku 5.
Wprowadzenie w problematykę
- 21 -
Rys. 5 Architektura hybrydy DNN-HMM [32]
Pierwsze modele akustyczne oparte o tego typu hybrydę wykorzystywały głoski
niezależne od kontekstu (tzw. monofony) jako zbiór klas reprezentowanych przez
neurony wyjściowe sieci. Dodatkowo, głęboka sieć neuronowa składała się tylko z dwóch
warstw ukrytych [15]. W niektórych rodzajach eksperymentów sieci te wgrywały z
klasycznymi modelami GMM-HMM, ale rozwinięcie ich możliwości nie było możliwe
ze względów opisanych na początku podrozdziału.
Ostatnie badania [3] pokazały, że zmodyfikowanie topologii sieci poprzez
zwiększenie ilości głębokich warstw oraz wykorzystanie do klasyfikacji zbioru głosek
zależnych od najbliższych sąsiednich głosek (tzw. trifony) znacząco poprawiły
skuteczność rozpoznawania mowy. Co więcej, rozszerzenie wejściowej obserwacji do
kilku sąsiadujących ze sobą wektorów cech również pozytywnie wpływa na dokładność
Wprowadzenie w problematykę
- 22 -
modelowania. Aktualnie dostępny sprzęt w postaci zdecydowanie szybszych jednostek
obliczeniowych (zarówno CPU jak i GPU) pozwala na wykonanie wielu optymalizacji i
testowanie nowych pomysłów w krótszym, a przede wszystkim sensowniejszym czasie
niż w przeszłości. Tego typu architektura sieci zostanie przetestowana w niniejszej pracy.
1.2.3 Bottleneck Features (BNF)
Innym pomysłem zastosowania głębokich sieci neuronowych do modelowania
akustycznego mowy jest wykorzystanie ich jako kolejnego modułu parametryzującego
sygnał akustyczny. Metoda ta, zwana tandemową, wykorzystuje ukryte warstwy sieci
DNN jako kolejne transformacje, którym podlega wektor cech wejściowych a ich rezultat
podawany jest jako wejście do modułu GMM-HMM, który trenowany jest na nowych
parametrach w klasyczny sposób. Pierwszy raz pomysł ten pojawił się w pracy
Hermanskiego [8] i polegał na wykorzystaniu wartości neuronów wyjściowych kilku
głębokich sieci neuronowych, które zostały wytrenowane do klasyfikacji monofonów.
Idea ta miała swoją wadę w postaci dużej wymiarowości nowych wektorów cech, na
których trenowano później model GMM-HMM.
Rys. 6 Przykładowa architektura głębokiej sieci neuronowej z warstwą typu
bottleneck zlokalizowaną przed warstwą wyjściową [32]
Wprowadzenie w problematykę
- 23 -
Pomysł ten został nieco zmodyfikowany przez Grezla [7], który zaproponował by
współczynniki nowych wektorów cech pochodziły z jednej z ukrytych warstw sieci
neuronowej, w której liczba neuronów mogłaby zostać zmniejszona w stosunku do liczby
neuronów warstw pozostałych. Warstwa ta została nazwana ‘wąskim gardłem’ sieci (ang.
bottleneck), a nowe współczynniki, które zostały z niej wyekstrahowane przyjęły się pod
nazwą bottleneck features (BNF). Przykładową topologię takiej sieci zaprezentowano na
rysunku powyżej. Grezl wyjaśnia, że powstałe w miejscu warstwy bottleneck utrudnienie
wymusza na sieci redukcję wymiarowości informacji istotnych do prawidłowej
klasyfikacji fonetycznej. Zauważono, że modele GMM-HMM wytrenowane na
współczynnikach BNF cechują się większą odpornością na zmienność warunków
akustycznych, w których pracuje system ASR oraz na różnorodność mówców. W
niniejszej pracy postanowiono przeanalizować ten typ modelowania.
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 24 -
Rozdział 2
Przygotowanie środowiska programistycznego oraz danych
niezbędnych do przeprowadzenia badań
W niniejszym rozdziale opisane zostaną najważniejsze narzędzia programistyczne
wykorzystane do utworzenia systemu automatycznego rozpoznawania mowy oraz
przeprowadzenia badań będących tematem pracy. Dodatkowo, scharakteryzowane
zostaną korpusy nagrań mowy wykorzystane w eksperymentach wraz ze wszystkimi
operacjami na nich wykonanymi (takimi jak wydzielenie podzbiorów treningowych i
testowych, zaszumienie korpusów testowych etc.).
2.1 Wykorzystywane oprogramowanie
2.1.1 Kaldi – zestaw narzędzi do automatycznego rozpoznawania mowy
Obecnie, na rynku dostępnych jest wiele zestawów narzędzi (ang. toolkits)
pozwalających zbudować system automatycznego rozpoznawania mowy. Są to zarówno
rozwiązania komercyjne (AT&T Watson, Microsoft Speech Server, Google Speech API,
Nuance Recognizer) jak i darmowe (Hidden Markov Model Toolkit HTK, Julius, Sphinx-
4, Kaldi i wiele innych). Każde z tych środowisk oferuje podobne możliwości, które
bardzo często różnią się szczegółami implementacyjnymi o różnym stopniu złożoności.
Ciekawym przykładem jest również istniejący na polskim rynku system rozpoznawania
mowy polskiej SARMATA 2.0 [34] wykorzystujący rozwiązania obecne zarówno w HTK
jak i w Kaldi, lecz ze szczególnym uwzględnieniem złożoności języka polskiego (jego
niepozycyjność oraz występowanie wielu wysokoczęstotliwościowych głosek). Opisanie
każdego z nich z osobna stanowi dobry materiał na osobną pracę.
Spośród wszystkich dostępnych środowisk największym zainteresowaniem i
popularnością odznacza się w ostatnich latach Kaldi [17]. Jest to zestaw narzędzi
napisany w języku C++ przez szerokie grono specjalistów z dziedziny przetwarzania
mowy. Jego początki sięgają roku 2009 i od tamtego czasu jest cały czas aktywnie
rozwijany. Kaldi cechuje się najlepszą skutecznością wytrenowanych z jego pomocą
modeli akustycznych spośród wszystkich darmowych narzędzi [6]. Jest w dużej mierze
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 25 -
oparty na teorii automatów skończonych (ang. finite state machines), oferuje wszystkie
najpopularniejsze metody wykorzystywane w rozpoznawaniu mowy, a w ostatnim czasie
został również wzbogacony o pierwsze implementacje sieci neuronowych. Te czynniki
zdecydowały o tym, że Kaldi został wytypowany jako podłoże programistyczne
opisanych w tej pracy eksperymentów.
Aby zacząć pracę z narzędziami Kaldi należy zaopatrzyć się w dowolny unixowy
system operacyjny (może to być również Windows ze środowiskiem Cygwin) oraz
dysponować aktualną wersją kompilatora C/C++ (GCC/G++). Repozytorium SVN z
kodem źródłowym Kaldiego jest swobodnie dostępne. Po pobraniu, kody źródłowe
należy samodzielnie skompilować. Procedury związane z procesem kompilacji są
szczegółowo wyjaśnione w dokumentacji dostarczonej wraz z oprogramowaniem.
Oprócz samych plików wykonywalnych Kaldiego, do zbudowania systemu
automatycznego rozpoznawania mowy potrzebne są jeszcze dodatkowe składniki, które
zostaną przedstawione w poniższych podrozdziałach. W niniejszej pracy wykorzystano
wersję 5042 repozytorium Kaldiego datowaną na 1 maja 2015r.
2.1.2 ATLAS – biblioteki numeryczne
ATLAS (ang. Automatically Tuned Linear Algebra Software) jest biblioteką
programistyczną zawierającą zoptymalizowane metody z bibliotek BLAS (ang. Basic
Linear Algebra Subprograms) oraz LAPACK (ang. Linear Algebra Package) służące do
wykonywania podstawowych operacji algebraicznych na wektorach i macierzach [1].
Interesującą cechą tego pakietu jest fakt, że automatyczna optymalizacja tych metod
następuje podczas kompilacji biblioteki na konkretnej platformie sprzętowej w oparciu o
jej parametry. W wyniku tego procesu otrzymujemy bibliotekę ‘dostrojoną’ do
konkretnego urządzenia i pozwalającą na efektywne wykonywanie operacji
algebraicznych. Ta własność jest bardzo istotna z perspektywy narzędzi Kaldi gdzie
operacje algebraiczne pojawiają się praktycznie na każdym kroku. Dzięki bibliotece
ATLAS można znacząco skrócić czas potrzebny do wytrenowania modeli akustycznych
i ich późniejszej ewaluacji. Kompilacja biblioteki ATLAS jest czasochłonna (może zająć
nawet kilkanaście godzin) i czasami sprawia wiele kłopotów (należy upewnić się, że w
momencie kompilacji wyłączona jest operacja dynamicznego skalowania częstotliwości
procesora (ang. CPU throttling), która zaburza proces optymalizacji). Bibliotekę ATLAS
skompilowano w wersji 3.8.3.
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 26 -
2.1.3 OpenFST – zestaw narzędzi do modelowania automatów skończonych
Biblioteki OpenFST stanowią rdzeń systemu ASR opartego na Kaldi. Służą one do
budowania, kompilacji, optymalizacji oraz przeszukiwania ważonych automatów
skończenie stanowych [16]. Kaldi na każdym kroku korzysta z dostarczonych przez
OpenFST funkcjonalności (przede wszystkim budowa kompozytu HCLG, który
wykorzystywany jest przy dekodowaniu nagrań). OpenFST to biblioteki napisane w
języku C++ i podobnie jak w przypadku Kaldi – należy je samodzielnie skompilować.
Pliki wykonywalne OpenFST są automatycznie wywoływane przez skrypty Kaldi – aby
móc z nich korzystać należy ich lokalizację dodać do zmiennej środowiskowej PATH
systemu Ubuntu. Używana wersja bibliotek OpenFST to wersja 1.3.4 z 2 listopada 2013r.
2.1.4 CUDA – platforma do obliczeń równoległych
Większość algorytmów zaimplementowanych w Kaldi jest realizowana przez procesor
(CPU). Wspierana jest również wielowątkowość pozwalająca wykonywać obliczenia
równolegle (na kilku lokalnych jednostkach CPU lub wykorzystując architektury
rozproszone). Mimo tego, ogromna złożoność obliczeniowa algorytmów uczących sieci
neuronowe nie pozwala na przeprowadzenie treningów na CPU w sensownym czasie (dla
użytkownika dysponującego przeciętnym sprzętem). Ograniczenia te pozwalają obejść
karty graficzne (GPU) firmy Nvidia będącymi w istocie procesorami wielordzeniowymi.
Liczba takich rdzeni (ang. CUDA Cores) znajdujących się na jednej karcie graficznej
sięga nawet kilku tysięcy. Wykorzystując GPU oraz środowisko programistyczne dla
architektury CUDA (ang. Compute Unified Device Architecture) można wielokrotnie
zredukować czas uczenia się sieci neuronowych [24]. CUDA składa się z własnego
kompilatora opartego na języku C (nvcc), debuggera (cuda-gdb) oraz ogólnego interfejsu
programowania. Jest to środowisko darmowe – żeby jednak z niego skorzystać należy
dysponować własną kartą graficzną. Pełny proces instalowania i konfigurowania
sterowników CUDA jest szeroko opisany w Internecie. Aby móc korzystać z mocy GPU
w Kaldi należy przed procesem kompilacji ustawić odpowiednie parametry w pliku
konfiguracyjnym (część bibliotek, odpowiedzialnych za modelowanie sieci
neuronowych, zostanie skompilowana kompilatorem nvcc). Opisane dalej eksperymenty
zostały przeprowadzone z wykorzystaniem karty GeForce GTX 780 ze sterownikami w
wersji 346.59 oraz środowiskiem CUDA w wersji 7.0.
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 27 -
2.1.5 SRILM – zestaw narzędzi do modelowania językowego
Do zbudowania systemu automatycznego rozpoznawania mowy niezbędne jest
utworzenie modeli językowych. W Kaldi najczęściej wykorzystuje się statystyczne
modele językowe (n-gramy), które konwertowane są do postaci automatu skończenie
stanowego (G.fst). W Internecie dostępnych jest wiele narzędzi programistycznych do
modelowania językowego (MITLM, SRILM, KenLM). Największe możliwości oferuje
SRILM (SRI Language Modeling Toolkit) i jest on w zupełności wystarczający do
współpracy z narzędziami Kaldi [23]. Podobnie jak poprzednie pakiety został on napisany
w języku C++ i stanowi zbiór plików wykonywalnych, które należy samodzielnie
skompilować. Użyto wersji 1.7.1.
2.1.6 FaNT – narzędzie do przetwarzania nagrań dźwiękowych
FaNT (Filtering and Noise-adding Tool) to program napisany przez naukowców z
Hochschule Niederrhein University of Applied Sciences [5]. Pozwala on dodawać
dowolny szum o podanym przez użytkownika poziomie SNR (ang. Signal to Noise Ratio)
do nagrań dźwiękowych oraz filtrować sygnał mowy w sposób imitujący działanie sieci
telefonicznej według określonych standardów. Stosunek sygnału do szumu (SNR) jest
obliczany z wykorzystaniem algorytmów detekcji mowy w sygnale audio oraz filtrów
ważonych. Program został napisany w języku C i należy go samodzielnie skompilować.
Wykorzystano program dostępny na stronie producenta w wersji aktualnej na miesiąc
kwiecień 2015r.
2.2 Korpusy mowy polskiej
Korpus mowy jest to zbiór danych zawierających nagrania dźwiękowe mowy wraz z
odpowiadającymi im transkrypcjom (tekstowy zapis wypowiedzianych w nagraniu słów).
Korpusy mowy wykorzystywane są głównie w rozpoznawaniu mowy do trenowania
modeli akustycznych. Przygotowywanie korpusów jest zajęciem czasochłonnym i
kosztownym. W zależności od wymaganej funkcjonalności systemu ASR czas trwania
korpusów powinien wynosić od kilku (dla niewielkiego słownictwa – np. rozpoznawanie
cyfr) po kilkaset, a nawet kilka tysięcy godzin (dla bardzo dużego słownictwa).
Większość korpusów mowy to produkty komercyjne, za których użytkowanie należy
zapłacić znaczące sumy pieniędzy. Dla języka polskiego nie powstał jeszcze korpus
przekraczający 100 godzin nagrań. Wykorzystywane w tej pracy korpusy mowy zostały
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 28 -
udostępnione autorowi przez Zespół Przetwarzania Sygnałów Akademii
Górniczo-Hutniczej. Poniżej, zbiory te zostały szczegółowo opisane.
2.2.1 Charakterystyka korpusów
W niniejszej pracy skorzystano z zasobów zawartych w czterech różnych korpusach
mowy:
1. GlobalPhone (PL)
Zbiór GlobalPhone stanowi pokaźną kolekcję korpusów mowy dla 19 języków świata
[22]. Dla każdego z języków zgromadzono nagrania wykonane przez około 100
dorosłych ludzi (kobiety i mężczyźni) czytających zdania pochodzące z różnych
dzienników. Pełny korpus zawiera ok. 300 godzin mowy czytanej. Wykorzystywana
przez autora pracy baza dla języka polskiego składała się z 10130 nagrań (około 25
godzin) pochodzących od 78 mówców. Nagrania zostały wykonane z częstotliwością
próbkowania 16kHz, 16 bitową rozdzielczością, pojedynczym mikrofonem (mono) i
zostały zapisane w formacie WAV (ang. Waveform Audio File Format). Poniżej
przedstawiono przykładowe nagranie pochodzące z tej bazy:
Rys. 7 Nagranie i jego spektrogram z bazy GlobalPhone
2. AGHdigits
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 29 -
Korpus składa się z 4463 nagrań wykonanych przez 72 mówców z bardzo szerokiej
grupy społecznej (dorośli, dzieci, starsi). Nagrania zostały wykonane poprzez system
telefoniczny i z tego wiele z nich zawiera różnego rodzaju zakłócenia. Jak sama nazwa
wskazuje wypowiadane w nagraniach kwestie to cyfry (w każdy nagraniu po trzy cyfry,
w losowej kolejności). Parametry audio (częstotliwość próbkowania, rozdzielczość
bitowa, liczba kanałów) są takie same jak w przypadku korpusu GlobalPhone.
3. AGHstreets
Baza zawiera 17042 nagrania pochodzące od 17 dorosłych mówców. Sposób
wykonania nagrań jest taki sam jak w przypadku korpusu AGHdigits a ich ogólna jakość
jest bardzo podobna. Nagrania zawierają wypowiedziane nazwy ulic (jedna nazwa
przypada na jedno nagranie). Parametry audio są takie same jak w poprzednich
przypadkach.
4. AGHvoicelab
AGHVoiceLab to 10537 nagrań 10 różnych mówców. Nagrania zostały wykonane
mikrofonem w zamkniętym pomieszczeniu (niskie tło akustyczne) i składają się z
różnego rodzaju czytanych zdań. Parametry audio są identyczne z parametrami
pozostałych korpusów. Poniżej przykładowe nagranie:
Rys. 8 Nagranie i jego spektrogram z bazy AGHvoicelab
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 30 -
Poniżej przedstawiono tabelaryczne zestawienie wszystkich analizowanych korpusów
mowy wraz z uwzględnieniem ich najważniejszych parametrów.
Tabela 1 - Charakterystyka dostępnych korpusów
Korpus Rozmiar [MB] Liczba mówców Liczba nagrań Czas trwania [h] Środowisko
AGHdigits 641 72 4463 5,7 różne AGHstreets 1400 17 17042 12,0 różne
AGHvoicelab 1200 10 10537 10,0 pokój GlobalPhone 2700 99 10130 24,6 pokój
Tabela 2 - Charakterystyka dostępnych korpusów (c.d.)
Korpus Urządzenie Częstotliwość próbk. [Hz] Rozdzielczość [bit] Liczba kanałów
AGHdigits telefon 16000 16 mono
AGHstreets telefon 16000 16 mono
AGHvoicelab mikrofon 16000 16 mono
GlobalPhone mikrofon 16000 16 mono
2.2.2 Wydzielenie podzbiorów korpusów
Jednym z najważniejszych etapów w konstruowaniu prawidłowo funkcjonującego
sytemu ASR jest właściwe i uważne wydzielenie z korpusów mowy podzbiorów
treningowych, deweloperskich oraz ewaluacyjnych, które będą służyć odpowiednio do
trenowania modeli akustycznych i językowych, dostrojenia parametrów dekodera
(przygotowania systemu ASR do pracy w określonych warunkach) oraz ewaluacji
zbudowanego systemu ASR.
Najważniejszą zasadą, którą należy przestrzegać podczas generowania tych
podzbiorów, jest zapewnienie całkowitej rozłączności utworzonych baz. Dla przykładu:
nagrania wchodzące w skład korpusu treningowego nie mogą znaleźć się jednocześnie w
korpusie ewaluacyjnym. Wyniki testów przeprowadzonych na zbiorze ewaluacyjnym
zawierającym treningowe nagrania byłyby przekłamane (nie dostarczałyby one
informacji o ogólnej skuteczności systemu w realnych warunkach pracy, a jedynie o
dopasowaniu się modelu akustycznego do danych treningowych).
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 31 -
Co więcej, w korpusie ewaluacyjnym nie powinni się znajdować mówcy, których
nagrania zawarto już w korpusie treningowym. Nie jest to zasada tak bardzo istotna jak
poprzednia, jednakże trzymanie się jej pozwala uzyskać bardziej wiarygodne wyniki
eksperymentów. Nie zawsze udaje się spełnić ten warunek – czasami korpus nagrań
dostępny podczas eksperymentów jest zbyt mało zróżnicowany pod względem ilości
mówców aby można było wydzielić dostateczną ilość danych treningowych,
deweloperskich i testowych spełniających tę regułę.
Niniejszy podział dostępnych korpusów mowy (GlobalPhone, AGHdigits,
AGHstreets, AGHvoicelab) został wykonany z uwzględnieniem powyższych zasad
starając się dodatkowo o to aby w korpusach testowych proporcje między ilością
mówców płci męskiej i żeńskiej były takie same. Poniżej przedstawiono szczegółowe
informacje na temat każdego wydzielonego podzbioru nagrań.
Korpusy ewaluacyjne
Wyselekcjonowanie korpusów rozpoczęto od korpusów ewaluacyjnych z tego
względu, że łatwiej wybrać nagrania spełniające podane wyżej kryteria mając do
dyspozycji pełny zbiór danych. Zdecydowano, że wszystkie korpusy testowe będą trwały
łącznie jedną godzinę i będą składać się z nagrań pochodzących z korpusów
GlobalPhone, AGHstreets i AGHdigits. Sumaryczny czas trwania korpusów
ewaluacyjnych został ustalony na maksymalnie jedną godzinę ze względu na
czasochłonność obliczeń niezbędnych do wykonania testów. Uznano, że jedna godzina
nagrań wystarczy aby przedstawić statystycznie wiarygodną ogólną skuteczność
systemu.
Korpusy AGHstreets i AGHdigits są zbliżone jakościowo, dlatego też mówców
znajdujących się w korpusach ewaluacyjnych wybrano w taki sposób, aby proporcje
między ich liczbą z korpusu GlobalPhone a AGHstreets i AGHdigits były takie same
(20/20). Wybór poszczególnych nagrań zrealizowano przy użyciu skryptu napisanego w
języku bash. Skrypt ten losowo dobierał nagrania spełniające podane kryteria (liczba
mówców, zachowana proporcja między kobietami i mężczyznami) z danego korpusu do
momentu przekroczenia wymaganego czasu trwania wszystkich nagrań. Omawiany
skrypt, jak i również wszystkie kolejne skrypty, dostępne są na płycie CD dołączonej do
pracy. W poniższej tabeli przedstawiono wynikowe korpusy ewaluacyjne wraz z ich
najistotniejszymi cechami.
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 32 -
Tabela 3 - Charakterystyka korpusów ewaluacyjnych
Nazwa korpusu ewaluacyjnego Liczba nagrań Liczba mówców Czas trwania [min]
speech-corpus-eval-aghdigits 269 12 20,05
speech-corpus-eval-aghstreets 480 8 20,41
speech-corpus-eval-globalphone 140 20 20,40
Korpus deweloperski
Korpus deweloperski, służący do dostrojenia dekodera systemu ASR, został
wydzielony spośród nagrań utworzonych przez mówców nie znajdujących się w
poprzednio wygenerowanym korpusie ewaluacyjnym. Ich całkowitą liczbę ustalono na
12 zachowując proporcje między kobietami i mężczyznami. Czas trwania tego korpusu
to, tak jak w przypadku korpusu testowego, jedna godzina. Korpus został utworzony
wykorzystując lekko zmodyfikowany skrypt z poprzedniego kroku (modyfikacja opierała
się na odfiltrowaniu z całkowitej puli nagrań tych plików, które już znajdowały się w
korpusie testowym).
Tabela 4 - Charakterystyka korpusu deweloperskiego
Nazwa Korpusu Liczba nagrań Liczba mówców Czas trwania [min]
AGHdigits 251 4 20,50
AGHstreets 500 2 21,26
GlobalPhone 150 6 20,77
speech-corpus-dev 901 12 62,53
Korpus treningowy
Do ostatniego korpusu, korpusu treningowego, dołączono wszystkie pozostałe
nagrania, które nie należały do mówców z korpusów ewaluacyjnych i deweloperskiego.
Dodatkowo dołączono wszystkie nagrania pochodzące z korpusu AGHvoicelab
stanowiących ponad 10 godzin dobrego jakościowo materiału. Sumarycznie, korpus
treningowy składał się z 33323 nagrań mowy pochodzących od 125 mówców z różnych
kategorii wiekowych. Łączny czas trwania korpusu treningowego wynosił ok. 37.5
godziny.
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 33 -
Tabela 5 - Charakterystyka korpusu treningowego
Nazwa Korpusu Liczba nagrań Liczba mówców Czas trwania [h]
AGHdigits 3524 56 4,52
AGHstreets 13920 7 9,74
AGHVoicelab 10537 10 10,04
GlobalPhone 5342 52 13,12
speech-corpus-train 33323 125 37,42
2.2.3 Zakłócanie korpusów ewaluacyjnych
Aby przeanalizować odporność analizowanych modeli akustycznych na pracę w
różnych warunkach akustycznych zdecydowano się poddać korpusy ewaluacyjne dwóm
operacjom, których zadaniem było wprowadzenie zakłóceń do oryginalnych nagrań. Było
to zaszumienie nagrań różnego rodzaju próbkami szumu oraz dodanie pogłosu. Poniżej
opisano szczegółowo oba procesy.
Zaszumienie nagrań
Pracę rozpoczęto od zgromadzenia próbek szumów. Próbki zostały wybrane w ten
sposób aby cechowały się różnorodnością warunków akustycznych, w których zostały
nagrane. Wybrano trzy różne środowiska akustyczne, w których system ASR mógłby z
dużym prawdopodobieństwem zostać zastosowany. Są to:
- wnętrze samochodu jadącego z dużą prędkością,
- zatłoczony bar,
- ruchliwe skrzyżowanie dróg.
Wszystkie zgromadzone próbki pochodziły z ogólnodostępnej darmowej bazy
szumów znajdującej się w Internecie (Freesound [33]). Nagrania znajdujące się w tej
bazie zostały wykonane przez bardzo wiele osób z całego świata. Starano się wybrać
próbki o najwyższej jakości. Poniżej przedstawiono wyselekcjonowane szumy:
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 34 -
A. Wnętrze jadącego samochodu
Nagranie zostało wykonane cyfrowym rejestratorem dźwięku Marantz PMD620
MKII. Pochodzi ono z wnętrza samochodu (Fiat Punto) poruszającego się z prędkością
około 130km/h po jednej z niemieckich autostrad. Oprócz charakterystycznego
niskoczęstotliwościowego szumu, od czasu do czasu w nagraniu pojawiają się również
słyszalne kliknięcia uruchomionych kierunkowskazów. Nagranie zostało zarejestrowane
dwukanałowo z częstotliwością próbkowania 44100Hz i 16 bitową rozdzielczością. Cała
próbka trwa 2 minuty i 50 sekund. Zarejestrowany sygnał przekonwertowano do
parametrów odpowiadających parametrom nagrań ze zbioru ewaluacyjnego (16kHz,
mono). Poniżej przedstawiono przebieg czasowy i spektrogram losowego fragmentu
szumu. Jak widać na spektrogramie w sygnale dominują niskie częstotliwości
pochodzące z wibracji poruszającego się samochodu.
Rys. 9 Nagranie i jego spektrogram szumu z wnętrza jadącego samochodu
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 35 -
Do zaszumienia nagrań wykorzystano opisany wcześniej program FaNT. Przed
zaszumieniem, wszystkie nagrania testowe wraz z próbką szumu należało pozbawić
nagłówka WAV - FaNT obsługuje tylko ‘czyste’ próbki PCM. Miksowanie szumu z
nagraniami testowymi wywołano poleceniem:
filter_add_noise -i <INPUT_LIST> -o <OUTPUT_LIST> -n
<NOISE_PATH> -s <SNR> -r <SEED> -u -e <LOG_PATH>
gdzie:
<INPUT_LIST> - plik ze ścieżkami do nagrań podlegających zaszumieniu
(pozbawionych nagłówka WAV),
<OUTPUT_LIST> - plik ze ścieżkami do zaszumionych nagrań,
<NOISE_PATH> - ścieżka do nagrania szumu,
<SNR> - ustalona wartość poziomu SNR z jaką zostaną zaszumione
nagrania,
<SEED> - zasiew do generatora liczb pseudolosowych, wykorzystywany
przy wybieraniu losowego fragmentu szumu (ustalono stałą wartość zasiewu po to aby
odpowiadające sobie nagrania różniły się tylko poziomem SNR),
<LOG_PATH> - ścieżka do pliku, w którym umieszczone zostaną logi z
przeprowadzonych operacji.
Wszystkie trzy korpusy ewaluacyjne zostały zaszumione z następującymi wartościami
SNR:
SNR=”0.1; 0.5; 1; 1.5; 2; 2.5; 3; 3.5; 4; 5; 6; 7; 8; 9; 11;
13; 15; 17; 20”
B. Ruchliwe skrzyżowanie dróg
Nagranie zostało wykonane rejestratorem dźwięku Sony MZ-N10 MD wraz z
dołączonym mikrofonem ECM-MS907 podczas wieczornego spaceru przez ruchliwe
londyńskie skrzyżowania. Na nagraniu słyszalne są rozmowy przechodniów w kilku
różnych europejskich językach, odgłosy kroków oraz hałas pochodzący z ruchu ulicznego
(przejazdy samochodów, klaksony, itp.). Próbkę zarejestrowano z częstotliwością
próbkowania 44100Hz i 16 bitową rozdzielczością. Szum trwa 7 minut i 53 sekundy.
Nagranie przetworzono w taki sam sposób jak w podpunkcie A a korpusy testowe
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 36 -
zaszumiono z takimi samymi poziomami SNR. Poniżej przedstawiono przebieg czasowy
i spektrogram losowego fragmentu nagrania. W nagraniu słyszalny jest fragment
rozmowy dwóch przechodniów. Zauważalne jest to na spektrogramie, gdzie w okolicach
0.6s widoczne są formanty.
Rys. 10 Nagranie i jego spektrogram szumu z ruchliwego skrzyżowania
C. Zatłoczony bar
Ostatni szum pochodzi z kanadyjskiego pubu Logans Pub. Na nagraniu słyszalne są
głośne rozmowy i śmiechy pochodzące od około 50 osób, szczęk butelek i szklanek oraz
odgłosy przesuwanego umeblowania. Większość szumu to szum niestacjonarny. Ścieżkę
dźwiękową zarejestrowano cyfrowym rejestratorem dźwięku iRiver HP 120 z
mikrofonem Sony EMC-719 (44100Hz, 16bit, stereo). Całość trwa 5 minut i 50 sekund.
Nagrania testowe zostały zaszumione w taki sam sposób jak w poprzednich podpunktach.
Poniżej umieszczono przebieg czasowy i spektrogram szumu C. Nagranie jest mocno
zanieczyszczone różnego rodzaju szumami. Na spektrogramie można zaobserwować
dużą niestacjonarność sygnału.
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 37 -
Rys. 11 Nagranie i jego spektrogram szumu z zatłoczonego baru
Po wykonaniu wszystkich operacji uzyskano łącznie 171 korpusów ewaluacyjnych
zaszumionych różnymi rodzajami szumów z różnymi poziomami SNR. Korpusy te
zostaną wykorzystane w rozdziale IV. Poniżej przedstawiono kilka wykresów
prezentujących losowo wybrane nagranie z korpusu GlobalPhone zaszumione próbką
pochodzącą z ruchliwego skrzyżowania z różnymi poziomami SNR. Można zauważyć iż
największe zaszumienie zachodzi w niskich częstotliwościach. Poziomy SRN
zaszumienia równe 1.0 i 5.0 wprowadzają bardzo duże zakłócenia do oryginalnego
sygnału co bardzo dobrze widać na dwóch ostatnich spektrogramach (niektóre formanty
przestały być nawet widoczne).
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 38 -
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 39 -
Rys. 12 Nagranie i spektrogramy nagrania z korpusu GlobalPhone zaszumionego
różnymi poziomami SNR szumem pochodzącym z ruchliwego skrzyżowania
Dodanie pogłosu do nagrań
Jako drugi sposób zakłócenia korpusów ewaluacyjnych wybrano dodanie pogłosu do
nagrań, które symuluje warunki akustyczne pomieszczeń o różnej odpowiedzi
impulsowej, na którą wpływ mają objętość oraz adaptacja akustyczna pomieszczenia. Do
generowania pogłosu wykorzystano darmowe narzędzie sox. Program ten pozwala na
dodanie pogłosu o określonej intensywności (jak głośny ma być pogłos) oraz o
określonym początkowym opóźnieniu, które symuluje parametry akustyczne
pomieszczenia ( <200ms dla małych pomieszczeń). Pogłos dodano do wszystkich nagrań
pochodzących z trzech analizowanych korpusów testowych poleceniem:
sox <INPUT_WAV> <OUTPUT_WAV> reverb <REVERB> 50 100 100 <DELAY>
gdzie:
<INPUT_WAV> - ścieżka do wejściowego nagrania,
<OUTPUT_WAV> - ścieżka do zmodyfikowanego nagrania,
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 40 -
<REVERB> - intensywność pogłosu (od 0 do 100%),
<DELAY> - początkowe opóźnienie pogłosu (od 0 do 500ms).
Nowe korpusy wygenerowano dla następujących parametrów:
REVERB=”20; 40; 60; 80; 100”
DELAY=”0; 50; 100; 150; 200; 250; 300; 350; 400; 450; 500”
Łącznie utworzono 165 nowych korpusów ewaluacyjnych. Poniżej umieszczono
wykresy przedstawiające losowe nagranie testowe z pogłosem o intensywności 80% i
różnymi wartościami opóźnienia wstępnego. Opóźnienie wstępne jest wyraźnie widoczne
na spektrogramach. Szczególnie wyraźnie widać jego obecność w niskich
częstotliwościach analizowanych sygnałów. Pogłos pozostawia za sobą ślad w postaci
dużej ilości zakłóceń w niskim paśmie nawet do samego końca nagrania. W przypadku
tak długich wypowiedzi jak nagrania z korpusu GlobalPhone początkowe opóźnienie
pogłosu nie będzie miało tak dużego znaczenia. Stopień zakłócenia sygnałów będzie
podobny. Różnice będą dostrzegalne dla korpusu AGHstreets, w którym większość
nagrań składa się z krótkich pojedynczych słów. Wtedy dla dłuższego opóźnienia pogłosu
oryginalne nagranie może nie zostać zakłócone.
Przygotowanie środowiska programistycznego oraz danych niezbędnych do przeprowadzenia
badań
- 41 -
Rys. 13 Spektrogramy nagrania z korpusu GlobalPhone z dodanym pogłosem z
różnym opóźnieniem wstępnym
Trening modeli akustycznych
- 42 -
Rozdział 3
Trening modeli akustycznych
W niniejszym rozdziale zostaną szczegółowo omówione wszystkie czynności
niezbędne do wytrenowania (estymacji parametrów) modeli akustycznych mowy polskiej
w trzech różnych wariantach:
MFCC-GMM-HMM – model referencyjny wytrenowany na
współczynnikach MFCC będący najpopularniejszym sposobem
modelowania akustycznego,
BNF-GMM-HMM – model zbudowany na współczynnikach BNF
wyekstrahowanych z głębokiej sieci neuronowej (wytrenowanej na
współczynnikach MFCC),
FBANK-DNN-HMM – model akustyczny stanowiący hybrydę
głębokiej sieci neuronowej (klasyfikującej podstawowe jednostki
mowy - fonemy) i Ukrytych Modeli Markowa wyestymowany na
współczynnikach FBANK.
3.1 Wygenerowanie informacji językowych
Przed rozpoczęciem treningu akustycznego wymagane jest utworzenie kompozytu
L.fst będącego skompilowanym ważonym automatem skończonym. Kompozyt ten
reprezentuje informacje dotyczące wielowariantowej transkrypcji fonetycznych każdego
słowa znajdującego się w transkrypcjach nagrań treningowych. Automat
wykorzystywany jest podczas wszystkich przedstawionych poniżej treningów modeli
akustycznych. Poza L.fst należy utworzyć jeszcze kilka innych plików, które zawierają
różnego rodzaju informacje językowe o korpusie treningowym i samej procedurze
treningu.
Wszystkie dane tego typu, według standardowej struktury katalogowej
wykorzystywanej w Kaldi, powinny znajdować się w katalogu ‘lang’ (w miejscu gdzie
przechowujemy wszystkie dane trenigowe). Najważniejsze komponenty tego katalogu to:
Trening modeli akustycznych
- 43 -
phones.txt – lista wszystkich fonemów wybranych do wymodelowania,
silence-phones.txt – lista fonemów reprezentujących ciszę (SIL),
nonsilence-phones.txt – lista fonemów reprezentujących podstawowe
jednostki mowy,
words.txt – słownictwo wykorzystywane podczas treningu (wszystkie słowa
występujące w transkrypcjach nagrań treningowych),
lexicon.txt – transkrypcja fonetyczna wszystkich słów ze słownika wraz z
wielowariantową wymową,
topo – topologia wykorzystywanych ukrytych modeli Markova. W
opisywanych eksperymentach wykorzystano klasyczną topologię nazywaną
modelem Bakisa (odnośnik, rysunek z wprowadzenia), w którym model
reprezentujący pojedynczy fonem składa się z pięciu stanów (dwóch
nieemitujących i trzech emitujących). Fonem ciszy reprezentowany jest przez
model składający się z pięciu stanów emitujących,
L.fst – skompilowany automat skończony reprezentujący wielowariantowe
transkrypcje fonetyczne wszystkich analizwaonych słów wraz z ich
prawdpodobieństwem wystąpienia,
Przygotowanie katalogu lang należy rozpocząć od zgromadzenia wszystkich
transkrypcji analizowanych nagrań (korpus) i odfiltrowaniu z nich wszystkich informacji,
które nie są istotne z punktu generowania transkrypcji fonetycznych czy też
przygotowania modelu językowego (znaki interpunkcyjne, komentarze itp.). Poniżej
przedstawiono fragment korpusu językowego:
dwa z nich mają ponad osiemset metrów długości jeden trzysta
pięćdziesiąt a nowy pięćset metrów
trasy są profesjonalnie utrzymane
ośrodek dysponuje dwoma wysokiej klasy ratrakami i systemem
dośnieżania tras
dla miłośników jednej deski przygotowana została rynna
snowboardowa
ośrodek dysponuje zapleczem wciąż jeszcze skromnym
Po wstępnej filtracji należy podzielić wszystkie zdania na pojedyncze słowa i
posortować otrzymane dane (polecenie sort –u bash). Do wygenerowania transkrypcji
Trening modeli akustycznych
- 44 -
fonetycznych i do przygotowania pliku lexicon.txt wykorzystano fragment
oprogramowania Sarmata (udostępnionego przez Zespół Przetwarzania Sygnałów)
stosującego swój wewnętrzny słownik fonetyczny. Sarmata pozwolił na wygenerowanie
wielowariantowej transkrypcji fonetycznej, której fragment przedstawiono w poniższym
zestawieniu:
teatrologii t e a t r o l o g i i
teatrowi t e a t r o v i
teatru t e a t r u
teatrze t e a t S
teatrze t e a t S e
teatrzyku t e a t S y k u
techniczna t e x N i 0 n a
techniczne t e x N i 0 n e
technicznego t e x N i 0 n e g o
technicznie t e x N i 0 N e
techniczny t e x N i 0 n y
Dysponując gotowym plikiem lexicon.txt wraz z podziałem fonemów na fonemy ciszy
i mowy (silence-phones.txt, nonsilence-phones.txt) można przejść do kroku utworzenia
kompozytu L.fst. Proces ten jest w pełni zautomatyzowany w Kaldi i aby go rozpocząć
należy wywołać skrypt prepare-lang.sh z katalogu utils. Przykładowe wywołanie tego
skryptu z terminala przedstawione jest poniżej:
./prepare-lang.sh <DICT_DIR> ‘<UNK>’ <LOCAL_LANG_DIR> <OUT_DIR>
gdzie:
<DICT_DIR> - ścieżka do katalogu z plikiem lexicon.txt,
<UNK> - symbol zastępujące nieznane słowa (ang. UNKNOWN), które
mogą pojawić się podczas pracy systemu ASR,
<LOCAL_LANG_DIR> - ścieżka do tymczasowego katalogu,
<OUT_DIR> - ścieżka wyjściowego katalogu, w którym znajdzie się
L.fst.
Automat L.fst jest kompilowany z wykorzystaniem narzędzi OpenFST.
Trening modeli akustycznych
- 45 -
3.2 Konstrukcja danych treningowych
Oprócz samych nagrań mowy, które będą wykorzystane do estymacji parametrów
modeli akustycznych, Kaldi wymaga również utworzenia kilku plików konfiguracyjnych,
które właściwie zdefiniują korpus treningowy. Pliki te powinny zaleźć się w katalogu
data. Opisano je w poniższym zestawieniu:
text – plik tekstowy zawierający unikalny identyfikator nagrania wraz z
odpowiadającą mu transkrypcją,
wav.scp - plik zawierający ścieżkę do każdego nagrania ze zbioru trenującego,
utt2sp, spk2utt – pliki zawierające informację na temat przynależności nagrań
do określonego mówcy,
feats.scp – ścieżki do plików archiwalnych zawierających wyeksrahowane
cechy nagrań (MFFC, FBANK itp.)
cmvn.scp – ścieżki do plików archiwalnych zawierających statystyki
pozwalające wykonać normalizację nagrań (ang. Cepstral Mean and Variance
Normalization [odnośnik!]).
Każdy z tych plików (poza feats.scp i cmvn.scp) jest niezależny od przeprowadzanego
treningu i powinien być wygenerowany tylko raz poprzez uruchomienie odpowiedniego
skryptu (prepare-data.sh). Pliki te są wykorzystywane podczas wielu etapów treningu
modelu akustycznego i należy zwrócić szczególną uwagę na to aby zostały przygotowane
poprawnie (przede wszystkim należy zapewnić prawidłowe przydzielenie transkrypcji do
nagrana audio). Pliki feats.scp i cmvn.scp są tworzone podczas ekstrakcji cech z nagrań
mowy. W zależności od wybranej metody parametryzacji nagrań będą one wskazywać
na archiwa zawierające współczynniki MFCC lub FBANK. Gdy katalogi lang oraz data
są gotowe, można przystąpić do treningu modeli akustycznych.
3.3 Trening MFCC-GMM-HMM
Pierwszym krokiem na drodze do wytrenowania modelu akustycznego MFCC-GMM-
HMM jest parametryzacja korpusu treningowego. Najczęściej stosowaną metoda
parametryzacji jest ekstrakcja współczynników MFCC (ang. Mel-Frequency Cepstral
Coefficients) z każdego nagrania treningowego. Szczegóły dotyczące tego rodzaju
Trening modeli akustycznych
- 46 -
parametryzacji dostępne są w artykule [30]. Ekstrakcja cech MFCC jest
zaimplementowana w Kaldi i aby ją przeprowadzić należy utworzyć plik konfiguracyjny
z najważniejszymi parametrami procesu i uruchomić odpowiedni skrypt:
./steps/make_mfcc.sh –nj <NJ> --mfcc-config <MFCC_CONFIG> --cmd
<RUN_CMD> <DATA_DIR> <MFCC_LOG_DIR> <MFCC_DIR>
gdzie:
<NJ> - liczba wyrażająca ilość wątków na które należy podzielić
obliczenia (zależy od dostępnej architektury sprzętowej). W tym wypadku NJ = 4,
<MFCC_CONFIG> - ścieżka do pliku konfiguracyjnego parametryzacji.
<RUN_CMD> - nazwa wybranego skryptu do uruchamiania obliczeń
(domyślnie: RUN_CMD = run.pl),
<DATA_DIR> - ścieżka do katalogu data,
<MFCC_LOG_DIR> - śceżka do katalogu, w którym umieszczone będą
logi obliczeń,
<MFCC_DIR> - ścieżka do wyjściowego katalogu, w którym
umieszczone zostaną zarchiwizowane współczynniki MFCC.
Obliczone współczynniki zostaną umieszczone w plikach mających strukturę
archiwum Kaldi (rozszerzenie .ark). Dostęp do tego rodzaju plików odbywa się poprzez
pliki SCP, które zawierają informację o unikalnym identyfikatorze nagrania oraz ścieżce
do odpowiedniego archiwum. Ilość utworzonych archiwum zależy od ilości wątków, na
które zostały rozbite obliczenia. W tym przypadku współczynniki MFCC obliczone z ok.
37.5h nagrań mowy zajęły 174MB. W poniższej tabeli zamieszono pełną konfigurację
parametryzacji MFCC. Została ona utworzona w oparciu o najlepsze wyniki z
referencyjnych eksperymentów opublikowanych na stronie Kaldi.
--num-ceps=13
--use-energy=false
--energy-floor=0.0
--raw-energy=true
--cepstral-lifter=22.0
--dither=4
Trening modeli akustycznych
- 47 -
Zauważono, że wykonywanie normalizacji każdego ze współczynników MFCC
względem średniej z całej długości nagrania powoduje usunięcie szumów stacjonarnych
i otrzymanie lepszej skuteczności systemu ASR [27]. Skrypty Kaldi są skonstruowane w
ten sposób, aby domyślnie wykonywać normalizację względem wszystkich nagrań
określonego mówcy. Aby przeprowadzić normalizację dla każdego nagrania osobno,
należy przyjąć, że każde nagranie zostało wypowiedziane przez innego mówcę. W tym
celu należy nadać mu osobny unikalny identyfikator i odpowiednie informacje umieścić
w plikach utt2spk i spk2utt. Uruchomienie normalizacji (a właściwie programu
gromadzącego statystyki dla każdego nagrania) odbywa się poprzez skrypt
compute_cmvn_stats.sh:
./steps/compute_cmvn_stats.sh <DATA_DIR> <CMVN_LOG_DIR>
<CMVN_DIR>
Gdzie:
<DATA_DIR> - ścieżka do katalogu data,
<CMVN_LOG_DIR> ścieżka do katalogu, w którym umieszczone
zostaną logi z obliczeń,
<CMVN_DIR> - ścieżka do wyjściowego katalogu, w którym
umieszczone zostaną zarchiwizowane statystyki dla każdego nagrania.
W poniższej tabeli przedstawiono domyślną konfigurację etapu normalizacji nagrań.
--apply-cmvn=true
--norm-means=true
--norm-vars=false
Dysponując wyliczonymi cechami MFCC oraz statystykami CMVN można rozpocząć
trening modelu akustycznego. Domyślnie w Kaldi taki trening składa się z trzech etapów:
Trening modelu akustycznego monofonów (jednostki mowy bez informacji
kontekstowej),
Pierwszy przebieg treningu modelu akustycznego trifonów,
Drugi przebieg treningu akustycznego trifonów.
Trening modeli akustycznych
- 48 -
Trening modelu akustycznego monofonów rozpoczyna się od inicjalizacji modelu
wykorzystując informacje wygenerowane w katalogu lang oraz data. Inicjalizacja polega
na zbudowaniu dwóch plików:
0.mdl – szablon modelu akustycznego składający się z macierzy przejść
modelu HMM oraz zainicjalizowanych parametrów wszystkich gaussianów,
tree – kontekstowe drzewo decyzyjne dla fonów, które jednocześnie stanowi
mapowanie między identyfikatorem PDFID (wykorzystywanym w Kaldi) a
konkretnym gaussianem. Kontekstowe drzewo decyzyjne dla monofonów nie
posiada rozgałęzień.
Aby wywołać inicjalizację modelu akustycznego należy wykorzystać program gmm-
init-mono:
gmm-init-mono –train-feats=<FEATS_PIPE> <TOPO_PATH> <FEAT_DIM>
MDL_OUT> <TREE_OUT>
gdzie:
<FEATS_PIPE> - zmienna przechowująca informację na temat
wejściowych parametrów MFCC (w tym przypadku do 13 współczynników MFCC
dołączone są współczynniki delta i delta-delta po czym wykonywana jest normalizacja
CMN),
<TOPO_PATH> – ścieżka do pliku topo, w którym znajdują się
informacje na temat topologii modeli HMM,
<FEAT_DIM> - długość pojedynczego wektora cech (w tym przypadku
równy 39),
<MDL_OUT> - ścieżka do wyjściowego pliku 0.mdl,
<TREE_OUT> - ścieżka do wyjściowego pliku tree
Poniżej przestawiono fragment wygenerowanego kontekstowego drzewa decyzyjnego
dla monofonów. Na rysunku widać fragmenty drzewa dla trzech różnych monofonów:
fonu ciszy, fonu O oraz fonu pochodzącego z wyższej warstwy drzewa (niewidocznej na
rysunku). Fon ciszy modelowany jest modelem HMM o pięciu stanach emitujących, do
których przypisane są gaussiany o numerach 10, 11, 12, 13 i 14. Fon O należy do zwykłej
klasy fonów dlatego jest modelowany przez model HMM o trzech stanach emitujących
Trening modeli akustycznych
- 49 -
(gaussianami 15 ,16 i 17). Postfiksy _B, _E, _I. _S widoczne przy nazwach fonów
oznaczają odpowiednio fon znajdujący się na początku słowa (ang. word-begin), na
końcu (ang. word-end), wewnątrz (ang. word-inner) oraz fon izolowany (ang. word-
begin-and-end).
Rys. 14 Graf kontekstowego drzewa decyzyjnego dla modeli monofonów
Po zainicjalizowaniu modelu akustycznego należy przejść do kolejnego etapu:
kompilacji treningowych grafów FST. Dla każdego nagrania ze zbioru treningowego
tworzony jest automat skończony, w którym zawarta jest informacja o transkrypcji
fonetycznej słów występujących w nagraniu oraz odpowiadającym im komponentom
modelu HMM. W ten sposób utworzony automat jest następnie wykorzystywany do
estymacji parametrów modelu GMM-HMM. Etap kompilacji grafów treningowych
realizowany jest przez program compile-train-graphs:
compile-train-graphs <TREE_DIR> <MDL_DIR> <LFST_DIR> <TRANS>
<OUT_FSTS>
gdzie:
<TREE_DIR> - ścieżka do kontekstowego drzewa decyzyjnego,
<MDL_DIR> - ścieżka do zainicjalizowanego modelu HMM,
<LFST_DIR> - ścieżka do kompozytu L.fst z transkrypcją fonetyczną
wszystkich słów wykorzystywanych podczas treningu,
Trening modeli akustycznych
- 50 -
<TRANS> - zmienna przechowująca przekonwertowane transkrypcje
nagrań treningowych. Transkrypcja polega na przypisaniu transkrypcji sekwencji liczb
całkowitych odpowiadającym poszczególnym słowom. Mapa między liczbami
całkowitymi a słowami znajduje się w pliku words.txt z katalogu lang.
<OUT_FSTS> - ścieżka do wyjściowego archiwum zawierającego
skompilowane grafy FST nagrań treningowych.
Kompilacja grafów FST jest procesem podlegającym zrównolegleniu (rozbiciu na
wątki realizowane przez rdzenie CPU). Ilość wątków wyznaczona jest na podstawie
wcześniejszego etapu parametryzacji nagrań. Kompilacja jest procesem czasochłonnym
dlatego wykonywana jest tylko raz, po inicjalizacji modelu akustycznego, a jej rezultaty
przechowywane są na dysku i podczas kolejnych iteracji treningu są one wczytywane do
pamięci RAM.
Gdy grafy FST są skompilowane można przejść do kroku wstępnej segmentacji (ang.
aligning) nagrań. Przez segmentację rozumiemy tutaj przypisanie każdej analizowanej
ramce nagrania (każdemu wektorowi cech MFCC) liczby odpowiadającej monofonowi z
modelu akustycznego. Wstępna segmentacja polega na ‘równomiernym’ przypisaniu
monofonów do ramek każdego nagrania treningowego i wywoływana jest poleceniem:
align-equal-compiled <FSTS> <FEATS_PIPE> <ALIGN_OUT>
gdzie:
<FSTS> - ścieżka do treningowych grafów FST,
<FEATS_PIPE> - zmienna przechowująca informacje na temat
wejściowych parametrów MFCC,
<ALIGN_OUT> - ścieżka do wyjściowego archiwum z segmentacją.
Po segmentacji akumulujemy statystyki dotyczące dopasowania poszczególnych
monofonów w nagraniach do aktualnego modelu akustycznego GMM-HMM, które
później wykorzystamy do jego reestymacji:
gmm-acc-stats-ali <MDL> <FEATS_PIPE> <ALIGN> <STATS_OUT>
gdzie:
<MDL> - ścieżka do zainicjalizowanego modelu GMM-HMM,
Trening modeli akustycznych
- 51 -
<FEATS_PIPE> - zmienna przechowująca informacje na temat
wejściowych parametrów MFCC,
<ALIGNS> - ścieżka do archiwum z segmentacją nagrań,
<STATS_OUT> - ścieżka do wyjściowego pliku ze zgromadzonymi
statystykami.
Ilość unikalnych ramek dla przeprowadzanego treningu wyniosła 13406400. Po
zgromadzeniu statystyk wykonujemy reestymację modelu GMM-HMM opierając się na
kryterium ML (ang. Maximum Likelihood):
gmm-est –-min-gaussian-occupancy=3 <MLD> <STATS_IN> <MDL_OUT>
gdzie:
--min-gaussian-occupancy – liczba określająca minimalną liczbę
gaussianów przypadającą na każdy monofon (wymagane na początku treningu by
poprawnie modelować rzadko występujące monofony),
<MDL> - ścieżka do wejściowego modelu GMM-HMM,
<STATS> - ścieżka do zgromadzonych statystyk,
<MDL_OUT> - ścieżka do reestymowanego modelu GMM-GMM.
Procedura segmentacji nagrań, zliczania statystyk oraz reestymacji parametrów
modelu akustycznego GMM-HMM monofonów jest wykonywana iteracyjnie. Pełny
trening jest wykonywany przez odpowiedni skrypt (train_mono.sh), który zapewnia
iteracyjne wykonywanie powyższych procesów oraz zwiększanie całkowitej ilości
gaussianów przydzielanych monofonom w każdej iteracji. Poniżej zaprezentowano
wykresy przedstawiające postępy reestymacji modelu akustycznego zachodzące w każdej
iteracji treningu.
Na pierwszy wykresie widać bardzo gwałtowny początkowy przyrost średniego
logarytmu prawdopodobieństwa znormalizowanego względem wszystkich
analizowanych ramek (wektorów cech). Przyrost ten wynika z faktu, że w początkowej
fazie treningu dodawane są kolejne gaussiany powodując lepsze dopasowanie się modeli
fonetycznych do danych treningowych. Począwszy od 8 iteracji liczba gaussianów
(względem wszystkich modeli HMM) pozostaje stała i następuje powolny proces
kolejnych iteracji reestymacji ich parametrów.
Trening modeli akustycznych
- 52 -
Rys. 15 Średni logarytm prawdopodobieństwa na ramkę dla treningu monofonów
Rys. 16 Przyrost funkcji celu dla treningu monofonów
-108
-107
-106
-105
-104
-103
-102
-101
-100
-99
-98
-97
-96
-95
-94
-93
-92
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
Śred
ni l
oga
rytm
pra
wd
op
od
ob
ień
stw
o n
a ra
mkę
Numer iteracji
Średni logarytm prawdopodobieństwa na ramkęw każdej iteracji treningu monofonów
00.05
0.10.15
0.20.25
0.30.35
0.40.45
0.50.55
0.60.65
0.70.75
0.80.85
0.90.95
1
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
Prz
yro
st w
arto
ści f
un
kcji
ce
lu
Numer iteracji
Przyrost wartości funkcji celu dla każdej iteracji treningu monofonów
Trening modeli akustycznych
- 53 -
Celem wytrenowania modelu akustycznego monofonów było otrzymanie na tyle
precyzyjnej segmentacji, aby można było rozpocząć trening trifonów. Przed
przystąpieniem do kolejnego etapu należy wygenerować najnowszą segmentację
(korzystając z modelu pochodzącego z ostatniej iteracji treningu monofonów), która
będzie najbardziej precyzyjna. W tym celu należy wywołać skrypt:
./steps/align_si.sh –nj <NJ> --cmd <CMD> <DATA_DIR> <LANG_DIR>
<MONO_MDL_DIR> <ALIGN_OUT>
gdzie:
<NJ> - liczba wątków, na które zostaną rozbite obliczenia,
<CMD> - nazwa wybranego skryptu do uruchamiania obliczeń
(domyślnie: RUN_CMD = run.pl),
<DATA_DIR> - ścieżka do katalogu data,
<LANG_DIR> - ścieżka do katalogu lang,
<MONO_MDL_DIR> - ścieżka do modelu akustycznego monofonów
pochodzącego z ostatniej iteracji (final.mdl),
<ALIGN_OUT> - ścieżka do wyjściowego archiwum z segmentacją.
Ogólna procedura treningu modelu akustycznego dla trifonów jest zbliżona do
treningu monofonów z tą różnicą, że generacja kontekstowego drzewa decyzyjnego jest
bardziej skomplikowana. Pozostałe etapy takie jak segmentacja wypowiedzi,
akumulowanie statystyk z nagrań i reestymacja modelu pozostają takie same.
Główną słabością monofonowego modelu akustycznego jest to, że parametry
akustyczne określonego fonemu w wypowiedzi silnie zależą od fonemów go
otaczających (najsilniej od tych bezpośrednio przed i po analizowanym fonemie). Z tego
względu trójstanowy model akustyczny GMM-HMM wytrenowany bez informacji
kontekstowej jest mało precyzyjny w realnym działaniu systemu. Aby temu zaradzić,
można wytrenować osobny model akustyczny dla każdego możliwego trifonu, jednak
spowoduje to zbyt dużą ilość modeli do wytrenowania, niemożliwą do osiągnięcia (np.
dla 37 fonemów będzie to 37*37*37=50653 osobnych modeli akustycznych.
Aktualnie używaną metodą budowania modeli trifonowych jest metoda opierająca się
na kontekstowych drzewach decyzyjnych. W Kaldi mechanizmy służące do budowy
kontekstowego drzewa decyzyjnego są wbudowane w skrypt trenujący i sprawują się bez
Trening modeli akustycznych
- 54 -
zarzutu dla wielu różnych języków. Omówienie wszystkich istotnych szczegółów
dotyczących tego procesu zajęło by zbyt wiele miejsca, dlatego też postanowiono ominąć
ten temat i przedstawić tylko sposób uruchomienia treningu modelu trifonowego.
Szczegóły na ten temat można znaleźć w wielu ogólnodostępnych publikacjach [31].
Skrypt trenujący o którym mowa wywołuje się poleceniem:
./steps/train_deltas.sh <NLEAVES> <NPDFS> <DATA_DIR> <DATA_LANG>
<ALIGN_DIR> <MDL_OUT>
Gdzie:
<NLEAVES>, <PDFS> - parametry określające liczbę liści drzewa
decyzyjnego i maksymalną liczbę gaussianów modelu akustycznego, których liczba
wzrasta z każdą iteracją treningu,
<DATA_DIR> - ścieżka do katalogu data,
<LANG_DIR> - ścieżka do katalogu lang,
<ALIGN_DIR> - ścieżka do archiwum z segmentacją nagrań,
<MDL_OUT> - ścieżka do wyjściowego katalogu, w którym umieszczony
zostanie wytrenowany model akustyczny.
Często praktykowaną metodą treningu modeli trifonych (wykorzystaną również w
niniejszym eksperymencie) jest wygenerowanie segmentacji po pierwszym treningu
trifonów i wykorzystanie tej segmentacji do drugiego treningu (ang. second pass triphone
training). Taki krok pozwala uzyskać dokładniejszy finalny model akustyczny, ponieważ
kontekstowe drzewo decyzyjne jest budowane w oparciu o dokładniejsze dane
wejściowe. Wytrenowany w ten sposób trifonowy model akustyczny jest finalnym
modelem, który będzie wykorzystany w ewaluacji systemu ASR i porównany do modeli
BNF-GMM-HMM i FBANK-DNN-HMM. Poniżej przedstawiono ogólny przebieg
drugiego treningu trifonowych modeli akustycznych wraz z porównaniem do treningu
monofonów. Trening przebiega bardzo podobnie do treningu monofonów z tą różnicą, że
resegmentacja nagrań treningowych występuje co 5 iteracji treningu. Fakt resegmentacji
jest bardzo dobrze widoczny na wykresie z przyrostem wartości funkcji celu. Co pięć
iteracji pojawia się drobny szczyt, który świadczy o szybszej zbieżności funkcji celu.
Wynika to z faktu, że kolejne resegmentacje są coraz bardziej odpowiadają rzeczywistym
rozmieszczeniu fonów w nagraniu. Na ostatnim wykresie widoczne są różnice w treningu
Trening modeli akustycznych
- 55 -
dwóch modeli. Widoczne jest lepsze dopasowanie się do nagrań treningowych przez
model trifonowy co objawia się niższym logarytmem prawdopodobieństwa (a w
rzeczywistości wyższym znormalizowanym prawdopodobieństwem).
Rys. 17 Średni logarytm prawdopodobieństwa na ramkę dla treningu trifonów
(drugi przebieg treningu)
-96
-95.5
-95
-94.5
-94
-93.5
-93
-92.5
-92
-91.5
-91
-90.5
-90
-89.5
-89
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34
Śred
ni l
oga
rytm
pra
wd
op
od
ob
ień
stw
o n
a ra
mkę
Numer iteracji
Średni logarytm prawdopodobieństwo na ramkęw każdej iteracji treningu trifonów (drugi przebieg)
Trening modeli akustycznych
- 56 -
Rys. 18 Przyrost funkcji celu dla treningu monofonów (drugiego przebiegu)
Rys. 19 Porównanie ewolucji treningów monofonów i trifonów
00.05
0.10.15
0.20.25
0.30.35
0.40.45
0.50.55
0.60.65
0.70.75
0.80.85
0.90.95
1
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34
Prz
yro
st w
arto
ści f
un
kcji
ce
lu
Numer iteracji
Przyrost wartości funkcji celu dla każdej iteracji treningu trifonów (drugi przebieg)
-108-107-106-105-104-103-102-101-100
-99-98-97-96-95-94-93-92-91-90-89
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
Śred
nie
log-
pra
wd
op
od
ob
ień
stw
o n
a ra
mkę
Numer iteracji
Porównanie ewolucji treningu monofonówi trifonów (z drugiego przebiegu)
"monofony" "trifony (drugi przebieg)
Trening modeli akustycznych
- 57 -
3.4 Trening BNF-GMM-HMM
Drugim, z przeznaczonych do analizy modeli akustycznych, będzie model oparty o
klasyczny model GMM-HMM, lecz wytrenowany nie na współczynnikach MFCC a na
współczynnikach BNF (ang. Bottleneck Features) wyekstrahowanych z przewężenia
wielowarstwowej (głębokiej) sieci neuronowej. Jest to pierwszy z analizowanych modeli
akustycznych, w którym pojawiają się metody głębokiego uczenia maszynowego.
Wspomniana głęboka sieć neuronowa zostanie wytrenowana na współczynnikach MFCC
a kryterium treningu sieci będzie klasyfikacja każdej ramki analizowanego nagrania
(wraz z ramkami kontekstowymi) do określonego fonemu mowy. W niniejszym
podrozdziale zostanie szczegółowo opisany tego typu trening.
Do wytrenowania sieci DNN-BNF wykorzystano zbiór narzędzi z Kaldi
zaimplementowanych przez Daniela Povey znajdujących się w katalogach nnet2 oraz
nnet2bin. Te podprogramy wykorzystują do treningu algorytm SGD (ang. Stochastic
Gradient Descent [10] oraz umożliwiają zrównoleglanie obliczeń na kilka różnych
jednostek GPU. Do uruchomienia treningu DNN (ang. Deep Neural Network) niezbędne
jest wygenerowanie segmentacji nagrań treningowych wykorzystując któryś ze wcześniej
wytrenowanych modeli akustycznych (w tym eksperymencie wykorzystano model z
drugiego przebiegu treningu trifonów).
Pierwszym etapem treningu jest przygotowanie danych wejściowych. Zdecydowano,
że na wejście sieci będzie podawane 11 wektorów cech dających w sumie 143
współczynniki MFCC (13 elementowy główny wektor MFCC + 5 wektorów
kontekstowych). Taka konfiguracja została wytypowana opierając się na
przeprowadzonych wcześniej eksperymentach, które dawały najlepsze rezultaty. Przed
podaniem tych współczynników na wejście sieci neuronowej należy je najpierw
zdekorelować. W Kaldi, dekorelacja współczynników wejściowych realizowana jest
przez transformację LDA (ang. Linear Discriminant Analysis), która nie redukuje
wymiarowości wejściowego wektora cech [20]. Wykonuje się ją uruchamiając skrypt
./steps/nnet2/get_lda.sh <DATA_DIR> <LANG_DIR> <ALI_DIR>
<OUT_DIR>
gdzie:
<DATA_DIR> - ścieżka do katalogu data,
<LANG_DIR> - ścieżka do katalogu lang,
Trening modeli akustycznych
- 58 -
<ALI_DIR> - ścieżka do archiwum z segmentacją,
<OUT_DIR> - ścieżka do wyjściowego katalogu, w którym umieszczona
zostanie wygenerowana macierz transformacji LDA (lda.mat).
Po wygenerowaniu macierzy LDA można przejść do kolejnego kroku, którym jest
randomizowanie kolejności, w której kolejne ramki będą podawane na wejście sieci
podczas estymacji jej parametrów. Randomizacja jest procedurą niezbędną do
poprawnego przeprowadzenia treningu SGD. Wykonuje się ją wywołując skrypt
./steps/nnet2/get_egs.sh –samples-per-iter <SMP_PER_ITER>
<DATA_DIR> <LANG_DIR> <ALI_DIR> <OUT_DIR>
gdzie:
<SMP_PER_ITER> - liczba przypadków treningowych przypadających
na jedną iteracją treningu (w tym wypadku wynosi ona 40000).,
<DATA_DIR> <LANG_DIR> <ALI_DIR> - tak jak poprzednio,
<OUT_DIR> - ścieżka do wyjściowego katalogu, w którym umieszczone
zostaną pliki z losowo wybraną kolejnością nagrań treningowych oraz walidacyjnych.
Gdy dane wejściowe są gotowe można zainicjalizować głęboką sieć neuronową.
Inicjalizacja sieci jest procesem, w którym przygotowywany jest obiekt zawierający
wszystkie informacje o trenowanej sieci. Inicjalizacja odbywa się ‘warstwowo’, to
znaczy, że na początku treningu tworzona jest tylko pierwsza warstwa głębokiej sieci
neuronowej (kolejne warstwy dodawane są wraz z kolejnymi iteracjami treningu).
Inicjalizację uruchamiamy uruchamiając program
nnet-am-init <TREE_DIR> <TOPO_DIR> <NNET_CONFIG>
gdzie:
<TREE_DIR>, <TOPO_DIR> - ścieżki do kontekstowego drzewa
decyzyjnego oraz pliku z topologią modelu GMM-HMM, którym wykonana została
segmentacja (potrzebujemy informacji o liczbie liści drzewa decyzyjnego, czyli liczbie
trifonów, które będą stanowiły węzły ostatniej warstwy sieci),
<NNET_CONFIG> - ścieżka do pliku konfiguracyjnego sieci
zawierającego jej wszystkie najważniejsze parametry. Poniżej przedstawiono plik
Trening modeli akustycznych
- 59 -
konfiguracyjny wykorzystany w omawianym treningu oraz opisano jest wszystkie
komponenty. Ten plik jest niezbędny do zrekonstruowania otrzymanych wyników.
SpliceComponent input-dim=13 left-context=5 right-context=5
const-component-dim=0
FixedAffineComponent matrix=trained-ams/speech-corpus-train-
agh/dnn2-bnf/4_2000_42_400/lda.mat
AffineComponentPreconditionedOnline input-dim=143 output-
dim=2000 alpha=4.0 num-samples-history=2000 update-period=4 rank-
in=20 rank-out=80 max-change-per-sample=0.075 learning-rate=0.02
param-stddev=0.0223606797749979 bias-stddev=0.5
PnormComponent input-dim=2000 output-dim=400 p=2
NormalizeComponent dim=400
AffineComponentPreconditionedOnline input-dim=400 output-
dim=2925 alpha=4.0 num-samples-history=2000 update-period=4 rank-
in=20 rank-out=80 max-change-per-sample=0.075 learning-rate=0.02
param-stddev=0 bias-stddev=0
SoftmaxComponent dim=2925
Plik konfiguracyjny głębokiej sieci neuronowej zawiera informacje o następujących
składowych:
SpliceComponent – komponent ‘sklejający’ ze sobą środkowąy wektor cech i
jego kontekstowe wektory z danego nagrania,
FixedAfficeComponent – komponent realizujący omówioną wcześniej
dekorelującą transformację LDA nie zmniejszając wymiarowości
wejściowego wektora,
AffineComponentPreconditionedOnline – komponent zawierający macierz
wag i wektor biasu węzłów danej warstwy sieci,
PnormComponent – komponent sieci zawierający nieliniowości (funkcje
aktywacji) węzłów określonej warstwy. W tym przypadku jest to funkcja p-
norm,
NormalizeComponent – komponent stabilizujący trening sieci,
Trening modeli akustycznych
- 60 -
SoftmaxComponent – ostatni komponent sieci generujący na wyjściu
znormalizowane prawdopodobieństwa przynależności danego wektora
wejściowego do któregoś z trifonów.
Kolejne ukryte warstwy są inicjalizowane według pliku konfiguracyjnego
hidden.config, natomiast jedna z ukrytych warstw stanowi przewężenie sieci
(inicjalizowane według bnf.config), z którego to przewężenia ekstrahowane będą
współczynniki BNF po zakończeniu treningu SGD. Pliki konfiguracyjne opisujące oba
rodzaje warstw ukrytych przedstawione są poniżej.
hidden.config
AffineComponentPreconditionedOnline input-dim=400 output-
dim=2000 alpha=4.0 num-samples-history=2000 update-period=4 rank-
in=20 rank-out=80 max-change-per-sample=0.075 learning-rate=0.02
param-stddev=0.0223606797749979 bias-stddev=0.5
PnormComponent input-dim=2000 output-dim=400 p=2
NormalizeComponent dim=400
bnf.config
AffineComponentPreconditionedOnline input-dim=400 output-
dim=420 alpha=4.0 num-samples-history=2000 update-period=4 rank-
in=20 rank-out=80 max-change-per-sample=0.075 learning-rate=0.02
param-stddev=0.0487950036474267 bias-stddev=0.5
PnormComponent input-dim=420 output-dim=42 p=2
NormalizeComponent dim=42
AffineComponentPreconditionedOnline input-dim=42 output-
dim=2000 alpha=4.0 num-samples-history=2000 update-period=4 rank-
in=20 rank-out=80 max-change-per-sample=0.075 learning-rate=0.02
param-stddev=0.0223606797749979 bias-stddev=0.5
PnormComponent input-dim=2000 output-dim=400 p=2
NormalizeComponent dim=400
Procedura treningu DNN-BNF jest procedurą iteracyjną, w której wyróżnia się dwa
główne przebiegi nazwane epokami i iteracjami. Na każdą epokę treningu przypada
Trening modeli akustycznych
- 61 -
określona ilość iteracji (w tym przypadku 42). Jedna epoka stanowi jedno pełne przejście
przez wszystkie dane treningowe algorytmem wstecznej propagacji błędu z określonym
współczynnikiem uczenia (ang. learning rate). Jedna iteracja to wystąpienie określonej
liczby próbek wejściowych (w tym przypadku na jedną iterację przypada 40000 próbek
uczących). Przez pierwsze 15 epok współczynnik uczenia sieci jest stopniowo
zmniejszany aż do osiągnięcia wartości końcowej. Następnie przez 5 ostatnich epok sieć
uczona jest stałym współczynnikiem uczenia. Omawiany trening został zapoczątkowany
współczynnikiem uczenia równym 0,04, który malał aż do osiągnięcia wartości 0,004.
Wartość współczynnika uczenia sieci dobiera się eksperymentalnie. Iteracyjną procedurę
treningu DNN-BNF wywołano skryptem:
./steps/nnet2/train_pnorm_bottleneck_fast.sh --samples-per-
iter 40000 --minibatch-size 512 --initial-learning-rate 0.02 --
final-learning-rate 0.004 --pnorm-input-dim 2000 --pnorm-output-
dim 400 --bottleneck-dim 42 –splice-width 5 <DATA_DIR> <LANG_DIR>
<ALIGN_DIR> <OUT_DIR>
Wszystkie występujące w komendzie parametry zostały wcześniej omówione.
Każda kolejna iteracja treningu rozpoczyna się od obliczenia pewnych
współczynników służących do diagnozowania przebiegu treningu. Pozwalają one ocenić
skuteczność uczenia się sieci przy ustalonych parametrach treningu. Głównym
obliczanym wskaźnikiem w przypadku treningu DNN-BNF jest entropia krzyżowa (ang.
cross-entropy) opisana we wprowadzeniu. Stanowi ona pewną miarę poprawnego
klasyfikowania trifonów przez trenowaną głęboką sieć neuronową. Poniżej przestawiono
wykresy entropii krzyżowej obliczonej dla zbiorów treningowego i walidacyjnego dla
każdej iteracji treningu. Wykresy dobrze obrazują ewolucję treningu sieci neuronowej.
W początkowej fazie treningu widzimy gwałtowny spadek entropii krzyżowej liczonej
zarówno na korpusie treningowym i walidacyjnym. Potem następuje powolne
‘dotrenowanie’ sieci lecz już bez wyraźnego wzrostu skuteczności na korpusie
walidacyjnym.
Trening modeli akustycznych
- 62 -
Rys. 20 Zmiana entropii krzyżowej w każdej iteracji treningu DNN-BNF
Rys. 21 Zmiana parametru frame-accuracy w każdej iteracji treningu DNN-BNF
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
0 100 200 300 400 500 600 700 800
Entr
op
ia k
rzyż
ow
a
Numer iteracji
Wartość entropii krzyżowej dla każdejiteracji treningu DNN-BNF
"korpus treningowy" "korpus walidacyjny"
0.4
0.45
0.5
0.55
0.6
0.65
0.7
0.75
0.8
0 100 200 300 400 500 600 700 800
fram
e-a
ccu
racy
Numer iteracji
Wartość parametru frame-accuracy dla każdejiteracji treningu DNN-BNF
"korpus treningowy" "korpus walidacyjny"
Trening modeli akustycznych
- 63 -
Po wytrenowaniu sieci DNN-BNF możemy przejść do wyekstrahowania
współczynników BNF z nagrań korpusu treningowego. Ekstrakcja polega na podawaniu
kolejnych sparametryzowanych ramek (wraz z ramkami kontekstowymi) treningowych
nagrań na wejście sieci, wymnożeniu ich przez wszystkie warstwy sieci neuronowej, aż
do warstwy z przewężeniem i zapisaniu otrzymanych wartości węzłów przewężenia na
dysk. Proces ten realizowany jest przez skrypt
./steps/nnet2/dump_bottleneck_features.sh --nj 4 <DATA_DIR>
<DNN_BNF_DIR> <OUT_BNF_DIR> <BNF_LOG_DIR>
gdzie:
<DATA_DIR> - ścieżka do katalogu data,
<DNN_BNF_DIR> - ścieżka do katalogu z wytrenowaną siecią DNN-
BNF
<OUT_BNF_DIR> - ścieżka do wyjściowego katalogu, w którym
umieszczone zostaną archiwum z współczynnikami BNF,
<BNF_LOG_DIR> - ścieżka do wyjściowego katalogu, w którym
umieszczone zostaną logi z obliczeń.
Na wygenerowanych współczynnikach BNF zbudowano trifonowy model akustyczny.
Przebieg obliczeń i sposób wywoływania procedur jest dokładnie taki sam jak w
przypadku poprzednio opisanego treningu. Należy tylko zwrócić uwagę na to, by plik
feats.scp z katalogu data wskazywał teraz na archiwum ze współczynnikami BNF. W ten
sposób utworzony trifonowy model akustyczny jest drugim z analizowanych modeli i
zostanie poddany ewaluacji w kolejnym rozdziale. Poniżej przedstawiono wykresy
obrazujące proces treningu trifonowego modelu akustycznego. Wykresy są bardzo
podobne do tych z poprzedniego podrozdziału. Również tutaj można zaobserwować
chwilowe skoki przyrostu wartości funkcji celu wynikające z resegmentacji nagrań
treningowych.
Trening modeli akustycznych
- 64 -
Rys. 22 Średni logarytm prawdopodobieństwa na ramkę dla treningu BNF-GMM
Rys. 23 Przyrost funkcji celu dla treningu BNF-GMM
-162
-161.5
-161
-160.5
-160
-159.5
-159
-158.5
-158
-157.5
-157
-156.5
-156
-155.5
-155
-154.5
-154
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34
Śred
ni l
oga
rytm
pra
wd
op
od
ob
ień
stw
o n
a ra
mkę
Numer iteracji
Średni logarytm prawdopodobieństwa na ramkęw każdej iteracji treningu trifonów
00.05
0.10.15
0.20.25
0.30.35
0.40.45
0.50.55
0.60.65
0.70.75
0.80.85
0.90.95
1
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34
Prz
yro
st w
arto
ści f
un
kcji
ce
lu
Numer iteracji
Przyrost wartości funkcji celu dla każdej iteracji treningu trifonów
Trening modeli akustycznych
- 65 -
3.5 Trening FBANK-DNN-HMM
Ostatnim z analizowanych modeli akustycznych jest model hybrydowy DNN-HMM
wytrenowany na współczynnikach FBANK (ang. Mel Filter Banks). Narzędzia
wykorzystane w tym treningu pochodzą z implementacji Karela Vesely i znajdują się w
katalogach nnet i nnetbin. Najistotniejsza różnica w treningu tych sieci neuronowych a
tych z poprzedniego rozdziału polega na wykorzystaniu idei pre-treningu RBM (ang.
Restricted Boltzmann Machines) w pierwszej fazie treningu [10]. Obliczenia
wykonywane przez podprogramy z tego pakietu można wykonywać tylko na jednej
karcie GPU jednocześnie.
Przed przystąpieniem do właściwego treningu należy najpierw sparametryzować
nagrania treningowe wykorzystując melowe banki filtrów. Melowe banki filtrów nie są
wykorzystywane do modelowania GMM-HMM z tego względu, że są one ze sobą ściśle
skorelowane, co znacznie utrudnia proces ich modelowania za pomocą diagonalnych
gaussianów. Problem ten nie występuję dla sieci DNN i co więcej, eksperymenty
opisywane w wielu publikacjach wskazują na wyższość parametryzacji FBANK nad
MFCC. Aby obliczyć wymagane współczynniki należy uruchomić skrypt
./steps/make_fbank.sh --nj 4 --fbank-config <FBANK_CONFIG> --
cmd <CMD> <DATA_DIR> <FBANK_LOG_DIR> <FBANK_OUT_DIR>
gdzie:
FBANK_CONFIG - ścieżka do pliku konfiguracyjnego zawierającego
najważniejsze informacje o parametryzacji (pełny plik fbank.conf przedstawiony jest
poniżej),
<CMD> - wybór skryptu uruchamiającego obliczenia (CMD=run.pl),
<DATA_DIR> - ścieżka do katalogu data,
<FBANK_LOG_DIR> - ścieżka do wyjściowego katalogu, w którym
umieszczone zostaną logi z obliczeń,
<FBANK_OUT_DIR> - ścieżka do wyjściowego katalogu, w którym
umieszczone zostaną archiwum z wygenerowanymi współczynnikami FBANK.
Trening modeli akustycznych
- 66 -
Współczynniki FBANK możemy poddać normalizacji, tak samo jak w przypadku
MFCC. Sposób normalizowania nagrań jest identyczny jak w przypadku opisanym w
podpunkcie 3.1 i nie będzie on tutaj powtarzany.
Ważnym krokiem jest manualne wydzielenie zbioru do walidacji ze zbioru
treningowego. Krok ten nie jest automatycznie wykonywany w przypadku narzędzi nnet
i nnetbin. Odpowiedni skrypt, napisany w języku bash, znajduje się na dołączonej płycie
CD. Wydzielony podzbiór walidacyjny składał się z ok. 10% wszystkich nagrań
treningowych z dodatkowym zastrzeżeniem, że proporcje między nagraniami
pochodzącymi z różnych źródeł (Globalphone, AGHstreets itp) zostały zachowane.
Skrypt można uruchomić poleceniem
./local/generate-dnn-subsets.sh <DATA_DIR> <TRAIN_OUT_DIR>
<DEV_OUT_DIR>
Podobnie jak w przypadku treningu DNN-BNF kolejność nagrań w zbiorze
treningowym i walidacyjnym musi zostać zrandomizowana (skryptem
utils/shuffle_list.pl). Po randomizacji należy utworzyć plik konfiguracyjny
(final.feature_transform), w którym zawarte będą informacje na temat kontekstowych
ramek wchodzących na wejście sieci. W tym przypadku wykorzystano takie samo okno
kontekstowe jak w treningu DNN-BNF (5 wektorów FBANK w obu kierunkach). Plik
ten wykorzystywany jest przez oprogramowanie do ‘sklejania’ ramek wewnątrz pamięci
GPU. Poniżej przedstawiono jego zawartość:
<Nnet>
<Splice> 451 41
[ -5 -4 -3 -2 -1 0 1 2 3 4 5 ]
</Nnet>
Pretrening rozpoczyna się od inicjalizacji pierwsze ukrytej warstwy, która w
odróżnieniu od pozostałych warstw składających się z jednostek typu Bernoulli-
Bernoulli, składa się z jednostek typu Gaussian-Bernoulli. Sieć inicjalizujemy
poleceniem
nnet-initialize <RBM_PROTO> <RBM_INIT>
gdzie:
<RBM_PROTO> - ścieżka do pliku z topologią ukrytej warstwy,
Trening modeli akustycznych
- 67 -
<RBM_INIT> - ścieżka do wyjściowego pliku z zainicjalizowaną siecią.
W kolejnych epokach treningu inicjalizowane są następne warstwy sieci. Wykonuje
się to tym samym poleceniem, lecz z innym plikiem konfiguracyjnym. Aby umożliwić
odtworzenie prezentowanych wyników na innym urządzeniu, zamieszczono poniżej
wszystkie pliki konfiguracyjne wykorzystane do zainicjalizowania każdej warstwy sieci.
<NnetProto>
<Rbm> <InputDim> 451 <OutputDim> 2000 <VisibleType> gauss
<HiddenType> bern <ParamStddev> 0.1
</NnetProto>
<NnetProto>
<Rbm> <InputDim> 2000 <OutputDim> 2000 <VisibleType> bern
<HiddenType> bern <ParamStddev> 0.1 <VisibleBiasCmvnFilename>
trained-ams/speech-corpus-train-agh/dnn/pretrain_5_2000_5/[2-
5].cmvn
</NnetProto>
Po inicjalizacji każdej warstwy wykonywane są dwa kolejne podprogramy. Pierwszy
z nich (nnet-forward) służy do ‘przepuszczenia’ danych wejściowych przez poprzednio
wytrenowane warstwy otrzymując w ten sposób przetransformowane cechy, które
zostaną wykorzystane w pre-treningu kolejnej epoki. Sam pre-trening jest treningiem bez
nadzoru (ang. unsupervised) i oparty jest o algorytm CD-1 (ang. Contrastive Divergence
with 1-step of Markov Chain Monte Carlo sampling). Szczegóły dotyczące tego
algorymtu można znaleźć w publikacji Geoffa Hintona [9]. Obliczenia wykonywane są
przez podprogram rbm-train-cd1-frmshuff. Wywoływanie opisanych podprogramów
obudowane jest odpowiednim skryptem w Kaldi. Sposób w jaki go uruchomiono
przedstawiony jest poniżej.
./steps/nnet/pretrain_dbn.sh --nn-depth 5 --hid-dim 2000 --rbm-
iter 5 --splice 5 <DATA_DIR> <PRETRAIN_OUT_DIR>
Omawiany pre-trening składał się z 5 epok (po jednej epoce dla każdej ukrytej
warstwy). W każdej epoce wykonało się 5 iteracji (oprócz pierwszej epoki, gdzie ilość
iteracji została zwiększona dwukrotnie ze względu na wykorzystanie innego rodzaju
jednostek sieci (gaussian-bernoulli)). Ukryte warstwy składały się z 2000 węzłów. Te
Trening modeli akustycznych
- 68 -
parametry treningu zostały dobrane na podstawie wcześniej wykonanych eksperymentów
oraz kilku wskazówek zawartych w dokumentach Kaldi. Kompletny czas treningu
wszystkich 5 ukrytych warstw z wykorzystaniem jednej karty GPU wyniósł około 5,28
godziny.
Ostatnim etapem całego treningu jest poddanie sieci składającej się z pięciu ukrytych
warstw RBM i kolejnej, wyjściowej warstwy procedurze uczenia z nadzorem (ang.
supervised), w którym kryterium uczenia jest takie samo jak w podpunkcie 3.4
(klasyfikacja każdej ramki do określonego trifonu) i realizowane jest przez omówiony
wcześniej algorytm SGD. Domyślnie funkcjami aktywacji węzłów ostatniej warstwy są
funkcje sigmoidalne. Współczynnik uczenia ustawiony został na wartość 0.008. Trening
z nadzorem realizowany jest przez program nnet-train-frm-shuff. Obliczenia
uruchomiono wywołując następujący skrypt
./steps/nnet/train.sh --feature-transform <FEAT_T_DIR> --dbn
<DBN_DIR> --hid-layers 0 --learn-rate 0.008 --splice 5
Gdzie:
<FEAT_T_DIR> - ścieżka do pliku konfiguracyjnego
final.feature_transform utworzonego podczas pre-treningu RBM,
<DBN_DIR> - ścieżka do pliku z wytrenowanymi ukrytymi warstwami
RBM.
Trening kończy się w momencie gdy przyrost funkcji kosztu (entropii krzyżowej)
obliczonej na korpusie deweloperskim osiągnie pewną ustaloną minimalną wartość
(mechanizmy zatrzymujące trening wbudowane są w skrypt train.sh). Gdy trening się
zakończy, generowana jest końcowa postać głębokiej sieci neuronowej (final.nnet). Tak
wytrenowana sieć tworzy razem z modelem HMM hybrydę DNN-HMM. Sieć dla każdej
analizowanej ramki dostarcza pseudo-prawdopodobieństwo każdej obserwacji stanów
emitujących modelu HMM. Jest to ostatni wytrenowany model akustyczny. Poniżej
przedstawiono wykres obrazujący postępy ostatniego treningu. Podobnie jak w
poprzednim treningu zaczyna się on od gwałtownego przyrostu funkcji celu. Kolejne
iteracje są już tylko powolną reestymacją parametrów sieci dopasowującą ją do danych
treningowych. W siódmej iteracji zwiększono wartość współczynnika uczenia sieci, aby
zapewnić szybszą zbieżność - ślad po tej operacji widoczny jest na obu wykresach (wzrost
parametru frame_accuracy oraz spadek entropii krzyżowej).
Trening modeli akustycznych
- 69 -
Rys. 24 Zmiana frame-accuracy w każdej iteracji treningu FBANK-DNN-HMM
Rys. 25 Zmiana entropii krzyżowej w każdej iteracji treningu FBANK-DNN-HMM
0.4
0.45
0.5
0.55
0.6
0.65
0.7
0.75
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
fram
e-a
ccu
racy
Numer iteracji
Wartość parametru frame-accuracy dla każdejiteracji treningu FBANK-DNN-HMM
"korpus treningowy" "korpus walidacyjny"
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
2.2
2.4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Entr
op
ia k
rzyż
ow
a
Numer iteracji
Wartość entropii krzyżowej dla każdejiteracji treningu FBANK-DNN-HMM
"korpus treningowy" "korpus walidacyjny"
Ewaluacja oraz analiza porównawcza wyników
- 70 -
Rozdział 4
Ewaluacja oraz analiza porównawcza wyników
Niniejszy rozdział stanowi najważniejszą, weryfikacyjną część pracy dyplomowej.
Przedstawiono w nim wyniki ewaluacji systemów ASR zbudowanych z wytrenowanych
wcześniej modeli akustycznych. Dokonano analizy porównawczej wyników zarówno
pod kątem skuteczności systemów jak i ich odporności na różnego rodzaju zakłócenia.
Podrozdziały dotyczące ewaluacji poprzedza opis analizowanych metryk, trening modelu
językowego oraz szczegóły dotyczące kompilacji grafów dekodujących (HCLG.fst).
4.1 Opis analizowanych metryk
Word Error Rate / Word Recognition Rate (WER / WRR)
Jest to jedna z najpopularniejszych metryk służących do mierzenia skuteczności
systemów ASR [26]. WRR i WER są ze sobą powiązane zależnością WRR = 1 - WRR i
opierają się na metryce edycyjnej Levenshteina dla słów. Aby wyznaczyć parametr
WER/WRR należy porównać ze sobą transkrypcję nagrań pochodzących z dekodera
(hipotezy dekodera) z transkrypcjami oryginalnymi (referencjami) według następujących
zasad
𝑊𝐸𝑅 =
𝑆 + 𝐷 + 𝐼
𝑁
(4.1)
lub analogicznie
𝑊𝑅𝑅 =𝑁−𝑆−𝐷−𝐼
𝑁 , (4.2)
gdzie:
S - liczba podstawionych słów względem referencji,
D - liczba usuniętych słów względem referencji,
I - liczba wstawionych słów względem referencji,
N - całkowita liczba słów w referencji.
Ewaluacja oraz analiza porównawcza wyników
- 71 -
Tę metrykę najczęściej wykorzystuje się podczas ewaluacji systemów LVCSR (ang.
Large Vocabulary Continuous Speech Recognition), gdzie mamy do czynienia z długimi
i zróżnicowanymi transkrypcjami. W niniejszych ewaluacjach skuteczność podawana
będzie procentowym parametrem WRR (%WRR = WRR * 100%).
Sentence Error Rate / Sentence Recognition Rate (SER/SRR)
Druga najpopularniejsza metryka będąca stosunkiem liczby poprawnie
zdekodowanych zdań (hipoteza dekodera jest identyczna z oryginalną transkrypcją) do
liczby wszystkich testowanych zdań:
𝑆𝐸𝑅 =
𝑃
𝑁
(4.3)
lub analogicznie
𝑆𝑅𝑅 = 𝑁−𝑃
𝑁. (4.4)
gdzie:
P - liczba poprawnie zdekodowanych wypowiedzi,
N - liczba wszystkich analizowanych wypowiedzi.
SER/SRR wykorzystywany jest najczęściej do ewaluacji systemów ASR, których
zadaniem jest rozpoznawanie określonych komend. Bardzo ważne jest wtedy by
komenda była poprawnie rozpoznana w całości, ponieważ często wynik rozpoznania jest
przekazywany w systemie dalej do kolejnych modułów całego systemu (np. Kontrola
urządzeń głosem). W niniejszych ewaluacjach skuteczność podawana będzie
procentowym parametrem SRR (%SRR = SRR * 100%).
Real-Time Factor (RTF)
Jest to parametr określający szybkość działania dekodera. Obliczany jest jako stosunek
czasu trwania procesu dekodowania pojedynczej wypowiedzi do czasu trwania tej
wypowiedzi:
𝑅𝑇𝐹 = 𝐷𝑇
𝑈𝑇, (4.5)
Ewaluacja oraz analiza porównawcza wyników
- 72 -
gdzie:
DT - czas trwania procesu dekodowania wypowiedzi,
UT - czas trwania dekodowanej wypowiedzi.
RTF jest zazwyczaj uśredniany ze wszystkich przeanalizowanych nagrań i jest
podawany jako jedna liczba. RTF jest kluczowym parametrem w komercyjnych
rozwiązaniach korzystających z systemów ASR. Zbyt długi czas pracy dekodera może
spowodować całkowitą niezdolność systemu do interakcji z człowiekiem (zbyt długi czas
oczekiwania na odpowiedź systemu może skutecznie zniechęcić użytkowników).
Przyjęło się, że systemy ASR odznaczające się parametrem RTF mniejszym lub równym
0.4 są wystarczające do interakcji z użytkownikiem. W niniejszych ewaluacjach parametr
RTF pozwoli określić, który z analizowanych modeli akustycznych mógłby być
wykorzystany w realnych implementacjach.
4.2 Kompilacja grafów dekodujących
Przed utworzeniem grafów dekodujących niezbędne jest wytrenowanie modelu
językowego mającego postać automatu G.fst. G.fst może być zarówno statystycznym
modelem językowym (n-gram) jak i gramatyką regułową. Ze względu na różnorodność
korpusów testowych zdecydowano, że model językowy, który będzie wykorzystany w
ewaluacji, będzie statystycznym modelem bigramowym wytrenowanym na wszystkich
dostępnych transkrypcjach języka polskiego. Transkrypcje te pochodzą ze wszystkich
korpusów opisanych w podrozdziale 2.2. Ich łączna liczba wynosi 44445 a liczba
unikalnych słów, które w nich występują wynosi 24909.
Do wytrenowania wymaganego bigramu można wykorzystać dowolny toolkit do
modelowania językowego (w tym przypadku wykorzystano SRILM). Po zgromadzeniu
w jednym pliku wszystkich transkrypcji wywołano polecenie trenujące model:
ngram-count –order <ORDER> –text <CORPUS_PATH> -lm <LM_NAME>
gdzie:
ORDER – liczba określająca rząd modelu n-gramowego (2 oznaczać
będzie bigramowy model językowy),
CORPUS_PATH – ścieżka do pliku z transkrypcjami,
LM_NAME – nazwa wyjściowego modelu językowego.
Ewaluacja oraz analiza porównawcza wyników
- 73 -
Utworzony model językowy składa się z 24909 unigramów, 75614 bigramów a jego
dyskowy rozmiar to 2.1MB. Jest to stosunkowo niewielki model językowy i nie można
go zaliczyć do kategorii LVCSR, jednak do wykonania testów porównawczych jest
całkowicie wystarczający.
Kaldi umożliwia bezpośrednią konwersję n-gramowego modelu językowego do
formatu FST. Aby tego dokonać należy wywołać skrypt generate-g.sh z dołączonej płyty
CD. Skrypt ten wykorzystuje program arpa2fst oraz fstcompile do konwersji i kompilacji
G.fst. Automat ten należy umieścić w nowym katalogu lang, w którym dodatkowo należy
utworzyć wszystkie pozostałe pliki takie jak (L.fst, phones.txt, itp.). Dokładny sposób
konstruowania katalogu lang został opisany w podrozdziale 3.1. Mając gotowy katalog
lang można przystąpić do kompilacji grafów dekodujących.
Każdy z grafów dekodujących w Kaldi (HCLG.fst) jest zbudowany z czterech
głównych komponentów:
G.fst - komponent reprezentujący gramatykę regułową lub statystyczny model
językowy,
L.fst - komponent reprezentujący wielowariantową transkrypcję fonetyczną
wszystkich słów zawartych w G.fst (mapowanie między fonemami a słowami),
C,fst - komponent reprezentujący mapowanie między fonemami
kontekstowymi (trifonami) a docelowymi fonami,
H.fst - komponent reprezentujący topologię wytrenowanego modelu HMM
(mapowanie między obserwacjami stanów modelu a fonemami
kontekstowymi).
Automaty H.fst i C.fst są tworzone podczas treningu modelu akustycznego, natomiast
L.fst i G.fst zależą od modelu językowego. Kompilacja ostatecznego kompozytu
HCLG.fst jest procesem skomplikowanym i składa się z wielu etapów wykorzystujących
podstawowe operacje na automatach skończonych takie jak determinizacja,
minimalizacja i eliminacja przejść typu epsilon [14], które zostały zaimplementowane w
zestawie narzędzi OpenFST. Wykonujemy ją uruchamiając skrypt
./utils/mkgraph.sh <LANG_DIR> <AM_DIR>
Ewaluacja oraz analiza porównawcza wyników
- 74 -
gdzie:
<LANG_DIR> - ścieżka do katalogu lang, w którym znajdują się
automaty G.fst oraz L.fst,
<AM_DIR> - ścieżka do katalogu, w którym znajduje się wytrenowany
model akustyczny.
Dla każdego wytrenowanego modelu akustycznego utworzono osobny graf
dekodujący HCLG.fst, który później został wykorzystany do dostrojenia konfiguracji
dekodera oraz ewaluacji systemu.
4.3 Dostrojenie konfiguracji dekodera
Przed przystąpieniem do ewaluacji systemu ASR należy dostroić konfigurację
dekodera, która zależy od modeli wykorzystywanych podczas dekodowania (akustyczny
i językowy) oraz od samych warunków testów, które powinien odwzorować korpus
deweloperski. Strojeniu podlegają zazwyczaj dwa parametry:
beam - jest to szerokość wiązki z jaką przeszukiwany jest graf dekodujący
(wpływa proporcjonalnie na skuteczność systemu i odwrotnie proporcjonalnie
na szybkość dekodowania),
acwt - współczynnik skalujący wpływ kosztu modelu akustycznego na koszt
całej hipotezy (jego wpływ zależy od konkretnego modelu akustycznego).
Oba parametry dostraja się wykonując kilkanaście ewaluacji dla różnych konfiguracji
tych parametrów szukając najbardziej optymalnej pary. W niniejszej procedurze
przeszukiwano oba parametry w następujących zakresach:
beam=”5; 7; 9; 11; 13; 15; 17; 19”
acwt=”0.040; 0.050; 0.060; 0.070; 0.080; 0.090”
Dla każdej pary parametrów wyznaczono WRR[%] SRR[%] oraz RTF. Jako kryterium
doboru najbardziej optymalnej pary ustalono najwyższą skuteczność systemu (mierzoną
metryką WRR[%]) przy współczynniku RTF nie przekraczającego 0.4. Ustalone w ten
sposób parametry wykorzystywane są we właściwych ewaluacjach systemu ASR. Wyniki
testów przedstawione dla wszystkich analizowanych modeli przedstawione są poniżej.
Ewaluacja oraz analiza porównawcza wyników
- 75 -
acwt beam 5 7 9 11 13 15 17 19
0,04
WRR [%] 68,9 79,7 88,1 90,6 91,5 91,6 91,6 91,7
SRR [%] 71,9 78,5 82,8 83,9 84,7 84,7 84,7 84,8
RTF 0,077 0,094 0,168 0,331 0,563 0,908 1,231 1,315
0,05
WRR [%] 75,9 83,5 89,2 91,5 91,9 92,2 92,2 92,2
SRR [%] 73,9 78,1 82,2 83,7 84,2 84,9 84,9 84,9
RTF 0,074 0,083 0,130 0,246 0,436 0,669 1,019 1,211
0,06
WRR [%] 78,5 85,7 89,2 91,2 91,7 91,9 92,3 92,3
SRR [%] 74,5 78 81,2 83,1 83,9 84,4 85 85
RTF 0,070 0,079 0,107 0,192 0,334 0,556 0,824 1,177
0,07
WRR [%] 79,7 85 88,7 90,5 91,5 91,8 91,9 92,3
SRR [%] 74 77,4 80,4 82,5 83,4 84,1 84,2 84,8
RTF 0,069 0,074 0,095 0,158 0,277 0,466 0,677 0,973
0,08
WRR [%] 80,7 85 88 89,9 91,1 91,5 91,7 91,7
SRR [%] 73,6 76 78,9 81,5 82,9 83,5 84 84
RTF 0,068 0,070 0,086 0,134 0,229 0,378 0,561 0,820
0,09
WRR [%] 80,3 83,5 86,4 88,8 89,8 90,7 91,1 91,2
SRR [%] 71,9 73,7 76,1 79,8 81,1 82,8 83,4 83,8
RTF 0,067 0,068 0,080 0,118 0,192 0,319 0,501 0,700
Rys. 26 Dostrojenie konfiguracji dekodera dla modelu MFCC-GMM-HMM
85
86
87
88
89
90
91
92
93
94
95
0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Dostrojenie konfiguracji dekodera dla modeluMFCC-GMM-HMM
"acwt_0.040" "acwt_0.050" "acwt_0.060" "acwt_0.070"
"acwt_0.080" "acwt_0.090" "RTF_MAX"
Ewaluacja oraz analiza porównawcza wyników
- 76 -
Dla modelu MFCC-GMM-HMM najbardziej optymalna para parametrów to beam=13
i acwt=0.060.
acwt beam 5 7 9 11 13 15 17 19
0,04
WRR [%] 85,3 88,1 90,6 91,7 92 92,2 92,3 92,4
SRR [%] 79,4 82,2 84,2 85,8 86,3 86,2 86,5 86,7
RTF 0,068 0,073 0,097 0,191 0,325 0,508 0,843 1,092
0,05
WRR [%] 85,2 87,2 89,6 91,2 91,5 91,9 92 92,1
SRR [%] 79,1 81,5 83,8 85,1 85,8 86,1 86,3 86,3
RTF 0,064 0,068 0,086 0,144 0,249 0,367 0,605 0,913
0,06
WRR [%] 84,3 86,1 87,8 89,7 91 91,5 91,8 92
SRR [%] 78,8 79,7 81,7 83,5 85,3 85,8 86,1 86,3
RTF 0,061 0,063 0,076 0,113 0,208 0,276 0,439 0,762
0,07
WRR [%] 83,9 84,5 86,7 88,3 89,6 90,6 91,3 91,6
SRR [%] 78,2 78,8 80,6 82,2 83,4 85 85,6 85,9
RTF 0,059 0,060 0,063 0,083 0,129 0,215 0,336 0,498
0,08
WRR [%] 83 83,3 84,7 86,8 88,2 89,8 90,5 91
SRR [%] 77,5 77,7 79,1 80,7 82,2 83,8 84,7 85
RTF 0,060 0,062 0,068 0,084 0,118 0,167 0,269 0,403
0,09
WRR [%] 81 81 82,5 84,7 86,7 88 89,2 89,9
SRR [%] 76,2 76,4 77,7 79,1 81,2 81,7 83 83,8
RTF 0,059 0,058 0,071 0,076 0,096 0,139 0,216 0,325
Rys. 27 Dostrojenie konfiguracji dekodera dla modelu BNF-GMM-HMM
85
86
87
88
89
90
91
92
93
94
95
0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Dostrojenie konfiguracji dekodera dla modeluBNF-GMM-HMM
"acwt_0.040" "acwt_0.050" "acwt_0.060" "acwt_0.070"
"acwt_0.080" "acwt_0.090" "RTF_MAX"
Ewaluacja oraz analiza porównawcza wyników
- 77 -
Dla modelu BNF-GMM-HMM najbardziej optymalna para parametrów to beam=13 i
acwt=0.040.
acwt beam 5 7 9 11 13 15 17 19
0,04
WRR [%] 60 76,7 86,5 91,7 92,8 92,8 92,8 92,8
SRR [%] 71,6 81 85,9 87,2 88 88 88 88
RTF 0,044 0,045 0,100 0,260 0,595 0,823 1,015 1,021
0,05
WRR [%] 73,1 84,9 90,7 93,3 93,7 93,9 93,9 93,9
SRR [%] 74,1 82,7 86,2 87,6 87,9 88,3 88,3 88,3
RTF 0,036 0,038 0,075 0,180 0,469 0,695 0,827 1,004
0,06
WRR [%] 80,2 88,5 92,4 93,4 93,8 94,1 94,1 94,1
SRR [%] 76,1 83,2 86,2 87,5 88,1 88,6 88,7 88,7
RTF 0,032 0,034 0,056 0,131 0,318 0,591 0,753 0,839
0,07
WRR [%] 84,3 89,8 92,3 93,3 93,4 93,8 94 94
SRR [%] 78,6 82,9 86 87,2 87,6 88,1 88,5 88,6
RTF 0,029 0,032 0,047 0,098 0,231 0,464 0,652 0,795
0,08
WRR [%] 85,4 89,8 92 93 93,5 93,7 93,9 94,1
SRR [%] 79,7 82,6 85,6 86,3 87,2 87,7 87,9 88,3
RTF 0,028 0,029 0,040 0,078 0,178 0,401 0,597 0,688
0,09
WRR [%] 86 89,4 91,4 92,4 93,3 93,5 93,7 93,8
SRR [%] 79,2 82,1 84,4 85,9 87 87,3 87,9 87,9
RTF 0,028 0,029 0,036 0,065 0,141 0,322 0,526 0,668
Rys. 28 Dostrojenie konfiguracji dekodera dla modelu FBANK-DNN-HMM
85
86
87
88
89
90
91
92
93
94
95
0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Dostrojenie konfiguracji dekodera dla modeluFBANK-DNN-HMM
"acwt_0.040" "acwt_0.050" "acwt_0.060" "acwt_0.070"
"acwt_0.080" "acwt_0.090" "RTF_MAX"
Ewaluacja oraz analiza porównawcza wyników
- 78 -
Dla modelu FBANK-DNN-HMM najbardziej optymalna para parametrów to
beam=13 i acwt=0.060. Poniżej przedstawiono osiągi dekoderów dla każdego
analizowanego modelu akustycznego z ich optymalną konfiguracją. Model FBANK-
DNN-HMM wyraźnie dominuje zarówno pod kątem skuteczności systemu jak i
szybkości działania.
model beam 5 7 9 11 13 15 17 19
MFCC-GMM-HMM
WRR [%] 78,5 85,7 89,2 91,2 91,7 91,9 92,3 92,3
SRR [%] 74,5 78 81,2 83,1 83,9 84,4 85 85
RTF 0,070 0,079 0,107 0,192 0,334 0,556 0,824 1,177
BNF-GMM-HMM
WRR [%] 85,3 88,1 90,6 91,7 92 92,2 92,3 92,4
SRR [%] 79,4 82,2 84,2 85,8 86,3 86,2 86,5 86,7
RTF 0,068 0,073 0,097 0,191 0,325 0,508 0,843 1,092
FBANK-DNN-HMM
WRR [%] 80,2 88,5 92,4 93,4 93,8 94,1 94,1 94,1
SRR [%] 76,1 83,2 86,2 87,5 88,1 88,6 88,7 88,7
RTF 0,032 0,034 0,056 0,131 0,318 0,591 0,753 0,839
Rys. 29 Porównanie osiągów dekoderów dostrojonych do analizowanych modeli
akustycznych
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Porównanie osiągów dekoderów dostrojonych do analizowanych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM"
"FBANK-DNN-HMM" "RTF_MAX"
Ewaluacja oraz analiza porównawcza wyników
- 79 -
4.4 Porównanie skuteczności modeli akustycznych
Dekodery z analizowanymi modelami akustycznymi i dostrojoną konfiguracją
uruchomiono na korpusach ewaluacyjnych. Wywołanie procedury ewaluacyjnej odbywa
się poprzez uruchomienie skryptu
./steps/decode.sh --nj <NJOBS> --beam <BEAM> --acwt <ACWT>
<GRAPH_DIR> <TEST_DIR> <DECODE_DIR>
gdzie:
NJOBS - ilość wątków, na które zostanie rozdzielony process
dekodowania,
<BEAM> - szerokość wiązki dekodera,
<ACWT> - skala akustyczna,
<GRAPH_DIR> - ścieżka do katalogu ze skompilowanym grafem
dekodującym,
<TEST_DIR> - ścieżka do katalogu z korpusem ewaluacyjnym,
<DECODE_DIR> - ścieżka do wyjściowego katalogu, w którym zostanie
umieszczony wynik ewaluacji.
W poniższych tabelach przedstawiono rezultaty ewaluacji w postaci trzech
wykorzystywanych metryk (WRR[%], SRR[%] oraz RTF) dla każdego korpusu
testowego oraz wyniki uśrednione. Oba modele wytrenowane z wykorzystaniem metod
głębokich sieci neuronowych okazały się lepsze zarówno pod względem skuteczności jak
i szybkości działania. Model FBANK-DNN-HMM okazał się być modelem o najwyższej
skuteczności (+4.2%WRR względem MFCC-GMM-HMM i +1.3%WRR względem
BNF-GMM-HMM) natomiast dekoder wykorzystujący model BNF-GMM-HMM działał
najszybciej (-0.081RTF względem MFCC-GMM-HMM i -0.073 względem FBANK-
DNN-HMM). Warto zauważyć, że model FBANK-DNN-HMM osiągnął najlepsze
rezultaty na każdym badanym korpusie testowym. Potwierdzono w ten sposób, że
systemy ASR oparte o metody głębokiego uczenia maszynowego dają lepsze rezultaty
niż systemy oparte o modele GMM-HMM.
Ewaluacja oraz analiza porównawcza wyników
- 80 -
Tabela 6 - Wyniki ewaluacji analizowanych modeli na korpusach testowych
model aghdigits aghstreets globalphone
WRR [%] SRR [%] RTF WRR [%] SRR [%] RTF WRR [%] SRR [%] RTF
MFCC-GMM-HMM 92.8 81.2 0.271 81.0 82.9 0.376 91.5 70.7 0.583
BNF-GMM-HMM 94.9 86.6 0.254 90.0 88.9 0.402 88.9 66.4 0.332
FBANK-DNN-HMM 92.9 81.4 0.244 92.1 91.9 0.450 92.7 73.6 0.511
Tabela 7 - Wyniki ewaluacji ogółem
model ogółem
WRR [%] SRR [%] RTF
MFCC-GMM-HMM 88.4 78.3 0.410
BNF-GMM-HMM 91.3 80.6 0.329
FBANK-DNN-HMM 92.6 82.3 0.402
4.5 Porównanie odporności modeli akustycznych na zakłócenia
W poniższym podrozdziale zaprezentowano wyniki ewaluacji na zakłóconych
wcześniej korpusach ewaluacyjnych. W pierwszej kolejności zdekodowane zostały
korpusy zaszumione różnymi szumami z różnymi poziomami SNR. Druga seria
dekodowań dotyczyła korpusów z dodanym pogłosem.
4.5.1 Odporność na zaszumienie
Poniższe wykresy zawierają rezultaty testów wykonanych na korpusach
zaszumionych szumem samochodowym, ulicznym oraz barowym. Wyniki podzielono na
trzy serie. W każdej z nich analizowano wszystkie modele akustyczne na pojedynczym
korpusie ewaluacyjnym (zaszumionym wszystkimi rodzajami szumów). Wykresy
obrazują różnice w osiągach modeli akustycznych. Szczegółowe rezultaty ewaluacji w
postaci tabel zostały przeniesione do załącznika w celu zwiększenia czytelności i
przejrzystości głównego tekstu.
Ewaluacja oraz analiza porównawcza wyników
- 81 -
AGHdigits
Rys. 30 Wpływ zaszumienia korpusu AGHdigits szumem samochodowym
Rys. 31 Wpływ zaszumienia korpusu AGHdigits szumem samochodowym
0.000
0.200
0.400
0.600
0.800
1.000
1.200
1.400
20253035404550556065707580859095
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
SNR [dB]
Wpływ zaszumienia korpusu AGHdigitsszumem samochodowym na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
0
10
20
30
40
50
60
70
80
90
100
0.000 0.100 0.200 0.300 0.400 0.500 0.600Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ zaszumienia korpusu AGHdigitsszumem samochodowym na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 82 -
Rys. 32 Wpływ zaszumienia korpusu AGHdigits szumem ulicznym
Rys. 33 Wpływ zaszumienia korpusu AGHdigits szumem ulicznym
0.000
0.200
0.400
0.600
0.800
1.000
1.200
1.400
5101520253035404550556065707580859095
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
SNR [dB]
Wpływ zaszumienia korpusu AGHdigitsszumem ulicznym na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
0
10
20
30
40
50
60
70
80
90
100
0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ zaszumienia korpusu AGHdigitsszumem ulicznym na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 83 -
Rys. 34 Wpływ zaszumienia korpusu AGHdigits szumem barowym
Rys. 35 Wpływ zaszumienia korpusu AGHdigits szumem barowym
0.000
0.200
0.400
0.600
0.800
1.000
1.200
1.400
5101520253035404550556065707580859095
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
SNR [dB]
Wpływ zaszumienia korpusu AGHdigitsszumem barowym na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
0
10
20
30
40
50
60
70
80
90
0.000 0.200 0.400 0.600 0.800 1.000 1.200 1.400Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ zaszumienia korpusu AGHdigitsszumem barowym na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 84 -
Pierwsza seria testów, przeprowadzona na korpusie AGHdigits, nie wskazała
jednoznacznie jednego dominującego modelu. Różnice w osiągach poszczególnych
modeli akustycznych zależą przede wszystkim od rodzaju szumu. Szybkość spadku
skuteczności spowodowanego coraz mniejszym odstępem sygnału od szumu (SNR) jest
dla wszystkich przypadków podobny. Fluktuacje wartości RTF widoczne na wykresie z
szumem barowym spowodowane są zmiennym obciążeniem maszyny, na której
wykonywane były obliczenia. Efektywność modeli akustycznych jest we wszystkich
przypadkach zbliżona, aczkolwiek modelem najlepszym dla danego szumu jest zawsze
jeden z dwóch modeli opartych o sieci neuronowe (pod kątem skuteczności), a
najszybszym jest model MFCC-GMM-HMM. Szumem, który okazał się być najbardziej
wymagającym jest szum barowy. Jest to logiczne z tego względu, że szum ten wprowadza
duże zakłócenia we wszystkich analizowanych pasmach częstotliwości podczas gdy
szum samochodowy zniekształca głównie niskie częstotliwości.
AGHstreets
Rys. 36 Wpływ zaszumienia korpusu AGHstreets szumem samochodowym
0.000
0.200
0.400
0.600
0.800
1.000
1.200
1.400
05
101520253035404550556065707580859095
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
SNR [dB]
Wpływ zaszumienia korpusu AGHstreetsszumem samochodowym na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 85 -
Rys. 37 Wpływ zaszumienia korpusu AGHstreets szumem samochodowym
Rys. 38 Wpływ zaszumienia korpusu AGHstreets szumem ulicznym
-10
0
10
20
30
40
50
60
70
80
90
0.400 0.500 0.600 0.700 0.800 0.900 1.000 1.100Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ zaszumienia korpusu AGHstreetsszumem samochodowym na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
0.000
0.200
0.400
0.600
0.800
1.000
1.200
1.400
05
101520253035404550556065707580859095
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
SNR [dB]
Wpływ zaszumienia korpusu AGHstreetsszumem ulicznym na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 86 -
Rys. 39 Wpływ zaszumienia korpusu AGHstreets szumem ulicznym
Rys. 40 Wpływ zaszumienia korpusu AGHstreets szumem barowym
-10
0
10
20
30
40
50
60
70
80
90
0.400 0.500 0.600 0.700 0.800 0.900 1.000 1.100Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ zaszumienia korpusu AGHstreetsszumem ulicznym na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
0.000
0.200
0.400
0.600
0.800
1.000
1.200
1.400
05
101520253035404550556065707580859095
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
SNR [dB]
Wpływ zaszumienia korpusu AGHstreetsszumem barowym na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 87 -
Rys. 41 Wpływ zaszumienia korpusu AGHstreets szumem barowym
Zaszumiony korpus AGHstreet okazał się być najtrudniejszym środowiskiem dla
analizowanych modeli akustycznych. Może to wynikać z tego faktu, iż jest on
stosunkowo niższej jakości niż dwa pozostałe korpusy (kanał telefoniczny + wiele
oryginalnych zakłóceń). Różnice w sprawności poszczególnych systemów są tutaj
znacznie wyraźniejsze. Model MFCC-GMM-HMM w każdym z przypadków był
modelem o najwyższym współczynniku RTF i najsłabszej skuteczności, czyli był
modelem sprawującym się najgorzej. W przypadku szumu samochodowego ten model
nie osiągnął poziomu WRR wyższego niż 20%. Model FBANK-DNN-HMM poradził
sobie w przypadkach szumu ulicznego i barowego najlepiej. Dla szumu samochodowego
spadek skuteczności wraz ze spadkiem SNR był najmniejszy dla modelu BNF-GMM-
HMM.
-10
0
10
20
30
40
50
60
70
80
90
0.400 0.500 0.600 0.700 0.800 0.900 1.000 1.100Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ zaszumienia korpusu AGHstreetsszumem barowym na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 88 -
GlobalPhone
Rys. 42 Wpływ zaszumienia korpusu GlobalPhone szumem samochodowym
Rys. 43 Wpływ zaszumienia korpusu GlobalPhone szumem samochodowym
0.000
0.500
1.000
1.500
2.000
2.500
101520253035404550556065707580859095
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
SNR [dB]
Wpływ zaszumienia korpusu GlobalPhoneszumem samochodowym na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
0
10
20
30
40
50
60
70
80
90
100
0.400 0.900 1.400 1.900 2.400Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ zaszumienia korpusu GlobalPhoneszumem samochodowym na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 89 -
Rys. 44 Wpływ zaszumienia korpusu GlobalPhone szumem ulicznym
Rys. 45 Wpływ zaszumienia korpusu GlobalPhone szumem ulicznym
0.000
0.500
1.000
1.500
2.000
2.500
101520253035404550556065707580859095
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
SNR [dB]
Wpływ zaszumienia korpusu GlobalPhoneszumem ulicznym na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
0
10
20
30
40
50
60
70
80
90
100
0.400 0.600 0.800 1.000 1.200 1.400 1.600 1.800 2.000 2.200 2.400Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ zaszumienia korpusu GlobalPhoneszumem ulicznym na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 90 -
Rys. 46 Wpływ zaszumienia korpusu GlobalPhone szumem barowym
Rys. 47 Wpływ zaszumienia korpusu GlobalPhone szumem barowym
0.000
0.500
1.000
1.500
2.000
2.500
101520253035404550556065707580859095
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
SNR [dB]
Wpływ zaszumienia korpusu GlobalPhoneszumem barowym na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
0
10
20
30
40
50
60
70
80
90
100
0.400 0.600 0.800 1.000 1.200 1.400 1.600 1.800 2.000 2.200 2.400Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ zaszumienia korpusu GlobalPhoneszumem barowym na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 91 -
Dla korpusu GlobalPhone (z najbardziej złożonym słownictwem) modele oparte o
sieci neuronowe okazały się w każdym przypadku bardziej efektywne. Model FBANK-
DNN-HMM cechował się najwyższą skutecznością i jej najwolniejszym spadkiem wraz
ze spadkiem SNR we wszystkich analizowanych przypadkach. Drugi w kolejności był
zawsze model BNF-GMM-HMM. W każdym przypadku charakterystyki skuteczności są
do siebie zbliżone.
Podsumowując wyniki zamieszczone w tym podrozdziale można stwierdzić, że
głębokie sieci neuronowe zastosowane do wytrenowania modelu FBANK-DNN-HMM i
BNF-GMM-HMM (poprzez wyodrębnienie współczynników BNF) wzmocniły
odporność systemów ASR opartych o te modele. W większości analizowanych
przypadków najlepszym modelem okazał się model FBANK-DNN-HMM.
4.5.2 Odporność na pogłos
Poniżej zamieszczono rezultaty ewaluacji (tabele w załączniku) przeprowadzonych na
korpusach z dodanym pogłosem o różnym stopniu intensywności i początkowym
opóźnieniu. Podobnie jak wcześniej, wyniki składają się z trzech serii zależnych od
analizowanego korpusu testowego.
AGHdigits
Rys. 48 Wpływ dodanego pogłosu (20%) korpusu AGHdigits
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
60
65
70
75
80
85
90
95
0 50 100 150 200 250 300 350 400 450 500
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Początkowe opóźnienie pogłosu [ms]
Wpływ dodania pogłosu o intensywności 20% do korpusu AGHdigits na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 92 -
Rys. 49 Wpływ dodanego pogłosu (20%) korpusu AGHdigits
Rys. 50 Wpływ dodanego pogłosu (60%) korpusu AGHdigits
50
55
60
65
70
75
80
85
90
95
100
0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 0.36 0.38 0.4
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ dodania pogłosu o intensywności 20% do korpusu AGHdigits na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
0.2
0.25
0.3
0.35
0.4
0.45
60
65
70
75
80
85
90
95
0 50 100 150 200 250 300 350 400 450 500
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Początkowe opóźnienie pogłosu [ms]
Wpływ dodania pogłosu o intensywności 60% do korpusu AGHdigits na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM "BNF-GMM-HMM" FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM "RTF-FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 93 -
Rys. 51 Wpływ dodanego pogłosu (60%) korpusu AGHdigits
Rys. 52 Wpływ dodanego pogłosu (100%) korpusu AGHdigits
50
55
60
65
70
75
80
85
90
95
100
0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 0.36 0.38 0.4
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ dodania pogłosu o intensywności 60% do korpusu AGHdigits na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
0.2
0.25
0.3
0.35
0.4
0.45
60
65
70
75
80
85
90
95
0 50 100 150 200 250 300 350 400 450 500
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Początkowe opóźnienie pogłosu [ms]
Wpływ dodania pogłosu o intensywności 100% do korpusu AGHdigits na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM RTF-FBANK-DNN-HMM
Ewaluacja oraz analiza porównawcza wyników
- 94 -
Rys. 53 Wpływ dodanego pogłosu (100%) korpusu AGHdigits
Zgodnie z oczekiwaniami, skuteczność wszystkich modeli akustycznych spada wraz
ze wzrostem intensywności pogłosu i zjawisko to pojawia się również w późniejszych
seriach ewaluacji. W tej serii modelem o najwyższej efektywności jest zdecydowanie
model BNF-DNN-HMM. W porównaniu do pozostałych modeli spadek jego osiągów
jest niski nawet dla dużej intensywności pogłosu. Wyniki te wskazują na fakt, że
ekstrakcja współczynników BNF wpływa pozytywnie na odporność modelu
akustycznego na ten rodzaj zakłócenia. Dla najwyższej intensywności szumu model
FBANK-DNN-HMM jest najsłabszy natomiast w pozostałych przypadkach efektywność
tego modeli i modelu MFCC-GMM-HMM jest porównywalnie słaba. Dla korpusu
AGHdigits można w niektórych przypadkach zauważyć niewielki wzrost skuteczności
modeli dla początkowego późnienia 450 i 500ms w porównaniu do krótszych opóźnień.
Wynika on z tego, że takie opóźnienie pogłosu nie wpływa na pierwszą z wypowiadanych
liczb i jest ona z reguły rozpoznawana poprawnie.
50
55
60
65
70
75
80
85
90
95
100
0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 0.36 0.38 0.4
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ dodania pogłosu o intensywności 100% do korpusu AGHdigits na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 95 -
AGHstreets
Rys. 54 Wpływ dodanego pogłosu (20%) korpusu AGHstreets
Rys. 55 Wpływ dodanego pogłosu (20%) korpusu AGHstreets
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
101520253035404550556065707580859095
0 50 100 150 200 250 300 350 400 450 500
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Początkowe opóźnienie pogłosu [ms]
Wpływ dodania pogłosu o intensywności 20% do korpusu AGHstreets na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM RTF-FBANK-DNN-HMM
20
30
40
50
60
70
80
90
0.4 0.5 0.6 0.7 0.8 0.9 1
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ dodania pogłosu o intensywności 20% do korpusu AGHstreets na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 96 -
Rys. 56 Wpływ dodanego pogłosu (60%) korpusu AGHstreets
Rys. 57 Wpływ dodanego pogłosu (60%) korpusu AGHstreets
0.3
0.4
0.5
0.6
0.7
0.8
0.9
101520253035404550556065707580859095
0 50 100 150 200 250 300 350 400 450 500
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Początkowe opóźnienie pogłosu [ms]
Wpływ dodania pogłosu o intensywności 60% do korpusu AGHstreets na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM RTF-FBANK-DNN-HMM
20
30
40
50
60
70
80
90
0.4 0.5 0.6 0.7 0.8 0.9 1
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ dodania pogłosu o intensywności 60% do korpusu AGHstreets na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 97 -
Rys. 58 Wpływ dodanego pogłosu (100%) korpusu AGHstreets
Rys. 59 Wpływ dodanego pogłosu (100%) korpusu AGHstreets
0.4
0.5
0.6
0.7
0.8
0.9
1015202530354045505560657075
0 50 100 150 200 250 300 350 400 450 500
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Początkowe opóźnienie pogłosu [ms]
Wpływ dodania pogłosu o intensywności 100% do korpusu AGHstreets na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM RTF-FBANK-DNN-HMM
20
30
40
50
60
70
80
90
0.4 0.5 0.6 0.7 0.8 0.9 1
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ dodania pogłosu o intensywności 100% do korpusu AGHstreets na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Ewaluacja oraz analiza porównawcza wyników
- 98 -
Ciekawym zjawiskiem, zaobserwowanym podczas ewaluacji na korpusie AGHstreets,
jest ogólny wzrost skuteczności od pewnej wartości początkowego opóźnienia pogłosu.
Jest to o wiele silniejsze zjawisko niż w przypadku korpusu AGHdigits. Podobnie jak w
poprzedniej serii ewaluacji, wynika ono z tego, że dodawany pogłos przestaje w końcu
wpływać bezpośrednio na oryginalną wypowiedź (w przypadku tego korpusu składa się
ona zazwyczaj tylko z jednego słowa) przez co jest ona pozbawiona zakłóceń. Zjawisko
to występuje dla każdego analizowanego modelu akustycznego i jest najbardziej
widoczne dla największej intensywności pogłosu (wraz ze wzrostem skuteczności maleje
również czas potrzebny na zdekodowanie wypowiedzi). Podobnie jak wcześniej, model
BNF-GMM-HMM cechuje się najwyższą skutecznością, która wyraźnie odstaje od
pozostałych modeli, a pozostałe modele pracują na podobnym poziomie. Co ciekawe we
wszystkich analizowanych przypadkach model FBANK-DNN-HMM był modelem
najszybszym.
GlobalPhone
Rys. 60 Wpływ dodanego pogłosu (20%) korpusu GlobalPhone
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
50
55
60
65
70
75
80
85
90
95
0 50 100 150 200 250 300 350 400 450 500
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Początkowe opóźnienie pogłosu [ms]
Wpływ dodania pogłosu o intensywności 20% do korpusu GlobalPhone na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM RTF-FBANK-DNN-HMM
Ewaluacja oraz analiza porównawcza wyników
- 99 -
Rys. 61 Wpływ dodanego pogłosu (20%) korpusu GlobalPhone
Rys. 62 Wpływ dodanego pogłosu (60%) korpusu AGHstreets
45
50
55
60
65
70
75
80
85
90
95
0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ dodania pogłosu o intensywności 20% do korpusu GlobalPhone na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
50
55
60
65
70
75
80
85
90
95
0 50 100 150 200 250 300 350 400 450 500
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Początkowe opóźnienie pogłosu [ms]
Wpływ dodania pogłosu o intensywności 60% do korpusu GlobalPhone na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM RTF-FBANK-DNN-HMM
Ewaluacja oraz analiza porównawcza wyników
- 100 -
Rys. 63 Wpływ dodanego pogłosu (60%) korpusu AGHstreets
Rys. 64 Wpływ dodanego pogłosu (100%) korpusu AGHstreets
45
50
55
60
65
70
75
80
85
90
95
0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Wo
rd R
eco
gnit
ion
Rat
e [
%]
Real-time Factor
Wpływ dodania pogłosu o intensywności 60% do korpusu GlobalPhone na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
50
55
60
65
70
75
80
85
90
95
0 50 100 150 200 250 300 350 400 450 500
Rea
l-ti
me
Fact
or
Wo
rd R
eco
gnit
on
Rat
e [%
]
Początkowe opóźnienie pogłosu [ms]
Wpływ dodania pogłosu o intensywności 100% do korpusu GlobalPhone na skuteczność
różnych modeli akustycznych
MFCC-GMM-HMM BNF-GMM-HMM FBANK-DNN-HMM
RTF-MFCC-GMM-HMM RTF-BNF-GMM-HMM RTF-FBANK-DNN-HMM
Ewaluacja oraz analiza porównawcza wyników
- 101 -
Rys. 65 Wpływ dodanego pogłosu (100%) korpusu AGHstreets
W przypadku korpusu GlobalPhone, opisywane wcześniej zjawisko wzrostu
skuteczność wraz ze zwiększaniem początkowego opóźnienia już nie występuje,
ponieważ nagrania te składają się z długich wypowiedzi i pogłos zawsze zakłóca
oryginalną wypowiedź. W tym przypadku model FBANK-DNN-HMM osiąga najlepsze
rezultaty (podobnie jak we wszystkich poprzednich ewaluacjach na korpusie
GlobalPhone). Może to wynikać z faktu, że korpus GlobalPhone jest najbardziej
zróżnicowany fonetycznie przez co wymaga bardzo dokładnego modelu akustycznego.
Szybkość dekodowania utrzymuje się na podobnym poziomie bez względu na wartość
opóźnienia i zdecydowanie maleje wraz ze wzrostem intensywności pogłosu.
Podsumowując eksperymenty z pogłosem dodawanym do korpusów ewaluacyjnych
można jednoznacznie stwierdzić, że współczynniki bottleneck wyekstrahowane z
przewężenia głębokiej sieci neuronowej pozwalają w znacznym stopniu zredukować
negatywny wpływ tego rodzaju zakłócenia. Po raz kolejny stwierdzono wyższość modeli
opartych o głębokie sieci neuronowe.
45
50
55
60
65
70
75
80
85
90
95
0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Wo
rd R
eco
gnit
ion
Rat
e [%
]
Real-time Factor
Wpływ dodania pogłosu o intensywności 100% do korpusu GlobalPhone na skuteczność
różnych modeli akustycznych
"MFCC-GMM-HMM" "BNF-GMM-HMM" "FBANK-DNN-HMM"
Podsumowanie
- 102 -
Podsumowanie
Badania przeprowadzone w niniejszej pracy dyplomowej ukazały pozytywny wpływ
zastosowania metod głębokiego uczenia maszynowego do modelowania akustycznego na
ogólną efektywność systemów automatycznego rozpoznawania mowy. Wpływ ten,
stwierdzony przez innych naukowców dla wielu różnych języków, zaobserwowano
również dla języka polskiego. Poza tym faktem, stwierdzono również zwiększenie
odporności tego typu modelowania na różnego rodzaju zakłócenia mowy (zaszumienie
oraz dodanie pogłosu), szczególnie wyraźne w przypadku ekstrakcji współczynników
BNF i pogłosu.
Pytanie o wybór właściwego sposobu modelowania akustycznego mowy jest nadal
pytaniem, na które nie da się postawić jednoznacznej odpowiedzi. Omówione
eksperymenty pokazały, że problem ten zależy od wielu czynników takich jak środowisko
akustyczne, w którym pracuje system rozpoznawania mowy, czy też możliwość
zaistnienia określonego rodzaju zakłóceń w przetwarzanych nagraniach. Niemal zawsze
jest to problem, w którym należy znaleźć ‘złoty środek’ poprzez dużą liczbę dobrze
przemyślanych analiz.
Sprawą otwartą pozostaje również wpływ poszczególnych elementów topologii
głębokich sieci neuronowych na skuteczność i odporność modeli akustycznych. W
niniejszej pracy przyjęto ogólnie uznane i sprawdzone parametry topologii (takie jak ilość
ukrytych warstw sieci czy też ilość neuronów w warstwach ukrytych i w jej
przewężeniu), lecz warto mieć na uwadze, że dla każdego zestawu danych można znaleźć
inne optymalne rozwiązanie. Badanie te mogą stanowić dobry punkt startowych do
dalszych prac związanych z tym tematem.
W pracy wykorzystano tylko niewielki fragment wiedzy pochodzącej z aktualnych
badań nad systemami automatycznego rozpoznawania mowy. Nie poruszono tutaj równie
interesujących tematów takich jak inne metody modelowania akustycznego
wykorzystujące konwolucyjne i rekurencyjne sieci neuronowe [32], czy też inne sposoby
uodparniania modeli akustycznych na szum np. poprzez trening MCT (ang. Multi-
Condition Training). Pozytywne rezultaty przeprowadzonych w pracy eksperymentów
zachęcają do dalszego zgłębiania wiedzy w tej dziedziny nauki.
Bibliografia
- 103 -
Bibliografia
[1] Automatically Tuned Linear Algebra Software (ATLAS), http://math-
atlas.sourceforge.net/
[2] Chen F., Jokinen K., Speech Technology: Theory and Applications, Springer, 2010
[3] Dahl G., Yu D., Deng L., Accero A., Context-Dependent Pre-Trained Deep
Neural Networks for Large-Vocabulary Speech Recognition, IEEE Transactions on
Audio, Speech and Language Processing, Volume 20, No. 1, 2012
[4] Davis K., Biddulph R., Balashek S., Automatic Recognition of Spoken Digits, The
Journal of the Acoustical Society of America, Volume 24, Number 6, 1952
[5] FaNT Toolkit, http://dnt.kr.hs-niederrhein.de/
[6] Gaida C., Lange P., Petrick R., Proba P., Malatawy A., Suendermann-Oeft D.,
Comparing Open-Source Speech Recognition Toolkits
[7] Grezl F., Fousek P., Optimizing bottle-neck features for LVCSR, IEEE
International Conference on Acoustics, Speech and Signal Processing, Las Vegas,
Nevada, 2008
[8] Hermansky H., Ellis D., Sharma S., Tandem Connectionist Feature Extraction for
Conventional HMM Systems, International Conference on Acoustics, Speech and
Signal Processing, Istanbul, 2000
[9] Hinton G., A Practical Guide to Training Restricted Boltzmann Machines, Lecture
Notes in Computer Science, Volume 7700, 2012
[10] Hinton G., Deng L., Yu D., Dahl G., Mohammed A., Jaitly N., et al., Deep Neural
Networks for Acoustic Modeling in Speech Recognition, Signal Processing
Magazine, 2012
[11] Jelinek F., Bahl L., Mercer R., Design of a Linguistic Statistical Decoder for the
Recognition of Continuous Speech, Transactions on Information Theory IEEE,
Volume 21 Issue 3, 1975
[12] Jurafsky D., Martin J., Speech and Language Processing: An Introduction to
Natural Language Processing, Computational Linguistics and Speech
Recognition, Pearson Prentice Hall, 2009
[13] Kaldi Toolkit, http://kaldi.sourceforge.net/
[14] Mohri M., Pereira F., Riley M., Weighted Finite-State Transducers in Speech
Recognition, Computer Speech and Language, Volume 16, Issue 1, 2002
Bibliografia
- 104 -
[15] Morgan N., Bourlard H., Continuous Speech Recognition using Multilayer
Perceptrons with Hidden Markov Models, International Conference on Acoustics,
Speech and Signal Processing, Albuquerque, NM, 1990
[16] OpenFST Toolkit, http://www.openfst.org/twiki/bin/view/FST/WebHome/
[17] Povey D., Ghoshal A., Boulianne G., Burget L., Glembek O., Goel N., et al, The
Kaldi Speech Recognition Toolkit
[18] Rabiner L, Juang B., Fundamentals of Speech Recognition, Prentice-Hall
International, USA. 1993
[19] Rabiner L., Juang B., Automatic Speech Recognition - A Brief History of the
Technology Development, Georgia Institute of Technology, Atlanta
[20] Rath S., Povey D., Vesely K., Cernocky J., Improved Feature Processing for Deep
Neural Networks, INTERSPEECH, 2013
[21] Rumelhart D., Hinton G., Williams R., Learning representations by back-
propagating errors, Nature, Volume 323, 1986
[22] Schultz T., GlobalPhone: A Multilingual Speech and Text Database Developed at
Karlsruhe University, Proceedings of the International Conference of Spoken
Language Processing, 2002
[23] SRILM Toolkit, http://www.speech.sri.com/projects/srilm/
[24] Środowisko CUDA, https://developer.nvidia.com/cuda-zone/
[25] Trentin E., Gori M., A Survey of Hybrid ANN/HMM models for automatic speech
recognition, Neurocomputing, Volume 37, Issues-14, 2001
[26] Wang Y., Acero A., Chelba C., Is Word Error Rate a Good Indicator for Spoken
Language Understanding Accuracy, IEEE Workshop on Automatic Speech
Recognition and Understanding, US Virgin Islands, 2003
[27] Westphal M., The Use of Cepstral Means in Conversational Speech Recognition,
EUROSPEECH, 1997
[28] Wilpon J., Rabiner L., Lee C., Goldman E., Automatic Recognition of Keywords in
Unconstrained Speech Using Hidden Markov Models, IEEE Transactions on
Acoustic Speech and Signal Processing, Volume 38, No. 11, 1990
[29] Young S., Evermann G., Gales M., Hain T., Kershaw D., Liu X., et al., The HTK
Book, Cambridge University Engineering Department, Cambridge, 2009
[30] Young S., Large Vocabulary Continuous Speech Recognition: a Review, Signal
Processing Magazine, IEEE Volume 13, Issue 5, 1996
[31] Young S., Odell J., Woodland P., Tree-based State Tying for High Accuracy
Bibliografia
- 105 -
Acoustic Modelling, Proceedings of the Workshop on Human Language
Technology, 1994
[32] Yu D., Deng L., Automatic Speech Recognition: A Deep Learning Approach,
Springer, 2015
[33] Zbiór darmowych nagrań FreeSound, https://freesound.org/
[34] Ziółko B., Jadczyk T., Skurzok D., Żelasko P., Gałka J., Pędzimąż T., et al.,
SARMATA 2.0 Automatic Polish Language Speech Recognition System,
INTERSPEECH, 2015 (w druku)
[35] Ziółko B., Ziółko M., Przetwarzanie Mowy, Wydawnictwa AGH, Kraków, 2011
Spis ilustracji
- 106 -
Spis ilustracji
RYS. 1 PRZYKŁAD PARAMETRYZACJI MFCC ...................................................................... 12
RYS. 2 PRZEBIEG PARAMETRYZACJI MFCC [30] ................................................................ 13
RYS. 3 TOPOLOGIA MODELU BAKISA Z TRZEMA STANAMI EMITUJĄCYMI [30] ..... 14
RYS. 4 PRZYKŁADOWA ARCHITEKTURA GŁĘBOKIEJ SIECI NEURONOWEJ Z
TRZEMA UKRYTYMI WARSTWAMI [32] ....................................................................................... 17
RYS. 5 ARCHITEKTURA HYBRYDY DNN-HMM [32] ............................................................. 21
RYS. 6 PRZYKŁADOWA ARCHITEKTURA GŁĘBOKIEJ SIECI NEURONOWEJ Z
WARSTWĄ TYPU BOTTLENECK ZLOKALIZOWANĄ PRZED WARSTWĄ WYJŚCIOWĄ
[32] 22
RYS. 7 NAGRANIE I JEGO SPEKTROGRAM Z BAZY GLOBALPHONE ............................ 28
RYS. 8 NAGRANIE I JEGO SPEKTROGRAM Z BAZY AGHVOICELAB ............................. 29
RYS. 9 NAGRANIE I JEGO SPEKTROGRAM SZUMU Z WNĘTRZA JADĄCEGO
SAMOCHODU ........................................................................................................................................ 34
RYS. 10 NAGRANIE I JEGO SPEKTROGRAM SZUMU Z RUCHLIWEGO
SKRZYŻOWANIA .................................................................................................................................. 36
RYS. 11 NAGRANIE I JEGO SPEKTROGRAM SZUMU Z ZATŁOCZONEGO BARU ......... 37
RYS. 12 NAGRANIE I SPEKTROGRAMY NAGRANIA Z KORPUSU GLOBALPHONE
ZASZUMIONEGO RÓŻNYMI POZIOMAMI SNR SZUMEM POCHODZĄCYM Z
RUCHLIWEGO SKRZYŻOWANIA .................................................................................................... 39
RYS. 13 SPEKTROGRAMY NAGRANIA Z KORPUSU GLOBALPHONE Z DODANYM
POGŁOSEM Z RÓŻNYM OPÓŹNIENIEM WSTĘPNYM ............................................................... 41
RYS. 14 GRAF KONTEKSTOWEGO DRZEWA DECYZYJNEGO DLA MODELI
MONOFONÓW ....................................................................................................................................... 49
RYS. 15 ŚREDNI LOGARYTM PRAWDOPODOBIEŃSTWA NA RAMKĘ DLA TRENINGU
MONOFONÓW ....................................................................................................................................... 52
RYS. 16 PRZYROST FUNKCJI CELU DLA TRENINGU MONOFONÓW ............................... 52
RYS. 17 ŚREDNI LOGARYTM PRAWDOPODOBIEŃSTWA NA RAMKĘ DLA TRENINGU
TRIFONÓW (DRUGI PRZEBIEG TRENINGU) ................................................................................ 55
RYS. 18 PRZYROST FUNKCJI CELU DLA TRENINGU MONOFONÓW (DRUGIEGO
PRZEBIEGU) .......................................................................................................................................... 56
Spis ilustracji
- 107 -
RYS. 19 PORÓWNANIE EWOLUCJI TRENINGÓW MONOFONÓW I TRIFONÓW ........... 56
RYS. 20 ZMIANA ENTROPII KRZYŻOWEJ W KAŻDEJ ITERACJI TRENINGU DNN-BNF
62
RYS. 21 ZMIANA PARAMETRU FRAME-ACCURACY W KAŻDEJ ITERACJI TRENINGU
DNN-BNF 62
RYS. 22 ŚREDNI LOGARYTM PRAWDOPODOBIEŃSTWA NA RAMKĘ DLA TRENINGU
BNF-GMM ............................................................................................................................................... 64
RYS. 23 PRZYROST FUNKCJI CELU DLA TRENINGU BNF-GMM ....................................... 64
RYS. 24 ZMIANA FRAME-ACCURACY W KAŻDEJ ITERACJI TRENINGU FBANK-DNN-
HMM 69
RYS. 25 ZMIANA ENTROPII KRZYŻOWEJ W KAŻDEJ ITERACJI TRENINGU FBANK-
DNN-HMM ............................................................................................................................................... 69
RYS. 26 DOSTROJENIE KONFIGURACJI DEKODERA DLA MODELU MFCC-GMM-HMM
75
RYS. 27 DOSTROJENIE KONFIGURACJI DEKODERA DLA MODELU BNF-GMM-HMM 76
RYS. 28 DOSTROJENIE KONFIGURACJI DEKODERA DLA MODELU FBANK-DNN-HMM
77
RYS. 29 PORÓWNANIE OSIĄGÓW DEKODERÓW DOSTROJONYCH DO
ANALIZOWANYCH MODELI AKUSTYCZNYCH .......................................................................... 78
RYS. 30 WPŁYW ZASZUMIENIA KORPUSU AGHDIGITS SZUMEM SAMOCHODOWYM
81
RYS. 31 WPŁYW ZASZUMIENIA KORPUSU AGHDIGITS SZUMEM SAMOCHODOWYM
81
RYS. 32 WPŁYW ZASZUMIENIA KORPUSU AGHDIGITS SZUMEM ULICZNYM ............. 82
RYS. 33 WPŁYW ZASZUMIENIA KORPUSU AGHDIGITS SZUMEM ULICZNYM ............. 82
RYS. 34 WPŁYW ZASZUMIENIA KORPUSU AGHDIGITS SZUMEM BAROWYM ............. 83
RYS. 35 WPŁYW ZASZUMIENIA KORPUSU AGHDIGITS SZUMEM BAROWYM ............. 83
RYS. 36 WPŁYW ZASZUMIENIA KORPUSU AGHSTREETS SZUMEM
SAMOCHODOWYM .............................................................................................................................. 84
RYS. 37 WPŁYW ZASZUMIENIA KORPUSU AGHSTREETS SZUMEM
SAMOCHODOWYM .............................................................................................................................. 85
RYS. 38 WPŁYW ZASZUMIENIA KORPUSU AGHSTREETS SZUMEM ULICZNYM ......... 85
RYS. 39 WPŁYW ZASZUMIENIA KORPUSU AGHSTREETS SZUMEM ULICZNYM ......... 86
Spis ilustracji
- 108 -
RYS. 40 WPŁYW ZASZUMIENIA KORPUSU AGHSTREETS SZUMEM BAROWYM ......... 86
RYS. 41 WPŁYW ZASZUMIENIA KORPUSU AGHSTREETS SZUMEM BAROWYM ......... 87
RYS. 42 WPŁYW ZASZUMIENIA KORPUSU GLOBALPHONE SZUMEM
SAMOCHODOWYM .............................................................................................................................. 88
RYS. 43 WPŁYW ZASZUMIENIA KORPUSU GLOBALPHONE SZUMEM
SAMOCHODOWYM .............................................................................................................................. 88
RYS. 44 WPŁYW ZASZUMIENIA KORPUSU GLOBALPHONE SZUMEM ULICZNYM .... 89
RYS. 45 WPŁYW ZASZUMIENIA KORPUSU GLOBALPHONE SZUMEM ULICZNYM .... 89
RYS. 46 WPŁYW ZASZUMIENIA KORPUSU GLOBALPHONE SZUMEM BAROWYM .... 90
RYS. 47 WPŁYW ZASZUMIENIA KORPUSU GLOBALPHONE SZUMEM BAROWYM .... 90
RYS. 48 WPŁYW DODANEGO POGŁOSU (20%) KORPUSU AGHDIGITS............................ 91
RYS. 49 WPŁYW DODANEGO POGŁOSU (20%) KORPUSU AGHDIGITS............................ 92
RYS. 50 WPŁYW DODANEGO POGŁOSU (60%) KORPUSU AGHDIGITS............................ 92
RYS. 51 WPŁYW DODANEGO POGŁOSU (60%) KORPUSU AGHDIGITS............................ 93
RYS. 52 WPŁYW DODANEGO POGŁOSU (100%) KORPUSU AGHDIGITS .......................... 93
RYS. 53 WPŁYW DODANEGO POGŁOSU (100%) KORPUSU AGHDIGITS .......................... 94
RYS. 54 WPŁYW DODANEGO POGŁOSU (20%) KORPUSU AGHSTREETS ........................ 95
RYS. 55 WPŁYW DODANEGO POGŁOSU (20%) KORPUSU AGHSTREETS ........................ 95
RYS. 56 WPŁYW DODANEGO POGŁOSU (60%) KORPUSU AGHSTREETS ........................ 96
RYS. 57 WPŁYW DODANEGO POGŁOSU (60%) KORPUSU AGHSTREETS ........................ 96
RYS. 58 WPŁYW DODANEGO POGŁOSU (100%) KORPUSU AGHSTREETS ...................... 97
RYS. 59 WPŁYW DODANEGO POGŁOSU (100%) KORPUSU AGHSTREETS ...................... 97
RYS. 60 WPŁYW DODANEGO POGŁOSU (20%) KORPUSU GLOBALPHONE ................... 98
RYS. 61 WPŁYW DODANEGO POGŁOSU (20%) KORPUSU GLOBALPHONE ................... 99
RYS. 62 WPŁYW DODANEGO POGŁOSU (60%) KORPUSU AGHSTREETS ........................ 99
RYS. 63 WPŁYW DODANEGO POGŁOSU (60%) KORPUSU AGHSTREETS ...................... 100
RYS. 64 WPŁYW DODANEGO POGŁOSU (100%) KORPUSU AGHSTREETS .................... 100
RYS. 65 WPŁYW DODANEGO POGŁOSU (100%) KORPUSU AGHSTREETS .................... 101
Załącznik - wyniki ewaluacji
- 109 -
Załącznik - wyniki ewaluacji
W niniejszym załączniku zamieszczono tabele ze szczegółowymi wynikami
ewaluacji, których umieszczenie w głównym tekście pracy zmniejszyłoby czytelność i
przejrzystość.
Model MFCC-GMM-HMM, korpus AGHdigits, odporność na zaszumienie
SNR [dB] szum samochodowy szum uliczny szum barowy
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0.1 21.9 1.5 0.409 8.2 0.7 0.558 9.9 0 0.599 0.5 23.2 2.2 0.412 9.2 0.7 0.561 10.4 0 0.617 1 24.9 3 0.410 11.2 0.7 0.578 12.8 0.4 0.623
1.5 27.5 4.1 0.415 13 0.7 0.587 14.9 0.7 0.637 2 29.5 5.2 0.415 15 0.7 0.581 16.9 1.9 0.668
2.5 32.8 6.7 0.409 16.7 1.5 0.578 19.1 3 0.671 3 34.9 8.2 0.402 19 3 0.589 22.3 3.7 0.678
3.5 38 10.8 0.404 20.8 3 0.595 23.9 4.8 0.684 4 41 11.5 0.396 23.5 3.3 0.615 25.2 5.9 0.706 5 46.7 18.2 0.397 29.1 6.3 0.616 31.4 8.2 0.713 6 51.5 24.5 0.396 32.3 7.8 0.627 36.6 11.2 0.721 7 57.5 31.6 0.386 38 12.6 0.634 41.5 16.4 0.716 8 62.5 37.5 0.376 45.5 19 0.613 45.7 20.4 0.696 9 67.8 43.5 0.368 50.2 24.9 0.606 49.6 24.5 0.650
11 76.2 51.7 0.343 59.2 34.6 0.581 58.1 33.5 0.592 13 81.8 60.6 0.318 69.1 44.2 0.533 68.2 47.2 0.533 15 86.5 69.1 0.293 78.2 57.6 0.474 76 56.1 0.483 17 89.5 74.3 0.273 84 67.3 0.422 81.7 63.2 0.427 19 90.8 76.6 0.258 88.8 76.2 0.385 85.3 68 0.383
Model BNF-GMM-HMM, korpus AGHdigits, odporność na zaszumienie
SNR [dB] szum samochodowy szum uliczny szum barowy
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0.1 20.7 1.9 0.500 10.9 0.7 0.870 11.8 0.7 1.045 0.5 22.9 2.6 0.498 12.8 0.7 0.859 13.4 1.1 1.032 1 25.4 4.1 0.499 13.8 1.1 0.860 15.4 1.5 1.029
1.5 27.1 4.8 0.494 16 1.9 0.881 17.6 1.9 1.026 2 28.3 5.6 0.482 18.5 1.9 0.854 18.5 1.9 1.100
2.5 30.9 6.3 0.477 20.7 2.2 0.855 20.3 2.2 1.060 3 33.7 7.4 0.472 21.9 3 0.855 22.8 3.7 1.123
3.5 37.3 9.3 0.468 24.8 5.2 0.857 24.9 4.1 1.036 4 40 10.4 0.460 26.4 6.3 0.851 27 6.3 1.010 5 44.5 14.5 0.452 32.2 9.3 0.848 31.8 8.9 0.981 6 51.8 21.2 0.435 37.3 12.6 0.817 36.8 11.2 0.944 7 57.2 26.8 0.413 42.5 16 0.797 40.9 17.5 0.893 8 61.7 31.2 0.400 48.2 19.7 0.777 44.7 21.6 0.840 9 66.5 37.9 0.388 53.2 23.4 0.749 48.3 24.9 0.795
11 74.1 48.3 0.359 64.3 39.4 0.667 58 37.2 0.717 13 78.3 53.9 0.330 70 45.7 0.593 64.4 42.8 0.639 15 83 60.6 0.308 75.3 55 0.528 74 53.5 0.565 17 87 67.7 0.287 80.4 62.5 0.474 81.2 63.2 0.503 19 90.2 75.5 0.273 85.4 70.3 0.425 83.9 66.9 0.446
Załącznik - wyniki ewaluacji
- 110 -
Model FBANK-DNN-HMM, korpus AGHdigits, odporność na zaszumienie
SNR [dB] szum samochodowy szum uliczny szum barowy
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0.1 24.2 3 0.404 8.8 3 0.785 8.6 0 1.168 0.5 25.5 3.7 0.404 10.3 3.7 0.795 9.5 0 1.182 1 28 4.8 0.400 11.3 4.8 0.807 12 0.4 1.138
1.5 30.1 5.9 0.402 12.1 5.9 0.801 12.6 0.4 1.213 2 33.2 7.1 0.400 13.4 7.1 0.805 13.5 0.4 1.219
2.5 34.2 7.1 0.398 15 7.1 0.813 14.7 0.7 1.247 3 38 10 0.400 16.4 10 0.813 16.6 0.7 1.315
3.5 40.6 12.3 0.390 18.3 12.3 0.814 19.5 0.7 1.075 4 42.8 13 0.388 20.1 13 0.792 22.1 0.7 1.191 5 48.9 18.2 0.383 24.3 18.2 0.818 25.8 2.2 0.939 6 55.4 26.8 0.380 32.3 26.8 0.800 30.2 8.2 0.951 7 60.6 31.6 0.371 39.4 31.6 0.780 36.3 12.6 0.902 8 65.7 37.5 0.360 44.1 37.5 0.746 39.9 17.1 0.853 9 70.3 43.9 0.354 50.2 43.9 0.707 44.9 24.2 0.816
11 78.9 54.6 0.312 59 54.6 0.629 53.3 34.6 0.734 13 84.9 66.9 0.282 68.2 66.9 0.552 62.3 46.5 0.642 15 88.1 71.7 0.255 78.2 71.7 0.481 70.3 54.3 0.575 17 92.1 80.7 0.229 84.9 80.7 0.405 76.2 59.9 0.513 19 92.9 82.5 0.209 87.7 82.5 0.351 82.5 66.5 0.450
Model MFCC-GMM-HMM, korpus AGHstreets, odporność na zaszumienie
SNR [dB] szum samochodowy szum uliczny szum barowy
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0.1 0 0 0.561 0.2 0.2 0.793 -0.2 0 0.912 0.5 0 0 0.561 0 0.2 0.786 -0.2 0.2 0.935 1 0 0 0.565 0 0 0.802 -0.3 0.2 0.940
1.5 0 0 0.568 0.2 0.2 0.811 0 0.4 0.952 2 0 0 0.581 0.3 0.4 0.830 0.2 0.4 0.974
2.5 0 0 0.580 0.2 0.4 0.849 0.5 0.8 0.997 3 0 0.2 0.594 0.3 0.6 0.842 0.8 1 1.002
3.5 -0.2 0.2 0.597 0.5 0.6 0.857 1.3 1.5 1.009 4 -0.2 0.2 0.598 0.5 0.6 0.866 1.9 1.9 1.027 5 -0.2 0.4 0.600 0.5 1 0.896 2.7 3.1 1.044 6 -0.2 0.4 0.620 1.4 1.9 0.937 3.9 4.6 1.024 7 0.5 1 0.616 3.2 4.6 0.936 6.3 6.5 1.022 8 0.8 1.2 0.631 5.4 6.7 0.946 10.3 11.2 1.004 9 0.8 1.7 0.631 9.5 11.7 0.941 14.7 15.4 0.989
11 0.9 2.7 0.633 18 19.2 0.918 24.6 24.8 0.939 13 0 4.8 0.619 29.2 30.4 0.861 35.4 36 0.888 15 1.4 9.4 0.600 44.5 44.6 0.811 45.7 45.4 0.837 17 6.8 16.5 0.582 53.9 54 0.758 54.7 54.4 0.778 19 14.7 24.6 0.572 62.6 62.9 0.731 62.4 62.7 0.730
Załącznik - wyniki ewaluacji
- 111 -
Model BNF-GMM-HMM, korpus AGHstreets, odporność na zaszumienie
SNR [dB] szum samochodowy szum uliczny szum barowy
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0.1 0.5 0.4 0.484 0.2 0.2 0.568 0 0 0.601 0.5 0.5 0.4 0.494 0.2 0.2 0.570 0.2 0.2 0.605 1 0.6 0.6 0.509 0.2 0.2 0.589 0.3 0.2 0.610
1.5 0.9 0.8 0.532 0.3 0.2 0.602 0.3 0.2 0.628 2 1.7 1.5 0.537 0.3 0.4 0.616 0.3 0.2 0.642
2.5 2.4 1.9 0.546 0.5 0.4 0.636 0.3 0.2 0.672 3 3.6 3.7 0.568 0.5 0.8 0.650 0.3 0.2 0.695
3.5 5.7 5.2 0.579 0.8 1.2 0.654 0.5 0.4 0.722 4 6.8 6.2 0.595 0.9 1.5 0.688 0.5 0.4 0.756 5 10.3 9.4 0.627 1.4 1.7 0.723 2.1 1.9 0.800 6 15.6 15.4 0.649 2.1 2.3 0.760 4.3 4 0.858 7 23.4 22.1 0.662 5.2 6.7 0.814 7 6.7 0.890 8 29.2 28.1 0.655 9.8 10.8 0.828 11.8 12.1 0.888 9 36.7 35.4 0.642 14.8 16 0.848 18.2 17.3 0.896
11 48.7 48.1 0.629 27.6 29 0.850 31.3 32.7 0.871 13 59.2 57.7 0.595 43.1 42.5 0.807 47.7 47.1 0.835 15 65.2 64.2 0.563 61.9 59.6 0.756 58.6 57.3 0.782 17 70.1 69.8 0.532 71.7 69 0.685 67.9 66.9 0.717 19 73.5 74.6 0.515 78.7 76.7 0.640 72.8 71.9 0.674
Model FBANK-DNN-HMM, korpus AGHstreets, odporność na zaszumienie
SNR [dB] szum samochodowy szum uliczny szum barowy
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0.1 0 0 0.439 -0.3 0.4 0.668 -0.6 0.4 0.840 0.5 0 0 0.443 -0.3 0.4 0.677 -0.5 0.6 0.851 1 0 0 0.456 -0.3 0.4 0.691 0.2 1.2 0.865
1.5 0 0 0.464 -0.3 0.4 0.702 0.2 1.7 0.889 2 0.2 0.2 0.474 -0.3 0.4 0.713 0.5 1.9 0.887
2.5 0.2 0.6 0.487 0 0.4 0.728 1.6 3.1 0.893 3 0.2 1 0.502 0.3 0.8 0.746 2.8 4.8 0.908
3.5 0.8 1 0.509 1.1 1.2 0.746 3.6 5.4 0.919 4 0.9 1.7 0.520 1.3 1.5 0.763 5.2 6.9 0.922 5 2.8 3.1 0.539 1.9 2.7 0.812 9.6 10.4 0.924 6 5.2 6.2 0.572 5.1 6.9 0.829 17.4 18.5 0.916 7 6.8 7.7 0.591 9.8 11.5 0.846 26.1 26.5 0.916 8 12 13.7 0.608 14.2 15.6 0.852 33.8 33.7 0.903 9 18.3 20.4 0.617 21.6 23.1 0.844 40.8 40.4 0.872
11 34.6 34.4 0.610 35.7 34.8 0.805 54.8 53.5 0.792 13 47.6 48.3 0.586 48.7 47.3 0.737 67 65.6 0.724 15 60.7 60.6 0.543 59.6 59 0.680 75.5 73.7 0.668 17 70.1 68.1 0.497 67.6 67.3 0.631 80.1 78.3 0.615 19 75.7 74.8 0.455 73.3 73.5 0.578 81.8 80.6 0.575
Załącznik - wyniki ewaluacji
- 112 -
Model MFCC-GMM-HMM, korpus GlobalPhone, odporność na zaszumienie
SNR [dB] szum samochodowy szum uliczny szum barowy
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0.1 12.7 0.7 1.820 4 0 1.625 3 0 1.722 0.5 14.8 0.7 1.863 5.2 0 1.673 3.5 0 1.746 1 17 0.7 1.846 5.9 0 1.707 4.4 0 1.813
1.5 20 1.4 1.870 6.4 0 1.789 5.6 0 1.863 2 24.9 0.7 1.863 8.1 0 1.794 6.7 0 1.953
2.5 30 1.4 1.774 10 0 1.854 7.9 0 2.033 3 35.5 2.1 1.683 10.9 0 1.908 9.6 0.7 2.053
3.5 41.5 4.3 1.568 13.6 0 1.869 12.3 0.7 2.022 4 45.9 7.9 1.538 16.5 0 1.893 14.3 1.4 2.025 5 54.3 15 1.498 23.1 1.4 1.811 20.8 2.1 1.950 6 62.4 15.7 1.437 31.7 3.6 1.767 28 4.3 1.885 7 70.4 23.6 1.279 40.8 7.1 1.667 36.1 5.7 1.828 8 75.8 28.6 1.149 48.4 7.9 1.583 45.5 8.6 1.744 9 80.4 35.7 1.063 57 12.9 1.454 52.9 13.6 1.613
11 85.5 42.9 0.944 71.4 21.4 1.252 66.7 25 1.396 13 89.2 55.7 0.859 79.1 32.1 1.080 77.3 33.6 1.120 15 90.5 58.6 0.791 84.6 40 0.956 82.4 44.3 0.992 17 91.1 60 0.737 88.2 51.4 0.848 86.3 48.6 0.891 19 91.6 62.9 0.703 90.1 55.7 0.779 89 57.9 0.824
Model BNF-GMM-HMM, korpus GlobalPhone, odporność na zaszumienie
SNR [dB] szum samochodowy szum uliczny szum barowy
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0.1 18.5 2.1 1.812 6.7 0 2.106 4.5 0 2.178 0.5 21.7 2.1 1.767 7.6 0 2.079 5.7 0 2.075 1 25.2 2.1 1.770 9.4 0 2.201 7.1 0 2.053
1.5 29.1 2.1 1.612 10.3 0 1.899 8.4 0 1.896 2 36.3 5 1.516 11.6 0 1.878 9.9 0 1.823
2.5 40.4 8.6 1.408 14.1 0 1.828 12.5 0 1.770 3 44.2 10 1.355 17.3 0 1.873 16.1 0 1.750
3.5 48.2 10 1.307 21.8 0.7 1.899 20.1 0.7 1.681 4 53.5 15 1.262 25.6 0.7 1.653 23 2.1 1.562 5 60.3 20.7 1.308 32.6 1.4 1.504 31.8 3.6 1.427 6 66 24.3 1.126 41.4 5.7 1.396 40.3 6.4 1.278 7 72.6 30 1.041 52 10.7 1.240 47 12.9 1.184 8 75.9 34.3 0.881 60.6 15.7 1.190 55.6 15 1.034 9 78.4 37.1 0.795 66.2 19.3 1.161 61.5 21.4 0.947
11 84.9 49.3 0.689 75.4 28.6 1.161 71.3 30.7 0.800 13 88.2 58.6 0.580 81.1 39.3 0.762 80.2 42.9 0.715 15 88.5 57.9 0.518 84.7 47.9 0.693 84.2 47.9 0.597 17 89.1 63.6 0.473 87.1 53.6 0.580 86.5 49.3 0.535 19 89.1 62.1 0.422 88.3 56.4 0.539 88.3 53.6 0.479
Załącznik - wyniki ewaluacji
- 113 -
Model FBANK-DNN-HMM, korpus GlobalPhone, odporność na zaszumienie
SNR [dB] szum samochodowy szum uliczny szum barowy
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0.1 31.3 4.3 1.533 10.3 0 1.521 10.4 0 1.819 0.5 36.5 7.1 1.491 11.6 0 1.537 12.3 0 1.760 1 42.6 9.3 1.454 14.1 0 1.554 14.5 0 1.786
1.5 48.4 12.9 1.423 17.4 0 1.571 18.3 1.4 1.785 2 52.2 17.9 1.393 21.8 0 1.558 20.9 3.6 1.749
2.5 55.6 17.9 1.340 25.3 1.4 1.534 25.6 5 1.708 3 58.7 20 1.278 28.9 2.1 1.517 31.7 6.4 1.618
3.5 61.6 21.4 1.246 32 2.1 1.465 34.4 7.9 1.549 4 64.9 22.1 1.176 37.2 5 1.407 38.7 10 1.548 5 70 27.1 1.092 46.1 7.9 1.330 48.2 13.6 1.490 6 75.9 31.4 1.000 56.2 14.3 1.232 56.8 19.3 1.400 7 79.5 37.9 0.948 62.9 18.6 1.150 63.5 22.9 1.321 8 83.8 46.4 0.899 69 22.9 1.107 69.9 29.3 1.215 9 85.7 50 0.846 72.7 28.6 1.019 74.1 34.3 1.108
11 89.6 58.6 0.757 80.8 41.4 0.883 79.5 44.3 0.942 13 90.8 65.7 0.703 87.2 53.6 0.806 84.5 51.4 0.844 15 91.8 67.1 0.655 89.7 60 0.740 88.6 60 0.779 17 92.2 71.4 0.615 91 63.6 0.676 90.7 63.6 0.698 19 92.7 68.6 0.582 92.2 67.1 0.628 91.2 67.1 0.654
Model MFCC-GMM-HMM, korpus AGHdigits, odporność na pogłos
Opóź. pogłosu [ms]
Intensywność pogłosu [%]
20 60 100
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0 90.2 76.2 0.290 81.2 56.5 0.335 68.9 33.5 0.345 50 89.2 75.1 0.306 76.3 49.1 0.376 67.2 32 0.356
100 88.2 71.7 0.334 77 47.2 0.343 67.5 30.5 0.356 150 86.7 67.7 0.340 75 43.5 0.348 65.9 27.1 0.363 200 82.8 59.9 0.355 72.4 39.8 0.354 65.6 28.6 0.363 250 81.2 57.2 0.364 72.9 39 0.351 66.8 29 0.362 300 79.6 53.2 0.347 72 39 0.357 67.9 28.3 0.364 350 80 53.2 0.343 72.7 36.4 0.358 68.6 26.8 0.359 400 79.1 50.2 0.345 72.4 35.3 0.356 70 25.3 0.356 450 79.6 49.4 0.354 73.7 35.3 0.355 71 30.1 0.359 500 77.8 45.7 0.355 73.9 34.9 0.369 73.9 34.9 0.354
Załącznik - wyniki ewaluacji
- 114 -
Model BNF-GMM-HMM, korpus AGHdigits, odporność na pogłos
Opóź. pogłosu [ms]
Intensywność pogłosu [%]
20 60 100
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0 94.1 84.4 0.284 89 74.3 0.322 77.7 53.5 0.386 50 92.3 81 0.284 86.7 68.4 0.334 75.7 50.6 0.379
100 91.4 79.2 0.292 85.7 67.7 0.353 76.1 49.1 0.387 150 90.8 77.3 0.308 84.3 63.2 0.360 72.9 41.3 0.393 200 90.2 75.8 0.311 84.4 63.6 0.348 75.6 45.4 0.383 250 89.3 72.9 0.301 84.4 62.8 0.349 75.3 44.2 0.381 300 89.3 73.2 0.303 82.8 58 0.355 75.3 43.9 0.384 350 87.1 68.8 0.324 83 58.4 0.342 76.7 47.2 0.382 400 88.4 70.3 0.322 85.3 61.3 0.336 78.2 50.6 0.380 450 88.4 70.3 0.316 85.4 62.8 0.349 78.3 49.4 0.377 500 86.1 65.1 0.333 86.4 64.7 0.360 79.1 49.8 0.381
Model FBANK-DNN-HMM, korpus AGHdigits, odporność na pogłos
Opóź. pogłosu [ms]
Intensywność pogłosu [%]
20 60 100
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0 91.9 79.6 0.258 83.4 63.6 0.309 68.9 39.4 0.328 50 90.1 75.1 0.272 79.8 54.6 0.317 67 36.1 0.334
100 87 69.1 0.287 79.6 53.5 0.323 65.9 30.1 0.334 150 86.5 68 0.293 78.2 52 0.326 63.4 26.4 0.330 200 83.3 61.3 0.299 75 43.1 0.321 63.6 25.3 0.330 250 81.3 56.9 0.300 71.1 37.5 0.317 63.2 25.3 0.323 300 79.1 50.9 0.307 69.5 33.8 0.312 62.8 24.2 0.320 350 78.4 50.6 0.304 73.4 38.3 0.316 63.7 21.9 0.319 400 77 46.1 0.306 72 33.1 0.313 65.2 23 0.325 450 77 44.6 0.310 73.5 33.1 0.312 65.8 21.9 0.318 500 76.7 42.4 0.312 71.7 30.5 0.318 65.9 20.8 0.312
Model MFCC-GMM-HMM, korpus AGHstreets, odporność na pogłos
Opóź. pogłosu [ms]
Intensywność pogłosu [%]
20 60 100
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0 64.6 68.1 0.520 34.3 39.6 0.594 10.3 19 0.628 50 59.6 65 0.534 30.3 36.7 0.611 13.6 21.9 0.644
100 61.3 65 0.576 30.6 38.1 0.630 13.7 23.1 0.650 150 60.7 66 0.582 30.3 38.5 0.640 16 26.9 0.650 200 60.5 65.8 0.582 30.2 40.8 0.637 18.3 31 0.656 250 58.9 64.2 0.590 34.6 44.6 0.642 21.5 35.2 0.667 300 59.1 65 0.585 40.1 49 0.641 32.7 42.9 0.648 350 61.1 66.7 0.605 46.9 55.2 0.651 38.4 49 0.661 400 65.4 70 0.587 51.2 58.3 0.636 47.9 54.6 0.643 450 66.8 70.2 0.601 56.7 62.7 0.656 51 57.1 0.638 500 68.2 71.5 0.586 61.6 66.2 0.631 57.5 62.9 0.648
Załącznik - wyniki ewaluacji
- 115 -
Model BNF-GMM-HMM, korpus AGHstreets, odporność na pogłos
Opóź. pogłosu [ms]
Intensywność pogłosu [%]
20 60 100
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0 74.6 76 0.537 55.5 55.4 0.651 34 34.8 0.778 50 72.5 72.9 0.527 50.1 51.2 0.650 35.1 36 0.756
100 70.8 72.3 0.574 52 53.1 0.696 36.2 37.3 0.749 150 70.8 72.9 0.566 56.2 56.7 0.634 39.7 40.2 0.752 200 69.7 72.3 0.560 55.5 57.1 0.627 44.5 46.2 0.729 250 70.5 72.7 0.581 59.1 59.8 0.608 49.6 51.7 0.729 300 69 71.5 0.570 62.2 63.5 0.601 52.4 54.2 0.697 350 73.8 75.4 0.532 64.3 65.8 0.621 57.3 58.7 0.816 400 78.5 79.6 0.530 67.1 69 0.608 61.9 64.6 0.882 450 78.3 79.1 0.534 70.1 71.9 0.586 65.7 67.7 0.917 500 78.4 79.2 0.544 71.6 73.3 0.578 69.5 71.3 0.838
Model FBANK-DNN-HMM, korpus AGHstreets, odporność na pogłos
Opóź. pogłosu [ms]
Intensywność pogłosu [%]
20 60 100
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0 83.3 83.5 0.491 49.4 54 0.558 24.3 29.8 0.610 50 73.8 75.6 0.512 41.7 47.1 0.579 20.4 26.5 0.615
100 72.7 74.2 0.525 41.5 46.2 0.584 22.3 28.3 0.618 150 72.4 74 0.527 41.4 46.7 0.576 22.9 30.8 0.610 200 69.8 73.3 0.529 41.5 47.1 0.577 27.6 35.4 0.606 250 70.1 74.4 0.527 42.8 47.9 0.571 28.6 36.3 0.594 300 67.1 72.1 0.535 43 49.6 0.572 29.2 37.5 0.591 350 68.7 72.5 0.534 46.8 52.1 0.574 34.6 41.7 0.581 400 68.1 72.5 0.532 48.7 53.1 0.561 36.8 43.5 0.576 450 70.8 72.7 0.532 51 54.6 0.564 41.1 46 0.568 500 73.3 74.8 0.532 55.5 58.5 0.548 46.1 50.6 0.560
Model MFCC-GMM-HMM, korpus GlobalPhome, odporność na pogłos
Opóź. pogłosu [ms]
Intensywność pogłosu [%]
20 60 100
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0 91.8 62.1 0.786 84.4 42.9 1.169 57.1 15 1.782 50 90.2 58.6 0.834 81.3 33.6 1.206 54.8 12.1 1.832
100 90.2 55.7 0.849 80.4 32.9 1.190 53.7 10.7 1.660 150 89.7 52.9 0.950 80.6 32.9 1.222 53.4 12.1 1.736 200 90.8 56.4 0.890 81.6 40 1.197 53 10 1.807 250 90.1 58.6 0.873 81.9 38.6 1.161 55.1 14.3 1.616 300 89.3 55 0.880 81 37.1 1.255 56.4 14.3 1.505 350 89.1 58.6 0.929 82.5 36.4 1.166 58.5 16.4 1.595 400 89.9 62.1 0.939 82.5 37.1 1.183 57.6 16.4 1.629 450 90.1 58.6 0.897 83 38.6 1.162 57.2 15 1.694 500 89.4 55 0.924 82.3 34.3 1.201 58.1 18.6 1.601
Załącznik - wyniki ewaluacji
- 116 -
Model BNF-GMM-HMM, korpus GlobalPhome, odporność na pogłos
Opóź. pogłosu [ms]
Intensywność pogłosu [%]
20 60 100
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0 88.8 61.4 0.470 85 45.7 0.685 62.4 13.6 1.016 50 88.5 55.7 0.521 82.3 40.7 0.725 56.6 12.1 1.018
100 88.3 56.4 0.545 81.8 37.9 0.740 54.9 10.7 1.034 150 87.4 49.3 0.548 82.2 38.6 0.742 55 10.7 1.008 200 87.1 52.9 0.555 81.9 37.9 0.730 54.1 9.3 0.992 250 87.3 56.4 0.553 81.4 32.9 0.721 55.9 13.6 1.007 300 87.9 60 0.561 79.9 37.1 0.748 56.1 10 1.008 350 86.7 50.7 0.553 80.3 35.7 0.727 57.6 14.3 1.021 400 88.5 57.1 0.560 81.5 38.6 0.736 56.5 12.9 1.010 450 88.2 56.4 0.558 81.9 39.3 0.725 58 11.4 1.010 500 87.5 55 0.562 81.6 35.7 0.737 55.4 8.6 0.999
Model FBANK-DNN-HMM, korpus GlobalPhome, odporność na pogłos
Opóź. pogłosu [ms]
Intensywność pogłosu [%]
20 60 100
WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF WRR[%] SRR[%] RTF
0 92 68.6 0.618 87.7 54.3 0.825 72 30.7 1.123 50 91 64.3 0.693 84.6 47.1 0.892 69.2 27.9 1.139
100 90.8 66.4 0.710 86.1 50 0.942 69.5 22.1 1.194 150 91.2 65 0.732 85 48.6 1.013 71.3 23.6 1.207 200 90.8 62.1 0.721 85 49.3 0.985 71.4 25.7 1.178 250 90.2 62.9 0.739 86.1 52.1 0.970 72.2 30 1.168 300 90.4 65 0.726 84.7 51.4 0.967 73.7 30.7 1.159 350 90.4 66.4 0.745 85.6 50 0.957 72.1 27.1 1.227 400 91.8 67.1 0.732 87.6 53.6 0.916 73.1 27.1 1.201 450 91.2 66.4 0.746 86.3 53.6 0.886 73.1 27.1 1.177 500 90.5 62.9 0.770 85 48.6 0.913 72.1 25 1.178