Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia...

102
Akademia Górniczo-Hutnicza im. Stanislawa Staszica w Krakowie Wydzial Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA ELEKTRONIKI P RACA MAGISTERSKA WOJCIECH P IOTR KOZLOWSKI AUTOMATYCZNE ROZPOZNAWANIE MÓWCÓW P ROMOTOR: prof. dr hab. in˙ z. Mariusz Ziólko Kraków 2011

Transcript of Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia...

Page 1: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 2: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 3: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 4: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

—————————–

Page 5: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 6: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 7: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 8: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 9: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 10: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 11: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 12: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 13: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 14: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 15: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 16: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 17: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 18: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 19: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 20: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 21: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 22: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 23: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 24: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 25: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 26: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 27: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 28: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

∫ π

−π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

Page 29: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 30: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 31: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 32: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 33: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 34: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 35: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 36: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 37: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 38: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 39: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 40: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 41: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 42: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 43: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 44: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 45: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 46: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 47: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 48: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 49: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 50: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 51: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 52: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 53: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 54: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 55: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 56: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 57: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 58: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 59: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 60: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 61: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 62: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 63: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 64: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 65: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 66: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 67: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 68: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 69: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 70: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 71: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 72: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 73: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 74: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 75: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 76: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 77: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 78: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 79: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 80: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 81: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 82: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 83: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 84: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 85: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 86: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 87: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 88: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 89: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 90: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 91: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 92: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 93: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 94: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 95: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 96: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 97: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 98: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 99: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 100: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 101: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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

Page 102: Wydział Elektrotechniki, Automatyki, Informatyki i ...dydaktyka:praca.pdf · Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki,

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