Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia...
Transcript of Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia...
Akademia Górniczo-Hutnicza
im. Stanisława Staszica w Krakowie
Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki
KATEDRA ELEKTRONIKI
PRACA MAGISTERSKA
WOJCIECH PIOTR KOZŁOWSKI
AUTOMATYCZNE ROZPOZNAWANIE MÓWCÓW
PROMOTOR:
prof. dr hab. inz. Mariusz Ziółko
Kraków 2011
OSWIADCZENIE AUTORA PRACY
OSWIADCZAM, SWIADOMY ODPOWIEDZIALNOSCI KARNEJ ZA POSWIAD-
CZENIE NIEPRAWDY, ZE NINIEJSZA PRACE DYPLOMOWA WYKONAŁEM
OSOBISCIE I SAMODZIELNIE, I NIE KORZYSTAŁEM ZE ZRÓDEŁ INNYCH
NIZ WYMIENIONE W PRACY.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PODPIS
AGH
University of Science and Technology in Krakow
Faculty of Electrical Engineering, Automatics, Computer Science and Electronics
DEPARTMENT OF ELECTRONICS
MASTER OF SCIENCE THESIS
WOJCIECH PIOTR KOZŁOWSKI
AUTOMATIC SPEAKER RECOGNITION
SUPERVISOR:
Mariusz Ziółko Prof.
Krakow 2011
—————————–
Spis tresci
1. Wprowadzenie ................................................................................................................................ 9
1.1. Cele i zagadnienia poruszane w pracy................................................................................... 9
1.2. Zalety i wady głosu jako klucza biometrycznego.................................................................. 9
1.3. Klasyfikacja systemów rozpoznawania mówców ................................................................. 11
1.3.1. Identyfikacja i weryfikacja ......................................................................................... 11
1.3.2. System ze zbiorem otwartym i zbiorem zamknietym................................................ 12
1.3.3. System zalezny i niezalezny od tresci ........................................................................ 12
1.3.4. Cechy osobnicze mówcy............................................................................................ 13
1.4. Dziedziny zastosowan ........................................................................................................... 14
2. Fizjologia i percepcja mowy.......................................................................................................... 16
2.1. Anatomia aparatu głosowego ................................................................................................ 16
2.1.1. Płuca........................................................................................................................... 17
2.1.2. Krtan........................................................................................................................... 18
2.1.3. Jama ustna i nosowa................................................................................................... 19
2.2. Powstawanie głosu................................................................................................................. 21
2.3. Percepcja mowy..................................................................................................................... 22
3. Ekstrakcja cech .............................................................................................................................. 25
3.1. Wstepne przetwarzanie sygnału mowy ................................................................................. 25
3.1.1. Konwersja analogowo-cyfrowa.................................................................................. 26
3.1.2. Segmentacja sygnału.................................................................................................. 26
3.1.3. Funkcje okna czasowego............................................................................................ 28
3.1.4. Equalizacja sygnału.................................................................................................... 29
3.2. Przebieg ekstrakcji cech ........................................................................................................ 31
3.2.1. Analiza fourierowska ................................................................................................. 33
3.2.2. Ocena zróznicowania mówców.................................................................................. 36
3.2.3. Analiza pasmowa ....................................................................................................... 41
3.2.4. Cepstrum .................................................................................................................... 43
3.2.5. Dyskretna transformacja kosinusowa (DCT)............................................................. 44
5
3.2.6. Liftering cepstum ....................................................................................................... 45
3.2.7. Parametry dynamiczne cepstrum ............................................................................... 46
4. Automatyczne rozpoznawanie mówców - opis struktury systemu ............................................ 48
4.1. Budowa systemu.................................................................................................................... 48
4.2. Modelowanie mówców.......................................................................................................... 50
4.2.1. Mikstury gaussowskie................................................................................................ 50
4.2.2. Ukryte modele Markowa............................................................................................ 51
4.2.3. Wykorzystanie ukrytych modeli Markowa ................................................................ 53
4.2.4. Problem pierwszy....................................................................................................... 54
4.2.5. Problem drugi............................................................................................................. 56
4.2.6. Problem trzeci ............................................................................................................ 60
5. Wyniki eksperymentów i wnioski koncowe ................................................................................. 64
5.1. Test systemu .......................................................................................................................... 65
5.1.1. Test wpływu wielkosci bazy na jakosc rozpoznania.................................................. 65
5.1.2. Test wpływu klasteryzacji ramek mowy na jakosc rozpoznania................................ 68
5.2. Wnioski koncowe .................................................................................................................. 70
6. Dokumentacja projektu................................................................................................................. 71
6.1. Opis systemu rozpoznawania mówcy.................................................................................... 71
6.2. Schemat systemu ................................................................................................................... 71
6.2.1. Bloki funkcyjne.......................................................................................................... 72
6.3. Obsługa plików WAV ............................................................................................................ 73
6.4. Przetwarzanie i klasyfikacja sygnału..................................................................................... 74
6.5. Obsługa HTK......................................................................................................................... 80
6.6. Trening systemu..................................................................................................................... 87
6.7. Testowanie systemu ............................................................................................................... 90
6.8. Obsługa korpusu Global-Phone............................................................................................. 96
6.9. Funkcje pomocnicze .............................................................................................................. 98
Spis rysunków
1.1 Podział systemów rozpoznawania mówców . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Cechy w systemie rozpoznawani mówcy i trudnosc ich ekstrakcji . . . . . . . . . . . . . 14
6
SPIS RYSUNKÓW 7
2.1 Przebieg czasowy oraz spektrogram sygnału mowy [głos meski, słowo "Wojciech"] . . . 16
2.2 Trakt głosowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Praca płuc podczas oddychania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Schemat krtani . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Schemat produkcji głoski dzwiecznej . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6 Periodyczny strumien powietrza pochodzacy z tchawicy i jego widmo . . . . . . . . . . 20
2.7 Schemat ideowy traktu głosowego człowieka . . . . . . . . . . . . . . . . . . . . . . . 21
2.8 Przykład modelowania przy pomocy systemu liniowego produkcji głoski e . . . . . . . 22
2.9 Obszar głosnosci mowy na tle krzywych izofonicznych . . . . . . . . . . . . . . . . . . 23
2.10 Melowa skala wysokosci dzwieku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1 Przebieg wstepnego przetwarzania sygnału mowy . . . . . . . . . . . . . . . . . . . . . 25
3.2 Próbkowanie i kwantyzacja sinusoidy . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Porównanie okien ( prostokatnego, trójkatnego oraz Hamminga ) w dziedzinie czasu oraz
czestotliwosci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Porównanie okien Hamminga o długosci W1 = 32 i W2 = 96 próbek . . . . . . . . . . 29
3.5 Wpływ współczynnika α na charakterystyke filtru preemfazy . . . . . . . . . . . . . . . 30
3.6 Wpływ filtru preemfazy na widmo amplitudowe głoski dzwiecznej . . . . . . . . . . . . 31
3.7 Wpływ filtru preemfazy na widmo amplitudowe głoski bezdzwiecznej . . . . . . . . . . 31
3.8 Ekstrakcja cech niskiego poziomu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.9 Fonem ’a’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.10 Fonem ’g’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.11 Fonem ’h’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.12 Klasa I - fonemy ’tkwbdg’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.13 Klasa II - fonemy ’zscjh’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.14 Klasa III - fonemy ’raoieuyjnm’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.15 Schemat działania klasyfikatora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.16 Skutecznosc klasyfikatora kNN dla róznej liczby podpasm . . . . . . . . . . . . . . . . 40
3.17 Skutecznosc klasyfikatora kNN dla róznej liczby sasiadów k . . . . . . . . . . . . . . . 40
3.18 Banki filtrów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.19 Skale czestotliwosci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.20 Obwiednie widma fonemu ’e’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.21 Transformata kosinusowa sinusoidy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1 System rozpoznawania mówców . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2 Przykład dwu wymiarowych mikstur gaussowskich o 3 i 4 składnikach . . . . . . . . . . 50
4.3 Ogólny łancuch Markowa o 4 stanach . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
SPIS RYSUNKÓW 8
4.4 Łancuch left-to-rigth o 4 stanach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.5 Sposób przechodzenia przez stany podczas wyszukiwania najlepszej sciezki w łancuchu
left-to-rigth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.6 Inicjalizacja modeli mówców dokonywana przez HTK . . . . . . . . . . . . . . . . . . 59
4.7 Reestymacja Brauna-Welcha dokonywana przez HTK . . . . . . . . . . . . . . . . . . . 62
5.1 Wynik testu identyfikacji bazy I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2 Wynik testu identyfikacji bazy II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.3 Wpływ wykorzystania klas ramek na identyfikacje . . . . . . . . . . . . . . . . . . . . 68
5.4 Wynik klasteryzacji ramek nagran treningowych . . . . . . . . . . . . . . . . . . . . . . 69
6.1 Struktura systemu rozpoznawania mówców. Podział na bloki funkcyjne . . . . . . . . . 71
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
1. Wprowadzenie
1.1. Cele i zagadnienia poruszane w pracy
Celem pracy jet omówienie i wykorzystanie cyfrowego przetwarzania sygnału mowy do
przeprowadzenia identyfikacji osoby mówiacej. Efektem pracy jest oprogramowanie umozliwiajace
tworzenie modeli mówców i przeprowadzanie identyfikacji nagran mowy. Praca zawiera dokumentacje
powstałego oprogramowania. Przyblizony został podział i pola zastosowan systemów rozpoznawania
mówców, nastepnie zagadnienia z zakresu fizjologii mowy i słuchu, które znajduja zastosowanie pod-
czas modelowania głosu mówcy. Opisany jest proces rozpoznawania od pobrania sygnału mowy az po ut-
worzenie modelu mówcy i identyfikacje nowych wypowiedzi. Elementy systemu rozpoznawania: moduł
ekstrakcji cech i modelowanie mówcy sa omówione w oddzielnych rozdziałach. Zaprezentowanie jest
test działania systemu w oparciu o korpusy mówców zawierajace wypowiedzi w jezyku polskim i ang-
ielskim oraz metoda klasteryzacji ramek mowy w oparciu o cechy statystyczne ramek.
Słowa kluczowe: rozpoznawanie mówców, identyfikacja biometryczna, ukryte modele Markowa,
mikstury Gaussowskie, ekstrakcja cech, klasyfikator kNN, Fisher Ratio, fonem ,Global Phone , Corpora,
TIMIT
The goal of this thesis is describing and applying digital signal processing to conduct speaker iden-
tification. As a result, we created software using the speech signal for speaker modeling and recogni-
tion. Software documentation is included. We describe the fields of application for speaker recognition
systems following by the description of speech and hearing process. We show the process of speaker
recognition from capturing the speech sample to creating speaker model and performing speaker iden-
tification. Elements of our system : feature extraction and speaker modeling modules are described in
separate chapters. A test of the system using speech data in both Polish and English languages as well as
with the use of speech frames preclustering will be performed to determine system performance.
Keywords: speaker recognition, biometric identification, HMM, GMM, feature extraction, kNN,
Fisher Ratio, Global Phone , Corpora, TIMIT
1.2. Zalety i wady głosu jako klucza biometrycznego
Wykorzystanie głosy w roli klucza lub hasła wiaze sie z koniecznoscia poznania jego wad i zalet. W
przypadku biometrii i wykorzystania cech fizycznych i behawioralnych do rozpoznawania uzytkown-
ików, szczególnie wazna jest kwestia mozliwosci zmierzenia, zachowania i porównania wzorca i
9
1.2. Zalety i wady głosu jako klucza biometrycznego 10
oryginału. Produkcja głosu, ze wzgledu na silne powiazanie z budowa traktu głosowego jest z jednej
strony cecha fizyczna, ale wazny jest takze fakt, ze głos jako sygnał akustyczny jest wynikiem pracy
wielu narzadów i jest zawsze zmieniany przez akustyke pomieszczenia, w którym jest emitowany co
powoduje jego niepowtarzalnosc, pomimo zachowania silnego podobienstwa. Pomimo, ze inne klucze
biometryczne moga zapewnic wyzsza niezawodnosc [1], to istotne jest przypomnienie, ze systemy
identyfikacji biometryczne o najwyzszej niezawodnosci to systemy wykorzystujace jednoczesnie wiele
cech, np. głos i obraz mówcy (ang. multi-modal person authentication) osiagajac przy tym niezawodnosc
wyzsza niz przy osobnym uwzglednieniu tych cech [2, 3].
Do zalet automatycznego rozpoznawania mówców naleza niewatpliwie niskie nakłady zwiazane z
implementacja i wykorzystaniem. Systemy te nie zakładaja posiadania wysokiej klasy mikrofonów czy
materiału dzwiekowego, pracujac zazwyczaj z najprostszym sprzetem nagraniowym jak i materiałem
silnie skompresowanym. Umozliwia to zdalna identyfikacje tozsamosci np. za posrednictwem sieci
telefonicznej. Uzytkownik moze nie byc swiadomy, ze odbywa sie identyfikacja co jest szczególnie
istotne w pracy sledczej. Nie jest wymagana fizyczna interakcja jaka ma miejsce np. podczas pobierania
odcisku palca czy obrazu teczówki.
Systemy wykorzystujace głos moga równiez korzystac informacji zawartej w wypowiedzi, tworzac
tym samym systemy weryfikujace nie tylko tozsamosc ale i hasło. Stwarza to oczywiscie koniecznosc
rozpoznania hasła, ale w najprostszych przypadkach nie powoduje koniecznosci pełnego rozpoznawania
mowy a jedynie porównanie wzorca i wypowiedzi weryfikowanej.
Porównanie jakosci rozpoznawania mówców przez systemy komputerowe i ludzi [4] dowodzi, ze
w dobrych warunkach nagran systemy automatyczne posiadaja umiejetnosci rozpoznawania mówców
nie gorsze niz ludzie. W przypadku pogorszenia sie warunków nagran, niezachowania jednakowych
urzadzen nagrywajacych czy trudnych warunków akustycznych rozpoznawania dokonane przez ludzi
okazuja sie trafniejsze niz te dokonane przez komputery. Zródłem tego jest głównie wykorzystanie
informacji o wymowie, akcencie czy doborze słownictwa, których zazwyczaj systemy komputerowe
nie wykorzystuja. Systemy automatyczne moga jednak pracowac z nagraniami o wiele krótszymi niz
człowiek, nie sa takze podatne na psychoakustyczne zjawiska towarzyszace ludzkiemu słyszeniu.
Istnieje równiez duza grupa zjawisk towarzyszacych produkcji i rejestracji głosu, które maja
bezposredni wpływ na działanie systemów rozpoznawania mówców niezaleznie od algorytmów w
nich uzytych. Sa to : kwestia zmiennosci głosu w trakcie zycia człowieka, wpływu chorób na głos
i mowe, szerokie spektrum problemów technicznych majacych zródło w niekorzystnych warunkach
nagraniowych, niewystarczajacej jakosci sygnału czy zakłóceniach mogacych pojawic sie w kazdej z
faz nagrania i przetwarzania.
Biorac pod uwage wszystkie wady i zalety systemów automatycznego rozpoznawania mówców, zna-
jduja one zastosowanie w wielu praktycznych aplikacjach i sa dziedzina ciagle sie rozwijajaca.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
1.3. Klasyfikacja systemów rozpoznawania mówców 11
1.3. Klasyfikacja systemów rozpoznawania mówców
W przypadku systemów rozpoznawania mówcy mamy do czynienia z róznorodna funkcjonalnos-
cia, jaka system moze pełnic, w zaleznosci od swojej konstrukcji. Funkcjonalnosc ta definiuje sposób
rozpoznawania a takze budowania bazy mówców. Klasyfikacja odnosi sie do sposobu rozpoznawania,
słownika jaki moze byc uzyty przez uzytkowników systemu oraz bazy mówców. Sposobem klasyfikowa-
nia, nieodnoszacym sie do funkcjonalnosci moze byc rozróznienie cech mówcy wykorzystanych podczas
rozpoznawania.
SYSTEM
ROZPOZNAWANIA
MÓWCÓW
RODZAJ
ROZPOZNANIA
TREŚĆ WYPOWIEDZI
BAZA MÓWCÓW
IDENTYFIKACJA
WERYFIKACJA
ZALEŻNY OD TREŚCINIEZALEŻNY OD
TREŚCI
OTWARTA
ZAMNKIĘTA
WYKORZYSTANE
CECHY
NISKIEGO
POZIOMU
WYSOKIEGO
POZIOMU
Rysunek 1.1: Podział systemów rozpoznawania mówców
1.3.1. Identyfikacja i weryfikacja
Systemy rozpoznawania mówców moga słuzyc, niezaleznie od tego jak badany jest w nich klasy-
fikowany głos, dwóm celom :
- Identyfikacji mówców(ang. identification task), a wiec decydowaniu czy badany głos nalezy do
którejs z osób z bazy mówców. Wynikiem rozpoznawania powinna byc tozsamosc wypowiadajacego.
Decyzja nie musi byc jednoznaczna, mozemy równiez orzec, ze osoba nie znajduje sie w bazie.
- Weryfikacji tozsamosci (ang. verification task) mówcy na podstawie jego głosu. Głos jest badany
podobnie jak w przypadku identyfikacji, ale system musi podjac decyzje czy osoba mówiaca jest ta
sama o która pyta system. Wynikiem rozpoznawania powinna byc jednoznaczna decyzja o przyjeciu
lub odrzuceniu tozsamosci mówcy. Dane biometryczne zawarte w głosie stanowia wiec podstawa do
identyfikacji mówcy w systemie, np. bazie danych.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
1.3. Klasyfikacja systemów rozpoznawania mówców 12
Gdy okreslimy jaki rodzaj (identyfikowanie czy weryfikowanie) rozpoznawania mówcy nas intere-
suje, mozemy do czesci systemu badajacej głos dodac czesc odpowiedzialna za podejmowanie decyzji
o rozpoznaniu, dajaca jako wynik informacje o zgodnosci głosu i modelu lub informacje o modelu
któremu odpowiada głos.
Jak pokazane zostanie w czesci weryfikacji sprawnosci systemu, wraz ze zwiekszaniem sie bazy
mówców nastepuje zmiana sprawnosci identyfikacji. Taka zmiana nie powinna byc teoretycznie obser-
wowana w przypadku weryfikacji, jako ze jest to porównanie tylko dwóch modeli.
1.3.2. System ze zbiorem otwartym i zbiorem zamknietym
Przy klasyfikacji wazne jest tez okreslenie bazy znanych przez system mówców jako zamknietej
(ang. closed-set), to znaczy wykorzystanej w rozpoznaniu osób znajdujacych sie w niej samej i zad-
nych innych lub tez otwartej (ang.open-set), dopuszczajacej, ze wynikiem rozpoznania moze nie byc
zadna z osób znajdujacych sie w bazie i uwzgledniajaca takie rozpoznanie (mówca jako intruz/petent
spoza bazy). W identyfikacji zbiór zamkniety oznacza, ze system zwróci tozsamosc najbardziej praw-
dopodobna ze swojej perspektywy, podczas gdy przy identyfikacje na zbiorze otwartym wynik rozpozna-
nia moze byc odrzucony jako zbyt mało wiarygodny i wskazujacy na intruza. Sprowadza to identyfikacje
na zbiorze otwartym do weryfikacji nie korzystajacej z zapytania o tozsamosc ale weryfikujacej ja wobec
wszystkich zawartych z bazie. Rozpoznanie jest wtedy zgodna weryfikacja z jednym z modeli.
1.3.3. System zalezny i niezalezny od tresci
Systemy rozpoznajace mówców moga, nie zaleznie czy słuza identyfikacji czy weryfikacji mówcy,
wykorzystywac wypowiedzi o okreslonej z góry tresci (ang. text-dependent) lub tez byc w stanie rozpoz-
nawac mówców nie zaleznie od ich wypowiedzi (ang. text-independent). Systemy w których rozpoz-
nanie jest zalezne od tresci sa prostsze w budowie i zasadniczo znajduja zastosowanie w weryfikacji
tozsamosci przy pomocy głosu. Rozpoznanie mówcy po wypowiedzeniu przez niego okreslonego z góry
„hasła” odbywa sie wtedy przez porównanie zapisanego w systemie wzorca odpowiadajacego danej os-
obie i podjecie decyzji czy wzorzec i wypowiedz naleza do tej samej osoby. Daje to mozliwosc poprawy
wiarygodnosci rozpoznania, dzieki mozliwosci wykorzystania nie tylko informacji o głosie, ale równiez
tresci wypowiedzi. Mozliwy jest dalszy podział systemów zaleznych od tresci, ze wzgledu na hasło :
- system z wieloma hasłami, charakterystycznymi dla mówcy lub sytuacji (ang. event-dependent),
- system z hasłem wspólnym dla wszystkich mówców.
Rozszerzenie wzorca mówcy do modelu, który opisze nie tylko pojedyncza wypowiedz czy zdanie,
ale raczej cechy głosu osoby podczas wypowiedzi, da nam mozliwosc rozpoznawanie mówcy po
wypowiedzi, której nie wykorzystano podczas budowania jego wzorca, czy okreslono z góry. System
taki staje sie niezalezny od tresci wypowiedzi a nawet od akcentu i jezyka w jakim mówca wypowie
swoja kwestie.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
1.3. Klasyfikacja systemów rozpoznawania mówców 13
1.3.4. Cechy osobnicze mówcy
W systemach rozpoznawania mówcy najwazniejszym zadaniem jest wybranie zestawu cech do-
brze charakteryzujacych mówce, ale jednoczesnie oddajacych róznice pomiedzy róznymi mówcami
i niepodatnych na próbe nasladowania głosu. W przypadku charakteryzowania mowy konieczne jest
równiez uwzglednienie jej niepowtarzalnego charakteru, a wiec w przypadku wypowiadania tej samej
wypowiedzi przez tego samego mówce. W przypadku rozpoznawania w czasie rzeczywistym i w trud-
nych warunkach wazna jest szybkosc dokonania ekstrakcji cech oraz ich odpornosc na wpływ szumu i
niekorzystnych warunków akustycznych. Problem szumu moze byc rozwiazany posrednio przez wyko-
rzystanie algorytmów filtracji, ale przede wszystkim przez wybór cech dekorelujacych mowe i szum lub
pogłos przedostajacy sie do nagrania. Problem złozonosci obliczeniowej moze byc rozwiazany przez re-
dukcje ilosci informacji wykorzystywanej przez system poprzez ekstrahowanie wektora cech krótszego
niz wejsciowy wektor mowy. Redukcja powinna sie odbywac z uwzglednieniem istotnosci informacji i
powiazaniu cech z konkretnymi cechami fizycznymi lub opisujacymi osobowosc mówcy.
Cechy mogace opisywac mówce dzielimy zasadniczo na cechy wysokiego i niskiego poziomu. Cechy
wysokiego poziomy sa zwiazane z nabytymi podczas zycia przyzwyczajeniami oraz cechami mogacymi
charakteryzowac mówce bez koniecznosci posługiwania sie jego cechami biometrycznymi - pochodze-
niem, jezykiem a nawet słowami czy zwrotami jezykowymi charakteryzujacymi osobe. Cechy niskiego
poziomu wiaza sie natomiast z cechami narzadów wytwarzajacych głos i przebiegowi tej działalnosci.
Z powodu duzej abstrakcyjnosci i złozonosci, cechy wysokiego poziomu wymagaja analizy nie tylko
głosu ale równiez mowy pod katem jej zawartosci i kontekstu. Daja one jednak jednoczesne pozyskanie
informacji o osobowosci mówcy oraz z powodu bazowania na zawartosci mowy sa bardziej odporne na
warunki nagraniowe i szum.
Cechy niskiego poziomu moga natomiast byc wyekstrahowane wprost z sygnału mowy, bez potrzeby
budowania systemów rozpoznawania mowy i jej analizy. Z powodu wnioskowania na podstawie infor-
macji o aparacie głosowym mówcy sa one równiez trudniejsze do imitacji.
W kontekscie tak zdefiniowanych cech mozna powiedziec, ze człowiek podczas rozpoznawania
mówcy opiera sie na wszystkich informacjach jakie o nim posiada, przy czym moga to byc zarówno
cechy niskiego, w przypadku wnioskowania po barwie głosu jak i wysokiego poziomu, jezeli wnioskuje
tylko po tresci wypowiedzi.
Niezaleznie od wyboru wektora cech, nalezy pamietac o problemie korelacji wektorów. Algorytm
ekstrakcji cech moze prowadzic do korelacji wektorów cech, redukujac w ten sposób ich kowariancje,
a jednoczesnie powodujac redundancje informacji i obnizajac sprawnosc systemu. Metody dekorelacji
wektorów cech zostana omówione podczas opisu ekstrakcji cech.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
1.4. Dziedziny zastosowan 14
CECHY WYSOKIEGO
POZIOMU
ŁATWE W
EKSTRAKCJI
TRUDNE W
EKSTRAKCJI
CECHY SPEKTRALNE
RYTM WYOWIEDZI, DŁUGOŚĆ
TRWANIA FONEMÓW, ZMIANY
GŁOŚNOŚCI MOWY
ANALIZA WYPOWIEDZI POD
KĄTEM ZNACZENIA
ANALIZA MOWY
BADANIE GŁOSU BEZ
ROZTRZYGANIA O TREŚCI MOWY
CECHY NISKIEGO
POZIOMU
PARAMETRY MODELU
APARATU GŁOSOWEGO
MÓWCY
POWTARZAJĄCE SIĘ
WYRAZY I WZROTY
AKCENT
STATUS SPOŁECZNY,
POCHODZENIE,
WYKSZTAŁCENIE
Rysunek 1.2: Cechy w systemie rozpoznawani mówcy i trudnosc ich ekstrakcji
1.4. Dziedziny zastosowan
Rozpoznawanie mówców, poza najbardziej oczywistym zastosowaniem w postaci spełniania roli
identyfikacji biometrycznej, mozemy wykorzystac w innych praktycznych aplikacjach :
- kryminalistyce,
- rozpoznawaniu mowy,
- systemach z wieloma uzytkownikami.
W przypadku autoryzacji tozsamosci wykorzystany zostanie system weryfikujacy tozsamosc. Głos
bedzie wtedy kluczem biometrycznym, który posłuzy do autoryzacji. Takie zastosowanie jest spotykane
najczesciej w bankowosci, jako dodatkowa metoda autoryzacji oprócz kodu PIN albo innej informacji
biometrycznej, np. obrazu teczówki lub w systemach automatycznego odzyskiwania hasła, gdzie
weryfikacja głosowa stanowi podstawe do zresetowania hasła uzytkownika. Zakres stosowania głosu w
roli klucza moze byc szeroki, wiaze sie to jednak zawsze ze zdefiniowaniem pewnosci z jaka system ma
działac [5].
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
1.4. Dziedziny zastosowan 15
Kryminalistyczne zastosowanie rozpoznawania mówcy ma zwiazek ze systemami identyfikujacymi,
w idealnym przypadku działajacymi na bardzo duzej bazie. Z powodu trudnosci lub niemozliwosci
osiagniecia stuprocentowej dokładnosci identyfikacji, konieczne jest wprowadzanie dodatkowego
wskaznika pewnosci (ang. confidence measure), preferujacego identyfikacje, które zakonczyły sie
wynikiem znacznie przekraczajacym wartosc progowa [?]. Mozliwosc zastosowania systemu rozpoz-
nawania mówców w celach kryminalistycznych wiaze sie z koniecznoscia rozwiazania m.in. problemów
zmiennosci warunków nagran, sprzetu i medium jakim dzwiek bedzie przesyłany a takze koniecznoscia
dokładnej znajomosci stopy błedu systemu. Kazdy z tych problemów jest równie trudny do rozwiazania
jak problem rozpoznawania.
Pomimo, ze rozpoznawanie mowy i mówców naleza do zagadnien technologii mowy, koncentruja sie
na innych aspektach sygnały mowy. W przypadku mowy najwazniejsze jest badanie cech niezmiennych
dla róznych mówców a zaleznych od zawartosci wypowiedzi. W przypadku badania mówcy nalezy
szukac cech zmiennych dla róznych mówców dla tych samych wypowiedzi. Badania nad cechami
bardziej podatnymi na róznorodnosc miedzyklasowa mówców moga byc wykorzystane do poprawy
rozpoznawania mowy w przypadku pracy z wieksza liczba mówców [7, 8].
W systemach z wieloma uzytkownikami, zakładamy, ze uzytkownicy dziela pewne zasoby i
potrzebna jest metoda umozliwiajaca ich podział. Jezeli dostepny jest sygnał audio zawierajacy nagranie
głosów uzytkowników, to przez wykonanie jednego z zadan :
- detekcji - okreslenia czy zadany mówca jest aktywny w nagraniu,
- sledzenia - wyznaczenia przedziałów czasowych w których mówca był aktywny,
- segmentacji - wyznaczeniu segmentów mowy nalezacych do róznych mówców,
mozliwe jest sterowanie [9]. Przykład aplikacji wykorzystujacej detekcje do wyznaczenia mo-
mentu zmiany mówcy jest zawarty w [10]. Wiedza o tozsamosci aktualnego mówcy znajduje takze
zastosowanie w systemach rozpoznawania mowy, gdzie moze byc wykorzystana do wybrania nalezacej
do mówcy, lub najlepiej mu odpowiadajacej, bazy wzorców mowy. Sledzenie oraz segmentacja mówcy
znajduja zastosowanie w wyznaczaniu aktualnego mówcy, w przypadku wideokonferencji, odnotowywa-
nia mówcy w nagraniach policyjnych i sadowych lub telewizyjnych i radiowych.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
2. Fizjologia i percepcja mowy
Przed przystapieniem do opisu systemu rozpoznawania mówcy nalezy przyblizyc zagadnienia
zwiazane z produkcja i percepcja głosu, które pomoga zrozumiec zagadnienia zwiazane z klasyfikacja
i parametryzacja mowy. Omówiony zostanie proces powstawania mowy, jego zwiazek z budowa traktu
głosowego mówcy oraz sposób w jaki mowa jako zjawisko fizyczne jest interpretowana przez człowieka.
Przedstawiony zostanie równiez sposób interpretowania mowy przez systemy komputerowe, zarówno
modelujace jak i nie modelujace percepcji ludzkiej.
Rysunek 2.1: Przebieg czasowy oraz spektrogram sygnału mowy [głos meski, słowo "Wojciech"]
2.1. Anatomia aparatu głosowego
Zrozumienie procesu powstawania głosu jest poznaniem budowy i działania organów pracujacych
podczas mowy. Tymi organami sa :
- płuca,
- krtan,
- jamy : ustna i nosowa oraz ich ujscia : usta i nozdrza (trakt głosowy).
16
2.1. Anatomia aparatu głosowego 17
JAMA NOSOWA
PODNIEBIENIE
JAMA USTNA
KRTAŃ
TCHAWICA
JAMA GARDŁOWA
PRZEŁYK
JĘZYK
Rysunek 2.2: Trakt głosowy
Zródło : http://www.cstr.ed.ac.uk/research/projects/inversion/speechprod.png
Wszystkie te narzady biora udział w produkcji głosu i tworza razem aparat głosowy. Kazda czesc,
przez swoja budowe i sposób pracy, ma wpływ na mowe oraz na informacje o mówcy zawarte w głosie.
Koniecznosc współpracy wszystkich czesci toru głosowego powoduje, ze kazda patologia ich pracy
powoduje uszczerbek umiejetnosci zwiazanych z mowa, od wad wymowy az po utrate zrozumiałosci
lub całkowita utrate mowy. Wiedza na temat tego układu umozliwia opracowanie metod ekstrakcji infor-
macji i wnioskowania o jego budowie wprost z sygnału głosowego, bedacego jego produktem, a takze
jego matematyczne modelowanie.
2.1.1. Płuca
PRZEPONA PRZEPONA
KLATKA
PIERSIOWA
PŁUCA
TCHAWICA
WDECH WYDECH
Rysunek 2.3: Praca płuc podczas oddychania
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
2.1. Anatomia aparatu głosowego 18
Zródło : http://wwwnt.if.pwr.wroc.pl/up/jotem/AnalizaMowy/FMain.html
Oprócz swojej podstawowej funkcji narzadu umozliwiajacego wymiane tlenu i dwutlenku wegla
miedzy krwia a atmosfera, podczas produkcji głosu płuca słuza jako zródło sprezonego powietrza.
Podczas wdechu, mozliwego dzieki rozkurzowi klatki piersiowej i przepony, powietrze jest zasysane
przez usta i magazynowane w płucach. Podczas wydechu, powodowanego skurczem klatki piersiowej i
przepony, powietrze z płuc jest wtłaczane w górna czesc toru głosowego tworzac tym samym wymusze-
nie o w przyblizeniu stałym cisnieniu, wiekszym niz cisnienie atmosferyczne, a zaleznym od wielkosci
i budowy płuc mówcy. Z perspektywy czestotliwosciowej, pobudzenie to ma charakter szumu białego.
Podczas mowy, fazy wdechu i wydechu nastepuja po sobie, dostarczajac energie, która po przejsciu przez
pozostała czesc traktu głosowego uzyska własciwa wypowiadanej wypowiedzi charakterystyke.
2.1.2. Krtan
NAGŁOŚNIA
CHRZĄSTKA
TARCZOWA
PRZEDSIONEK
KRTANI
CHRZĄSTKA
NALEWKOWATA
CHRZĄSTKA
NALEWKOWATA
GŁOŚNIA
JAMA
PODGŁOŚNIOWA
Rysunek 2.4: Schemat krtani
Zródło : http://wwwnt.if.pwr.wroc.pl/up/jotem/AnalizaMowy/FMain.html
Krtan składa sie z chrzastek, wiazadeł i miesni. Jest umiejscowiona pomiedzy tchawica i gardłem
a jej wazna funkcja oprócz udziału w procesie powstawania głosu jest zamykanie i otwieranie wejs-
cia do układu pokarmowego przy pomocy nagłosni. Chrzastki tworzace krtan sa ze soba połaczone
stawami, wiazadłami oraz miesniami które dzielimy na zewnetrze i wewnetrzne. Miesnie zewnetrze usta-
laja połozenie krtani a wewnetrzne uczestnicza w produkcji głosu. Wnetrze krtani jest wyscielone błona
sluzowa. Dzieli sie ona ze wzgledu na budowe na trzy czesci : pietro górne - przedsionek krtani łaczacy
sie z jama gardłowa, pietro srodkowe - fałdy głosowe i głosnia, pietro dolne - jama podgłosniowa łaczaca
sie z tchawica.
Najwazniejsza role, z punktu widzenia powstawania głosu, pełnia fałdy głosowe, tworzone przez
wiazadła, miesnie wewnetrzne krtani oraz nerwy. Przewezenie pomiedzy fałdami głosowymi nazywane
jest szpara głosni i dzieki pracy miesni fałów głosowych mozliwa jest modyfikacja napiecia ale co na-
jwazniejsze szerokosci szpary głosni az do jej zamkniecia. Szpara głosni jest podczas oddychania ot-
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
2.1. Anatomia aparatu głosowego 19
warta, podczas mowy moze natomiast zamyka sie, powodujac, ze stałe cisnienie pochodzace z płuc
zmienni swój charakter.
TCHAWICAFAŁDY
GŁOSOWESTRUMIEŃ
POWIETRZA Z
TCHAWICY
I. DRGANIA FAŁÓW
GŁOSOWYCH POD
WPŁYWEM PRZEPŁYWU
POWIETRZA
II. NAPRZEMIENNE
ZWIERANIE I ROZWIERANIE
FAŁDÓW KRTANIOWYCH
PROWADZI DO POWSTANIA
TONU KRATANIOWEGO
Rysunek 2.5: Schemat produkcji głoski dzwiecznej
Zródło : http://wwwnt.if.pwr.wroc.pl/up/jotem/AnalizaMowy/FMain.html
Jezeli wymawiana bedzie głoska dzwieczna, w krtani zajdzie proces zgodny z zasada Bernoulliego,
który zamieni stałe cisnienie z płuc w pobudzenie o charakterze prawie harmonicznym. Stanie sie to
w wyniku drgan fałdów głosowych, które zamykajac sie spowoduja zwiekszanie cisnienia w zamknietej
czesci krtani do momentu, w którym sprezone powietrze wymusi otwarcie szpary głosni. Cisnienie powi-
etrza zacznie spadac, a fałdy głosowe beda mogły znowu zamknac głosnie, rozpoczynajac proces od
poczatku. Poniewaz cały proces trwa bardzo krótko, fałdy głosowe zaczynaja wibrowac z czestotliwos-
cia zwana czestotliwoscia podstawowa głosu Fo lub jego wysokoscia. Wartosc tej czestotliwosci jest
zalezna od budowy krtani i jest równa od ok. 100 do 400 Hz i jest zazwyczaj dwa razy wyzsza u kobiet
niz u mezczyzn.
Rozluznienie fałdów głosowych, majace miejsce podczas szeptu i artykułowania głosek
bezdzwiecznych powoduje, ze powietrze pochodzace z płuc przejdzie przez krtan w sposób turbulentny
i zachowa swoja szumowa nature.
2.1.3. Jama ustna i nosowa
Wszystkie czesci traktu głosowego znajdujace sie powyzej krtani : gardło, jamy ustna i nosowa oraz
jezyk, jezyczek podniebienny, wargi, biora udział w kształtowaniu widma sygnału przechodzacego przez
krtan co nazywamy artykulacja. Poprzez kontrolowanie ułozenia kazdej z czesci górnego toru głosowego
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
2.1. Anatomia aparatu głosowego 20
0 0.005 0.01 0.015 0.02 0.0250
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Natężenie strumienia powietrza pochodzącego z tchawicy o częstotliwości 200 Hz
Na
tęrz
en
ie p
ow
ietr
za
Czas [sekundy]
0 1000 2000 3000 4000 5000 6000 7000 8000-40
-30
-20
-10
0
10
20
Widmo sygnału
dB
Częstotliwość [Hz]
0 0.002 0.004 0.006 0.008 0.01 0.0120
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Natężenie strumienia powietrza pochodzącego z tchawicy o częstotliwości 400 Hz
Na
tęrz
en
ie p
ow
ietr
za
Czas [sekundy]0 1000 2000 3000 4000 5000 6000 7000 8000
-40
-30
-20
-10
0
10
20
Widmo sygnału
dB
Częstotliwość [Hz]
Rysunek 2.6: Periodyczny strumien powietrza pochodzacy z tchawicy i jego widmo
mozliwa jest wymowa poszczególnych fonemów. Trakt głosowy tworzy zmienny w czasie ciag połac-
zonych ze sobie komór rezonansowych, zwanych rezonatorem nasady, których charakterystyka nakłada
sie na charakterystyke fali pochodzacej z krtani. Poprzez prace jezyczka podniebiennego mozliwe
jest skierowanie strumienia powietrza do jamy nosowej w przypadku artykułowania głosek nosowych,
do ust przy artykulacji głosek ustnych lub do obu jam jednoczesnie, zmieniajac udział rezonatorów
jamy nosowej lub ustnej w procesie artykulacji. Kształt i objetosc tych rezonatorów jest zalezny od
ruchomych narzadów artykulacji: szczeki dolnej, jezyka i warg ale równiez od nieruchomych: jamy
nosowej, podniebienia, zebów, i wiaze sie zawsze z czestotliwosciami rezonansowymi i ich harmon-
icznymi. Czestotliwosci te sa zwane formantami i sa identyfikowane jako maksima w widmie sygnału
mowy. Czestotliwosci odpowiadajace kolejnym formantom oznacza sie jako F1, F2, F3 itd. Sa one
obserwowane w powstałym głosie i moga stanowic parametry wykorzystywane zarówno w przypadku
rozpoznawania mowy jak i mówcy, z powodu bezposredniego zwiazku z jego traktem głosowym i
wytwarzana mowa.
Podczas generowania mowy ciagłej narzady artykulacji przechodza z jednego stanu w drugi w
sposób ciagły co powoduje zjawisko koartykulacji - wpływu poprzednio wymawianego fonemu na
nastepny. Pomiedzy stanami wystepuje moment utrzymania biezacego stanu, który powoduje chwilowa
produkcje drgania o charakterze zblizonym do stacjonarnego. Stan ten moze trwac ok. 20 ms. Podczas
segmentacji mowy mozna przyjac taka długosc ramki, jej wielokrotnosc lub wykorzystac segmentacje
nierównomierna z granicami ramek okreslanymi na podstawie biezacej energii sygnału [11].
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
2.2. Powstawanie głosu 21
2.2. Powstawanie głosu
Po przyblizeniu anatomii i zasad działania poszczególnych narzadów bioracych udział w produkcji
głosu, mozliwe jest podzielenie procesu mowy na czesc odpowiadajaca za generacje pobudzenia i czesc
artykułujaca, umozliwiajaca przekazanie informacji w fali bedacej nosnikiem mowy. Takie zobrazowanie
produkcji mowy umozliwi nie tylko jej modelowanie w systemach informatycznych ale równiez parame-
tryzacje zarówno mowy jak i jej zródła a wiec zakodowanie cech osobniczych [12, 13].
KRTAŃŻRÓDŁOPRZEPŁYW
POWIETRZAROZGAŁĘZIENIE
JAMA
NOSOWA
JAMA USTNA
IMPEDANCJA
PROMIENIOWANIA
NOZDRZY
IMPEDANCJA
PROMIENIOWANIA
UST
SUMACJA MOWA
Rysunek 2.7: Schemat ideowy traktu głosowego człowieka
Modelem, który bedzie odpowiedni dla zagadnien rozpoznawania mowy i mówcy bedzie model
zródło-filtr, w którym płuca i krtan stanowia zródło powietrza, o wyzszym niz atmosferycznym
cisnieniu, które po turbulentnym przejsciu przez tchawice i krtan moze byc traktowane jako szum biały
lub jezeli nastapi zwieranie fałdów głosowych drgan o czestotliwosci podstawowej. Niezaleznie od
natury pobudzenia, nastepuje modulacja charakterystyka toru głosowego tworzacego przez narzady
artykulacji, w wyniku której otrzymamy sygnał o widmie zaleznym od artykulacji. Ostateczny sygnał
mowy bedzie wynikiem sumacji drgan stłumionych podczas wydostawania sie głosu przez nozdrza i usta.
W przypadku modelowania produkcji głosu systemem liniowym, widmo głosu S(z) bedzie
wynikiem przejscia pobudzenia o widmie U(z) przez trakt głosowy o transmitancji H(z).
S(z) = U(z)H(z) (2.1)
Charakterystyka pobudzenia - szum lub ton podstawowy i jego harmoniczne, bedzie zachowywana
w sygnale mowy z uwzglednieniem wpływu odpowiedzi impulsowej traktu głosowego na odpowiednie
sygnały.
Ekstrakcja cech traktu głosowego sprowadza sie w takim modelu do załozenia niezaleznosci
pobudzenia i filtru. Polega na dokonaniu dekompozycji sygnału wynikowego na sygnał pobudzenia i
transmitancje toru głosowego. Metoda taka jest np. kodowanie z predykcja liniowa (ang. Linear predic-
tive coding) stosowana w kompresji mowy przy pomocy zakodowania sygnału informacja o czestotli-
wosci podstawowej pobudzenia oraz transmitancji filtru przy mozliwosci zadania rzedu filtru. Jest to
metoda powszechnie stosowana w telefonii, dzieki mozliwosci bardzo silnego zredukowania informa-
cji o sygnale mowy (najczesciej stosuje sie filtry 10 rzedu), oraz analizie mowy, z powodu mozliwosci
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
2.3. Percepcja mowy 22
uzyskania parametrów modelu zródło-filtr (mozliwe jest ustalenie czestotliwosci formantów oraz natury
pobudzenia).
0 1000 2000 3000 4000 5000 6000 7000 8000-40
-30
-20
-10
0
10
20
30Periodyczne pobudzenie strumieniem powietrza pochodzącego z tchawicy o częstotliwości 47 Hz - S(z)
Am
plit
ud
a [d
B]
Częstotliwość [Hz]
0 1000 2000 3000 4000 5000 6000 7000 8000-30
-20
-10
0
10
20Transmitancja traktu głosowego H(z) mówcy męskiego dla głoski "e"
Am
plit
ud
a [d
B]
Częstotliwość [Hz]
0 1000 2000 3000 4000 5000 6000 7000 8000-80
-60
-40
-20
0
20
40
60Widmo głosu będące kombinacją pobudzenia S(z) i transmitancji H(z)
Am
plit
ud
a [d
B]
Częstotliwość [Hz]
Rysunek 2.8: Przykład modelowania przy pomocy systemu liniowego produkcji głoski e
2.3. Percepcja mowy
Jako zjawisko fizyczne mowa moze byc rozpatrywana jako fala akustyczna o czestotliwosci od około
80 do 8 000 Hertzów. Proces percepcji mowy wskazuje jednak, ze oprócz czynników zwiazanych z
akustyka równie istotne sa aspekty zwiazane z analiza mowy przez mózg człowieka [14]. Liczne badania
nad zrozumiałoscia mowy w obliczu ograniczania pasma sygnału i wpływu szumu na zrozumiałosc
mowy dowiodły, ze ograniczenie pasma mowy zarówno filtracja dolno- jak i górnoprzepustowa do
czestotliwosci około 1800 Hz prowadzi do spadku zrozumiałosci mowy, czyli stosunku poprawnie
zrozumianych dzwieków do całej wypowiedzi, ze 100% w przypadku braku filtracji do około 67%.
Poszukiwanie pasma najbardziej istotnego z punku widzenia zrozumienia mowy doprowadziły do
wniosku, ze wykorzystanie jedynie pasma od 1000 do 2000 Hz pozwala zachowac zrozumiałosc
na poziomie 90%. Standardem dla telefonii jest natomiast pasmo od 300 do 3400 Hz, pozwalajace
zachowac prawie stu procentowa zrozumiałosc. Eksperymenty wskazuja jednak na mozliwosc uzyskania
lepszych rezultatów automatycznego rozpoznawania mówców w przypadku zastosowani systemów o
bardzo szerokim pasmie, prowadzac do wzrostu rozpoznawania z 84% dla pasma 0-4 kHz do 96% dla
pasma 0-16 kHz na grupie 15 mówców [15]. Wiaze sie to wykorzystaniem wiekszej liczby informacji,
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
2.3. Percepcja mowy 23
niekoniecznie istotnych z punktu widzenia percepcji mowy.
Mowa wykazuje bardzo duza odpornosc ze wzgledu na wpływ szumu i zniekształcen na zrozumi-
ałosc. Nawet w przypadku stosunku sygnału do szumu wynoszacego tylko 6 dB osiagana jest prawie 50%
zrozumiałosc tekstu, gdyz w przypadku człowieka mozliwe jest wykorzystane wiedzy poza akustycznej
na temat kontekstu i tematu wypowiedzi oraz dodatkowe scalenie audiowizualne dzwieku wypowiedzi
oraz gestów i ruchu warg mówcy, umozliwiajace "domyslenie sie"tresci wypowiedzi nawet w przypadku
jej niezrozumienia. Równiez zakłócenia wprowadzane przez media przenoszace mowe: linie telefon-
iczne, rejestratory i wzmacniacze audio takie jak addytywny szum, przesterowania czy zmniejszenia
pasma sygnału nie wykazuja tak drastycznego wpływu na zrozumiałosc mowy przez człowieka jak ma
to miejsce w przypadku rozpoznawania przez system komputerowy.
Rysunek 2.9: Obszar głosnosci mowy na tle krzywych izofonicznych
Zródło : http://pl.wikipedia.org/wiki/Izofona
W przypadku percepcji dzwieków mamy do czynienia z percepcja nieliniowa, zwiazana zarówno
z wrazeniem głosnosci jak i czestotliwosci dzwieku. Subiektywna głosnosc dzwieku jest bowiem
zwiazana z logarytmem jego natezenia (prawo Webbera-Feschera). Jest to zwiazane z dynamika sygnału
mowy i czułoscia ucha ludzkiego, zdolnego do rejestrowania cisnienia akustycznego wynoszacego
nawet 2 × 10−5Pa. Sposób odbierania głosnosci jest dobrze obrazowany przez krzywe izofoniczne
czyli łaczace jednakowo odbierane czestotliwosci. Ich kształt jest odzwierciedleniem subiektywnego
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
2.3. Percepcja mowy 24
odbierania głosnosci w zaleznosci od czestotliwosci i wskazuje na wieksza czułosc w przypadku
czestotliwosci powyzej 1 kHz.
W przypadku percepcji czestotliwosci istotna jest równiez nieliniowa rozdzielczosc ucha ludzkiego.
Mozliwosci rozróznienia róznic pomiedzy dwoma dzwiekami jest wieksza dla nizszych i mniejsza dla
wyzszych czestotliwosci, prowadzac do tego, ze subiektywna czestotliwosci jest zblizona do logarytmu
czestotliwosci mierzonej. Skala oddajaca percepcje wysokosci dzwieku jest m. in. skala melowa trans-
formujaca czestotliwosc wyrazona w Hertzach według zaleznosci
fmel(fHerz) = 2595 log10
(1 +
fHerz700
). (2.2)
Zaleznosc odwrotna to
fHerz(fmel) = 700
(10
fmel2595 − 1
), (2.3)
gdzie fHerz to czestotliwosc w Hertazch a fmel to czestotliwosc w melach.
0 1000 2000 3000 4000 5000 6000 7000 80000
500
1000
1500
2000
2500
3000
Częstotliwość w Herzach
Często
tliw
ość w
mela
ch
Częstotliość w Herzach i odpowiadająca jej częstotliość w melach
Rysunek 2.10: Melowa skala wysokosci dzwieku
Skala melowa zachowuje charakter zblizony do linowego do czestotliwosci 1000 Hz, transformuje
pasmo czestotliwosci 0 - 8 kHz w pasmo 0 - 3170 Mel.
Jezeli umiescimy mowe na tle obszaru percepcji ucha ludzkiego to zauwazymy, ze zajmuje ona
obszar mieszczacy sie w zupełnosci w zakresie rozpoznawanych przez ucho natezen i czestotliwosci.
Wskazuje to na ewolucyjne dostosowanie sie mowy do mozliwosci percepcji człowieka i pozwala przyjac
ogólne załozenia dla wymaganych parametrów systemów przetwarzajacych głos.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3. Ekstrakcja cech
Przed przystapieniem do precyzowania metod wykorzystanych do ekstrakcji cech mowy nalezy
przyblizyc zagadnienia z zakresu przetwarzania sygnałów [16]. Metody te beda czesciami algoryt-
mów umozliwiajacych parametryzacje sygnału mowy, bedaca pierwszym etapem rozpoznawania. Przed
mozliwoscia identyfikacji lub weryfikacji mówcy nalezy zadbac, aby sygnał był dostepny dla systemu
w postaci cyfrowej oraz aby mozliwa była jego analiza w dziedzinie czestotliwosci, gdyz ekstrakcja
cech nastepuje na widmie sygnału. Przejscie do dziedziny czestotliwosci moze poprzedzic podział syg-
nału na ramki o zadanej długosci, usuniecie z sygnału momentów nie zawierajacych głosu przy pomocy
algorytmów wykrywajacych cisze (VAC ang. Voice Activity Detector) lub equalizacja sygnału w celu
zmiany własnosci jego wydma, np. uwypuklenia wyzszych czestotliwosci lub usuniecia najnizszych. Po
przejsciu do dziedziny czestotliwosci przy pomocy transformacji fourierowskiej lub falowej, mozemy
dokonac ekstrakcji bezposrednio w widma lub jego cepstrum cech mierzac takie własciwosci widma
jak jego energie chwilowa, jej zmiany w całym pasmie w podpasmach oraz srednie i wariancje energii.
Wybór parametrów widma zalezy od sposobu modelowani mówcy. Obliczone parametry utworza wektor
cech charakteryzujacy ramke danych mowy, redukujac ilosc informacji odpowiadajaca sygnałowi mowy.
3.1. Wstepne przetwarzanie sygnału mowy
Niezaleznie od konfiguracji systemu, sygnał głosu bedzie zawsze poddany wstepnemu przetworze-
niu w celu umozliwienia ekstrakcji cech. Schemat blokowy obrazujacy wstepne przetwarzanie sygnału
obrazuje rysunek 3.1.
KONWERSJA
ANALOGOWO-
CYFROWA
Sa(t) Sd[n]USUWANIE
CISZY (VAC)
RAMKOWANIE
SYGNAŁUSd’ [n] Sd’’ [n] EQUALIZACJA S[n]
Rysunek 3.1: Przebieg wstepnego przetwarzania sygnału mowy
Wstepne przetwarzanie obejmuje przejscie od sygnału ciagłego do ciagu ramek zawierajacych
skwantowany sygnał o okreslonym czasie trwania, z uwzglednieniem mozliwosci nachodzacych na
siebie kolejnych ramek. W pierwszym etapie sygnał moze byc równiez poddany filtracji, korygujacej
charakterystyke toru nagraniowego lub uwypuklajaca pasma mowy.
25
3.1. Wstepne przetwarzanie sygnału mowy 26
3.1.1. Konwersja analogowo-cyfrowa
Aby analizowac sygnał analogowy jakim jest cisnienie akustyczne zwiazane z fala dzwiekowa nalezy
wykonac pomiar tego cisnienia. Mikrofon umozliwia zamiane cisnienia na napiecie lub prad elektryczny,
wprost proporcjonalny do wymuszenia. Rejestracje wartosci elektrycznej umozliwiaja przetworniki
analogowo-cyfrowe, zamieniajace sygnały analogowe, a wiec mogace przyjmowac dowolne wartosci, na
sygnały cyfrowe, o scisle okreslonych wartosciach o skonczonej, okreslonej przez reprezentacje cyfrowa,
precyzji. W obliczu niemoznosci dokonania ciagłej rejestracji i zapisu wartosci, nalezy wykorzystac
jedna z czestotliwosci rejestracji wykorzystywanego przez nas przetwornika. Czestotliwosc próbkowa-
nia sygnału jest oznaczana jako fs, okres próbkowania jest jej odwrotnoscia T = 1fs
. Okres próbkowania
wiaze spróbkowana wartosc sygnału wejsciowego z jego dyskretna wartoscia
sd[n] = sa(nT ). (3.1)
W przypadku sygnałów akustycznych czestotliwosc próbkowania moze wahac sie od 4 do 96 kHz,
w zaleznosci od aplikacji, np. dla mowy jest to najczesciej około 16 kHz. Wybór wartosci próbkowania
zostanie uzasadniony po przyblizeniu procesu odtwarzania sygnału z ciagu jego próbek.
Równie istotna jest kwantyzacja sygnału. Reprezentowanie sygnału na zadanym zbiorze wartosci
prowadzi do powstania róznic pomiedzy wartoscia spróbkowana a zapamietana. W przypadku systemów
komputerowych dokładnosc z jaka mozna reprezentowac wartosci analogowe wiaze sie bezposrednio
z długoscia sekwencji bitowej reprezentujacej jedna próbke. Jezeli długosc tej sekwencji wynosi N
bitów to zakres wartosci sygnału wyjsciowego obejmuje 2N wartosci, a najmniejsza róznica pomiedzy
wartosciami jakie mozna zmierzyc, nazywana takze wartoscia najmniej znaczacego bitu (LSB ang. Least
significant bit), to A2n , gdzie A to mozliwy zakres napiec na wejsciu. Róznice zastosowania róznych
rozdzielczosci kwantowania prezentuje rysunek 3.2, porównujacy jeden okres sinusoidy spróbkowany z
rozdzielczoscia 3 i 6 bitów.
Bład wynikajacy z kwantyzacji miesci sie pomiedzy - 0.5 LSB a 0.5 LSB. Stosunek sygnału
do szumu kwantyzacji (SQNR ang. Signal to Quantization Noise Ratio) jest równy w przyblizeniu
6.02 × N [dB], tak wiec zwiekszenie rozdzielczosci przetwornika o 1 bit zwieksza SQNR o 6.02 dB.
W przypadku sygnałów mowy stosuje sie rozdzielczosc przetwornika równa od 8 do 24 bitów (typowo
16 bitów).
3.1.2. Segmentacja sygnału
Gdy działamy juz na sygnale cyfrowym otrzymanym z przetwornika analogowo-cyfrowego, istotne
jest podzielenie szeregu próbek na wektory zawierajace okreslona liczbe próbek. WydzielenieW próbek
wejsciowych tworzy z nich ramke, najmniejsza czesc rozpatrywanego sygnału. Ma to na celu uchwyce-
nie quasi-stacjonarnych fal głosowych, wskazujacych na moment artykulacji pojedynczego fonemu i
stanu aparatu głosowego, który moze byc utrzymywany przez 20 do 80 ms. Długosc ramki bedzie sie
wiazała z rozdzielczoscia czasowa i czestotliwosciowa analizy widma sygnału. Wykorzystanie krótszych
ramek umozliwi lepsza rozdzielczosc czestotliwosciowa, obnizy jednak mozliwosc analizowania pasma.
Dobór długosci ramki powinien byc oparty o wiedze o przewidywanych długosciach fonemów ale takze
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.1. Wstepne przetwarzanie sygnału mowy 27
0 1 2 3 4 5 6-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
t[sek]
Am
plit
ud
a
Próbkowanie sinusoidy
6 bitów
3 bity
Rysunek 3.2: Próbkowanie i kwantyzacja sinusoidy
o wysokosci głosu mówców. Nalezy pamietac, ze głos zenski i dzieciecy jest wyzszy niz meski. Podział
sygnału na krótsze ramki umozliwia wiec wydzielenie fragmentów zawierajacych prawie niezmienne w
czasie momenty artykulacji.
Ramki nalezy wyznaczac z okresem stanowiacym 30 - 50 % ich długosci w celu poprawienia
rozdzielczosci czestotliwosciowej oraz w celu zapewnienia sobie mozliwosci zlokalizowania quasi-
stacjonarnych odcinków sygnału w srodku ramki. Takie podejscie wynika z wpływu zjawiska koartyku-
lacji, powodujacego przechodzenie z jednego stanu artykulacji w inny w sposób ciagły. Przesuwanie
ramki z okresem mniejszym niz długosc ramki zapobiega lokowaniu momentu przejscia miedzy stanami
w srodku ramki, z pominieciem obserwacji stanów quasi-stacjonarnych. Zbyt mały okres wyznaczania
ramek moze prowadzic do tworzenia ramek silnie nadmiarowych, skorelowanych ze soba i zmuszajacych
system do analizowania duzych informacji nie zwiekszajac przy tym jego sprawnosci.
Proces segmentacji polega na pobieraniu z sygnału ramki o długosci W i powtarzaniu tego pro-
cesu, kazdorazowo przesuwajac ramke o ∆W . Wyznaczenie czesci sygnału odpowiadajacego aktualnej
ramce polega na przemnozeniu sygnału z przesunieta funkcja okna ramki. Wybór okna ramki bedzie
miał wpływ na widmo sygnału w ramce. Funkcja okna moze byc prostokatna, trójkatna, byc funkcja
Hamminga, Gaussowska lub inna, przyjmujaca wartosci zerowe poza obszarem ramki.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.1. Wstepne przetwarzanie sygnału mowy 28
3.1.3. Funkcje okna czasowego
Z powodu wpływu wybranej funkcji okna czasowego ramki na widmo z niej otrzymane, a wiec
równiez na wyekstrahowane z niej cechy, konieczne jest przyblizenie. Funkcja okna w[n] ma długosc
W . Aby otrzymac ramke sygnału nalezy dokonac mnozenia przesunietego okna i sygnału
s′d[n] = sd[n] ∗ w[n]. (3.2)
Funkcja okna i wynik operacji maja zawsze W próbek . Najbardziej oczywista funkcja okna jest okno
prostokatne zdefinoiwane jako
wp[n] =
{1 0 ≤ n ≤ N − 1
0 dla pozostałych.
Nie zmienia ono sygnału w dziedzinie czasu, ale w dziedzinie widma powoduje wyciek czes-
totliwosci, jak potocznie okresla sie wzajemny wpływ widma funkcji okna na widmo ramki. Widmo
funkcji okna tworzy prazki czestotliwosci odpowiadajacej długosci okna. Oprócz dominujacego prazka
głównego, obecne beda niepozadane prazki boczne, zniekształcajace widmo sygnału ramki. Ma to
zwiazek z interpretacja mnozenia sygnału i ramki, które w dziedzinie czestotliwosci odpowiada splo-
towi widma sygnału i okna. Splot ten ma miał postac
1
2πS(ω) ∗W (ω) =
1
2π
∫ π
−πS(θ) ·W (ω − θ)dθ. (3.3)
Innych popularnym w analizie mowy i posiadajacym lepsze mozliwosci separacji widm niz okno
prostokatne jest okno trójkatne
wt[n] =W
2−
∣∣∣∣∣n− W − 1
2
∣∣∣∣∣.Najczesciej uzywanym oknem jest okno Hamminga
wH [n] = 0.538− 0.461 cos( 2πn
W − 1
).
Porównanie funkcji okien i ich widm pozwala dostrzec ich własciwosci. Okna prostokatne i Ham-
minga posiadaja podobna szerokosc listka podstawowego ale róznia sie struktura listków bocznych. W
przypadku okna Hamminga zanikaja one szybciej, co bedzie miało pozytywny wpływ na "wyciek czes-
totliwosci". W odniesieniu do tego zjawiska, okno trójkatne oferuje najgorsze własciwosci, posiada jed-
nak waski listek podstawowy, co bedzie powodowało wyzsza rozdzielczosc czestotliwosciowa okna.
W odniesieniu do wpływu długosci okna, nalezy stwierdzic, ze dłuzsze okna oferuja wyzsza rozdziel-
czosc czestotliwosciowa zwiazana z mniejsza szerokoscia listka podstawowego widma. Nalezy jednak
pamietac, ze towarzyszy temu obnizenie rozdzielczosci czasowej.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.1. Wstepne przetwarzanie sygnału mowy 29
Rysunek 3.3: Porównanie okien ( prostokatnego, trójkatnego oraz Hamminga ) w dziedzinie czasu oraz
czestotliwosci
Rysunek 3.4: Porównanie okien Hamminga o długosci W1 = 32 i W2 = 96 próbek
3.1.4. Equalizacja sygnału
Equalizacja sygnału okresla operacje filtrowania sygnału dokonane w celu uwydatnienia lub zm-
niejszenia wybranych pasm lub czestotliwosci. Moze miec ono na celu uwydatnienie wyzszych czes-
totliwosci mowy, wiazanych z wyzszymi formantami, tłumionymi zazwyczaj przez mikrofony i linie
telefoniczne. Taka eqalizaja nosi nazwe preemfazy i jest filtracja górnoprzepustowa majaca na celu zbal-
ansowanie energii zawartej w wysokich i niskich pasmach. W przypadku fonemów dzwiecznych, wiek-
szosc energii koncentruje sie w nizszych pasmach, co ma zwiazek ze spadkiem mocy tonu krtaniowego
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.1. Wstepne przetwarzanie sygnału mowy 30
o około -6 dB na oktawe. Efekt taki nie dotyczy fonemów bezdzwiecznych, posiadajacych dzieki quasi-
szumowemu wymuszeniu bardzo zrównowazone widmo.
Najczesciej wykorzystywanym filtrem preemfazy jest górnoprzepustowy filtr pierwszego rzedu
H(z) = 1− αz−1, (3.4)
czyli
s′′[n] = s′d[n]− αs′d[n− 1] (3.5)
w którym współczynnik α > 0 wpływa na stromosc jego charakterystyki. Z punktu widzenia głosu
najbardziej pozadane jest uwypuklanie wyzszych czestotliwosci o około +6 dB, co odpowiada α ∈[0, 9; 1]. Widmo filtrów preemfazy obrazuje rysunek 3.5.
0 1000 2000 3000 4000 5000 6000 7000 8000-35
-30
-25
-20
-15
-10
-5
0
5
10
Częstotliwość [Hz]
[dB
]
Filtry preemfazy
= -0.9
= -0.94
= -0.98
= -0.5
Rysunek 3.5: Wpływ współczynnika α na charakterystyke filtru preemfazy
Wpływ preemfazy na głoski dzwieczne i bezdzwieczne, obrazuja rysunki 3.6 i 3.7. Pozwalaja one
dostrzec wyrównanie sie widma głoski dzwiecznej, dla czestotliwosci wiekszych niz 4 kHz i obnizenie
energii niskich czestotliwosci w obu przypadkach. Preemfaza została dokonana z współczynnikiem α =
0, 9.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 31
0 1000 2000 3000 4000 5000 6000 7000 8000-50
-40
-30
-20
-10
0
10
20
30
Częstotliwość [Hz]
[dB]
Głoska dzwięczna - widmo oryginalne
0 1000 2000 3000 4000 5000 6000 7000 8000-50
-40
-30
-20
-10
0
10
20
30
Częstotliwość [Hz]
[dB]
Głoska dzwięczna - widmo z preemfazą
Rysunek 3.6: Wpływ filtru preemfazy na widmo amplitudowe głoski dzwiecznej
0 1000 2000 3000 4000 5000 6000 7000 8000-60
-50
-40
-30
-20
-10
0
10
20
30
Częstotliwość [Hz]
[dB]
Głoska bezdzwięczna - widmo oryginalne
0 1000 2000 3000 4000 5000 6000 7000 8000-60
-50
-40
-30
-20
-10
0
10
20
30
Częstotliwość [Hz]
[dB]
Głoska bezdzwięczna - widmo z preemfazą
Rysunek 3.7: Wpływ filtru preemfazy na widmo amplitudowe głoski bezdzwiecznej
3.2. Przebieg ekstrakcji cech
Po zakonczeniu wstepnego przetwarzania głosu dysponujemy dyskretnym, podzielonym na ramki
sygnałem poddanym preemfazie. Z ramek tych zostana wyekstrahowane cechy mówcy. Jako ze metoda
ta operowac bedzie cechami niskiego poziomu, zostanie omówiony ogólny algorytm pozyskiwania tych
cech bezposrednio z sygnału mowy. Podstawowa analiza bedzie w tym przypadku stanowiła analiza
pasmowa, operujaca na widmie sygnału a w szczególnosci na jego podpasmach. Od wyboru podpasm i
sposobu interpretacji informacji w nich zawartych zalezec bedzie ostateczny wektor cech otrzymany z
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 32
ramki sygnału.
Przebieg ekstrakcji cech mozemy podzielic na etapy, najpierw nastepuje analiza fourierowska syg-
nału przeprowadzona w celu analizy sygnału w dziedzinie czestotliwosci oraz normalizacja energii
widma. Na potrzeby rozpoznawania mówców podzielimy ramki na klasy fonetyczne, przy czym kry-
terium podziału bedzie róznorodnosc miedzy osobnicza zwiazana z kazda z klas. Nastepnie mozliwe
jest przeprowadzenie filtracji pasmowej z wykorzystaniem zdefiniowanego wczesniej banku filtrów oraz
obliczenie energii zawartej w poszczególnych podpasmach. Energie te utworza wektor, poddany deko-
relacji przy pomocy transformacji kosinusowej. Ostateczny wektor bedzie tworzyc cepstrum mocy,
niosac informacje na temat zmian w poszczególnych pasmach. Bedzie zawierał tylko informacje o
widmie amplitudowym, wiec nie bedzie mozliwe odtworzenie za jego pomoca sygnału oryginalnego.
Cepstrum to moze byc poddane dalszym przekształceniom zwiazanym z obliczeniem jego pochod-
nych, rozszerzajacymi pózniej podstawowy wektor cech lub poddawane operacji lifteringu cepstralnego,
powodujacej wygładzenie obwiedni cepstrum przez tłumienie wybranych składników wektora.
DFT
Log( || )
DCT
Liftering
Cepstrum
Δ / ΔΔ
Cepstrum
S[n]
Klasyfikacja
Bank filtrów
Y[j]
c[n]
C[n] d[n]
Filtry
MeloweFiltry Liniowe
Fm[k] Fl[k]
Ŝ[k]
Ŝ’[k]
Rysunek 3.8: Ekstrakcja cech niskiego poziomu
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 33
3.2.1. Analiza fourierowska
Analiza fourierowska stanowi najczesciej uzywane narzedzie analizy sygnałów umozliwiajace
przedstawienie dowolnej funkcji w dziedzinie czestotliwosci. Transformacja ta rozkłada funkcje na sz-
ereg funkcji sinusoidalnych o zmiennej czestotliwosci, fazie i amplitudzie dostarczajac informacji o wid-
mie sygnału obserwowanego w dziedzinie czasu. Dziedzina widma jest zbiór liczb zespolonych. Trans-
formacja odwrotna umozliwia odtworzenie przebiegu sygnału na podstawie jego widma.
Dla sygnału dyskretnego s[n], n = 0, 1, ...N − 1 składajacego sie z N próbek, pobranych ze stałym
okresem, dyskretna transformacja fourierowska (DFT, ang Discrete Fourier Transform), jest zdefin-
iowana nastepujaco [?, Zi05]
ˆS[k] = F(S[n]) =
N−1∑n=0
S[n]e−j2πnk/N , dla 0 ≤ k ≤ N − 1, (3.6)
gdzie k stanowi dyskretna czestotliwosc. Wynikiem transformacji jest ciag wartosci zespolonych o
długosci N.
Zespolona składowa czestotliwosciowa widma o indeksie k definiujemy jako
S[k] = SRe[k] + jSIm[k], (3.7)
lub przy pomocy współrzednych biegunowych
S[k] = |SRe[k]|+ ejSIm[k], (3.8)
gdzie |S[k]| =√SRe[k]
2+ SIm[k]
2stanowi współczynnik amplitudowy a ∠S[k] = tan−1
(SIm[k]
SRe[k]
współczynnik fazowy k-tej składowej widma.
Przy analizowaniu widma sygnału bedziemy sie posługiwali najczesciej widmem amplitudowym,
mocniej zwiazanym z wpływem budowy aparatu głosowego niz widmo fazowe. Badania nad percepcja
głosu prowadza jednak do potwierdzenia wpływu informacji fazowej, szczególnie w obecnosci zakłócen
[17, 18] .
Element o numerze k = 0 stanowi składowa stała sygnału. N jest równowazne czestotliwosci
próbkowania sygnału. Z powodu natury widma ˆS[k] wartosc N/2 jest czestotliwoscia Nyquista, maksy-
malna czestotliwoscia zawarta w N wartosciowym widmie. Wiaze sie z tym symetria widma amplitu-
dowego i asymetria widma fazowego wzgledem czestotliwosci N/2, co w przypadku widma sygnałów
rzeczywistych umozliwia reprezentacje widma za pomoca N/2 czestotliwosci.
Transformacja odwrotna do transformacji Fouriera (IDFT, ang. Inverse Discrete Fourier Transform)
jest zdefiniowana jako
S[k] = F−1(S[n]) =1
N
N−1∑n=0
S[n]ej2πnk/N , 0 ≤ n ≤ N − 1, (3.9)
gdzie n reprezentuje dyskretne wartosci czasu. Umozliwia ona odtworzenie sygnału przy pomocy
jego widma.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 34
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07-0.1
-0.05
0
0.05
0.1
Fonem [a] oraz jego widmo amplitudowe i fazowe
Czas [sek]
0 1000 2000 3000 4000 5000 6000 7000 8000
-10
0
10Widmo amplitudowe
Częstotliwość [Hz]
[dB
]
0 1000 2000 3000 4000 5000 6000 7000 8000-1
-0.5
0
0.5
1Widmo fazowe
Częstotliwość [Hz]
[]
Rysunek 3.9: Fonem ’a’
0 0.01 0.02 0.03 0.04 0.05 0.06-0.1
-0.05
0
0.05
0.1
Fonem [g] oraz jego widmo amplitudowe i fazowe
Czas [sek]
0 1000 2000 3000 4000 5000 6000 7000 8000
-10
0
10Widmo amplitudowe
Częstotliwość [Hz]
[dB
]
0 1000 2000 3000 4000 5000 6000 7000 8000-1
-0.5
0
0.5
1Widmo fazowe
Częstotliwość [Hz]
[]
Rysunek 3.10: Fonem ’g’
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 35
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
Fonem [h] oraz jego widmo amplitudowe i fazowe
Czas [sek]
0 1000 2000 3000 4000 5000 6000 7000 8000
-10
0
10Widmo amplitudowe
Częstotliwość [Hz]
[dB
]
0 1000 2000 3000 4000 5000 6000 7000 8000-1
-0.5
0
0.5
1Widmo fazowe
Częstotliwość [Hz]
[]
Rysunek 3.11: Fonem ’h’
Obie transformacje sa liniowe, to znaczy dla kazdych stałych α, β oraz dowolnych sygnałów S1[k]
oraz S2[k] spełniaja zaleznosci :
F(αS1[n] + βS2[n]) = αF(S1[n]) + βF(S2[n]), (3.10)
F−1(αS1[n] + βS2[n]) = αF−1(S1[n]) + βF−1(S2[n]). (3.11)
Szybka transformata fourierowska
Najczesciej wykorzystywana implementacja DFT jest szybka transformata fourierowska (FFT, ang.
Fast Fourier Transform) [16], wykorzystujaca okresowosc widma i optymalizujaca kolejnosc działan
wykonywanych podczas obliczen w celu niewykonywania wielokrotnie tych samych działan. Pozwala
ona obliczyc widmo sygnału o N próbkach ze złozonoscia obliczeniowaO(N log2N) wzgledemO(N2)
wynikajaca ze wzoru (3.6). Prowadzi to do Nlog2N
krotnego przyspieszenia obliczen, co dla N = 8192
prowadzi do około 630 krotnego zmniejszenia potrzebnej liczby operacji. Aby móc wykorzystac algo-
rytm FFT musimy korzystac z sygnałów których długosc równa sie
N = 2m, gdziem ∈ N+. (3.12)
W przypadku sygnału krótszego nalezy obliczyc FFT z sygnału uzupełnionego na poczatku lub na
koncu zerami tak aby jego długosc spełniała (3.11). Nie ma to wpływu na otrzymane widmo.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 36
3.2.2. Ocena zróznicowania mówców
Badania nad akustyka i percepcja mowy poprzedziły badania nad jej cyfrowym przetwarzaniem.
Wiele metod przedstawiania i analizy sygnału mowy, takich jak stosownie nieliniowych skal czes-
totliwosci i mocy, zostało przystosowane i z powodzeniem wykorzystywane w rozpoznawaniu mowy
i mówcy. Zapotrzebowanie na coraz doskonalsze systemy analizy głosu doprowadziło do poszuki-
wan nowych metod reprezentacji sygnału mowy, pozwalajacych na lepsze uchwycenie jej zawartosci
i niewrazliwego na trudne warunki nagran i transmisji. Dobrym kierunkiem wydaje sie pełne wykorzys-
tanie mozliwosci rozpatrywani sygnału z pominieciem modelu percepcji człowieka, co staje sie mozliwe
przy wykorzystaniu przetwarzania cyfrowego. Mozliwa jest analiza sygnałów o mocach i czestotliwos-
ciach umykajacych uchu człowieka a takze analizowanie sygnałów, które z powodu czasu trwania i
obecnosci zakłócen nie sa zrozumiałe dla człowieka. Mozliwe staje sie równiez modelowanie sygnału w
zaleznosci od cech mówcy - jego płci, jezyka i akcentu.
Zaproponowana metoda alternatywna do opartej na modelu percepcji człowieka bedzie polegała na
zastosowaniu podziału pasma czestotliwosci nie według sposobu w jaki odbiera to ludzkie ucho, ale tak
aby ze statystycznego punktu widzenia badanie skupiło sie na podpasmach o najwiekszym wpływie na
róznorodnosc mówców. Aby ocenic udział poszczególnych czesci pasma w róznorodnosci miedzyosob-
niczej potrzebujemy metody, która dla kazdej czestotliwosci lub podpasm okresli ilosc informacji os-
obniczej w niej zawartej. W pracy za taka metode przyjeto statystyczny współczynnik F-Ratio (ang.
Fischer-Ratio) [19]. Okresla on stosunek wariancji miedzyklasowych (ang. inter-speaker variance)
do wariancji wewnatrz klasowej (ang. inter-speaker variance). Oznacza to wysoki F-Ratio przy duzej
róznorodnosci miedzy mówcami.
F-Ratio =wariancja srednichsrednia wariancji
(3.13)
F-Ratio jest obliczany jako
F-Ratio =1M
∑Mi=1(ui − u)2
1NM
∑Mi=1
∑Nj=1(xji − ui)2
, (3.14)
gdzie xji to wartosc kolejnych próbek j dla próbki mówcy i w zadanym pod pasmie,
ui =1
N
N∑j=1
xji (3.15)
to srednia próbek w podpasmie dla mówcy i,
u =1
NM
M∑i=1
N∑j=1
xji (3.16)
to srednia dla wszystkich podpasm i mówców.
Badanie sygnałów najlepiej prowadzic metoda analizy ich podpasm wydzielonych filtrami trójkat-
nymi, Gaussa lub innymi okienkujacymi pasmo. Filtry moga miec rozdzielczosc stała, dostosowana do
skali melowej lub tez inna nieliniowa. Poczatkowo badany jest bank filtrów Gaussa o stałej szerokosci i
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 37
przesunieciu w dziedzinie czestotliwosci. Słuzy on wydzieleniu podpasm do dalszej analizy, tak aby nie
wyrózniac zadnego z pasm. Badania zostały przeprowadzone dla 24 filtrów w banku, tak, ze kazdy filtr
ma rozdzielczosc około 340 Hz. Aby zbadac róznice F-Ratio miedzy róznymi mówcami wykorzystane
zostały nagrania pochodzace z korpusu mowy Corpora, podzielne dzieki informacji dostarczanej przez
twórców korpusu na fonemy, tak aby kazdy plik testowy zawierał tylko jeden fonem. Oszacowany został
współczynnik F-Ratio dla 20 najczesciej wystepujacych fonemów, tak aby przy badaniu pojedynczego
fonemu uzytych było co najmniej 350 nagran zawierajacych ten fonem. Po przedstawieniu współczyn-
ników F-Ratio dla kazdego z podpasm i porównaniu wyników dla zbadanych fonemów, dokonano podzi-
ału na trzy grupy. Zróznicowanie współczynnika istotnosci dla róznych podpasm wiaze sie bezposrednio
z róznicami w budowie traktu głosowego człowieka.
0 1000 2000 3000 4000 5000 6000 7000 80000
1
2
3
4
5
6
7
8
9
Fonemy r,j,n,m,a,o,i,e,u,y
f [Hz]
F-R
atio
Rysunek 3.12: Klasa I - fonemy ’tkwbdg’
W przypadku fonemów ’tkwbdg’ obserwujemy maksimum istotnosci dla czestotliwosci ponizej 2000
Hz. Klasa ta składa sie zarówno z głosek dzwiecznych jak i bezdzwiecznych.
W przypadku fonemów ’zscjh’ mozemy okreslic dwa wyrazne maksima, jedno ponizej 1000 Hz oraz
drugie około 5000 Hz.
Najliczniejsza klase trzecia tworza fonemy ’raoieuyjnm’. W przypadku oceny róznorodnosci miedzy
osobniczej najwazniejsze okazuja sie dla nich czestotliwosci do 500 do około 4000 Hz.
Podczas eksperymentów z dwoma klasami, połaczeniu ulegna klasy 1 i 2. Powód nie wykorzystania
wiekszej liczby klas zostanie przedstawiony w Rozdziale 5, zawierajacym wnioski z przeprowadzonych
eksperymentów.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 38
Na podstawie otrzymanych wyników oraz eksperymentów przeprowadzanych dla jezyka
japonskiego oraz angielskiego, mozemy wywnioskowac, ze najczesciej róznorodnosc pojedynczego
fonemu lub wypowiedzi osiaga kilka minimów oraz maksimów [19, 15]. Pierwsze maksimum, ob-
serwowane dla czestotliwosci ponizej 500 Hz, wiaze sie ze zróznicowaniem czestotliwosci podstawowej
traktu głosowego. Kolejne maksimum wystepujace około 2000 Hz jest zwiazane z drganiami czesci kr-
tani zwanej zachyłkiem gruszkowatym. Ostatnie pasmo, od 3000 do 7000 Hz jest najprawdopodobniej
zwiazane z wymowa spółgłosek.
Wnioski płynace z statystycznych badan sygnałów mowy mozna interpretowac takze w odniesieniu
do fizjologii słuchu. Jesli porównamy otrzymane wyniki do krzywych izofonicznych, zauwazymy, ze
czułosc słuchu jest najwieksza w zakresie czestotliwosci srednich – to jest od ok. 500 Hz do 5 kHz.
0 1000 2000 3000 4000 5000 6000 7000 80000
1
2
3
4
5
6
Fonemy t,k,b,d,g
f [Hz]
F-R
atio
Rysunek 3.13: Klasa II - fonemy ’zscjh’
0 1000 2000 3000 4000 5000 6000 7000 80000
1
2
3
4
5
6
7
Fonemy z,w,s,c,h,j,h
f [Hz]
F-R
atio
Rysunek 3.14: Klasa III - fonemy ’raoieuyjnm’
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 39
Pomimo, ze z punktu widzenia zrozumienia mowy wysokie czestotliwosci nie sa najistotniejsze, wysoka
czułosc słuchu w tym zakresie wskazuje na ich udział w percepcji a nastepnie w identyfikacji zródeł.
DFT
Log( || )
KNN
DECYZJA
S[n]
OBLICZENIE ŚREDNICH
I WARIANCJI ENERGII
PODPASM
M[j] V[J]
Ŝ[k]
Rysunek 3.15: Schemat działania klasyfikatora
Wnioskiem z faktu istnienia maksimów i minimów jest koniecznosc uwzglednienia ich połozenia
podczas wyboru banku filtrów. W przypadku rozpoznawania mówcy, korzystne było by posiadanie
wiekszej ilosci filtrów w okolicach podpasm o wiekszej róznorodnosci miedzy osobniczej. W przy-
padku rozpoznawania mowy pozadane byłoby natomiast ignorowanie róznic miedzy mówcami a wiec
posiadanie filtrów o duzej rozdzielczosc dla podpasm o minimach istotnosci miedzy osobniczej. W
przypadku mówców, aby wykorzystac wiedze o fonemach o zblizonym rozkładzie F-Ratio wsród pod-
pasm, bedziemy musieli wstepnie podzielic ramki mówcy na klasy odpowiadajace klasom fonemów.
Wykorzystane do tego zostanie klasyfikator k-means, wykorzystujacy osobno wektor srednich i wari-
ancji podpasm. Kazda badana ramka mowy bedzie poddawana transformacie fourierowskiej. Otrzymane
widmo bedzie nastepnie normalizowane przez swoja energie i logarytmowane w celu redukcji dynamiki
i niefaworyzowani zadnego z podpasm. Elementy wektora, na podstawie których zostanie przeprowad-
zona klasyfikacja, beda srednimi i wariancjami energii z podpasm otrzymanych przy pomocy liniowego
banku filtrów. Jako miara odległosci od zbioru wzorców, utworzonych przez próbki zawierajace fonemy z
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 40
odpowiednich grup, moze byc wykorzystana metryka: euklidesowa, maksimum lub Manhattan. Mozliwe
jest wykorzystanie tylko srednich (M) lub tylko wariancji (V), ale najlepszy rezultat jest otrzymywany
dla kombinacji liniowej miar (M+V). Efektywnosc klasyfikatora, siegajaca 87% dla 12 podpasm i 2000
fonemów w bazie wzorców, mozna uznac z akceptowalna w przypadku wykorzystania do podziału na
grupy fonemów, natomiast przecietna w przypadku wykorzystania do rozpoznawania fonemów i wyko-
rzystania do rozpoznawania mowy. Zaleta takiej klasyfikacji jest uproszczenie wektora cech wykorzysty-
wanego podczas klasyfikacji.
4 6 8 10 12 14 16 18 20 22 2475
76
77
78
79
80
81
82
83
84
Skuteczność klasyfikatora
Ilość podpasm
Po
pra
wn
ych k
lasyfika
cji
[%]
M
V
M+V
Rysunek 3.16: Skutecznosc klasyfikatora kNN dla róznej liczby podpasm
Ze wzgledu na wykorzystana liczbe podpasm, poprawa wydajnosci klasyfikatora obserwowana jest
tylko w przypadku wykorzystania wiecej niz 8 podpasm. Ze wzgledu na potrzebe redukcji czasu obliczen
na tym etapie rozpoznawania, do klasyfikacji przyjete zostało 12 podpasm.
1 2 3 4 5 6 7 8 9 1076
77
78
79
80
81
82
83
84
85
Skuteczność klasyfikatora
NN
Popra
wnych k
lasyfikacji
[%]
M
V
M+V
Rysunek 3.17: Skutecznosc klasyfikatora kNN dla róznej liczby sasiadów k
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 41
Z powodu wykorzystania klasyfikatora kNN konieczne jest przyjecie liczby sasiadów wykorzysty-
wanych podczas decydowaniu o przynaleznosci klasowej badanej próbki. W naszym przypadku, przy
3 klasach, liczba porównywanych wzorów w bazie powinna pozwolic jednoznacznie sklasyfikowac
próbke, a wiec byc liczba parzysta. Najlepsze rezultaty otrzymujemy dla 6 najblizszych sasiadów.
Rezultaty mozna równiez odniesc do przydatnosci najczesciej spotykanych w analizie mowy banków
filtrów. Filtry melowe posiadaja wysoka rozdzielczosc czestotliwosciowa dla niskich czestotliwosci i
niska dla wysokich. Wskazuje to na nie najlepsza ekstrakcje cech, jezeli te byłyby obecne w wyzszych
podpasmach. Filtry liniowe posiadaja stała szerokosc i przesuniecie, gwarantujac stała rozdzielczosc,
jednak aby uzyskac rozdzielczosc filtru melowego musza byc liczniejsze, co mocno zwieksza nakład
obliczeniowy.
3.2.3. Analiza pasmowa
Analiza pasmowa jest grupa metod analizy widma sygnału, w okreslonych zakresach czestotliwosci.
Punktem wyjscia analizy jest cały sygnał lub jego pełne widmo, które po przetworzeniu redukowane jest
do informacji na temat badanych podpasm. Najbardziej powszechna metoda jest zastosowanie filtrów
cyfrowych, prowadzacych w dziedzinie czasu do splotu sygnału z odpowiedzia impulsowa filtru
Y [n] = S[n]×H[n] =∞∑
k=−∞S[k]H[n− k], (3.17)
gdzie S[n] to próbka o indeksie n sygnału , H[n] to odpowiedz impulsowa filtru.
W dziedzinie czestotliwosci filtracja odbywa sie poprzez wazenie widma sygnału z widmem filtru.
Obie te metody sa równowazne, ale z powodu pewnych własciwosci widma i mozliwosci jego dekon-
wolucji zostanie wykorzystana filtracja w dziedzinie czestotliwosci. Widmo otrzymane z kazdej ramki
sygnału zostaje przemnozone próbka po próbce przez wagi odpowiadajace wartosciom filtra dla danej
czestotliwosci. Tak otrzymane podpasmo jest redukowane do pojedynczej wartosci poprzez usrednienie
wynikowych próbek. W przypadku wykorzystywania wielu filtrów w celu analizy róznych podpasm
mamy do czynienia z analiza wykorzystujaca bank filtrów tworzony przez wszystkie filtry. Poprzez
wykorzystanie banku filtrów F złozonego z M filtrów, dokonywana jest redukcja N wartosciowego
pasma do M wartosciowego wektora, przy czym M < N . Dla podpasam j sygnału S ramki i wynikiem
filtracji jest
Yi =
N∑j=1
S[j]Fi[j], i = 1...M. (3.18)
Najwiekszy wpływ na wynik analizy ma wybór filtrów wykorzystanych do analizy. Analizowanie
podpasm osiagane jest przez wykorzystanie filtrów przyjmujacych wartosci niezerowe tylko dla czes-
totliwosci badanego pasma. Filtry te moga byc na przykład prostokatne lub trójkatne, pozadane jest aby
spełniały zaleznosc
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 42
M∑j=1
Fi[j] = 1 (3.19)
oznaczajaca, ze dla kazdej czestotliwosci wagi filtrów sumuja sie do jednosci, nie powodujac zwiek-
szania energii wszystkich podpasm wzgledem całego widma. Jest to trudne do osiagniecia głównie z
powodu ograniczen filtrów dla najnizszych i najwyzszych czestotliwosci i precyzji reprezentacji filtru.
Niepozadanym efektem wykorzystania banku filtrów, moze byc korelacja wartosci wektora analizy pas-
mowej w przypadku nakładania sie na siebie pasm filtrów.
0 1000 2000 3000 4000 5000 6000 7000 80000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Częstotliwość [Hz]
Amplituda
Bank trójkątnych filtrów liniowych
(a) skala liniowa
0 1000 2000 3000 4000 5000 6000 7000 80000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Częstotliwość [Hz]
Amplituda
Bank trójkątnych filtrów melowych
(b) skala melowa
Rysunek 3.18: Banki filtrów
Banki filtrów ze wzgledu na sposób podziału pasma sygnału, mozemy podzielic na liniowe i nielin-
iowe. Filtry liniowe posiadaja najczesciej liniowo narastajace czestotliwosci srodkowe, w przypadku
nieliniowego podziału pasma mamy do czynienia z filtrami w których czestotliwosci srodkowe wyz-
naczaja skale melowa lub skale ERB. Skale nieliniowe zostały opracowane w celu symulowania nielin-
iowej percepcji ucha ludzkiego, zwiazanej ze zmiana umiejetnosci prawidłowego rozrózniania bliskich
czestotliwosci wraz ze wzrostem ich wartosci. W przypadku kazdego filtru, czestotliwosci graniczne fil-
tru i sa równe czestotliwosciom srodkowym filtrów i − 1 i i + 1. Wynika z tego liniowa i nieliniowa
szerokosc filtrów.
Inna metoda dekompozycji pasmowej jest analiza falkowa, wykorzystujaca funkcje falkowe i
pozwalajaca na prowadzenie analizy czasowo-czestotliwosciowej lub analizy pasmowo-harmonicznej
analizujacej widma, umozliwiajac obserwacje powtarzalnosci wystepowania sygnałów o okreslonych
czestotliwosciach w całej wypowiedzi. Analiza falkowa wymaga dostosowania drzewa według którego
zostanie dokonana dekompozycja, wybrania falki i sposobu ekstrakcji cech mówcy z sygnału tak, aby
mozliwa była analiza cech mówcy i mowy [11]. Analizy wykorzystujace okresowe powtórzenia widma
wymagaja analizy widma sygnału otrzymanego przy pomocy transformaty falkowej lub fourierowskiej
przez transformate fourierowska i moga byc wykorzystane jako zródło dodatkowej informacji na temat
badanego mówcy.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 43
0 1000 2000 3000 4000 5000 6000 7000 80000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Częstotliwościowa [Hz]
Skala
znorm
aliz
ow
ana
Skale częstotliwościowe
ERB
Mel
Liniowa
Rysunek 3.19: Skale czestotliwosci
3.2.4. Cepstrum
Cepstrum stanowi jedna z metod badania widm sygnałów, zarówno ich czesci amplitudowej jak i
fazowej. Jest to wynik odwrotnej transformacji fourierowskiej dokonanej na zlogarytmowanym widmie
fourierowskim sygnału [20]. Mozemy w ten sposób badac widma zespolone, rzeczywiste lub widma
amplitudowe i fazowe, otrzymujac odpowiednio cepstra zespolone i rzeczywiste, cepstra amplitudowe i
fazowe.
W przypadku mowy najwazniejszym zastosowaniem jest mozliwosc dekonwolucji wymuszenia i
odpowiedzi impulsowej traktu głosowego, przez obliczenie cepstrum amplitudowego sygnału mowy.
Cepstrum rzeczywiste definiujemy jako
c[j] = F−1(
log(| F(Y [k]) |
))(3.20)
W przypadku cepstrum mocy nalezy obliczyc cepstrum widma mocy sygnału
cm[j] =
(F−1
(log(|F(Y [k])|2
)))2
(3.21)
W przypadku mowy dekonwolucja ramek dzwiecznych i bezdzwiecznych oznacza mozliwosc anal-
izowania odpowiedzi impulsowych filtrów traktu głosowego, zaleznych od mówcy i od gestu artykula-
cyjnego. Ramka S[k] zawiera sygnał mowy powstały w trakcie głosowym modelowanym jako model
zródło-pobudzenie :
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 44
s[n] = u[n] ∗ h[n], (3.22)
gdzie u[n] stanowi wymuszenie tonem krtaniowym o czestotliwosci podstawowejFo w przypadku głosek
dzwiecznych lub pobudzenie szumowe w przypadku głoski bezdzwiecznej a h[n] jest odpowiedzia im-
pulsowa traktu głosowego zwiazana z artykułowana głoska. W dziedzinie czestotliwosci równanie to ma
postac :
S[k] = U [k]×H[k] (3.23)
W wyniku operacji logarytmowania
log(|S[k]|
)= log
(|U [k]|
)+ log
(|H[k]|
)(3.24)
w dziedzinie czestotliwosci nastepuje dekonwolucja wymuszenia i odpowiedzi traktu głosowego. Cep-
strum otrzymane poprzez odwrotna transformate fourierowska bedzie stanowiło sume wyników transfor-
macji widma wymuszenia i filtru traktu głosowego. Z wymuszeniem głosek dzwiecznych beda zwiazane
wysokie składowe cepstrum, nizsze odpowiednio z dolnopasmowym widmem zwiazanym z aparatem
głosowym i artykulacja. Składowe górnopasmowe moga zostac pominiete poprzez okienkowanie lub
filtracje w dziedzinie cepstrum, jako informacje nie zwiazane z mówca.
Otrzymane cepstrum moze słuzyc równiez jako aproksymacja obwiedniego widma fonemu i
posłuzyc do okreslenia czestotliwosci formantów. Wymagana jest wtedy filtracja cepstrum (liftering)
w celu wygładzenia przebiegu. Ze wzgledu na mozliwosc oszacowania połozenia formantów obwiednia
otrzymana z cepstrum jest gorsza niz obwiednia otrzymana metoda predykcji liniowej. Zastosowanie to
ilustruje rys. 3. .
Rysunek 3.20: Obwiednie widma fonemu ’e’
3.2.5. Dyskretna transformacja kosinusowa (DCT)
Cepstrum ramki stanowi odwrotna transformata fourierowska logarytmu wektora cech uzyskanych
przy pomocy banku filtrów. Moze byc obliczone przy pomocy wzoru (3.9) lub dzieki wykorzysta-
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 45
niu faktu, ze obliczane bedzie cepstrum rzeczywiste, dyskretnej transformaty kosinusowej. Transfor-
mata kosinusowa bedzie równowazna transformacie fourierowskiej, dzieki faktowi, ze stanowi jej czesc
rzeczywista [16].
Współczynniki cepstrum beda obliczana jako
ci[n] =
√2
M
M∑j=1
Yi[j] cos(πnM
(j − 1
2
)), (3.25)
gdzie n = 1...M a ci[n] jest n-tym elementem wektora cepstrum, przy czym wektor ten moze byc
krótszy niz wektora cech otrzymany podczas analizy pasmowej. Element ci[0] odpowiada energii wek-
tor cech i jest czesto pomijany podczas analizy z powodu zaleznosci od poziomu sygnału na wejsciu,
zaleznego od chwilowej siły głosu i wzmocnienia toru.
0 2 4 6 8 10 12 14 16 18-1
-0.5
0
0.5
1
numer próbki
Sygnał sinusoidalny
0 2 4 6 8 10 12 14 16-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
numer próbki
DCT sygnału sinusoidalnego
Rysunek 3.21: Transformata kosinusowa sinusoidy
Z powodu pomijania małej wartosci wiekszosci współczynników, mozliwa jest kompresja stratna
sygnału, uzyskana poprzez pominiecie w reprezentacji współczynników nie przekraczajacych zadanego
progu. Podczas transformacji DCT nastepuje równiez dekorelacja współczynników wektora cech w
zwiazku z ortogonalnoscia bazy transformacji [16]. Ma ta znaczenie w przypadku modelowania zjawisk
jako procesów losowych.
3.2.6. Liftering cepstum
Liftering cepstrum jest operacja typowa dla przetwarzania mowy, wypływajaca na składniki
odpowiadajace informacjom o szczegółach widma i najbardziej podatnym na zmiany z obrebie jednego
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 46
mówcy. Cepstrum zostaje wymnozone przez czynnik lifterujacy [21], na przykład liniowy
C[n] = n c[n], (3.26)
ekspotencjalny
C[n] = ns exp(− n2
2τ2)c[n], (3.27)
gdzie s i τ sa stałymi lub sinusoidalny
C[n] =(
1 +L
2sin
πn
L
)c[n], (3.28)
gdzie L jest stała.
Zaleznie od doboru czynnika lifterujacego mozemy doprowadzic do zmniejszenia lub zwiekszenia
wartosci odpowiadajacych cepstrum niskich i wysokich czestotliwosci. W przypadku głosu najczesciej
stosowany jest czynnik sinusoidalny, ze stała L = 12 , prowadzacy do obnizenia wartosci wyzszych
współczynników cepstrum a ostatecznie do wygładzenia wektora cech, redukujac przy tym wpływ
losowych zjawisk takich jak nieoptymalne połozenie okna ramki czy szum nagrania, wiazacy sie z
wysokimi czestotliwosciami [22].
3.2.7. Parametry dynamiczne cepstrum
Pomimo, ze interpretacja parametrów cepstrum mocy jest predkosc zmian energii w podpasmach, ist-
nieje mozliwosc rozszerzenia kodowania dynamiki mowy poprzez wykorzystanie pochodnych cepstrum.
Pochodnie cepstrum sa powszechnie nazywane parametrami delta-cepstrum i obejmuja zazwyczaj pier-
wsze dwie lub trzy pochodne w dziedzinie czasu. Pozyskane w ten sposób wektory uzupełniaja wektor
podstawowy o informacje o dynamice mowy, zwiekszajac odpowiednio jego wymiarowosc.
Pochodne cepstrum sa obliczane poprzez rózniczkowanie oraz aproksymacje parametrami krzywej
wielomianowej. W przypadku rózniczkowania i-ty element delta-cepstrum ramki n ma wartosc
dn[i] = cn+M [i]− cn−M [i], (3.29)
gdzieM to przedział analizowania cepstrum, zazwyczaj 2-3 ramki. Wektor delta-cepstrum jest obliczany
dla kazdego składnika wektora cepstrum. Na podstawie wzoru (3.31) mozemy równiez zauwazyc, ze
przeprowadzana zostanie filtracja górnoprzepustowa na wektorach cepstrum.
Czesciej spotykana metoda obliczania parametrów dynamicznych cepstrum jest szacowanie
parametrów wielomianu, np. pierwszego lub wyzszego stopnia, aproksymujacego cepstrum. Wykorzys-
tana moze byc do tego regresja liniowa, pozwalajaca oszacowac i-ty element delta-cepstrum ramki n
jako
dn[i] =
∑Mm=−M m(cn+m[i]− cn−m[i])
2∑M
m=−M m2. (3.30)
Pochodne drugiego i wyzszego rzedu (delta-delta-cepstrum itd.) sa obliczane przy pomocy pochod-
nych nizszego rzedu przez ponowne wykorzystanie wzorów (3.31) i (3.32).
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
3.2. Przebieg ekstrakcji cech 47
W zwiazku z korzystaniem z próbek otoczenia biezacej ramki, wystepowac bedzie efekt brzegowy
zwiazany z brakiem próbek do analizy na koncu i poczatku sygnału. Problem ten moze byc rozwiazany
przez uzupełnienie brakujacych próbek zerami, liczbami losowymi lub kopiami próbek brzegowych.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4. Automatyczne rozpoznawanie mówców - opis struktury sys-
temu
Najwazniejsza czescia systemu jest moduł odpowiadajacy ze tworzenie i rozpoznawanie wzorców.
Wzorcami sa informacje pozyskane podczas ekstrakcji cech, wykorzystane do stworzenia modelu opisu-
jacego mówce. Pozadane jest, aby model opisywał tylko cechy osobnicze mówcy. Model ten bedzie
wykorzystany podczas identyfikacji i weryfikacji nowych próbek zawierajacych nagrania mówców.
Wykorzystane algorytmy beda determinowały, czy system bedzie zalezny od tresci, bazy mówców i
tresci wypowiedzi.
Modelowanie i rozpoznawanie mówców w systemie bedzie wykonywane przez wykorzystanie ukry-
tych modeli Markowa (ang. Hidden Markov Models (HMM)) i mikstur gaussowskich (ang. Gaussian
Mixture Models (GMM)). Sa to metody stochastyczne, modelujace dowolne zjawisko losowe przy
pomocy funkcji gestosci prawdopodobienstw (GMM), pozwalajacych z pojedynczych wektorów cech
stworzyc model mówcy i model procesu losowego, którego stan obecny jest zalezny od stanu poprzed-
niego (HMM), tak jak w przypadku mowy ciagłej w której mozliwe jest dowolne przejscie z jednego
gestu artykulacji do innego. Jednoczesne wykorzystanie tych metod daje mozliwosc modelowania głosu
jako ciagłego procesu, którego wynikiem sa wyekstrahowanie z mowy wektory cech. Dzieki temu, ze
systemu te modeluja mówce przy załozeniu, ze wektory cech pozyskane z jego mowy sa losowe, mozliwe
jest budowanie systemów niezaleznych od tresci wypowiedzi. Dopasowanie wzorca odbywa sie na za-
sadzie okreslenia prawdopodobienstwa, ze badany ciag obserwacji mozna przypisac badanemu mode-
lowi.
4.1. Budowa systemu
Ze wzgledu na funkcjonalnosc, system jest podzielony na czesc trenujaca i testujaca. Trening obej-
muje stworzenie modeli odpowiadajacych kazdemu z mówców. Model taki powinien dla kazdej mozli-
wej obserwacji o generowanej przez mówce maksymalizowac prawdopodobienstwo
P (SP |O). (4.1)
Wykorzystane sa do tego wypowiedzi treningowe, zawierajace dowolna wypowiedz mówcy. Po
klasyfikacji ramek mowy do klas fonetycznych mozliwe jest utworzenie modelu dla kazdej z klasy.
Kazdy mówca posiada taka sama ilosc modeli. Czesc testujaca wykorzystuje modele otrzymane podczas
48
4.1. Budowa systemu 49
KLASYFIKACJA MOWY I
EKSTRAKCJA CECH
INICJALIZACJA
UKRYTEGO MODELU
MARKOWA
MODEL MARKOWA
MÓWCY M KLASY N
DOPASOWANIE
WZORCÓW DO
OBSERWACJI
WEJŚCIOWEJ
OBLICZANIE
PRAWDOPODOBIEŃSTW
MÓWCÓW WEKTOR CECH
WEKTOR CECH
DECYZJA
ROZPOZNAWANIE MÓWCY
TRENING MODELU
BADANA PRÓBKA MOWY
Rysunek 4.1: System rozpoznawania mówców
uczenia sie sytemu do przeprowadzenia rozpoznawania konczacego sie identyfikacja lub weryfikacja
mówcy. Z powodu wykorzystania metod uniezalezniajacych system od tresci wypowiedzi, rozpoz-
nawanie mozliwe jest w oparciu o dowolna wypowiedz mówcy. Ekstrakcja cech poprzedza oba tryby
pracy i jest jednakowa dla całego systemu. Wektor cech bedzie budowany w oparciu o cepstrum melowe
sygnału, liniowe lub nieliniowe. Wybór wektora cech nie wpływa na rozpoznawanie, ale definiuje infor-
macje wykorzystanie do tworzenia i weryfikacji modelu mówcy.
Celem identyfikacji jest okreslenie prawdopodobienstwa tego, ze zródłem obserwacji O jest mówca
o numerze i i wybranie mówcy dla którego prawdopodobienstwo to jest najwyzsze
arg maxi
P (SPi|O), (4.2)
które dzieki twierdzeniu Bayesa moze byc przedstawione jako
arg maxi
P (SPi|O) = arg maxi
(P (O|SPi)P (SPi)
P (O)
)(4.3)
przy czym P (O) jako prawdopodobienstwo wystapienia obserwacji a P (SPi) jako prawdopodobienstwo
wystapienia mówcy. Przez załozenie, ze kazda wypowiedz i kazdy mówca sa równie prawdopodobni
mozemy przyjac je jako stałe niewpływajace na identyfikacje i nie zmieniajace sie podczas pracy
sytemu. Zadaniem systemu bedzie wiec oszacowanie P (O|SPi) a wiec prawdopodobienstwa generacji
obserwacji O przez mówce i i wybranie mówcy z najwiekszym wynikiem.
W przypadku weryfikacji musimy na podstawie P (SPi|O) dokonac decyzji :
decyzja =
{akceptuj mówce i gdy P (SPi|O) ≥ Tiodrzuc mówce i gdy P (SPi|O) < Ti
,
gdzie Ti stanowi próg weryfikacji, wspólny dla całego systemu lub okreslany dla kazdego z mówców z
osobna.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 50
4.2. Modelowanie mówców
4.2.1. Mikstury gaussowskie
W systemie niezaleznym od tresci zakładamy, ze mówca moze wypowiedziec dowolne słowo a wiec
wektory otrzymane podczas ekstrakcji cech sa losowe. Jezeli dla M elementowego wektora cech ist-
niałaby M wymiarowa funkcja gestosci prawdopodobienstwa (ang. probability density function (pdf))
zwiazana z mówca, mozliwe byłoby okreslenie prawdopodobienstwa generacji nowo obserwowanego
wektora przez wybranego mówce. Mikstury gaussowskie opisuja rozkłady zmiennych losowych przy
pomocy liniowej kombinacji rozkładów normalnym [23]. Pozwalaja one na aproksymacje dowolnej
funkcji gestosci zmiennej losowej, z dokładnoscia zalezna od wykorzystanej liczby składowych.
Pojedynczy M wymiarowy rozkład normalny o indeksie m jest opisany macierza kowariancji Σm i
wartoscia oczekiwana µm. Jezeli b(o) opisuje rozkład zmiennej losowej zwiazanej z obserwacja o, to jej
funkcja gestosci prawdopodobienstwa wykorzystujaca G mikstur gaussowskich z wagami cm jest dana
wzorem
bj(o) =G∑
m=1
[cm
1√(2π)n|Σm|
e−12
(o−µm)′Σ−1m (o−µm)
]. (4.4)
Wagi mikstur musza spełniac warunek∑G
m=1 cm = 1.
Rysunek 4.2: Przykład dwu wymiarowych mikstur gaussowskich o 3 i 4 składnikach
Miksture gaussowska λ = [cm,Σm, µm], m = 1...G opisuja parametry: wektor wag cm, macierz
kowariancji Σm i wektor wartosci oczekiwanych µm:
Znalezienie funkcji rozkładu prawdopodobienstwa odpowiadajacej badanemu zestawowi zmiennych
losowych polega na okresleniu wartosci macierzy Σm, wektora µm i wag cm mikstury gaussowskiej o
zadanej liczbie składników, dla których zmaksymalizowane jest prawdopodobienstwo generacji zestawu
treningowego przez model. Wykorzystuje sie do tego najczesciej algorytm expectation-maximalization
(EM) lub algorytm Maximum A Posteriori (MAP) [23]. Metoda EM, wykozystana w sytemie, polega
na iteracyjnym wyszukiwaniu parametrów mikstury, które dla wektora obserwacji o = (o1,2 , ..., oT ) z
ogólnej mikstury λ doprowadza do otrzymania mikstury λ, takiej, ze
p(o|λ) > p(o|λ). (4.5)
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 51
Iteracje sa powtarzane, az do osiagniecia z zadanym progiem zbieznosci. Dokładny opis algorytmu zna-
jduje sie w [24, 25].
Dzieki załozeniu, ze wektory cech sa nieskorelowanymi ze soba zmiennymi losowymi, mozliwe jest
zapisanie macierzy Σm z wykorzystaniem diagonali, skupiajacej niezerowe wartosci własne macierzy.
W przypadku wystapienia korelacji wzajemnej wektorów cech w macierzy pojawia sie dodatkowe nie
zerowe elementy lezace poza jej diagonala. Ze wzgledu na mozliwosc uproszenia obliczen i ilosci infor-
macji opisujacych mikstury, istotne jest dekorelowanie wektorów cech przed utworzeniem z nich funkcji
gestosci prawdopodobienstwa. W naszym systemie jest ot wykonane podczas obliczania transformacji
kosinusowej wektora, w koncowym etapie ekstrakcji cech.
Opisane wczesniej mikstury gaussowskie sa wykorzystywane z powodzeniem jako narzedzie do
opisu prawdopodobienstw obserwacji losowych sa czesto stosowane jako narzedzie do opisu mówców i
moga byc wykorzystane do ich rozpoznawania.
Jest ot jednak opis niezawierajacy informacji o relacji miedzy kolejnymi wektorami cech, istotny
w opisie mowy stanowiacej proces składajacy sie z ciagłych przejsc pomiedzy głoskami. Do mode-
lowani mowy jako procesu sekwencyjnego zostana wykorzystane ukryte modele Markowa (UMM, ang.
Hidden Markov Models (HMM)). Stanowia one potezne narzedzie wykorzystywane w rozpoznawaniu
mowy i mówców, ale takze dowolnego procesu podczas którego znamy tylko obserwacje generowane
przez model (sygnał mowy czy aktualna temperature). Wykorzystanie UMM pozwala okreslic model
Markowa bedacy zródłem obserwacji ale takze sposób w jaki obserwacja mogła powstac. W odniesieniu
do mowy jest to wyraz bedacy trescia rozpoznawanej mowy a w przypadku modelowania pogody, jest to
na przykład próba okreslenia wilgotnosci i ciagnienia jakie panowały w obserwowanej chwili.
Mikstury gaussowskie beda wykorzystywane do opisu stanów w jakich moze znajdowac sie model
natomiast UMM beda opisywały jakie sa relacje miedzy stanami i beda wykorzystywane do obliczenia
prawdopodobienstwa 4.1. W kolejnych podrozdziałach opiszemy sposób w jaki UMM beda modelowały
mowe, sposób tworzenia modeli i rozpoznawania. Opisana zostanie równiez
4.2.2. Ukryte modele Markowa
Modele Markowa stosowane sa to opisu łancuchów stochastycznych, w których zarówno czas jak
i zbór obserwowanych wartosci sa dyskretne [26]. Opisywany system składa sie z N stanów qt ∈S1, S2, ..., SN , przy czym w badanej chwili czasowej znajdujemy sie tylko w jednym stanie. Łancuchem
Markowa bedziemy nazywali taki łancuch statystyczny, w którym prawdopodobienstwo przejscia do
pewnego stanu zalezy tylko od poprzedniego stanu
P (qt = Sj |Qt−1 = Si, qt−2 = Sk, ...) = P (qt = Sj |qt−1 = Si). (4.6)
Łancuchem takim jest np. sekwencja głosek w słowie. Dla zadanego słowa, kazda z głosek jest
stanem. Przejscia pomiedzy stanami sa zwiazane z wymawianiem kolejnych głosek.
Jezeli prawdopodobienstwa przejsc sa niezmienne w czasie to mówimy o łancuchu stacjonarnym.
Wraz z kazdym krokiem czasowym nastepuje przejscie miedzy stanami, ze stanu i do stanu j, lub po-
zostanie w stanie biezacym. Kwadratowa macierz przejsc pomiedzy stanami A = aij , gdzie aij ≥ 0
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 52
i∑N
j=1 aij = 1 dla wszystkich 1 ≤ i ≤ N jest nazwana macierza stochastyczna. Do opisu jawnego
łancucha Markowa potrzebny jest jeszcze rozkład prawdopodobienstw stanów w chwili t = 1 oznac-
zony jako π = π1, π2, ..., πN . Łancuch opisuje para λ = (A, π).
W przypadku łancuchów jawnych konieczne jest utozsamianie stanów z obserwacjami gen-
erowanymi przez model. Przez opisanie stanów miksturami gaussowskimi otrzymamy łancuch w którym
takze obserwacje sa procesem losowym. Jako, ze mamy dostep tylko do obserwacji, model Makowa jest
przed nami ukryty i nie wiemy jaki stan wygenerował obecna lub poprzednia obserwacje. Konieczne jest
wprowadzenie prawdopodobienstwa, ze wektor o pochodzi od stanu Sj - bj(o)
bj(o) = P (Ot = o|qt = Sj) ∀t. (4.7)
W naszym przypadku oszacowanie tego prawdopodobienstwa jest dokonane przez mikstury gaus-
sowskie. Funkcje gestosci prawdopodobienstwa zwiazane ze wszystkimi stanami opisuje macierz
B = {bj(o)}. (4.8)
Ukrytym modelem Markowa [27] nazywamy trójke λ = (A,B, π).
Generalna struktura łancuchów Markowa dopuszcza dowolne połaczenia miedzy stanami oraz
połaczenie stanu ze samym soba [28]. Szczególnym przypadkiem łancucha jest struktura left-to-rigth
UMM, w której istnieje stan poczatkowy, koncowy oraz stany posrednie. Przejscia ograniczaja sie do
pozostawania w dotychczasowym lub przejscia do nastepnego stanu, bez mozliwosci powrotu do stanów
poprzednich. Z powodu swojej natury, mowa jest modelowana własnie przy pomocy łancuchów left-to-
rigth. Oba warianty ilustruja rysunki 4.3 i 4.4.
S1 S2
S4 S3
a43
a32 a23
a33
a22a11
a44
a34
a41
a21
a14
a12
b4
b1
b3
b2
Rysunek 4.3: Ogólny łancuch Markowa o 4 stanach
Do pełnego opisu UMM potrzebujemy:
- O = (o1o2...oT ) - ciagu obserwacji generowanych przez mówce„ gdzie oi odpowiada M wartos-
ciowemu wektorowi otrzymanemu w procesie ekstrakcji cech. Wszystkich obserwacji jest T , przy czym
liczba ta bedzie zalezec od długosci wypowiedzi i jej podziału na ramki.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 53
S2 S3 S4
a13
a22
a24
a23a12 a34
a33
b2 b3
S1
Rysunek 4.4: Łancuch left-to-rigth o 4 stanach
- t = 1, .., T - dyskretne przedziały czasowe w których moze znajdowac sie proces.
- Si : i ∈ (1...N) -N stanów łancucha Markowa. Kazdy stan odpowiada stanowi układu głosowego
człowieka i wiazacej sie z nim pracy aparatu głosowego. Model przebywa w stanie na czas generacji
obserwacji po czym nastepuje przejscie do innego stanu lub pozostanie w obecnym.
-A = aij - macierzy zawierajacej informacje na temat prawdopodobienstwa przejsc miedzy stanami.
Prawdopodobienstwa te zaleza tylko od stanu obecnego oraz stanu poprzedniego :
aij = P (qt+1 = Si|qt = Sj) 1 ≤ i, j ≤ N. (4.9)
W przypadku łancuchów left-to-rigth, w których zabronione sa przejecia do stanów poprzednich
mamy
aij = 0 (4.10)
gdy i < j. Macierz A tworzy wtedy macierz trójkatna górna.
- B = {bj(o)} - macierz funkcji gestosci prawdopodobienstwa zmiennych losowych odpowiada-
jacych obserwacjom generowanym przez stany j = 1, .., N . Macierz ta zawiera mikstury gaussowskie
modelujace funkcje gestosci wektorów cech.
- π = π1, π2, ..., πN - prawdopodobienstwa kazdego ze stanów w chwili t = 1. W łancuchach
left-to-rigth przejscie po stanach rozpoczyna sie od stanu numer 1, wiec P (S1|t = 1) = 1.
Wszystkie te parametry jednoznacznie opisuja ukryty model Markowa λ = (A,B, π). W przypadku
łancuchów left-to-rigth model uprasza sie do λ = (A,B), dzieki temu, ze rozkład poczatkowy jest stały.
4.2.3. Wykorzystanie ukrytych modeli Markowa
Uzycie UMM w roli modeli mówców wiaze sie ze zdefiniowaniem problemów jakie nalezy
rozwiazac [28], aby móc wykorzystac ich własciwosci. W odniesieniu do rozpoznania mowy i mówców
najwazniejsze problemy zwiazane w mozliwoscia wykorzystania modeli Markowa to :
Problem pierwszyJakie dla danej obserwacji O = (O1O2...OT ) i modelu λ = (A,B, π) jest prawdopodobienstwo
P (O|λ) =?, a wiec prawdopodobienstwo tej obserwacji dla zadanego modelu. Mozliwa jest próba
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 54
zbadania podobienstwa pochodzenia zadanej obserwacji od badanego modelu a nastepnie podjecie
decyzji o przyjecie tozsamosci mówcy, dokonujac tym samym weryfikacji modelu.. Rozwiazanie
tego problemu dla kazdego z modeli umozliwia rozpoznawanie, czyli wskazanie modelu dla
którego prawdopodobienstwo generacji zadanej obserwacji jest najwieksze, dokonujac tym samym
identyfikacji na zadanym zbiorze modeli.
Problem drugiJaka jest najbardziej prawdopodobna sciezka stanów Q = (q1q2...qT ) która wystapiła podczas
generacji obserwacjiO = (O1O2...OT ) przez model λ = (A,B, π) ? Znajac rozwiazanie mozemy
poznac do dzieje sie w ukrytej czesci łancucha Markowa. Znalezienie rozwiazanie jest istotne z
punktu widzenia optymalnego rozwiazania pierwszego problemu.
Problem trzeciJaki dla danej obserwacjiO = (O1O2...OT ) i zadanych parametrów łancucha Markowa jest model
λ = (A,B, π), który maksymalizuje prawdopodobienstwo P (O|λ)? Jest to wiec poszukiwanie
metody tworzenia optymalnych z punku widzenia zadanej obserwacji modeli a z punktu widzenia
systemu, próba uzalezniania modeli mówców przy wykorzystaniu ich wypowiedzi treningowych.
Przez wykorzystanie wzoru na prawdopodobienstwo całkowite problemy te mozna rozwiazac ze
złozonoscia O(TNT ), gdzie T to długosc obserwacji a N ilosc stanów modelu. Takie rozwiazanie
uniemozliwia wykorzystanie UMM ze wzgledu na rosnacy wykładniczo czas obliczen. Dzieki wyko-
rzystaniu indukcji istnieja metody umozliwiajace uzyskanie rozwiazania ze złozonoscia O(TN2) [28].
Srodowisko HTK
HTK Toolkit [29] to oprogramowanie rozwijane od roku 1995 na Uniwersytecie Cambridge w An-
glii. Zostało ono stworzone jako narzadzie o rozpoznawania mowy ciagłej przy pomocy Ukrytych Mod-
eli Markowa(UMM), ale pozwala równiez na rozpoznawanie innych wzorców i zjawisk. Jego głównym
celem jest budowanie i testowanie UMM. Jako ze HTK jest on udostepniony w formie modułów ob-
sługujacych okreslone fazy modelowania i testowania, opisane zostana tylko moduły wykorzystane w
pracy. Moduły moga byc obsługiwane z wiersza polecen. Sa dostepne w formie skompilowanej jak i
kodu zródłowego [30].
W pracy bedziemy wykorzystywali moduły odpowiedzialne za ekstrakcje cech, inicjalizacje, reesty-
macje UMM oraz testowanie. Wraz z teoretycznym opisem UMM przyblizony zostanie sposób w jaki
jest wykorzystane HTK.
4.2.4. Problem pierwszy
W przypadku jawnego łancucha Markowa, aby obliczyc prawdopodobienstwo P (O|λ) dla ob-
serwacji O = (O1O2...OT ), sekwencji stanów X = q1q2...qT i modelu λ = (A,B, π), problem pier-
wszy moze zostac rozwiazany poprzez obliczenie iloczynu prawdopodobienstw
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 55
P (O,X|λ) =T∏t=1
aqtqt−1Bqt(Ot). (4.11)
W przypadku UMM konieczne byłoby obliczenie prawdopodobienstwa dla kazdej sekwencji stanów
Q a wynik koncowy byłby suma ich prawdopodobienstw
P (O|λ) =∑Q
P (O,Q|λ) (4.12)
wykonywany ze złozonoscia O(TNT ). Aby obliczyc (4.12) bardziej efektywnie, nalezy wykorzystac
algorytm Forward-Backward. Składa sie on z dwóch czesci, dla których nalezy zdefiniowac zmienne:
– forward - αt(i) = P (O1O2...Ot, qt = Si|λ), okreslajaca prawdopodobienstwo, ze system był
w chwili t w stanie S1 i wystapił poczatkowy fragment obserwacji O1O2...Ot pod warunkiem
modelu λ.
– backward - βt(i) = P (Ot+1Ot+2...Ot+1|qt = Si, λ), okreslajaca prawdopodobienstwo, ze system
był w chwili t w stanie S1 i wystapił koncowy fragment obserwacji Ot+1Ot+2...OT pod warunk-
iem modelu λ.
W przypadku zamiennej forward obliczenia przebiegaja nastepujaco :
Inicjalizacja
α1(i) = πibi(O1), 1 ≤ i ≤ N (4.13)
Jest to załozenie, ze Si jest pierwszym stanem generujacym obserwacje. W przypadku modeli
left-to-rigth mamy P (S1|t = 1) = 1, wiec anlize forward rozpoczynamy od pierwszego stanu,
ignorujac pozostałe przypadki, dla których α1 = 0.
Indukcja
αt+1(j) =( N∑i=1
αt(i)aij
)bj(Ot+1), 1 ≤ i ≤ N, 1 ≤ t ≤ T − 1 (4.14)
α jest obliczana dla wszystkich momentów czasowych i stanów, okreslajac prawdopodobienstwa
osiagniecia stanu j z kazdego innego stanu w momencie przejscia z chwili czasowej t do t+ 1.
Terminacja
P (O|λ) =N∑i=1
αT (i) (4.15)
Zatrzymanie obliczen nastepuje w momencie obliczenia i zsumowani wszystkich zmiennych for-
ward.
Dla zamiennej backward, która rozwiazuje ten sam problem zaczynajac jednak od konca obliczenia
przebiegaja nastepujaco :
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 56
Inicjalizacjaβt(i) = 1, 1 ≤ i ≤ N (4.16)
Jest to załozenie, ze ST generuje ostatnia obserwacje.
Indukcja
βt−1(i) =N∑i=1
aijbj(Ot)βt(j), 1 ≤ i ≤ N, t = T, T − 1, ..., 2 (4.17)
β jest obliczana dla wszystkich stanów, az do momentu t = 2 okreslajac prawdopodobienstwa
osiagniecia stanu i w momencie cofniecia sie z dowolnego stanu z chwili czasowej t.
Terminacja
P (O|λ) =N∑i=1
πibi(O1)β1(i) (4.18)
Zatrzymanie obliczen nastepuje w momencie ociagniecia chwili czasowej t = 1, a wiec w chwili
cofniecia sie do poczatku obserwacji.
Zmienne forward i backward moga byc wykorzystane wymiennie do obliczenia (4.12).
4.2.5. Problem drugi
Istnieja dwa rozwiazania problemu optymalnej sciezki stanów Q∗ =(q∗1q∗2...q
∗T
). Mozemy wyko-
rzystac do tego załozenie, ze najbardziej prawdopodobna sciezka jest złazona ze stanów które dla kazdej
chwili czasowej t sa najbardziej prawdopodobne
q∗t = arg max1≤i≤N
P (qt = Si|O, λ) (4.19)
lub przy pomocy algorytmu Viterbiego.
W pierwszym przypadku nalezy wprowadzic znamienna definiujaca prawdopodobienstwo przeby-
wania modelu λ w stanie Si w chwili czasowej t i danej obserwacji O
γt(i) = P (qt = Si|O, λ) (4.20)
która mozna przedstawic za pomoca zmiennych forward i backward
γt(i) =αt(i)βt(i)
P (O|λ)=
αt(i)βt(i)∑Nj=1 αt(j)βt(j)
. (4.21)
Szukana sciezka stanów Q∗ tworza stany
q∗t = arg max1≤i≤N
γt(i). (4.22)
Tak wyszukana sciezka nie gwarantuje, ze jako całosc jest najbardziej prawdopodobna przy danej
obserwacji O. Nie uwzglednia takze przypadku, w którym ciag stanów zawiera niedozwolone podciagi,
zwiazane na przykład z wybraniem łancucha left-to-rigth.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 57
Algorytm Viterbi’ego
Wyszukanie najbardziej prawdopodobnego ciagu Q∗ =(q∗1q∗2...q
∗T
), który jako całosc jest na-
jbardziej prawdopodobny dla obserwacji O jest dokonywane przez algorytm Viterbi’ego. Wprowadzimy
w tym celu zmienna
δt(i) = maxq1,q2...qt−1
P (q1q2...qt−1, qt = Si, O1O2...Ot|λ), (4.23)
okreslajaca sciezke o długosci T , dla której qt = Si i która maksymalizuje prawdopodobienstwo pojaw-
ienia sie obserwacji O1O2...Ot. Aby sledzic wszystkie N sciezek i móc wybrac z nich ta najbardziej
prawdopodobna wykorzystamy tablice ψ.
Sledzenie sciezek przebiega nastepujaco:
Dla kazdej chwili t bedzie ona zawierała wartosc (4.23), dla kazdego mozliwego wezła j.
Inicjalizacja
δ1(i) = πibi(O1) (4.24)
ψ1(i) = 0, 1 ≤ i ≤ N (4.25)
Indukcja
δt+1(j) =(
max1≤i≤N
δt(i)aij
)bj(Ot+1) (4.26)
ψt(i) = arg max1≤i≤N
δt(i)aij , 1 ≤ j ≤ N, 1 ≤ t ≤ T − 1 (4.27)
Dla kazdej chwili t tablica ψ bedzie zawierała wartosc maksymalna (4.23), dla wezła j. Maksy-
malizowanie ψt(i) w kazdym kroku t gwarantuje zalezenie najlepszej sciezki.
Terminacja
P ∗ = max1≤i≤N
δT (i) (4.28)
q∗T = arg max1≤i≤N
δT (i) (4.29)
Sledzenie sciezki
q∗t = ψt+1(q∗t+1), t = T − 1, T − 2, ..., 1. (4.30)
W przypadku łancucha left-to-rigth nalezy wykorzystac fakt, ze wezeł koncowy i poczatkowy nie
emituja obserwacji i przejscia do stanów poprzednich nie sa dozwolone. Mozliwe przejscia i wybranie
optymalnej sciezki dla obserwacji O1O2O3O4 obrazuje rys. ??.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 58
O1 O2 O3
S1
S2
S3
S4
O4
Rysunek 4.5: Sposób przechodzenia przez stany podczas wyszukiwania najlepszej sciezki w łancuchu
left-to-rigth
Inicjalizacja modeli mówców w HTK
W systemie kazdy UMM bedzie opisany przy pomocy parametrów łancucha: ilosci stanów macierzy
A i B oraz ilosci mikstur gaussowskich odpowiadajacych kazdemu stanowi i ich parametrom. Ich opis
jest zawarty w plikach tekstowych. Aby znalezc prototyp modelu bedziemy musieli najpierw okreslic,
które obserwacje pochodza od którego stanu. Parametry prototypu beda usrednieniem przydzielonych
do stanów wektorów cech. Obserwacje O pochodzace od sygnału treningowego podzielone na N seg-
mentów i kolejno przydzielane do stanów modelu Markowa, a nastepnie do jednej z mikstur gaussows-
kich zwiazanej z tym stanem. Obserwacja jest przydzielana do mikstury, która dla obserwacji posiada
najwieksza wartosc odpowiadajacej jej funkcji gestosci prawdopodobienstwa. Proces segmentacji Viter-
biego oblicza podczas kazdej iteracji
φN (T ) = maxiφi(T )aiN 1 ≤ i ≤ N, (4.31)
gdzie
φj(t) = [maxiφi(t− 1)aij ]bj(ot) (4.32)
φ1(1) = 1
φj(1) = a1jbj(o1)
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 59
i jest kontynuowany az do osiagniecia zbieznosci z zadana dokładnoscia lub przekroczenia maksymalnej
zadanej liczby powtórzen. Podczas inicjalizacji modelu Markowa wykorzystujemy fakt, ze obserwacje
pochodza od jednego mówcy i tworzymy model left-to-rigth, w przypadku którego stany poczatkowy i
koncowy sa nieemitujace (nie przydzielany do nich obserwacji).
PROTOTYP HMM
SEGMENTACJA
JEDNORODNA
INICJALIZACJA
PARAMETRÓW HMM
SEGMENTACJA
VITERBI’GO
UAKTUALNIJ
PARAMETRY HMM
OSIĄGNIĘTO
ZBIERZNOŚĆ ?
INICJALIZACJA
ZAKOŃCZONA
NIE
TAK
Rysunek 4.6: Inicjalizacja modeli mówców dokonywana przez HTK
Rozpoznawanie zródła obserwacji w HTK
Podczas rozpoznawanie bedziemy sie posługiwali modelami mówców, sposród których bedziemy
wybierali ten, który z najwiekszym prawdopodobienstwem wygenerował obserwacje O. Z punktu
widzenia systemu kazdy model odpowiada tylko jednemu mówcy, a modele nie sa ze soba w zaden
sposób zwiazane. Jezeli rozpoznawana obserwacja składa sie z T ramek, zakładamy, ze pochodza one
od T emitujacych stanów poprzez które nalezało przejsc aby otrzymac obserwacje. Stany te moga
pochodzic od dowolnego z badanych modeli. Z kazda obserwacja i okreslonymi dla niej stanami wiaze
sie prawdopodobienstwo przebywania w kazdym z tych stanów i przejsc miedzy nimi. Posługujemy
sie dodatkowo logarytmami tych prawdopodobienstw aby móc okreslac prawdopodobienstwo całkowite
jako sume prawdopodobienstw czastkowych. W HTK dla okreslania najlepszej sciezki wykorzystywany
jest algorytm przekazywania znacznika, w którym znacznik jest zwiazany ze sciezka, jaka do momentu
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 60
t odbyto w wyniku czego znalezlismy sie w obecnym stanie. Wartosc zwiazana ze znacznikiem jest
prawdopodobienstwem wystapienia sciezki z nim zwiazanej. Na poczatku znacznik jest umieszczony w
stanie poczatkowym modelu. Z kazdym kolejnym krokiem kopia znacznika jest przekazywany do wszys-
tkich mozliwych nastepnych stanów kazdego z modeli. Dla kazdej kopii prawdopodobienstwo sciezki
jest uaktualniane o prawdopodobienstwo znajdowania sie w tym stanie i przejscia do tego stanu, przy
czym zachowywany jest znacznik o wyniku najwiekszym. Istotne jest pamietanie sciezki zwiazanej z
zachowywanym znacznikiem, poniewaz bedzie ona potrzebna do okreslenia, jaki udział miał kazdy z
modeli podczas generowania obserwacji. Pamietane bedzie tylko od którego modelu pochodziła kazda z
obserwacji.
4.2.6. Problem trzeci
Znalezienie modelu λ = (A,B, π), który dla obserwacji O maksymalizuje prawdopodobienstwo
P (O|λ) jest w przypadku rozpoznawania mówców równowazne znalezieniu modelu λ mówcy na pod-
stawie jest wypowiedzi treningowej O. Aby tego dokonac wykorzystamy zdefiniowane podczas rozpa-
trywania problemu pierwszego zmienne forward i backward. Poszukiwany model zostanie okreslony
dzieki iteracyjnym oszacowaniom metoda reestymacji Baum-Walsch’a [28, 26].
Aby rozpoczac dostrajanie modelu musimy najpierw zdefiniowac dodatkowa zmienna
ξt(i, j) = P (qt = Si, qt+1 = Sj |O, λ) (4.33)
okreslajaca prawdopodobienstwo przejscia ze stany i do stanu j w chwili przechodzenia z momentu t do
t + 1, pod warunkiem obserwacji O i modelu λ. Dzieki wykorzystaniu zmiennych forward i backward
ξt mozemy wyrazic jako
ξt(i, j) =αt(i)aijbj(Ot+1)βt+1(j)
N∑k=1
N∑l=1
αt(k)aklbl(Ot+1)βt+1(l)
, (4.34)
gdzie mianownik stanowi P (O|λ).
Dodatkowo sume ξt(i, j) dla wszystkich mozliwych stanów j okreslimy jako:
γt(i) =
N∑j=1
ξt(i, j) (4.35)
Jezeli wykorzystamy ξt, bedziemy mogli okreslic oczekiwana wartosc przejsc ze stanu i do j podczas
sekwencji o długosci T
T−1∑t=1
ξt(i, j). (4.36)
Jezeli wykorzystamy γt, bedziemy mogli okreslic oczekiwana wartosc liczby pobytów w stanie i
podczas sekwencji o długosci T
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 61
T∑t=1
γt(i), (4.37)
a w przypadku wyłaczenia z sumy składnika dla ostatniej chwili czasowej t = T , otrzymany wartosc
oczekiwana liczby przejsc ze stanu i.
Estymacje modelu λ = (A,B, π) rozpoczniemy od losowego łancucha. W kazdym kroku bedziemy
dazyc do otrzymania modelu λ = (A, B, π) , w którym parametry łancucha sa odnajdywane w nastepu-
jacy sposób
aij =
∑T−1t=1 ξt(i, j)∑Tt=1 γt(i)
, 1 ≤ i, j ≤ N (4.38)
stanowi stosunek oczekiwanej ilosci przejsc ze stanu i do stanu j do wartosci oczekiwanej pobytów w
stanie i.
bi(k) =
T∑i=1
Ot=vk
γt(i)
T∑t=1
γt(i)
, 1 ≤ i ≤ N, 1 ≤ k ≤M (4.39)
stanowi stosunek oczekiwanej ilosci pobytów w stanie i podczas obserwacji ot = vt do wartosci oczeki-
wanej pobytów w stanie i. W przypadku wykorzystania mikstur gaussowskich, konieczne jest okreslenie
parametrów rozkładów składowych i ich wag. γ oznacza w tym przypadku prawdopodobienstwo prze-
bywania w momencie czasowym t w stanie i, którego mikstura gaussowska o indeksie k jest powiazana
z obserwacja Ot
γ(j, k) =
(αt(i)βt(i)∑Nj=1 αt(j)βt(j)
)(cjkN(Ot, µjk,Σjk)∑M
m=1 cjmN(Ot, µjm,Σjm)
)(4.40)
gdzie N(Ot, µjm,Σjm) oznacza rozkład normalny bedacy składnikiem mikstury. Odbywa sie itera-
cyjnie :
Wagi poszczególnych rozkładów normalnych
Σjk =
∑Tt=1 γt(j, k)(Ot − µjk)(Ot − µjk)′∑T
t=1 γt(j, k). (4.41)
Co oznacza stosunek ilosci wykorzystan k-tego składnika mikstury do oczekiwanej ilosci pobytów
w stanie i.
Wektor wartosci oczekiwanych
cjk =
∑Tt=1 γt(j, k)∑T
t=1
∑Mk=1 γt(j, k)
. (4.42)
Co oznacza stosunek ilosci wykorzystan k-tego składnika mikstury z waga odpowiadajaca
wartosci obserwacji w momencie t do oczekiwanej ilosci pobytów w stanie i.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 62
Macierz kowariancji
µjk =
∑Tt=1;vk=Ot
γt(j, k)∑Tt=1 γt(j, k)
. (4.43)
Co oznacza stosunek ilosci wykorzystan k-tego składnika mikstury z waga odpowiadajaca wari-
ancji wartosci obserwacji w momencie t do oczekiwanej ilosci pobytów w stanie i.
π = γ1(i), 1 ≤ i ≤ N (4.44)
Dzieki iteracyjnemu szacowaniu według (4.38), (4.39) i (4.44) mozliwe jest osiagniecie P (O|λ) >
P (O|λ) lub λ = λ. Otrzymujemy wiec model, który jest taki sam jak model otrzymany w poprzednim
kroku reestymacji lub model, który jest bardziej prawdopodobny jako zródło obserwacji O.
Reestymacja modeli mówców w HTK
Podczas rozpoznawania mówców bedziemy sie posługiwali łancuchami Markowa typu left-to-rigth,
w których obserwacje nie sa emitowane przez stan pierwszy i ostatni a przejscia nie sa mozliwe do
stanów poprzednich. Jest to domyslny typ UMM wykorzystywany przez HTK.
ZAINICJOWANY
HMM
OSZACOWANO
HMM
OSIĄGNIĘTO
ZBIERZNOŚĆ?
UAKTUALNIJ
PARAMETRY HMM
ALGORYTM
FORWARD/
BACKWARD
NIE
TAK
Rysunek 4.7: Reestymacja Brauna-Welcha dokonywana przez HTK
Aby utworzyc model mówcy musimy ustalic ilosc stanów oraz liczbe przypadajacych na nie mikstur
gaussowskich. Relacje miedzy stanami oraz parametry mikstur zostana ustalone podczas reestymacji
modelu. Punktem wyjscia tego procesu bedzie prototyp, otrzymany na podstawie danych z całej ob-
serwacji O, na podstawie której zostanie utworzony model. Bedzie on zawierał poczatkowe wartosci
opisujace UMM i mikstury. Na tym etapie zakładamy, ze przydzielilismy juz obserwacje do stanów
za pomoca algorytmu Viterbiego. Tak oszacowana sciezka stanów bedzie sie wiazała z poczatkowym
prawdopodobienstwem wygenerowania sekwencji treningowej przez model. Podczas reestymacji model
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
4.2. Modelowanie mówców 63
bedzie ulegał wyszczególnieniu, tak aby zmaksymalizowac to prawdopodobienstwo. W przypadku mod-
eli mówców oznacza to zastosowanie algorytmu Baum-Welsch’a dla kazdego z modeli z osobna na
podstawnie jego danych treningowych.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
5. Wyniki eksperymentów i wnioski koncowe
Wpływ parametrów modeli Markowa i sposobu parametryzacji na jakosc rozpoznawania znajduje
sie w [31], w przeprowadzonych symulacjach wykorzystane zostały optymalne parametry systemu,
pozwalajace uzyskac bardzo wysokie (90 -95%) współczynniki rozpoznania podczas przeprowadzania
identyfikacji w systemie z otwartym słownikiem. System dopuszcza dowolnosc tresci wypowiedzi
treningowych i testowych.
Testowi poddane zostało bazy mówców o zmiennej długosci w celu okreslenia zastosowan dla
systemu oraz wykorzystanie klasteryzacji ramek mowy na przy pomocy klasyfikatora opisanego w 3.2.2.
Kazdorazowo utworzone zostanie tyle modeli mówcy ile klas fonemów wybierzemy. Kazdy z modeli
powstanie z ramek otrzymanych podczas klasyfikacji. Podczas rozpoznania prawdopodobienstwa
wynikajace z rozpoznania modeli poszczególnych klas zostana przydzielone do mówcy do którego
naleza. Wykorzystanie klasteryzacji umozliwia tworzenie modeli lepiej opisujacych sklasyfikowane
klasy ramek, takie jak dzwiecznosc lub bezdzwiecznosc lub fonem jaki zawieraja, ale powoduja
skracanie sie długosc obserwacji dla której tworzony jest model. W skrajnym przypadku mały zbiór
obserwacji jednej z klas moze spowodowac niemoznosc utworzenia modelu klasy jaka miał opisac. W
przypadku systemów z otwartym słownikiem, w których taka sytuacja, z racji dowolnosc wypowiedzi
treningowej, jest bardziej prawdopodobne, powinny wykorzystywac klasteryzacje, w której liczba
klas jest kompromisem z srednia długoscia obserwacji zawartych w ramkach. W przypadku testu z
klasteryzacja zbadana została odpornosc systemu na obecnosc szumu addytywnego o ustalonej mocy.
Ponizej zawarte sa ustawienia systemu, które sa wspólne dla wszystkich przeprowadzonych testów.
Ustawienia dotycza ekstrakcji cech i parametrów utworzonych modeli mówców. Kazdy z testów posi-
ada własne parametry wykorzystanej bazy mówców i warunków testu. Wybór ilosci stanów modeli
Makowa oraz ilosc mikstur gaussowskich jest taki, aby osiagnac mozliwie wysoka jakosc rozpoznania
dla wybranego wektora cech. Zwiekszanie tych parametrów nie prowadziłoby do zauwazalnego wzrostu
jakosci systemu a jedynie do wzrostu złozonosci i czasu obliczen.
64
5.1. Test systemu 65
5.1. Test systemu
Wspólne ustawienia systemu dla treningu i testów
Czestotliwosc próbkowania 16000 Hz
Rozdzielczosc próbkowania 16 bitów
Długosc okna danych 300 ms
Przesuniecie okna danych 100 ms
Funkcja okna Hamming
Współczynik peemfazy 0.97
Rodzaj parametryzacji MFCC
Ilosc filtrów melowych 28
Ilosc współczynników cepstralnych 24
Współczynnik lifteringu cepstrum 22
Rodzaj modelu Markowa left-to-rigth
Ilosc stanów modelu 3
Ilosc mikstur gaussowskich na stan 10
Ze wzgledu na ocene przydatnosci systemu konieczne jest zbadanie jego sprawnosci przy zmien-
nej liczbie mówców jakich mozemy rozpoznac przy zachowaniu zadanej pewnosci rozpoznania. Ide-
alna sprawnosc systemu identyfikacji oznaczałaby poprawnosc rozpoznania wszystkich prób a wiec
zajmowanie przez poprawnego mówce pierwszej pozycji na kazdej liscie hipotez. Dzieki posiadaniu
dwóch korpusów (Global Phone oraz Corpora) zawierajacych nagrania wypowiedzi w jezyku polskim
ok. 125 mówców oraz korpusu TIMIT zawierajacego nagrania 630 mówców wypowiadajacych sie w
jezyku angielskim, mozliwe jest zaobserwowanie spadku jakosci rozpoznania wraz z zwiekszania sie
bazy mówców. W tescie nieprowadzona jest klasteryzacja ramek.
W przypadku korpusów Global Phone i Corpora mozemy przyjac, ze system rejestruje wypowiedzi
treningowe i testowe jako dowolne wypowiedzi mówców. Jest to wiec system z otwartym słownikiem.
5.1.1. Test wpływu wielkosci bazy na jakosc rozpoznania
Test identyfikacji - zmienna liczba mówców, korpusy Global Phone i Corpora
Mówców w bazie od 25 do 125
Długosc nagrania treningowego 60 sekund
Długosc nagrania testowego 5 sekund
Testów dla kazdego z mówców 30
Oceniajac wpływ wielkosci bazy mówców na stopien rozpoznania, mozemy powiedziec, ze wraz
z wyrostem wielkosci bazy rozpoznanie pogarsza sie a srednia pozycja, jaka na liscie hipotez rozpoz-
nan stanowi własciwy mówca, spada. Dzieki wykonaniu treningu dla nagran mówców zawierajacych 60
sekund nagrana, system zachowuje wysoki stopien rozpoznania, osiagajac 98 % poprawnosci rozpoz-
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
5.1. Test systemu 66
nan dla 25 mówców i około 93 % dla 125 mówców. Bardzo niski wskaznik sredniej pozycji na liscie
rozpoznan wskazuje jednoczesnie, ze pozycja poprawnego mówcy była zawsze bardzo bliska pierwszej.
30 40 50 60 70 80 90 100 110 12091
92
93
94
95
96
97
98Stopień rozpoznawania w funkcji wielkości bazy mówców
Mówców w bazie
Popra
wanie
rozpoznanych [%
]
30 40 50 60 70 80 90 100 110 1201
1.1
1.2
1.3
1.4
1.5Średnia pozycja poprawnego wyniku w liście rozpoznań
Mówców w bazie
Śre
dnia
pozycja
popra
wnego m
ów
cy
Rysunek 5.1: Wynik testu identyfikacji bazy I
W przypadku korpusu TIMIT posługujemy sie wypowiedziami mówców wypowiadajacych ten sam
zastaw zdan. Dotyczy to wypowiedzi testowych i treningowych. Jest to wiec system z zamknietym
słownikiem.
Test identyfikacji - zmienna liczba mówców, korpus TIMIT
Mówców w bazie od 25 do 400
Długosc nagrania treningowego 15 sekund
Długosc nagrania testowego 3 sekund
Testów dla kazdego z mówców 3
Dzieki przeprowadzenia testu na bazie zawierajacej az 400 mówców mozemy ocenic wpływ
wielkosci bazy dla systemu, w którym kazdy mówca posiadał krótkie, 15 sekundowe nagranie
treningowe. W systemie obserwujemy duzy spadek poprawnosci rozpoznania (około 20 %) wraz z
wzrostem wielkosci bazy z 25 do 125 mówców. W systemie, w którym nagranie treningowe miało
60 sekund, spadek ten wynosił 5 %, przy jednoczesnym zachowaniu niskiej sredniej pozycji mówcy
na liscie hipotez. Przy dalszym zwiekszaniu wielkosci bazy obserwujemy spadek jakosci rozpoznania
do około 65 %. Niska, utrzymujaca sie w granicy 7-8 pozycja poprawnego mówcy na liscie hipotez
wskazuje jednak, ze pomimo dobrej skutecznosci identyfikacji, niepoprawne hipotezy znajdowały sie na
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
5.1. Test systemu 67
dalszych pozycjach listy. Dla zachowania wysokiej jakosci systemu istotne jest wiec wykorzystywanie
nagran treningowych zawierajacych mozliwie długie i róznorodne nagranie mówcy, w celu zapewnienia
wysokiej jakosci rozpoznanie nie tylko dla małych ale równiez duzych baz mówców.
50 100 150 200 250 300 350 40060
65
70
75
80
85
90Stopień rozpoznawania w funkcji wielkości bazy mówców
Mówów w bazie
Popra
wanie
rozpoznanych [%
]
50 100 150 200 250 300 350 4001
2
3
4
5
6
7
8Średnia pozycja poprawnego wyniku w liście rozpoznań
Mówów w bazie
Śre
dnia
pozycja
popra
wnego m
ów
cy
Rysunek 5.2: Wynik testu identyfikacji bazy II
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
5.1. Test systemu 68
5.1.2. Test wpływu klasteryzacji ramek mowy na jakosc rozpoznania
W celu oceny przydatnosci wprowadzenia klasteryzacji ramek mowy w oparcie o klasy wyznaczone
przy pomocy współczynnika F-Ratio, przeprowadzony zostanie test, w którym sprawdzony zostanie
wpływ szumu o zmiennej mocy na jakosc rozpoznania przy zmiennej liczbie klas ramek. Kryterium
klasyfikacji ramek i podział klas opisany został w 3.2.2. Jako szum zostało wykorzystanie nagranie za-
wierajace hałas towarzyszacy rozmowie wielu osób nagrane w duzej sali. Moc szumu jest obrana tak, aby
w kazdym tescie osiagnac scisle zadany stosunek mocy sygnału i szumu (SNR, ang. signal-noise-ratio).
Test identyfikacji - zmienna liczba klas ramek i zmienna moc szumu, korpus Global Phone
Mówców w bazie 50
Długosc nagrania treningowego 60 sekund
Długosc nagrania testowego 5 sekund
Testów dla kazdego z mówców 50
Klas ramek od 1 do 3
SNR od -10 do 50 dB
Rodzaj szumu ambient1
-10 0 10 20 30 40 500
20
40
60
80
100Stopień rozpoznawania w funkcji szumu
SNR [dB]
Popra
wanie
rozpoznanych [%
]
-10 0 10 20 30 40 500
5
10
15
20
25Średnia pozycja poprawnego wyniku w liście rozpoznań
SNR [dB]
Śre
dnia
pozycja
popra
wnego m
ów
cy
1 klasa
2 klasy
3 klasy
1 klasa
2 klasy
3 klasy
Rysunek 5.3: Wpływ wykorzystania klas ramek na identyfikacje
Podczas testów wykorzystano baze złozona z mówców meskich i zenskich z korpusu Global Phone.
Wzorce klas pochodza z nagran korpusu Corpora.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
5.1. Test systemu 69
Test jakosci rozpoznawania w obecnosci szumu w nagraniu testowym wskazuje, ze wraz ze wzrostem
mocy szumu nastepuje gwałtowny spadek jakosci rozpoznania az do momentu, w którym otrzymywane
wyniki mozna uznac za losowe. W naszym przypadku ma to miejsce dla stosunku mocy do szum równym
-10 dB. Wyrazny spadek jakosci rozpoznania nastepuje dopiero gdy SNR jest mniejszy niz 20 dB, co
odpowiada obecnosci dobrze słyszalnego szumu. Szum o SNR wiekszym niz 0 dB nie wpływa na jakosc
rozpoznania. Proporcjonalnie po spadku poprawnosci identyfikacji wzrost srednia pozycja poprawnej
hipotezy na liscie rozpoznan.
Wpływ wykorzystania klasteryzacji ramek na poprawnosc rozpoznawania jest niewielki ale reje-
strowany. Jest to poprawa ilosci poprawnych identyfikacji o około 2 %, przy wykorzystaniu tych samych
nagran treningowych.
55%
17%
28%
Udział sklasyfikowanych ramek klas w nagraniach testowych bazy mówców
Klasa 1
Klasa 2
Klasa 3
Rysunek 5.4: Wynik klasteryzacji ramek nagran treningowych
Wykorzystanie klasteryzacji prowadzi jednoczesnie do zmniejszenia długoscie nagrania przypada-
jacego na kazda z klas jakie mamy zainicjowac. Badanie długosci nagran poszczególnych klas wskazuje,
ze długosc nagran zalezy od klasy, co przekłada sie na ilosc obserwacji, na podstawie których tworzony
bedzie model. Aby uniknac tego efektu wskazane byłoby rozwazenie zwiekszania wymaganej długosci
nagrania wprost proporcjonalnie do załozonej liczby klas, prowadziłoby to jednak do potrzeby nagrywa-
nia wielu minut mowy, co byłoby uciazliwe dla uzytkownika systemu.
Próba wyznaczenia wiekszej liczby klas nie powiodła sie z powodu wystepowanie u niektórych
mówców klas, dla których sklasteryzowane ramki nie umozliwiały zainicjowanie modeli.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
5.2. Wnioski koncowe 70
5.2. Wnioski koncowe
Praca stanowi omówienie mozliwosci modelowania i rozpoznawania mówców na potrzeby systemów
komputerowych. Przyblizone zostały zagadnienia wynikajcie z fizjologii mowy umozliwiajace tworze-
nie modeli aparatu głosowego mówcy i uwzgledniajace psychoakustyczny model słuchu. Zostały tez
przeprowadzone własne badania w zakresie róznorodnosci informacji zawartej w podpasmach sygnału
mowy i powiazania tej informacji z cechami traktu głosowego mówców. Badanie metod zwiekszenia
zaleznosci wartosci wektorów cech od cech osobniczych mówców jest oprócz tworzenia lepszych mod-
eli mówców, najlepsza metoda poprawy jakosci rozpoznawania mówców. Mozliwosc wykorzystania
klasteryzacji ramek mowy w oparciu o załozenie klas o podobnej statystyce energii zawartej w pod-
pasmach miało na celu umozliwienie inicjacji dokładniejszych modeli mówców. Tak otrzymane modele
umozliwiałyby uwzglednienie udziału róznych podpasm w ogólnym zróznicowaniu głosów mówców.
Wyszukiwanie i wykorzystywanie cech niezaleznych od tresci i silnie zaleznych od mówcy pozwala
budowanie systemów niezaleznych od tresci i nie tracacych jakosci rozpoznania wraz ze wzrostem
wielkosci bazy mówców.
Testy przeprowadzone w oparciu o zaproponowany zastaw klas udowodniły, ze prowadzi to do
zwiekszenia jakosci rozpoznania z 93 do 95 %. Nalezy równoczesnie pamietac,ze jezeli operujemy na
materiale treningowym o stałej długosci to klasteryzcja wiaze sie z zmniejszeniem ilosci obserwacji jakie
przypadna na kazda z klas.
Zawarty w pracy dokładny matematyczny opis przetwarzania sygnałów i metod tworzenia mod-
eli mówców wraz z pózniejszym rozpoznawaniem przybliza szeroko stosowane dzis metody zwiazane
z technologia mowy. Oprogramowanie stworzone na potrzeby pracy umozliwia samodzielne ekspery-
menty zwiazane z wykorzystanie ukrytych modeli Markowa i analizy pasmowej w rozpoznawaniu
mówców. Oprócz modułów umozliwiajacych przeprowadzenie treningu i testów systemu, stworzone
zostały narzedzia do przygotowania baz nagran treningowych i testowych mówców a takze wizualizacje
wyników. Dzieki dołaczonej dokumentacji, oprogramowanie wykonane w ramach pracy moze stanowic
baze do dalszego rozbudowania systemu o funkcje poprawiajace jakosc rozpoznania lub zostac wyko-
rzystane w inny projekcie.
Dalsze prace nad rozwojem systemu rozpoznawania mówców opartych o UMM i GMM mogłyby
polegac nad zwiekszeniem odpornosci systemu na szum zawarty w wypowiedzi przez wykorzystanie
adaptacyjnej filtracji szumu, systemów detekcji głosu lub poszukiwaniu zastawu parametrów o wysok-
iej odpornosci na szum. Z praktycznego punku widzenia wskazane jest ograniczenie wpływu wielkosci
bazy na jakosc rozpoznania lub zastosowanie metod dynamicznego ustalania listy mówców bioracych
udział w rozpoznaniu np. na podstawie płci lub jezyka. Inna droga rozwoju systemów rozpoznawa-
nia pozwalajaca uzyskac wysoka jakosc identyfikacji jest łaczenie systemów wykorzystujacych rózne
metody parametryzacji i modelowania i wazenie wyników uzyskanych przez kazdy z nich w celu ustal-
enia ostatecznej decyzji.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6. Dokumentacja projektu
6.1. Opis systemu rozpoznawania mówcy
System Rozpoznawania Mówcy tworzony jest w Zespole Przetwarzania Sygnałów Katedry Elek-
troniki, Akademii Górniczo-Hutniczej w Krakowie, w ramach grantu „Aplikacje technologii mowy w
systemach bezpieczenstwa publicznego”, MNiSW nr O R00 0019 05.
W ramach systemu mozliwe jest tworzenia modeli mówców oraz rozpoznawanie mówców na podstawie:
plików dzwiekowych lub nagran dokonywanych przy pomocy mikrofonu. Do rozpoznawania mówcy
wykorzystane sa Ukryte Modele Markowa oraz mikstury Gaussowskie. Analiza sygnału dokonywana
jest w dziedzinie czestotliwosci, przy pomocy banków filtrów.
System został stworzony w jezyku C++, z dodatkowymi elementami wykorzystanymi do wizualizacji
wyników eksperymentów, napisanymi w srodowisku Matlab [32].
6.2. Schemat systemu
System został podzielony na bloki funkcjonalne. Schemat z wyróznionymi blokami unkcjonalnoscia
przystawia rys. 5.1.
OBSŁUGA
PLIKÓW WAV
OBSŁUGA
ŚRODOWISKA HTK
EKSTRAKCJA
CECH
KLASYFIKACJA
SYGNAŁU
OBSŁUGA
KORPUSU
GLOBAL-FON
TESTOWANIE -
ROZPOZNAWANIE
MÓWCÓW
TRENING -
TWORZENIE MODELI
MÓWCÓW
FUNKCJE
POMOCNICZE
Rysunek 6.1: Struktura systemu rozpoznawania mówców. Podział na bloki funkcyjne
71
6.2. Schemat systemu 72
6.2.1. Bloki funkcyjne
Obsługa plików WAV. Zawiera klase odpowiedzialna za wczytywanie i zapisywanie plików WAV.
Dodatkowo zawiera funkcje odpowiedzialna za dodawanie do nagrania innego nagrania, zawierajacego
na przykład szum z zadana przez uzytkownika moca. Wczytany sygnał bedzie wykorzystany podczas
ekstrakcji cech.
Obsługa korpusu Global-Phone. Mozliwy jest bezposredni dostep do zasobów zawartych w ko-
rpusie Global-Phone w celu ułatwienia prowadzenia eksperymentów z systemie. Moduł odpowiada za
tworzenie nagran treningowych i testowych o zadanej długosci dla wybranej liczby mówców, z zadban-
iem o rozłacznosc zbiorów testujacego i treningowego.
Ekstrakcja cech. Moduł ekstrakcji cech zawiera funkcjonalnosc opisana w rozdziale 3, tzn. umozli-
wia przeprowadzanie analizy fourierowskiej, ramkowania i analizy pasmowej sygnału. Wektory cech
pozyskane w wyniku ekstrakcji sa przekazywane do srodowiska HTK.
Klasyfikacja sygnału. Moduł zawiera implementacje klasyfikatora kNN słuzacego do klasyfikacji
odcinków nagrania ze wzgledu na cechy fonetyczne. Klasy te zostaja zdefiniowane na podstawie wzor-
ców dostarczonych przez uzytkownika. Parametryzacja wzorców jest dokonywana poprzez obliczenie
srednich i wariancji podpasm uzyskanych podczas analizy widma wzorców. Informacja o wzorcach jest
przechowywana w plikach tekstowych. Wynik klasyfikacji jest wykorzystany podczas treningu modeli
mówców. Informacje o klasie, do której naleza poszczególne fragmenty nagrania, słuza zainicjowaniu
osobnych modeli dla kazdej z klas fonetycznych.
Obsługa srodowiska HTK. Moduł zawiera zbiór funkcji umozliwiajacych wykorzystanie HTK
zarówno w celu tworzenia modeli mówców na podstawie nagran i wyekstrahowanych wektorów cech,
wykorzystanie algorytmu Viterbi’ego w celu dokonania dopasowania badanego nagrania do modelu, jak
tez zarzadzania modelami i plikami konfiguracyjnymi.
Trening. Zbiór informacji dotyczacych konfiguracji przeprowadzanego treningu wraz z funkcjami
wykonujacymi pełny trening systemu. Wynikiem działania jest baza Ukrytych Modeli Markowa otrzy-
manych z nagran odpowiadajacych mówcom. Dodatkowo zapisana zostaje informacja o konfiguracji
systemu.
Test. Zbiór informacji dotyczacych konfiguracji przeprowadzanego testu wraz z funkcjami dokonuja-
cymi rozpoznania i analizy wyniku. Oprócz wyników rozpoznawan dla poszczególnych prób obliczany
jest procent poprawnych rozpoznan, srednia pozycja poprawnego rozpoznania na liscie wyników, a w
przypadku weryfikacji, informacje o akceptacji lub odrzuceniu próby. Wyniki testów sa zapisywane w
postaci plików tekstowych zawierajacych pełna informacje o konfiguracji testu oraz wyniki.
Funkcje pomocnicze. Zbiór funkcji wykorzystywanych podczas formatowania danych wejs-
ciowych i wyjsciowych, nie zwiazanych z funkcjonalnoscia rozpoznawania mówców. Obejmuje to
równiez funkcje w srodowisku Matlab, wykorzystane podczas eksperymentów oraz podczas wizualizacji
wyników.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.3. Obsługa plików WAV 73
6.3. Obsługa plików WAV
Klasa Wav umozliwia obsługe plików Wav w zakresie odczytu i zapisu nagran zawartych w plikach.
Oprócz danych, reprezentowanych na zbiorze [−1; 1] dostepne sa informacje o czestotliwosci próbkowa-
nia, rozdzielczosci i ilosci kanałów nagrania. Dodatkowo umozliwia łaczenie nagran przez dodawanie
szumu o zadanej mocy. Sygnał zakłócajacy moze byc szumem białym, rózowym, niestacjonarnym
(nagraniem hałasu lub rozmowy) lub nagraniem innego mówcy.
Struktura klas
Wav
Pliki ASR/Wav.h ; ASR/Wav.cpp
Zmienne
unsigned int samp_rate, bits_per_samp, num_samp, num_chan
unsigned long chunk_size
std::vector<double> data
Parametry nagrania dla pliku Wav. W przypadku odczytu sa pobierane z pliku, w przypadku
zapisu dane zawarte w zmiennej data zostana zachowane z aktualnymi parametrami. Zmi-
enna samp_rate zawiera czestotliwosc próbkowania, bits_per_samp ilosc bitów na próbke,
num_samp ilosc próbek w nagraniu, num_chan ilosc kanałów a chunk_size dane pomoc-
nicze formatu Wav. Dane sa przechowywane w zmiennej data a podczas zapisu i odczytu wyko-
rzystywany jest układ little-endian.
std::vector<double> noise_
Wektor zawierajacy dane szumu, który moze zostac dodany do nagrania.
Metody void readwav(string FileName)
Wczytanie pliku WAV spod sciezki string FileName, z uwzglednieniem rozszerzenia .wav.
Wraz z danymi zostana zapisane informacje na temat czestotliwosci próbkowania, rozdzielczosci,
liczby próbek i kanałów. Dane z wartosci typu byte sa konwertowane i normalizowane do
double, tak aby z zakresu [−32768; 32767] przejsc do [−1; 1]. Wczytane dane moga zostac
zmodyfikowane i ponownie zapisane przy pomocy metody writewav z zachowaniem wszyst-
kich parametrów pliku.
void writewav(string FileName)
Nagranie zostanie zapisane w pliku string FileName. Dane które chcemy zachowac i
parametry pliku musza zbyc zdefiniowane przed zapisem. Dane zastana zapisane w porzadku
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.4. Przetwarzanie i klasyfikacja sygnału 74
little-endian.
void getNoise(string noise)
Dodatkowe nagrania zawierajace szum sa załaczone w katalogu noise. Przykładowe próbki
zawieraja szum biały, rózowy, pojedynczy ton o czestotliwosci 1 kHz oraz 5 próbek szumu
niestacjonarnego zawierajacego nagrania rozmów i hałasu. Po wczytaniu szumu moze on byc
dodawany do nagrania z dowolnego pliku Wav.
std::vector<double> addNoise(string fileName,double SNR)
W celu przeprowadzania eksperymentów z nagraniami zawierajacymi szum o mocy scisle
okreslonej wzgledem mocy nagrania orginalnego, konieczne jest znormalizowanie mocy sygnału
szumu. Nastepnie nastepuje wazenie szumu tak, aby posiadał on moc okreslona przez zmienna
SNR, która okresla moc szumu wzgledem mocy sygnału wyrazona w decybelach. Szum zostaje
dodany do nagrania z pliku sciezki string FileName a sygnał wynikowy zostaje zapisany w
pliku recognize.wav, który jest domyslnym plikiem zawierajacym nagranie przeznaczone do
analizy. Tworzenie bazy plików zawierajacych próbki o zadanym szumie jest realizowane przez
funkcje klasy GFon.
void clear(void)
Wyzeruj wszystkie zmienne klasy.
6.4. Przetwarzanie i klasyfikacja sygnału
Klasy zawarte w module Feature_extraction odpowiadaja za przetwarzanie sygnału akusty-
cznego wczytanego z plików Wav w celu otrzymania wektorów cech. Funkcjonalnoscia klas tworzacych
moduł jest preemfaza i ramkowanie sygnału, analiza fourierowska, pasmowa i tworzenie wektorów
cech. Do analizy pasmowej moga byc wykorzystane filtry melowe, liniowe, lub inne zdefiniowane przez
uzytkownika. Dane otrzymane w trakcie analizy pasmowej moga byc podane analizie cepstralnej wraz
z operacja lifteringu i obliczenia pochodnych. Oprócz zdefiniowania bloków funkcyjnych dostepna jest
funkcja realizujaca całosc procesu ekstracji cech. Oddzielna funkcjonalnoscia modułu jest klasyfikator
kNN wraz z narzedziem tworzacym baze wzorców, słuzacy klasyfikacji fonetycznej ramek. Wynik
klasyfikacji jest przekazywany jako zbiór plików MLF, umozliwiajacych tworzenie przez HTK Ukrytych
Modeli Markowa dla kazdej z klas.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.4. Przetwarzanie i klasyfikacja sygnału 75
Struktura klas
FFT
Pliki ASR/Feature_extraction.h ; ASR/Feature_extraction.cpp ; ASR/Array.h ; ASR/fftw3.h ; AS-
R/fftw++.h ; ASR/fftw++.cc
Metody std::vector<double> FFT(std::vector<double> DATA,long N)
Obliczenie transformaty Fouriera wiaze sie z wykorzystaniem biblioteki FFTW w wersji 3,
dostepnej pod licencja GNU General Public License. Umozliwia ona dokonywanie transforma-
cji wielowymiarowych do dziedziny czestotliwosci i transformacji odwrotnej, zarówno dla danych
rzeczywistych jak i zespolonych. W naszym przypadku wykorzystamy jedynie transformate jed-
nowymiarowa dla danych rzeczywistych.
Metoda FFT realizuje algorytm szybkiej transformacji Fouriera dla danych rzeczywistych
zawartych w zmiennej DATA i zwraca N wartosciowy wektor zawierajacy widmo amplitudowe
zadanego sygnału. W przypadku jesli długosc danych wejsciowych jest mniejsza niz N, badany
sygnał jest dopełniany zerami (co nie ma wpływu na wynik analizy).
std::vector<complex> IFFT(std::vector<double> DATA,long N)
Metoda IFFT realizuje algorytm szybkiej odwrotnej transformacji Fouriera dla widma ze-
spolonego zawartego w zmiennej DATA i zwraca N wartosciowy wektor zawierajacy sygnał
rzeczywisty. W przypadku jesli długosc danych wejsciowych jest mniejsza niz N, badany sygnał
jest dopełniany zerami (co nie ma wpływu na wynik analizy).
Frames
Pliki ASR/Feature_extraction.h ; ASR/Feature_extraction.cpp
Zmienne
int SOURCERATE
long TARGETRATE
long WINDOWSIZE
std::vector<double> W
long L
std::vector< vector<double> > DATA
Zmienna SOURCERATE okresla czestotliwosc próbkowania danych, zmienna TARGETRATE
okresla wyrazony w milisekundach okres z jakim maja byc tworzone ramki a zmienna
WINDOWSIZE okresla wyrazony w milisekundach okres poszczególnych ramek. Sposób defin-
iowania ramek jest zblizony do znanego z HTK, rózniacy sie zastosowaniem innych jednostek (w
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.4. Przetwarzanie i klasyfikacja sygnału 76
przypadku HTK sa to wielokrotnosci 100 nanosekund), tak aby definiowanie ramek było bardziej
intuicyjne.
W zmiennej W po zainicjowaniu znajdowac sie bedzie okno Hamminga o długosci zachowanej po-
mocniczo w zmiennej L = WINDOWSIZE*SOURCERATE*0.001 wykorzystane podczas ok-
ienkowania pobranych ramek. Okna o innych funkcjach nalezy zdefiniowac jako metody klasy
Frames.
Sygnał podzielony na ramki znajduje sie w zmiennej DATA.
std::vector< std::vector<vector<double>>> M_template
std::vector< std::vector<vector<double>>> V_template
int neabours
std::vector<int> F_class
Zmienne M_template i V_template zawieraja wzorce elementów klas dla klasyfikatora fone-
tycznego. Sa one obliczane na podstawie danych przygotowanych przez uzytkownika lub wczy-
tywane z plików tekstowych. Zmienne neabours okresla liczbe sasiadów (Nearest Neabours)
rozwazanych przy klasyfikacji.
W wektorze F_class przechowywany jest wynik klasyfikacji, gdzie kazdej ramce odpowiada
jedna z n klas.
Metody std::vector<double> get_window_Hamming(int N)
Metoda zwraca okna Hamminga o długosci N wykorzystane podczas okienkowania sygnału.
std::vector<double> preemphasis(vector<double> data,float factor
= 0.97)
Prememfaza sygnału jest dokonywana w dziedzine czasu przy pomocy filtru FIR pierwszego
rzedu. Domyslnie współczynnik preemfazy jest przyjety na α = 0.97. Funkcja zwraca wektor o
takiej samej długosci jak sygnał wejsciowy.
Frames( int samp_freq, long frame_period, long window_period, int
kNN_neabours )
Konstruktor klasy jest wykorzystany do zainicjowania zmiennych okreslajacych parametry ramki
oraz obliczenia funkcji okna. Parametry te sa podawane jako argumenty konstruktora.
void get(vector<double> data)
Metoda ramkujaca sygnał zawarty w zmiennej data. Ramki posiadaja długosc i przesuniecie
okreslone zmiennymi klasy TARGETRATE i WINDOWSIZE. Gotowe ramki sa umieszczane w
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.4. Przetwarzanie i klasyfikacja sygnału 77
zmiennej DATA. W przypadku gdy koniec ostatniej ramki nie pokrywa sie z koncem sygnału,
ramka zostaje uzupełniona zerami.
void compute_Templates(int classes)
Wzorce dla klasyfikatora fonetycznego sa na poczatku pobierane z plików Wav dostarczonych
przez uzytkownika. Ich parametryzacja odbywa sie jednorazowo, z jednoczesnym zapisaniem ich
parametrów do plików tekstowych. Utworzonych zostanie classes klas, kazda na podstawie
plików umieszczonych w podkatalogach (których nazwy odpowiadaja numerom klas) znajduja-
cych sie w katalogu F_templates. Paramatryzacja wzorców odbywa sie poprzez analize pas-
mowa znormalizowanych widm z wykorzystaniem 12 filtrów liniowych a nastepnie obliczenia
srednich i wariancji energii w kazdym z podpasmie. Informacje te zostaja zapisane w osobnych
plikach (srednie i-tej klasy w pliku M_i w wariancje w pliku V_i). Po obliczeniu wzorców
mozliwa jest klasyfikacja ramek. Klasyfikacja jest mozliwa za pomoca wzorców srednich, wari-
ancji lub za pomoca wazonego wyniku obu prób. Test sprawnosci klasyfikatora znajduje sie w
3.2.2.
void get_Templates(void))
Z powodu czasochłonnosci obliczania wzorców, korzystniej jest przechowywac parametry wzor-
ców. Metoda get_Templates wykorzystuje wczesniej obliczone wzorce i wczytuje je do zmi-
ennych M_template i V_template. Po wczytaniu wzorców mozliwa jest klasyfikacja ramek.
void F_classifier(void)
Metoda F_classifier jest implementacja klasyfikatora kNN wykorzystujacego jako wzorce
srednie i wariancje energii podpasm analizowanego sygnału. Jego sprawnosc jest zadowalajaca (ok
85 % poprawnych klasyfikacji) w przypadku klasyfikacji do klas wyznaczonych na podstawie kry-
terium zróznicowania miedzyklasowego. Kryterium takim jest Fisher-Ratio a eksperyment ukazu-
jacy podobienstwa fonemów jezyka polskiego jest zawarty w podrozdziale 3.2.2.
Klasyfikator przydziela kazda z ramek zawartych w zmiennej DATA do jednej z classes klas.
Kazdorazowo obliczane sa srednie i wariancje kazdego z 12 podpasm ramki i przy pomocy
neabours najblizszych wzorców okreslana jest przynaleznosc ramki do klasy. Wynik klasy-
fikacji jest zapisywany do zmiennej F_class.
FilterBank
Pliki ASR/Feature_extraction.h ; ASR/Feature_extraction.cpp
Zmienne
std::vector<vector<double>> filter
Zmienna przechowuje bank filtrów utworzony przez konstruktor klasy. Rodzaj filtru jest okreslany
przy wywołaniu konstruktora. Filtry beda wykorzystane w dziedzinie czestotliwosci. Kazdy filtr
posiada jednakowa długosc.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.4. Przetwarzanie i klasyfikacja sygnału 78
Metody FilterBank(int bands, int L, string TYPE)
Konstruktor klasy pozwalajacy przygotowac bank filtrów wykorzystany podczas analizy pas-
mowej. Stworzonych zostanie bands filtrów pokrywajacych pasmo o długosci L przy pomocy
filtrów zdefiniowanych zmienna TYPE. Moga to byc filtry :
’gaus’ - liniowe filtry gaussowskie
’trian’ - liniowe filtry trójkatne
’mel_gauss’ - melowe filtry gaussowskie
’mel_trian’ - melowe filtry trójkatne
int freq2mel(int freq) Funkcja pomocnicza - przelicznik czestotliwosci freq ze
skali liniowej do skali melowej.
int mel2freq(int mel) Funkcja pomocnicza - przelicznik czestotliwosci mel ze skali
melowej do skali liniowej.
Extraction
Pliki ASR/Feature_extraction.h ; ASR/Feature_extraction.cpp
Zmienne
std::vector<double> FEATURE
std::vector< vector<double>> dct_coef
std::vector<double> lifter
Zmienne klasy Extraction przechowuja parametry wektora cech. Podczas przetwarzania
sam wektor jest przechowywany w wektorze FEATURE. Zmienna dct_coef zawiera tablice
współczynników transformaty kosinusowej wykorzystanej podczas dekorelacji elementów wek-
tora cech. Zmienna lifter zawiera współczynniki funkcji literujacej cepstrum, jezeli tak
zostanie uzyta. Zmienne sa inicjowane przez konstruktor w celu przyspieszenia obliczen.
Metody Extraction
Konstruktor domyslny wykorzystany w przypadku ekstrakcji wektora cech w postaci danych
otrzymanych po analizie pasmowej.
Extraction(int dct_order,int lifter))
Konstruktor dla ekstrakcji z wykorzystaniem wektorów cech w postacie cepstrum. Podczas inic-
jacji obliczane sa współczynniki transformaty kosinusowej o rzedzie dct_order. Jesli zmienna
lifter bedzie równa 1, zainicjowane zostana równiez wartosci funkcji lifterujacej.
void get_feature(vector<double> DATA, FilterBank F)
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.4. Przetwarzanie i klasyfikacja sygnału 79
Metoda obliczajaca wektor cech odpowiadajacy pojedynczej ramce zawartej w zmiennej DATA
przy wykorzystaniu banku filtrów F. Poprzez wykorzystanie banku filtrów F złozonego z M fil-
trów, dokonywana jest redukcja N wartosciowego pasma do M wartosciowego wektora, przy
czym M < N . Dla podpasm j sygnału S ramki i wynikiem filtracji jest
Yi =N∑j=1
S[j]Fi[j], i = 1...M.
Wektor cech składa sie z wartosci odpowiadajacych wynikom filtracji sygnału zawartego w ramce
przy pomocy baku filtrów F poddanym nastepnie w razie potrzeby operacjom obliczenia cepstrum
rzeczywistego i lifetringu.
void get_feature_cepstrum(vector<double> DATA, FilterBank F)
Dodatkowa metoda obliczajaca wektor cech jako cepstrum rzeczywiste widma sygnału z ramki
DATA. Podczas obliczen wykorzystywany jest bank filtrów F.
std::vector<double> compute_dct(vector<double> data, int M)
Obliczenie transformaty kosinusowej jest realizowane przez oddzielna metode. Przy wykorzysta-
niu współczynników obliczonych przez konstruktor, dokonujemy transformacji zmiennej data
a nastepnie zwracamy M pierwszych współczynników. Jezeli M jest wiekszy niz długosc wektora
cech, zwracany jest cały wektor. Zerowy element jest odrzucany, jako ze jego wartosc odpowiada
składowej stałej wektora cech.
std::vector<double> compute_lifter(vector<double> data, int L)
Metoda dokonuje liftringu wektora cech według zaleznosci
C[n] =(
1 +L
2sin
πn
L
)c[n],
gdzie L jest stała okreslona prze zmienna L.
std::vector< vector<double> > delta_feature(vector<vector<double»
DATA)
Metoda operujaca na wielu wektorach cech, zwracajaca pochodna badanego ciagu wektorów cech.
Pochodne cepstrum sa obliczane poprzez rózniczkowanie oraz aproksymacje parametrami krzywej
wielomianowej. W przypadku rózniczkowania i-ty element delta-cepstrum ramki n ma wartosc
dn[i] = cn+M [i]− cn−M [i],
gdzie M to przedział analizowania cepstrum, zazwyczaj 2-3 ramki. Wektor delta-cepstrum jest
obliczany dla kazdego składnika wektora cepstrum.
Poprzez kolejne wywołania funkcji otrzymamy pochodne wyzszego rzedu.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.5. Obsługa HTK 80
6.5. Obsługa HTK
HTK stanowi zestaw programów przygotowanych z mysla o tworzeniu eksperymentalnych sys-
temów rozpoznawania mowy i mówców. W celu przystosowania pakietu do naszych celów konieczna
jest mozliwosc zarzadzania plikami i skryptami wykorzystanymi podczas tworzenia i weryfikacji mod-
eli Markowa. Klasy zwiazane z modułem zapewniaja mozliwosc wykorzystania konfiguracji treningów i
testów systemu rozpoznawania mówców w celu przeprowadzenia tych operacji przy pomocy srodowiska
HTK. Wiaze sie to ze wstepnym przetwarzaniem danych i przygotowanie plików konfiguracyjnych, przy-
gotowywaniem wywołan modułów HTK i analize danych zwracanych jako wyniki. Lista wyników jest
sortowana i normalizowana, przy jednoczesnej mozliwosci sledzenia wyników poprzednich rozpoznan.
Struktura klas
MLFEntry
Pliki ASR/HTK.h ; ASR/HTK.cpp
Zmienne
long long int StartTime
long long int StopTime
char Label[50]
char Comment[50]
Zmienne odpowiadaja polom etykiety w plikach MLF :
- StartTime - poczatek eytkiety wyrazony jako wielokrotnosc czasu 100 ns. Oznacza on
poczatek oznaczonego fragmentu nagrania wzgledem poczatku.
- StopTime - koniec eytkiety wyrazony jako wielokrotnosc czasu 100 ns.
- Label - identyfikator etykiety zwiazanej z oznaczonym odcinkiem nagrania. W przypadku
naszego systemu etykieta identyfikowac bedzie klase i mówce, do której nalezy dany odcinek
nagrania.
- Comment - opcjonalne pole, w naszym przypadku bedzie dotyczyło tylko plików zawierajacych
wynik rozpoznania i bedzie zawierało informacje o prawdopodobienstwie pochodzenia opisy-
wanego odcinka do mówcy okreslanego polem Label.
Klasa MLFEntry stanowi pomocnicza strukture danych dla obsługi odczytu i zapisu plików MLF.
MLF
Pliki ASR/HTK.h ; ASR/HTK.cpp
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.5. Obsługa HTK 81
Metody vector<MLFEntry> readMLF(string MLFFileName)
Odczyt pliku MLF, do którego sciezka jest podana jako argument MLFFileName. Funkcja zwraca
wektor typu MLFEntry zawierajacy wszystkie etykiety w kolejnosci zawartej w pliku. Za koniec
pliku uwaza sie ostatnia linie pliku zawierajaca znak . .
void writeMLF(string MLFFileName, MLFEntry Entry)
Zapisanie do pliku MLF, do którego sciezka jest podana jako argument MLFFileName, etykiety
Entry. Zakładamy, ze docelowy plik istnieje, zapis jest tylko dodaniem etykiety do konca pliku.
Result
Pliki ASR/HTK.h ; ASR/HTK.cpp
Zmienne
std::vector<string> SpeakerList
std::vector<double> ResDuration
std::vector<double> ResProbability
int match
std::vector<int>speakers_positon
Zmienne pomocnicze procesu decyzji :
- SpeakerList - lista identyfikatorów pod którymi zostali zapisanie mówcy
- ResDuration - czesc nagrania testowego przypisana do kazdego z modeli. Suma wszystkich
czasów jest równa 1. Oszacowanie udziału kazdego z modeli w generacji obserwacji jest mozliwe
dzieki algorytmowi Viterbi’ego.
- ResProbability - Prawdopodobienstwo hipotezy mówiacej, ze dany model wygenerował
badana obserwacje. Oszacowanie udziału kazdego z modeli w generacji obserwacji jest mozliwe
dzieki algorytmowi Viterbi’ego.
- speakers_position - pozycja poprawnej hipotezy w kazdym z przeprowadzonych testów
- match - wynik rozpoznania, rozumiany jako indeks mówcy, którego hipoteza jest najbardziej
prawdopodobna. Jest to interpretacja poprawna zarówno dla identyfikacji, jak i weryfikacji.
Metody Result()
Podstawowy konstruktor klasy, inicjujacy tablice identyfikatorów mówców SpeakerList,
nazwami mówców znajdujacymi sie w pliku speakers.txt a aktualnego katalogu testowego.
Inicjowane sa jednoczesnie tablice wyników. Nie zakładany jest rodzaj rozpoznania.
void getResult(string ResultFile)
Wczytanie wyniku rozpoznawania ostatniej obserwacji zawartej w pliku ResultFile. Plik ten
musi byc plikiem zawierajacym etykiety w formacie MLF. Wynik zapisywany jest w zmiennych
ResProbability i ResDuration, bez przeprowadzenia normalizacji i sortownia danych.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.5. Obsługa HTK 82
void decision(int rigth_match)
Normalizacja i sortowanie wyników rozpoznawania. Dane sa sortownie malejaco. W celu zbada-
nia poprawnosci wyniku, zmienna rigth_match powinna zawierac indeks, który odpowiada
mówcy do którego nalezy badana obserwacja. W przypadku zdefiniowania progu decyzji, wynik
rozpoznania musi go przekroczyc, w przeciwnym wyniku funkcja zwraca match = −1.
int position(int speaker)
Okreslenie pozycji mówcy speaker na liscie rozpoznan. W przypadku badania pozycji mówcy
poprawnego, srednia pozycja moze słuzyc jako wyznacznik jakosci systemu (dla systemu ideal-
nego poprawny mówca znajduje sie zawsze na pierwszej pozycji listy rozpoznan).
Parameter
Pliki ASR/HTK.h ; ASR/HTK.cpp
Zmienne std::vector <float> mean
std::vector <float> var
std::vector <float> max
std::ector <float> min
Pomocnicza klasa realizujaca strukture danych wykorzystywana podczas obliczania statystyki
wektorów cech. Jej zmienne to :
- mean - srednia
- var - wariancja
- max - maksimum
- min - minimum
Wartosci te beda opisywały statystyke kazdego z elementów (wymiarów) wektora cech.
Metody Parameter
Konstruktor inicjuje wektor zmiennych klasy jako 0-elementowe tablice.
void eval(vector< vector <float> > DATA)
Oszacowanie statystyk wektorów cech zawartych w zmiennej DATA (wektory stanowia wiersze
tablicy). Statystyki sa wykorzystywane do zainicjowania modeli Markowa.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.5. Obsługa HTK 83
HTK
Pliki ASR/HTK.h ; ASR/HTK.cpp
Zmienne Główna klasa obsługi HTK. Wykorzystywana do obsługi tworzenia i wykorzystania HTK do
tworzenia modeli Markowa.
std::vector<string> SpeakerList
int clases
vector<int> nr_states
vector<int> gaus
Zmienne konfigurujace obsługujace Ukryte Modele Markowa :
- SpeakerList - lista identyfikatorów pod którymi zostali zapisanie mówcy
- classes - ilosc klas przypadajacych na mówce. Ilosc klas jest równowazna ilosci modeli jakie
przypadna na mówce. Istnienie wielu modeli wiaze sie z zastosowanie klasyfikatora, dostarcza-
jacego informacje o przynaleznosci klasowej ramek sygnału i pliku MLF z etykietami. Zakładamy,
ze informacje te zostana dostarczone przez inne moduły. Jezeli classes = 1, system wykonuje
trening bez wykorzystania klas.
- nrState - ilosc stanów modeli Markowa przypadajacych na kazdy z modeli. Indeks wektora
odpowiada klasie dla której definiujemy model. Z powodu wykorzystania modeli o architekturze
left-to-rigth, kazdy model musi tworzy co najmniej 3 stany. W przypadku pojedynczej klasy
zmienna jest pojedyncza wartoscia.
- gaus - ilosc mikstur gaussowskich przypadajacych na kazdy z modeli. Indeks wektora
odpowiada klasie dla której definiujemy model. W przypadku pojedynczej klasy zmienna jest po-
jedyncza wartoscia.
long frames
float fr_interval
short fr_bytes
short type_code
%short data_type
%int nr_sufixes
vector< vector <float> > DATA
Zmienne wykorzystywane podczas odczytu i zapisu wektorów cech. Wiaza sie ze struktura plików
MFC odpowiedzialnych za przechowywanie wektorów cech wraz z informacjami o ich rodzaju.
Szczegółowy opis struktury plików znajduje sie w [29] str. 69.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.5. Obsługa HTK 84
- frames - ilosc wektorów cech. Kazdy wektor cech wiaze sie z jedna ramka danych.
- fr_interval - długosc ramki danych wyrazona jako wielokrotnosc 100 ns.
- fr_bytes - ilosc bajtów przypadajacych na ramke. Istotna z punktu widzenia zapisu i odczytu
plików MFC.
- type_code - kod rodzaju parametryzacji zwiazanej z wektorem cech. Dokładne dane znajduja
sie w [29].
- DATA - tablica zawierajaca wektory cech (wektory stanowia wiersze tablicy). Długosc tablicy
musi byc równa co najmniej frames.
Metody HTK
Konstruktor zerujacy wszystkie pola klasy.
HTK(int classes, std::vector<int> states, std::vector<int> gaus
)
Konstruktor wykorzystujacy informacje o architekturze modeli Markowa (liczbie klasy, stanów
łancuchów i mikstur gaussowskich zwiazanych ze stanami). Lista mówców jest pobierana z pliku
speakers.txt. Z przypadku nowej sesji treningowej, lista mówców jest pusta. W przypadku
wczesniej istniejacej sesji treningowej lista mówców bedzie uaktualniana o nowe modele.
read_MFC(string FileName)
Odczyt pliku FileName jako plku MFC. Wektory cech zostaja umieszczone w zmiennej DATA.
Funkcja moze słuzyc odczytaniu wektorów cech otrzymanych przy pomocy narzedzi HTK.
write_MFC(string FileName)
Zapis pliku FileName jako plku MFC. Zapisane zostaja wektory cech według konfiguracji
zwiazanej ze zmiennymi klasy. Funkcja moze słuzyc do zapisu zmodyfikowanych wektorów cech
lub zapisu wektorów cech uzytkownika.
void changeSpeakerList(std::vector<string> NewSpeakerList)
Zamien aktualna liste mówców htk z lista NewSpeakerList. Po zamianie system bedzie
rozpoznawał tylko mówców z nowej listy. Nie zaleca sie zamiany listy podczas treningu systemu.
void reloadSpeakerList(void)
Odtworzenie listy mówców na podstawie listy mówców z pliku speakers.txt. W przypadku
zamiany listy mówców, funkcja powinna byc wywoływana po zakonczeniu kazdego z ekspery-
mentów.
Parameter f_param(string FileName)
Obliczenie statystyk zwiazanych z wektorami cech zapisanymi w pliku FileName. Wykorzys-
tane przed utworzeniem prototypu modelu Markowa.
void writeproto(vector<Parameter> p)
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.5. Obsługa HTK 85
Zapisanie prototypu modelu Markowa w katalogu proto biezacego katalogu treningowego.
Składnia opisu modeli Markowa w srodowisku HTK znajduje sie w [29] str. 112.
HTKextraction(string WavFile, string OutputFile, string
ConfigFile)
Wykorzystanie funkcji HCopy HTK w celu ekstrakcji cech i zapisania ciagu wektorów cech w
pliku MFC. Pikiem wejsciowym jest plik Wav WavFile a wynikowy plik OutputFile (bez
uwzglednienia rozszerzenia pliku). Ekstrakcja przebiegnie według parametrów zapisanych w pliku
ConfigFile. Informacje odnosnie funkcji HCopy znajduja sie w [29] str. 251.
vector<string> writeHInitOptions(HTK htk)
Przygotowanie atrybutu wywołania inicjalizacji modelu Markowa przy wykorzystaniu wektorów
cech i prototypu oszacowanego z nagrania treningowego. Inicjalizacja bedzie przeprowadzona
przy wykorzystaniu funkcji HInit HTK i bedzie dotyczyc nowego mówcy z listy mówców klasy.
Mówca bedzie dodany jako ostatni na liscie. Informacje odnosnie funkcji HInit znajduja sie w
[29] str. 265.
void HMMinit(vector<string> atr, HTK htk)
Wykonanie inicjalizacji modelu Markowa nowego mówcy z listy mówców klasy. Funkcja tworzy
w podkatalogu ini_hmm biezacego katalogu treningowego zainicjowany model Markowa. Infor-
macje odnosnie funkcji HInit znajduja sie w [29] str. 265.
vector<string> writeHRestOptions(HTK htk)
Przygotowanie atrybutu wywołania reestymacji modelu Markowa algorytmem Baum-Welsch’a
przy wykorzystaniu wektorów cech i zainicjowanego modelu Markowa. Reestymacja bedzie
przeprowadzona przy wykorzystaniu funkcji HRest HTK i bedzie dotyczyc nowego mówcy z
listy mówców klasy. Mówca bedzie dodany jako ostatni na liscie. Informacje odnosnie funkcji
HRest znajduja sie w [29] str. 287.
void HMMreestimate(vector<string> atr, HTK htk)
Wykonanie restymacji modelu Markowa nowego mówcy z listy mówców klasy. Funkcja tworzy
w podkatalogu ini_hmm biezacego katalogu treningowego gotowy model Markowa nowego
mówcy. Informacje odnosnie funkcji HRest znajduja sie w [29] str. 287.
vector<string> writeHViteOptions(HTK htk)
Przygotowanie atrybutu wywołania rozpoznania obserwacji algorytmem Viterbi’ego przy wyko-
rzystaniu wektorów cech i dostepnych modeli Markowa. Rozpoznawanie bedzie przeprowadzone
przy wykorzystaniu funkcji HVite HTK i bedzie dotyczyc mówców zdefiniowanych przez klase
test. Wynik rozpoznania bedzie zapisany w pliku recognize.mlf w biezacym katalogu
testowym. Informacje odnosnie funkcji HVite znajduja sie w [29] str. 300.
void HMMhvite(string atr)
Wykonanie rozpoznania obserwacji przy pomocy algorytmu Viterbi’ego. Informacje odnosnie
funkcji HVite znajduja sie w [29] str. 300.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.5. Obsługa HTK 86
Funkcje pomocnicze wykorzystywane przez klase HTK Ponizsze funkcje słuza przygotowaniu
plików skryptów oraz argumentów wywołan modułów HTK.
Uwaga : Nazwy modeli mówców musza składac sie z symboli i liczb, wykorzystanie jedynie
symboli prowadzi do błednego działania systemu.
writeScpF(HTK htk)
Zapisanie pliku skryptu, zawierajacego informacje o pliku zródłowym i docelowym, wykorzysty-
wanym podczas ekstrakcji cech przy pomocy modułu HCopy. Plik dotyczy ekstrakcji cech z pliku
zawierajacego nagranie nie podzielone na klasy.
void writeclassScp(int classes)
Zapisanie pliku skryptu, zawierajacego informacje o plikach zródłowych i docelowych, wyko-
rzystywanym podczas ekstrakcji cech przy pomocy modułu HCopy. Ekstrakcja dotyczy plików
zawierajacych nagrania przydzielone do kazdej z classes klas.
void writeGramF(HTK htk)
Zapisanie pliku grammatyki systemu, tj. sposobu w jaki łacza sie ze soba modele zawarte w sys-
temie. W naszym przypadku nie wystepuje model ciszy a wszystkie modele zachowane sa pod
identyfikatorem $speakers. W wyniku takiego okreslenia systemu, zakładamy, ze ciag rozpoz-
nan bedzie okreslany na zbiorze modeli zawartych pod identyfikatorem $speakers. Blizsze
informacje na temat modelowania gramatyki znajduja sie w [29] str. 178.
void writeDictF(HTK htk)
Zapisanie słownika systemu, zawierajacego informacje jak nalezy tłumaczyc rozpoznania lub ciagi
rozpoznan. W przypadku rozpoznawania mówców rozpoznanie modelu jest jednoczesnie rozpoz-
naniem mówcy (model odpowiada mówcy). Blizsze informacje na temat roli słowników znajduja
sie w [29] str. 184.
void writeListF(HTK htk)
Zapisanie nazw wszystkich modeli wykorzystywanych przez system.
void updateSpeakerList(int SpeakerNr,string SpeakerName)
Dodanie do konca listy mówców zawartej w pliku speakers.txt, znajdujacym sie w głównym
katalogu systemu, potocznej nazwy mówcy (np. Jan Kowalski) i nazwy odpowiadajacego mu
modlu (nr. S0017). Nazwa mówcy SpeakerName musi byc ciagiem znaków niezawierajacym
znaków spacji. Modyfikacja pliku speakers.txt moze spowodowac utrate informacji o przyp-
isaniu modeli i nazw mówców.
void writeLabelFile(HTK htk)
Zapisanie pliku zawierajacego znaczniki czasowe wektorów cech wykorzystanych podczas
tworzenia modelu mówcy. Plik dotyczy nowo tworzonego modelu (mówcy który zostanie dopiero
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.6. Trening systemu 87
dodany do bazy). Plik bedzie dotyczył sygnału nie poddanego podziałowi na klasy. Znaczniki sa
zapisane w formacie MLF.
void writeLabelFile(HTK htk,std::vector<int> F_classes)
Zapisanie pliku zawierajacego znaczniki czasowe wektorów cech wykorzystanych podczas
tworzenia modelu mówcy. Plik bedzie dotyczył sygnału poddanego podziałowi na klasy i bedzie
zawierał informacje o granicach klas w ramach orginalnego sygnału. Zmienna F_classes zaw-
iera indeksy klas, do których sklasyfikowano ramki. Zakładamy równomierne ramkowanie, przy
okresie okna równym 100 milisekund. Znaczniki sa zapisane w formacie MLF.
6.6. Trening systemu
W celu łatwej parametryzacji i automatyzacji eksperymentów w systemie, przygotowano zestaw
klas umozliwiajacych łatwe zdefiniowanie i otrzymanie zestawów modeli Markowa odpowiadajacych
mówcom. Proces treningu zaczyna sie od okreslenia parametrów sytemu oraz testu. Składaja sie na nie
parametry modeli Markowa, ekstrakcji cech i bazy treningowej ze wzgledu na wielkosci bazy i długosc
nagran odpowiadajacych mówcom. Kazdorazowo trening prowadzi do utworzenia bazy modeli Markowa
wraz z plikami opisujacymi modele i konfiguracje treningu.
Klasy opisujace trening sa definiowane z punktu widzenia parametryzacji, to jest przyjmujemy,
ze beda dziedziczyc z klasy opisujacej tworzenie modeli Markowa bez zdefiniowania jakiego rodzaju
parametryzacji uzyjemy podczas ekstrakcji cech. Klasa dziedziczaca z klasy bazowej Train, musi
zdefiniowac zmienne opisujace parametryzacje i metody przeprowadzania treningu.
Struktura klas
Train
Pliki ASR/Training.h ; ASR/Training.cpp
Zmienne
int trainingLength_
int gfonSpeakers_
int corporaSpeakers_
int timitSpeakers_
int otherSpeakers_
int impostors_
Zmienne konfigurujace trening okreslajace baze mówców :
- trainingLength_ - długosc nagrania treningowego dla kazdego mówcy wyrazona w sekun-
dach
- gfonSpeakers_ - ilosc mówców z korpusu Global-Phone (1 do 99)
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.6. Trening systemu 88
- corporaSpeakers_ - ilosc mówców z korpusu Corpora (1 do 26)
- timitSpeakers_ - ilosc mówców z korpusu Corpora (1 do 200)
- otherSpeakers_ - ilosc mówców z innych korpusów
- impostors_ - ilosc mówców uznanych za intruzów (modele utworzone zostana poza pier-
wotna baza mówców a nagrania beda pochodzic z korpusu ROBOT)
int SOURCERATE_
long TARGETRATE_
long WINDOWSIZE_
string targetKind_
bool saveComperssed_,saveWithCRC_,eNormalise_
double preemCoef_
Zmienne konfigurujace trening okreslajace parametry kodowania sygnału :
- SOURCERATE_ - czestotliwosc próbkowania danych wyrazona w Herzach
- TARGETRATE_ - wyrazony w mili sekundach okres z jakim maja byc tworzone ramki
- WINDOWSIZE_ - wyrazony w mili sekundach okres poszczególnych ramek
- targetKind_ - rodzaj docelowego kodowania wektorów cech jaki zostanie wykorzystany pod-
czas eksperymentów. Jest to wewnetrzna dana HTK, wykorzystana podczas treningu oraz rozpoz-
nawania a takze w przypadku ekstrakcji cech przy pomocy HTK. Dokładny opis znajduje sie w
[29], str. 60 i 69. W przypadku wykorzystanie kodowania uzytkownika pole nalezy ustawic jako
USER
- saveComperssed_ - opcja wybrania zapisu skompresowanej postaci wektorów cech. Ustaw-
ienie zmiennej jako TRUE powoduje zapis wektorów cech w postaci skompresowanej
- saveWithCRC_ - zapis wektorów cech wraz z suma kontrolna
- eNormalise_ - odznaczenie pola jako TRUE spowoduje znormalizowanie energii nagrania
przed ekstrakcja cech
- preemCoef_ - wartosc współczynnika preemfazy wykorzystanego podczas wstepnego
przetwarzania sygnału. Powinien przyjmowac wartosci od 0 do 1 (w wiekszosci zastosowan na-
jlepiej przyjac ok. 0.95).
int classes_
vector<int> nrStates_
vector<int> gaus_
Zmienne konfigurujace trening okreslajace parametry utworzonych ukrytych modeli Markowa :
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.6. Trening systemu 89
- classes_ - ilosc klas przypadajacych na mówce. Ilosc klas jest równowazna ilosci modeli
jakie przypadna na mówce. Istnienie wielu modeli wiaze sie z zastosowanie klasyfikatora, dostar-
czajacego informacje o przynaleznosci klasowej ramek sygnału i pliku MLF z etykietami. Za-
kładamy, ze informacje te zostana dostarczone przez inne moduły. Jezeli classes_ = 1, sys-
tem wykonuje trening bez wykorzystania klas.
- nrState_ - ilosc stanów modeli Markowa przypadajacych na kazdy z modeli. Indeks wektora
odpowiada klasie dla której definiujemy model. Z powodu wykorzystania modeli o architekturze
left-to-rigth, kazdy model musi tworzyc co najmniej 3 stany. W przypadku pojedynczej klasy
zmienna jest pojedyncza wartoscia.
- gaus_ - ilosc mikstur gaussowskich przypadajacych na kazdy z modeli. Indeks wektora
odpowiada klasie dla której definiujemy model. W przypadku pojedynczej klasy zmienna jest po-
jedyncza wartoscia.
string Folder_
string config_
Zmienna config_ zawiera nazwe folderu w którym maja zostac utworzone pod foldery i
pliki zwiazane z nowym treningiem. Dane konfiguracji test beda zapisane w pliku tekstowym
(train.txt). Jezeli zadany folder juz istnieje, pliki zostana nadpisane. Zmienna config_ za-
wiera nazwe pliku w którym zostanie zapisana konfiguracja treningu. Jest to plik tekstowy wyko-
rzystywany przez narzedzia HTK, który bedzie wykorzystany podczas treningu.
Metody Train
Konstruktor klasy ustawia zmienne tak, aby mozliwe było przeprowadzenie treningu. Klasa
Train stanowi klase, z której dziedzicza klasy definiujace konkretne rodzaje treningów, zaw-
ierajace funkcje potrzebne do przeprowadzenia treningu.
Train
Destruktor klasy. Kazdorazowo zachowywany jest plik dziennika treningu, zawierajacy informacje
o parametrach treningu (ilosci mówców,konfiguracji systemu i parametryzacji). Plik dziennika
znajdowac sie bedzie w folderze testu i bedzie plikiem tekstowym o nazwie log_ Folder_
.txt.
TrainMFCC
Pliki ASR/Training.h ; ASR/Training.cpp
Zmienne Klasa dziedziczy po klasie Train zmienne potrzebne do konfiguracji treningu. Zmiennymi
klasy sa dodatkowe informacje potrzebne, aby skonfigurowac trening wykorzystujacy parame-
tryzacje przy pomocy wektora cech MFCC.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.7. Testowanie systemu 90
bool useHumming_
int melFilters_
int cepstralCoef_
int lifterCoef_
Zmienne konfigurujace trening okreslajace ekstrakcje cech :
- useHumming_ - odznaczenie pola jako TRUE spowoduje wykorzystanie okna Hamminga pod-
czas okienkowania sygnału
- melFilters_ - ilosc filtrów melowych wykorzystanych podczas ekstrakcji cech
- cepstralCoef_ - ostateczne ilosc elementów wektora cech utworzonych po wykonaniu trans-
formacji kosinusowej
- lifterCoef_ - wartosc współczynnika liftujacego (liczba naturalna, typowo 6 lub 12)
Metody TrainMFCC
Konstruktor klasy ustawia zmienne tak, aby mozliwe było przeprowadzenie treningu.
void writeConfig(void)
Utworzenie w katalogu Config pliku ConfigMFCC zawierajacego wszystkie informacje kon-
figurujace trening wymagane przez HTK. Plik ten bedzie domyslnie wykorzystywany podczas
tworzenia modeli Markowa mówców.
void StartTraining(void)
Wywołanie metody powoduje przeprowadzenie treningu według konfiguracji zawartej w pliku
ConfigMFCC na bazie zdefiniowanej przez zmienne klasy. Funkcja przeprowadza kolejno ek-
strakcje cech, stworzenie prototypu modelu Markowa i jego reestymacje kolejno dla kazdej z
klas kazdego mówcy. Wszystkie pliki zwiazane z aktualnym treningiem znajdowac sie beda
w folderze Folder_. Lista mówców których modele zostały utworzone znajduje sie w pliku
speakers.txt a modele mówców w katalogu hmm0.
6.7. Testowanie systemu
W przypadku testowania sytemu rozpoznawania mówców zakładamy, ze utworzone zostały modele i
dysponujemy baza testowa nie pokrywajaca sie z baza treningowa. Testy systemu beda prowadzone pod
katem jakosci identyfikacji i weryfikacji mówcy, przy jednoczesnej mozliwosci sparametryzowania ta-
kich czynników jak ilosc mówców, długosc nagrania testowego czy poziom i rodzaj szumu zawarty w na-
graniach. Dzieki plikom zawierajacym konfiguracje sesji treningowych nie ma potrzeby definiowania na
nowo wszystkich parametrów systemu. Zakonczenie testu konczy sie zapisaniem w plikach tekstowych
danych konfiguracyjnych i wyników.
Klasy opisujace test sa definiowane z punktu widzenia parametryzacji, to jest przyjmujemy, ze beda
dziedziczyc z klasy opisujacej tworzenie modeli Markowa bez zdefiniowania jakiego rodzaju parame-
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.7. Testowanie systemu 91
tryzacji uzyjemy podczas ekstrakcji cech. Klasa dziedziczaca z klasy bazowej Test, musi zdefiniowac
zmienne opisujace parametryzacje, rodzaj identyfikacje lub weryfikacje) i zakres testu.
Struktura klas
Test
Pliki ASR/Testing.h ; ASR/Testing.cpp
Zmienne
int testLength_
int testSize_
int gfonSpeakers_
int corporaSpeakers_
int timitSpeakers_
int otherSpeakers_
int impostors_
Zmienne konfigurujace trening i okreslajace baze mówców :
- testLength_ - długosc nagran testowych dla kazdego mówcy wyrazona w sekundach
- testSize_ - zadana ilosc prób rozpoznania, w przypadku nie istnienia w bazie wystarcza-
jacej liczby nagran, liczba testów jest automatycznie ustalana na maksymalna mozliwa a zmienna
testSize_ modyfikowana
- gfonSpeakers_ - ilosc mówców z korpusu Global-Phone (1 do 99), moze byc mniejsza niz
w treningu
- corporaSpeakers_ - ilosc mówców z korpusu Corpora (1 do 26), moze byc mniejsza niz w
treningu
- timitSpeakers_ - ilosc mówców z korpusu Corpora (1 do 200), moze byc mniejsza niz w
treningu
- otherSpeakers_ - ilosc mówców z innych korpusów
- impostors_ - ilosc mówców uznanych za intruzów (modele utworzone zostana poza pier-
wotna baza mówców a nagrania beda pochodzic z korpusu ROBOT), moze byc mniejsza niz w
treningu
int SOURCERATE_
long TARGETRATE_
long WINDOWSIZE_
string targetKind_
bool saveComperssed_,saveWithCRC_,eNormalise_
double preemCoef_
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.7. Testowanie systemu 92
Zmienne konfigurujace trening okreslajace parametry kodowania sygnału :
- SOURCERATE_ - czestotliwosc próbkowania danych wyrazona w Herzach
- TARGETRATE_ - wyrazony w milisekundach okres z jakim maja byc tworzone ramki
- WINDOWSIZE_ - wyrazony w milisekundach okres poszczególnych ramek
- targetKind_ - rodzaj docelowego kodowania wektorów cech jaki zostanie wykorzystany pod-
czas eksperymentów. Jest to wewnetrzna dana HTK, wykorzystane podczas treningu oraz rozpoz-
nawania a takze w przypadku ekstrakcji cech przy pomocy HTK. Dokładny opis znajduje sie w
[29], str. 60 i 69. W przypadku wykorzystanie kodowania uzytkownika pole nalezy ustawic jako
USER
- saveComperssed_ - opcja wybrania zapisu skompresowanej postaci wektorów cech. Ustaw-
ienie zmiennej jako TRUE powoduje zapis wektorów cech w postaci skompresowanej.
- saveWithCRC_ - zapis wektorów cech wraz z suma kontrolna
- eNormalise_ - odznaczenie pola jako true spowoduje znormalizowanie energii nagrania
przed ekstrakcja cech
- preemCoef_ - wartosc współczynnika preemfazy wykorzystanego podczas wstepnego
przetwarzanie sygnału. Powinien przyjmowac wartosci oo 0 do 1 (w wiekszosci zastosowan na-
jlepiej przyjac ok. 0.95).
bool add_noise_
string noise_type_
double noise_SNR_
Zmienne konfigurujace trening okreslajace parametry szumu wykorzystanego podczas treningu:
- add_noise_ - zmienna umozliwia zablokowanie wykorzystywania szumu podczas testów. Aby
konfiguracja szumu został uwzgledniona zmienna musi byc ustawiona jako true.
- noise_type_ - rodzaj szumu jaki dodany bedzie do nagran testowych. Domyslnie zdefin-
iowane sa szumy :
- biały (’white’)
- rózowy (’pink’)
- sinusoida o czestotliwosci 1 kHz (’tone’)
- nagrania hałasu i rozmów (’ambient1’ - ’ambient5’)
Nagrania maja długosc co najmniej 100 sekund. Nagrania testowe nie powinny miec wiekszej
długosci.
- noise_SNR_ - moc szumu w decybelach wyrazona przez stosunek sygnału do szumu otrzy-
many po dodaniu szumu. noise_SNR_ = 0 dB oznacza, ze szum i sygnał maja taka sama moc.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.7. Testowanie systemu 93
string Folder_
string config_
Zmienna Folder_ zawiera nazwe folderu w który oczekujemy znalezc modele mówców. Kon-
figuracja testu zostanie odtworzona z konfiguracji uzytych danych treningowych. Jezeli zadany
folder nie istnieje, test zostanie przerwany. Zmienna config_ zawiera nazwe pliku w którym
zostanie zapisana konfiguracja testu. Jest to plik tekstowy wykorzystywany przez narzedzia HTK,
który bedzie wykorzystany podczas testów.
Metody Test(Train train)
Konstruktor klasy ustawia zmienne tak, aby mozliwe było przeprowadzenie testu. Do skonfig-
urowania testu zostana uzyte informacje o treningu zawarte w zmiennej klasy Train. Umozliwi to
pełne odtworzenie konfiguracji bazy mówców i unikniecie konfliktu parametryzacji. Klasa Test
stanowi klase, z której dziedzicza klasy definiujace konkretne rodzaje testów, zawierajace funkcje
potrzebne do przeprowadzenia testu i weryfikacji wyników.
void runTest(void)
Metoda wirtualna, wymagajaca definicji według przeznaczenia jakie bedzie spełniac (test iden-
tyfikacji lub weryfikacji). Metoda musi realizowac rozpoznanie nagran zgodnie z parametrami
zdefiniowanymi przez zmienne klasy i interpretowac wyniki zgonie z funkcja klasy. Zmienne po-
mocnicze takie jak progi akceptacji rozpoznania i statystyki testu, beda zmiennymi klasy pochod-
nej od Test. Statystyka rozpoznania jest koncowa czescia testu, realizowana prze funkcje klas
pochodnych, w zaleznosci od rodzaju testu.
void testSpeakers(HTK htk, std::vector<int> Speakers_List,
std::string RaportFile)
Automatyczne przeprowadzenie testu systemu przy załozeniu zmiennej ilosci mówców w bazie.
Zmienna htk musi zawierac informacje na temat listy mówców a Speaker_List tablice za-
wierajaca ilosc mówców dla jakiej ma zostac przeprowadzony test. Dla kazdego pełnego testu
lista mówców jest skracana, nowa lista składa sie z Speaker_List[i] mówców zaczynajac od
mówcy numer 1. Wyniki sa zapisywane w pliku RaportFile zgodnie z rodzajem testu (identy-
fikacji lub weryfikacji).
void testNoise(HTK htk, std::vector<double> SNR_List, string
NoiseType, string RaportFile)
Automatyczne przeprowadzenie testu systemu przy załozeniu zmiennej mocy szumu addyty-
wnego. Zmienna htk musi zawierac informacje na temat listy mówców, NoiseType rodzaj
szumu zastosowany podczas testu a SNR_List tablice zawierajaca stosunek mocy do szumu
(SNR) jaki ma wystepowac w badanym nagraniu podczas przeprowadzania testów. Wyniki sa za-
pisywane w pliku RaportFile zgodnie z rodzajem testu (identyfikacji lub weryfikacji).
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.7. Testowanie systemu 94
Test_identification
Pliki ASR/Testing.h ; ASR/Testing.cpp
Zmienne Klasa dziedziczy po klasie Test zmienne potrzebne do konfiguracji testu. Zmiennymi klasy
sa wyniki czastkowe przeprowadzonego testu.
int id_rigth_
int id_wrong_
std::vector<int> id_rec_position_
Zmienne konfigurujace trening okreslajace baze mówców :
- id_rigth_ - ilosc poprawnych rozpoznan (za poprawna identyfikacje uznajemy przepadek,
kiedy poprawny mówca posiada najwieksze prawdopodobienstwo z posród wszystkich na liscie
hipotez), nie normalizowana wzgledem ilosci prób
- id_wrong_ - ilosc błednych rozpoznan, nie normalizowana wzgledem ilosci prób
- id_rec_position_ - srednia pozycja mówcy na liscie hipotez podczas identyfikacji nagran
zalezacych do mówcy
Metody void runTest(void)
W przypadku identyfikacji, test wiaze sie z rozpoznaniem mówcy dla zadanej liczby nagran
kazdego z mówców przy bazie mówców składajacej sie ze wszystkich badanych modeli. Poprawna
identyfikacja wiaze sie z wystapieniem na pierwszej pozycji listy hipotez mówcy do którego nalezy
badane nagranie. Wynik testu jest zapisywany w postaci ilosci poprawianych i niepoprawnych
identyfikacji oraz sredniej pozycji kazdego mówcy na liscie hipotez podczas badania nagran
odpowiadajacych mówcy.
void Statistics(int spk, std::vector<Result> ResultList)
Wykorzystanie tablicy zawierajacej wyniki wszystkich przeprowadzonych rozpoznan
ResultList w celu obliczenie trafnosci identyfikacji pod warunkiem, ze poprawnym
mówca jest mówca o indeksie spk. Obliczona zostanie liczba poprawnych i niepoprawnych
rozpoznan, nie normalizowane wzgledem ilosci testów.
double Avg_position(std::vector<int> avg_position)
Wyliczenie sredniej pozycji, jaka przyjmowało rozpoznanie poprawnego mówcy dla serii rozpoz-
nan. Pozycja mówcy podczas kazdego z rozpoznan zawarta jest z zmiennej avg_position.
Srednia pozycja mówcy na liscie rozpoznan jest statystyka zapisywana w pliku wynikowym testu.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.7. Testowanie systemu 95
Test_verification
Pliki ASR/Testing.h ; ASR/Testing.cpp
Zmienne Klasa dziedziczy po klasie Test zmienne potrzebne do konfiguracji testu. Zmiennymi klasy
sa wyniki czastkowe przeprowadzonego testu.
std::vector<double> T_
std::vector<int> false_acceptance_
std::vector<int> false_rejection_
std::vector<int> rigth_rejection_
Zmienne konfigurujace trening okreslajace baze mówców :
- T_ - tablica progów weryfikacji powyzej którego badana próba zostaje akceptowana (w odniesie-
niu do wyniku próby, próg moze przyjmowac wartosci od 0 do 100). W celu okreslenia jakosci
systemu konieczne jest sprawdzenie wyników weryfikacji dla kazdej z wartosci progu weryfikacji.
Statystyki weryfikacji dla kazdej z wartosci progu T_ :
- verf_rigth_ - ilosc poprawnych rozpoznan (za poprawna weryfikacje uznajemy przypadek,
kiedy poprawny mówca posiada prawdopodobienstwo wieksze niz próg zadany decyzji), nie nor-
malizowana wzgledem ilosci prób
- false_acceptance_ - ilosc błednych rozpoznan, w przypadku w których wystapił bład
weryfikacji polegajacy na akceptacji mówcy, który nie odpowiada modelowi z którym był
porównywany (bład fałszywej akceptacji), nie normalizowana wzgledem ilosci prób
- false_rejection_ - ilosc błednych rozpoznan, w przypadku których wystapił bład wery-
fikacji polegajacy na odrzuceniu mówcy, który odpowiada modelowi z którym był porównywany
(błedne odrzucenie weryfikacji), nie normalizowana wzgledem ilosci prób
- rigth_rejection_ - ilosc rozpoznan, w przypadku których wystapiła weryfikacja w której
mówca nie odpowiadajacy badanemu modelowi został odrzucony (poprawne odrzucenie mówcy),
nie normalizowane wzgledem ilosci prób
Metody void runTest(void)
W przypadku weryfikacji, test sprawdzania kolejnych modeli mówców pod katem akceptacji
nagran mówców jako nagrania pochodzacego od sprawdzanego modelu. Akceptacja próby oz-
nacza przekroczenie progu weryfikacji przez prawdopodobienstwo generacji próby przez model.
Poprawna weryfikacja wiaze sie akceptacja nagrania badanego mówcy. Wynik testu jest zapisy-
wany w postaci statystyk weryfikacji dla jednej lub wielu progów weryfikacji.
void Statistics(int spk, std::vector<Result> ResultList)
Wykorzystanie tablicy zawierajacej wyniki wszystkich przeprowadzonych rozpoznan
ResultList w celu obliczenie trafnosci weryfikacji pod warunkiem, ze poprawnym mówca
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.8. Obsługa korpusu Global-Phone 96
jest mówca o indeksie spk. Dla kazdej wartosci progu weryfikacji zawartej w zmiennej T_,
obliczana jest ilosc weryfikacji poprawnych oraz błednych z uwzglednieniem rodzaju błedu.
6.8. Obsługa korpusu Global-Phone
Korpus mowy Global-Phone został przyjety jako podstawowy korpus do badan systemu rozpoz-
nawania mówcy. Zawiera nagrania 100 mówców, zarówno meskich jak i zenskich, czytajacych teksty,
których nagrania obejmuja srednio 10 minut. Umozliwia to tworzenie baz treningowych i testowych
umozliwiajacych prowadzenie wiarygodnych testów sprawnosci rozpoznawania. Bazy sa tworzone z
orginalnych plików korpusu, zawierajacych nagrania o róznej długosci i zawartosci.
Struktura klas
Pliki ASR/GFon.h ; ASR/Gfon.cpp
Zmienne std::vector< vector<char>> corpus_use
int speakers
double sec_train
double sec_test
int tests
Zmienne klasy GFon umozliwiaja pobieranie nagran i sledzenie ich wykorzystania pod-
czas tworzenia baz testowych i eksperymentów. Umozliwia to zapewnienie rozłacznosci
zbiorów treningowego i testowego przy pełnym wykorzystaniu dostepnych nagran. Zmienna
corpus_use słuzy do sledzenia dotychczas wykorzystanych nagran. Zmienna zawiera tablice
o wymiarze ilosc_mówców × ilosc_nagran_mówcy, tak aby nagrania mozna było odz-
naczac jako 1 kiedy były juz uzyte podczas treningu lub testu i 0 jezeli nie były.
Ilosc mówców dla których ma zostac stworzona baza nagran zawiera zmienna speakers. Zmi-
enne sec_train i sec_test zawieraja czas nagran treningowych i testowych, z jakich ma
sie składac nowo utworzona baza. Kazdy mówca bedzie posiadał nagranie treningowe o długosci
sec_train i co najwyzej tests nagran testowych o długosci sec_test, zapisanych w odd-
zielnym katalogu dla kazdego z mówców.
Metody GFon(int Nr_speakers, double sec_training, double sec_test,
int tests_spk)
Konstruktor klasy umozliwia zdefiniowanie parametrów bazy mówców, która ma zostac
utworzona. Definiujemy liczbe mówców Nr_speakers (nie wieksza niz 99), długosc
nagran treningowych i testowych - sec_train i sec_test oraz liczbe testów na
mówce - tests_spk. Baza zostanie utworzona według zadanych parametrów w katalogu
SPEECH_DATA. Nagrania treningowe znajdowac sie beda w katalogu trian, przy czym plik
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.8. Obsługa korpusu Global-Phone 97
odpowiadajacy mówcy i bedzie miał nazwe Si.wav. Dane testowe znajdowac sie beda w
katalogu test, przy czym dla mówcy i zostanie utworzony podkatalog o nazwie Ti zawiera-
jacy kolejno ponumerowane pliki testowe. W katalogu SPEECH_DATA zapisany zostanie plik
tekstowy zawierajacy dane aktualnie stworzonej bazy. Nalezy wziasc pod uwage, ze baza dla
wszystkich mówców moze zajmowac na dysku do 2,5 GB.
GFon_delate()
Utworzona baza moze zostac usunieta bezposrednio z poziomu kodu, przy pomocy funkcji
GFon_delate(). Usuwa ona katalog SPEECH_DATA.
std::vector<double> get_train_data(int spk_nr)
Pomocniczo mozliwe jest pobranie danych nagrania bezposrednio do programu. Nagrania
pochodza z orginalnych plików korpusu Global-Phone. Pobrane w ten sposób zostaje nagranie
mówcy spk_nr przy jednoczesnym odznaczeniu go w tablicy corpus_use jako wykorzys-
tanego. Przy kazdym wywołaniu pobierane jest nagranie niewykorzystane podczas treningu lub
testu o najnizszym mozliwym indeksie.
std::vector<double> get_test(int spk_nr))
Mozliwe jest równiez pobranie nagran testowych. Pobrane w ten sposób zostaje nagranie mówcy
spk_nr przy jednoczesnym odznaczeniu go w tablicy corpus_use jako wykorzystanego.
Przy kazdym wywołaniu pobierane jest nagranie niewykorzystane podczas treningu lub testu o
najnizszym mozliwym indeksie.
std::vector<double> create_train(void))
Utworzenie bazy nagran treningowych według parametrów klasy. Nagrania zostana zapisane w
katalogu (SPEECH_DATA
train).
std::vector<double> create_test(void))
Utworzenie bazy nagran testowych według parametrów klasy. Nagrania zostana zapisane w kata-
logu (SPEECH_DATA
test).
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.9. Funkcje pomocnicze 98
6.9. Funkcje pomocnicze
Funkcje C++
string TrainFile(int speaker)
ASR/Training.h ; ASR/Training.cpp
Posługujac sie domyslnie przyjeta sciezka pliku treningowego mówcy speaker generowana
jest sciezka do tego pliku. Zakładamy, ze pliki treningowe mówców znajduja sie w katalogu
SPEECH_DATA
train.
string TestFile(int speaker, int test_index)
ASR/Testing.h ; ASR/Testing.cpp
Posługujac sie domyslnie przyjeta sciezka plików testowych mówcy speaker generowana jest
sciezka do pliku o numerze test_index. Zakładamy, ze pliki testowe mówców znajduja sie w
katalogu SPEECH_DATA
test, przy czym kazdy mówca posiada swój katalog z plikami testowymi.
string addZeros(int n))
ASR/HTK.h ; ASR/HTK.cpp
Funkcja rozszerzajaca liczbe n do liczby czterocyfrowej dziesietnej uzupełniajac ja o potrzebna
liczbe zer i zwracajac wynik jako ciag znaków. Pomocnicze formatowanie nazw modeli i plików
wystepujacych w systemie. Zakładamy, ze liczba mówców, modeli czy plików testowych nie
przekroczy 9999.
vector<float> window_triang(int L)
ASR/HTK.h ; ASR/HTK.cpp
Utworzenie okna trójkatnego o długosci L. Funkcja wykorzystywana podczas szacowania
parametrów ciagu wektorów cech.
Funkcje Matlab
void sort(std::vector<T> &unsorted, std::vector<T> &sorted,
std::vector<size_t> &index_map)
ASR/sort.h
Szablon funkcji sortujacej, równowaznej w działaniu z funkcja sort spo-
tykana w srodowisku Matlab. Szablon udostepniony przez Alec’a Jacobson’a :
http://www.alecjacobson.com/weblog/?p=1527.
void endswap(T *objp)
ASR/endswap.h
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
6.9. Funkcje pomocnicze 99
Szablon funkcji zamieniajacej szyk bitów w obiekcie *objp z little-endian na big-endian i
odwrotnie.
speakers_test_display(testFile)
Matlab/speakers_test_display.m
Wizualizacja wyników testu sprawnosci systemu pracujacego w trybie identyfikacji, przy zmiennej
liczbie mówców. Wyswietlony zostanie stopien rozpoznania i srednia pozycja poprawnego mówcy
w zaleznosci od ilosci mówców w systemie.
noise_test_display(testFile)
Matlab/noise_test_display.m
Wizualizacja wyników testu sprawnosci systemu pracujacego w trybie identyfikacji, przy zmiennej
mocy szumu w nagraniu rozpoznawanym. Wyswietlony zostanie stopien rozpoznania i srednia
pozycja poprawnego mówcy w zaleznosci od stosunku sygnału do szumu wyrazonego w dB.
classes+noise_test_display(testFile)
Matlab/classes+noise_test_display.m
Wizualizacja wyników testu sprawnosci systemu pracujacego w trybie identyfikacji, przy zmiennej
ilosci klas fonetycznych i mocy szumu w nagraniu rozpoznawanym. Wyswietlony zostanie stopien
rozpoznania i srednia pozycja poprawnego mówcy w zaleznosci od stosunku sygnału do szumu
wyrazonego w dB dla kazdej z klas.
verification_test_display(testFile)
Matlab/verification_test_display.m
Wizualizacja wyników weryfikacji w zaleznosci od progu decyzji w postaci krzywych DET
(Detection Error Trade-off ), tj. zaleznosci prawdopodobienstwa błedów rozpoznania, w których
doszło do nieuprawnionego zaakceptowania mówcy błednego i błedu odrzucenia poprawnego
mówcy.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
Bibliografia
[1] D. Bhattacharyya, R. Ranjan, F. Alisherov A.,M. Choi. Biometric Authentication: A Review. In-
ternational Journal of u- and e- Service, Science and Technology,2009.
[2] Robert W.Frischholz, Ulrich Dieckmann BioID: A Multimodal Biometric Identification System.
IEEE Computer,2000.
[3] C.C. Chibelushi, J.S.D. Mason, F. Deravi Integrated Person Identification Using Voice And Facial
Features. Image Processing for Security Applications,1997.
[4] A. Schmidt-Nielsen, Thomas H. Crystal Human Vs. Machine Speaker Identification With Telephone
Speech. ICSLP-98.
[5] Salil Prabhakar,Sharath Pankanti,Anil K. Jain. Biometric Recognition : Security and Privacy Con-
cerns. IEEE Security & Privacy, 2003.
[6] Alvin F Martin, Mark A. Przybocki Speaker Recognition in a Multi-Speaker Environment. Proc.
Eurospeech 2001.
[7] Mark D. Skowronski,John G. Harris Improving The Filter Bank Of A Classic Speech Feature
Extraction Algorithm. IEEE Intl Symposium on Circuits and Systems,2003.
[8] Hao Huang, Jie Zhu Minimum Phoneme Error Based Filter Bank Analysis For Speech Recognition.
ICME,2006.
[9] Alvin F Martin, Mark A. Przybocki Speaker Recognition in a Multi-Speaker Environment. Proc.
Eurospeech 2001.
[10] Soonil Kwon, Shrikanth Narayanan Speaker Change Detection Using A New Weighted Distance
Measure . Proc. Int. Conf. on Spoken Language Processing,ICSLP 2002.
[11] Jakub Gałka Optymalizacja parametryzacji sygnału w aspekcie rozpoznawania mowy polskiej.
Rozprawa doktorska,AGH 2008.
[12] Ryszard Tadeusiewicz Syganał mowy. Wydawnictwo Komunikacji i Łacznosci, Warszawa 1988.
[13] Michał Kepinski Kontekstowe zwiazki cech w sygnale mowy polskiej. Rozprawa doktorska,AGH
2005.
100
BIBLIOGRAFIA 101
[14] Brian C.J. Moore Wprowadzenie do psychologii słyszenia. Wydawnictwo Naukowe PW, Warszawa-
Poznan 1999.
[15] Hayakawa S. , Itakura, F. Text-Dependent Speaker Recognition Using The Information In The
Higher Frequency Band. Acoustics, Speech, and Signal Processing, 1994.
[16] Tomasz P. Zielinski Cyfrowe przetwarzanie sygnałów: od teorii do zastosowan. Wydawnictwo
Komunikacji i Łacznosci, Warszawa 2005.
[17] Kuldip K. Paliwal, Leigh Alsteris Usefulness Of Phase Spectrum In Human Speech Perception.
EUROSPEECH 2003.
[18] Sadaoki Furui Digital Speech Processing, Synthesis, and Recognition. Marcel Dekker Inc., New
York, 2001.
[19] Xugang Lu , Jianwu Dang An investigation of dependencies between frequency components and
speaker characteristics for text-independent speaker identification. Speech Communication 50
(2008).
[20] D.G. Childers, D.P.Skinner, R.C. Kemerait The Cepstrum: A Guide to Processing. Proceedings of
the IEEE 1977.
[21] K.K. Paliwal Decorrelated And Liftered Filter-Bank Energies For Robust Speech Recognition.
Signal Processing and It’s Applications, 1999.
[22] Biing-Hwang Juang, L. Rabiner, J. Wilpon On the use of bandpass liftering in speech recognition .
Acoustics, Speech and Signal Processing, IEEE Transactions 1987.
[23] D.A. Reynolds Gaussian Mixture Models. Encyclopedia of Biometrics 2009
[24] Jeff Bilmes A Gentle Tutorial of the EM Algorithm and its Application to Parameter Estimation for
Gaussian Mixture and Hidden Markov Models. ICSI, 1997.
[25] Frank Dellaert The Expectation Maximization Algorithm. GVU Center, College of Computing,
Georgia Tech, 2002.
[26] Przemysław Klesk O Ukrytych Modelach Markowa i ich zastosowaniach do rozpoznawania ciagów
znaków pisma odrecznego. Metody Informatyki Stosowanej, Kwartalnik Komisji Informatyki przy
PAN w Gdansku, 2008.
[27] Bartosz Ziółko, Mariusz Ziółko Przetwarzanie Mowy. AGH, 2011.
[28] Lawrence R. Rabiner A tutorial on hidden markov models and selected applications in speech
recognition. Proceedings of the IEEE, 1989.
[29] The HTK Book. Cambridge University Engineering Department 2001.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców
BIBLIOGRAFIA 102
[30] The HTK Speech Recognition Toolkit.
http://htk.eng.cam.ac.uk/.
[31] David Sierra Rodríguez Text-Independent Speaker Identification. AGH, 2008.
[32] Christopher E. Reid, Thomas B.Passin Siganl Processing in C. Wiley 1992.
W.P. Kozłowski Automatyczne Rozpoznawanie Mówców