praca dyplomowa - zespół przetwarzania sygnałów [dsp agh]dydaktyka:m_pasternak.pdf · miesięcy...

48
1 AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie WYDZIAŁ INŻYNIERII MECHANICZNEJ I ROBOTYKI Praca dyplomowa inżynierska Marcin Pasternak Imię i nazwisko Inżynieria Akustyczna Kierunek studiów Testy krzyżowe systemów identyfikacji mówcy Temat pracy dyplomowej dr inż. Bartosz Ziółko ………………….. Promotor pracy Ocena Kraków, rok 20...../20.....

Upload: leque

Post on 28-Feb-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

1

AKADEMIA GÓRNICZO-HUTNICZA

im. Stanisława Staszica w Krakowie

WYDZIAŁ INŻYNIERII

MECHANICZNEJ I ROBOTYKI

Praca dyplomowa inżynierska

Marcin Pasternak

Imię i nazwisko

Inżynieria Akustyczna

Kierunek studiów

Testy krzyżowe systemów identyfikacji mówcy

Temat pracy dyplomowej

dr inż. Bartosz Ziółko …………………..

Promotor pracy Ocena

Kraków, rok 20...../20.....

Page 2: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

2

Kraków, dn…14 I 2014…………..

Imię i nazwisko: Marcin Pasternak

Nr albumu: 241531

Kierunek studiów: Inżynieria Akustyczna

Specjalność:

OŚWIADCZENIE

Świadomy/a odpowiedzialności karnej za poświadczanie nieprawdy oświadczam,

że niniejszą inżynierską pracę dyplomową wykonałem/łam osobiście i samodzielnie oraz

nie korzystałem/łam ze źródeł innych niż wymienione w pracy.

Jednocześnie oświadczam, że dokumentacja praca nie narusza praw autorskich

w rozumieniu ustawy z dnia 4 lutego 1994 roku o prawie autorskim i prawach pokrewnych

(Dz. U. z 2006 r. Nr 90 poz. 631 z późniejszymi zmianami) oraz dóbr osobistych

chronionych prawem cywilnym. Nie zawiera ona również danych i informacji, które

uzyskałem/łam w sposób niedozwolony. Wersja dokumentacji dołączona przeze mnie na

nośniku elektronicznym jest w pełni zgodna z wydrukiem przedstawionym do recenzji.

Zaświadczam także, że niniejsza inżynierska praca dyplomowa nie była wcześniej

podstawą żadnej innej urzędowej procedury związanej z nadawaniem dyplomów wyższej

uczelni lub tytułów zawodowych.

………………………………..

podpis dyplomanta

Page 3: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

3

Kraków, …14 I 2014…………..

Imię i nazwisko: Marcin Pasternak

Adres korespondencyjny:

Temat pracy dyplomowej inżynierskiej: Testy krzyżowe systemów identyfikacji mówcy

Rok ukończenia:

Nr albumu: 241531

Kierunek studiów: Inżynieria Akustyczna

Profil dyplomowania:

OŚWIADCZENIE

Niniejszym oświadczam, że zachowując moje prawa autorskie , udzielam Akademii

Górniczo-Hutniczej im. S. Staszica w Krakowie nieograniczonej w czasie nieodpłatnej

licencji niewyłącznej do korzystania z przedstawionej dokumentacji inżynierskiej pracy

dyplomowej, w zakresie publicznego udostępniania i rozpowszechniania w wersji

drukowanej i elektronicznej1.

Publikacja ta może nastąpić po ewentualnym zgłoszeniu do ochrony prawnej

wynalazków, wzorów użytkowych, wzorów przemysłowych będących wynikiem pracy

inżynierskiej2.

Kraków, ...............… ……………………………..

data podpis dyplomanta

1 Na podstawie Ustawy z dnia 27 lipca 2005 r. Prawo o szkolnictwie wyższym (Dz.U. 2005 nr 164 poz. 1365) Art.

239. oraz Ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz.U. z 2000 r. Nr 80, poz.

904, z późn. zm.) Art. 15a. "Uczelni w rozumieniu przepisów o szkolnictwie wyższym przysługuje pierwszeństwo

w opublikowaniu pracy dyplomowej studenta. Jeżeli uczelnia nie opublikowała pracy dyplomowej w ciągu 6

miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba że praca dyplomowa jest

częścią utworu zbiorowego." 2 Ustawa z dnia 30 czerwca 2000r. – Prawo własności przemysłowej (Dz.U. z 2003r. Nr 119, poz. 1117 z

późniejszymi zmianami) a także rozporządzenie Prezesa Rady Ministrów z dnia 17 września 2001r. w

sprawie dokonywania i rozpatrywania zgłoszeń wynalazków i wzorów użytkowych (Dz.U. nr 102 poz. 1119

oraz z 2005r. Nr 109, poz. 910).

Page 4: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

4

Kraków, dnia

AKADEMIA GÓRNICZO-HUTNICZA

WYDZIAŁ INŻYNIERII MECHANICZNEJ I ROBOTYKI

TEMATYKA PRACY DYPLOMOWEJ INŻYNIERSKIEJ

dla studenta IV roku studiów stacjonarnych

Marcin Pasternak imię i nazwisko studenta

TEMAT PRACY DYPLOMOWEJ INŻYNIERSKIEJ:

Testy krzyżowe systemów identyfikacji mówcy

Promotor pracy: dr inż. Bartosz Ziółko

Recenzent pracy: Podpis dziekana:

PLAN PRACY DYPLOMOWEJ

1. Omówienie tematu pracy.

2. Przygotowanie literatury i innych źródeł wiedzy.

3. Przeprowadzenie niezbędnych testów.

4. Analiza otrzymanych wyników testów, ich omówienie i zatwierdzenie przez promotora.

5. Opracowanie redakcyjne.

Kraków, ...............… ……………………………..

data podpis dyplomanta

TERMIN ODDANIA DO DZIEKANATU: 20 r.

podpis promotora

Page 5: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

5

Akademia Górniczo-Hutnicza im. Stanisława Staszica Kraków, .................

Wydział Inżynierii Mechanicznej i Robotyki

Kierunek: Inżynieria Akustyczna

Profil dyplomowania:

Marcin Pasternak

Praca dyplomowa inżynierska

Testy krzyżowe systemów identyfikacji mówcy

Opiekun: dr inż. Bartosz Ziółko

STRESZCZENIE

Celem niniejszej pracy było przeprowadzenie testu krzyżowego systemu

identyfikacji mówcy Surikate, który został opracowany przez Zespół Przetwarzania

Sygnałów AGH i firmę Techmo. Program wykorzystywany do tego celu został

zaimplementowany w środowisku Microsoft Visual Studio, ponadto jego użytkowanie

wymagało posiadania wiedzy z zakresu przetwarzania sygnałów oraz metod

statystycznych jak również umiejętności programowania w języku C++, znajomości

toolkitu HTK i budowy plików formatu .wav. W rozdziale pierwszym przedstawiono

różnicę między weryfikacją a identyfikacją mówcy oraz przybliżono podstawowe

wiadomości o sposobie identyfikacji mówcy ze szczególnym naciskiem na ukryte modele

Markowa oraz na cepstralne melowe współczynniki częstotliwościowe. Opisano także

metody sprawdzające poprawne działanie algorytmów i toolkit HTK jako jedną z gałęzi

Surikate. Następnie przybliżono architekturę systemu Surikate. Zamieszczono informację

o sposobie identyfikacji mówcy zawartym w tym hybrydowym systemie służącym do

rozpoznawania mówcy, za którą odpowiedzialny jest toolkit HTK. W drugiej części

opisano ważniejsze metody znajdujące się w klasie odpowiadającej za przeprowadzenie

testu krzyżowego. W trzecim rozdziale zamieszczono wyniki dla przeprowadzonych

testów. W czwartym rozdziale wyciągnięto odpowiednie wnioski podparte wynikami

otrzymanymi w trakcie testowania programu oraz propozycje jego dalszego rozwoju.

W ostatnim rozdziale zamieszczono wykaz literatury użytej przy pisaniu pracy.

Page 6: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

6

AGH University of Science and Technology Kraków, the............

Faculty of Mechanical Engineering and Robotics

Field of Study: Acoustic Engineering

Specialisations:

Marcin Pasternak

Engineer Diploma Thesis

Crossvalidation tests of speaker identification systems

Supervisor: Bartosz Ziółko Ph.D.

SUMMARY

The goal of this work was to write a program that performs cross validation tests

for Surikate: a hybrid speaker regonition system created by Signal Processing Group AGH

and Techmo. This program has been implemented in the Microsoft Visual Studio

Environment. In order to achieve this goal, it was necessary to know and understand

digital signal processing, statistical methods, C++ programming, HTK toolkit and wave

files. The first chapter is of information containing speaker identification with an emphasis

on Markov Hidden Models and Mel-frequency Cepstral Coefficients. It holds a description

on methods that are used to validate algorithms, and how speaker identification in this

particular branch of hybrid system were under the responsibility of the HTK toolkit. This

chapter also explains the differences between recognition and validation speaker systems,

as well as information about the HTK toolkit and the systems’ architecture. The second

chapter describes other important methods that were used in class with the intention to

execute cross validation tests. Results for the tests were listed within the third chapter. The

fourth chapter contains scientific conclusions with propositions for further developing this

program. The bibliography that have been used in order to prepare this work is found in

the fifth and final chapter.

Page 7: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

7

Składam serdeczne podziękowania Promotorowi

Panu dr inż. Bartoszowi Ziółko

oraz mgr inż. Mikołajowi Kundegórskiemu

za wszechstronną pomoc oraz poświęcony czas.

Page 8: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

8

Spis Treści

1. Teoria ........................................................................................9

1.1. Identyfikacja a weryfikacja ............................................................ 9

1.2. Sposoby identyfikacji mówców w systemach

rozpoznawania mowy .................................................................................. 9

1.2.1. MFCC .......................................................................................................... 10

1.2.2. HMM ........................................................................................................... 13

1.2.2.1. Dyskretny proces Markowa ................................................................... 13

1.2.2.2. Ukryty model Markowa.......................................................................... 15

1.2.3. Algorytm Viterbiego .................................................................................. 16

1.3. HTK ................................................................................................ 18

1.3.1. Surikate - opis działania systemu ............................................................. 19

1.4. Metody statystyczne służące do oceny

skuteczności algorytmu .............................................................................. 21

1.5. Budowa pliku w formacie .wav .................................................... 22

2. Klasa CrossVal - opis zaimplementowanych metod ..........24

2.1. RecoutRemake ............................................................................... 24

2.2. MergeWaves ................................................................................... 25

2.3. TrainModel ..................................................................................... 26

2.4. TestModel ....................................................................................... 26

2.5. CrossWavfile .................................................................................. 27

3. Wyniki dla przeprowadzonych testów ................................30

3.1. Założenia i opis doświadczeń ........................................................ 30

3.2. Otrzymane wyniki ......................................................................... 32

3.2.1. Pierwszy test ................................................................................................ 32

3.2.2. Drugi test ..................................................................................................... 36

3.2.3. Trzeci test .................................................................................................... 40

3.2.4. Czwarty test ................................................................................................ 43

4. Wnioski oraz propozycje dalszego rozwinięcia projektu..45

5. Bibliografia ............................................................................47

Page 9: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

9

1. Teoria

1.1. Identyfikacja a weryfikacja

Kluczową różnicą między weryfikacją a identyfikacją (rozpoznawaniem) mówcy jest

to, że w przypadku weryfikacji jako wynik otrzymujemy potwierdzenie czyjejś tożsamości

w celu przyznania danej osobie dostępu do zabezpieczonych danych bądź komputera.

W technologii mowy systemy identyfikacji służą do stwierdzenia, która z osób

znajdujących się w bazie mówców mówi w danym momencie bądź na nagraniu. Takie

systemy obecnie znajdują swoje zastosowanie w przypadku konferencji, na przykład

w celu sporządzenia szczegółowego protokołu obrad. Podczas projektowania takich

systemów dąży się do tego, żeby nie były one wrażliwe na treść wypowiedzi. W ten

sposób można uzyskać wynik rozpoznania bez współpracy z daną osobą.[8]

1.2. Sposoby identyfikacji mówców w systemach rozpoznawania

mowy

Sygnał mowy cechuje się dużą redundantnością - jest nośnikiem nadmiaru informacji.

Odpowiednio dobrany zestaw parametrów oraz danych wejściowych warunkuje dobrą

identyfikację.

W tym rozdziale skupiono się na metodzie wykorzystywanej w jednej z gałęzi

systemu Surikate. W celu parametryzacji mówcy w Surikate użyto MFCC [2] (ang. Mel-

Frequency Cepstral Coefficients - cepstralne melowe współczynniki częstotliwościowe),

zaś HMM (ang. Hidden Markov Models - ukryte modele Markowa) oraz algorytmu

Viterbiego [12] do poprawnej identyfikacji.

Zanim przejdziemy do opisu etapów odpowiedzialnych za

parametryzację i rozpoznanie mówców, należy wspomnieć o skali melowej. Jednostką

częstotliwości tej skali jest mel. Zależność między mel a Hz ma charakter nieliniowy i jest

określona wzorem [9]:

Page 10: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

10

(1.1)

gdzie:

- Częstotliwość w skali melowej [mel],

- Częstotliwość w hercach [Hz].

Skala melowa określa zależność subiektywnie odbieranej wysokości dźwięku do

obiektywnie mierzonej częstotliwości w Hz.

Wykres 1.1 - zależność mel od Hz.

1.2.1. MFCC

MFCC jest metodą do parametryzacji niezbędnej do utworzenia modelu mówcy, która

w tym celu używa banków filtrów. Składa się ona z kilku operacji na sygnale mowy.

Sygnał, który chcemy opisać, jest na wstępie odpowiednio przygotowywany -

następuje jego normalizacja w dziedzinie amplitudy, odszumianie oraz preemfaza

Page 11: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

11

(wzmocnienie sygnałów składowych w górnej części pasma przenoszenia w celu

poprawienia odstępu sygnału od szumu), która ma wzór:

,

(1.2)

gdzie:

- próbka sygnału odpowiednio przed i po preemfazie,

- współczynnik przyjmujący zwykle wartość 0,96.

Kolejnym etapem jest ramkowanie, czyli dzielenie sygnału na części o tych samych

czasach trwania. Tak przygotowane fragmenty sygnału są okienkowane, czyli mnożone

przez okno transformacji lokalnej. W tym celu można zastosować na przykład okno

Hamminga albo Parzena (rys. 1).

Rys. 1. Okno Hamminga (po lewej) oraz Parzena (po prawej) w dziedzinie czasu (źródło - [14]).

Page 12: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

12

Następnie dzięki FFT (ang. Fast Fourier Transform - szybka transformata Fouriera)

otrzymuje się widmo amplitudowe dla każdej z ramek. Kolejnym krokiem jest

przepuszczenie otrzymanych widm przez banki filtrów melowych, których ilość oraz

kształt są zależne od implementacji algorytmu. HTK, o którym będzie mowa w kolejnym

rozdziale, używa w tym celu filtrów trójkątnych. Charakterystyki częstotliwościowe

filtrów w bankach nachodzą na siebie w taki sposób, że kolejny filtr kończy się

w częstotliwości środkowej swojego następcy. Zostało to pokazane na rys.2.

Rys.2 - Bank 20 filtrów melowych trójkątnych [9 ]

Na wyjściu filtrów otrzymuje się logarytm energii dla każdego pasma liczony według

wzoru

(1.3)

gdzie:

m - numer filtra,

- widmo ramki.

Page 13: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

13

który następnie jest poddany dyskretnej transformacie kosinusowej (DCT - ang. Discrete

Cosinus Transform). Poniżej podano wzór pozwalający na obliczenie końcowych wartości

współczynników MFCC:

(1.4)

gdzie:

M - liczba użytych filtrów,

i - numer współczynnika

Użycie skali melowej jest uzasadnione - obserwacja spektrogramów w skali

melowej pozwala na łatwe odróżnienie fragmentów dźwięcznych i bezdźwięcznych dla

sygnału.

1.2.2. HMM

Ukryte modele Markowa bardzo często są wykorzystywane w rozpoznawaniu mowy.

Są to statystyczne metody rozpoznawania wzorców, które można uznać za metody

sztucznej inteligencji. W tym podrozdziale zostaną przedstawione jedynie podstawowe

informacje na ich temat, które będą niezbędne do zrozumienia działania Surikate.

1.2.2.1. Dyskretny proces Markowa

Pojęcia charakteryzujące proces Markowa to stan procesu oraz przejście między

stanami. Każde kolejne przejście dokonuje się w regularnych, dyskretnych odstępach

czasu i jest opisane przez prawdopodobieństwo jego zajścia. Dla modeli pierwszego rzędu,

prawdopodobieństwo to jest ograniczone tylko do poprzedniego stanu.

Załóżmy, że nasz model ma N stanów (S1, S2, ... ,SN). Chwile, które są związane ze

zmianami stanów to t = 1,2,3,..,T, a stan, w którym w danej chwili t znajduje się model

jako . Przy założeniu, że prawdopodobieństwa przejść między kolejnymi stanami są

Page 14: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

14

niezależne od czasu, szansę określającą przejście między każdą parą stanów (i oraz j)

możemy określić jako:

.

(1.5)

Analogicznie, początkowe prawdopodobieństwo znalezienia się w chwili t = 1

w jednym ze stanów i można opisać jako:

(1.6)

Podobnie zdefiniowane jest prawdopodobieństwo stanu końcowego

Prostym przykładem procesu Markowa jest losowanie ze zwracaniem koloru

czerwonego lub czarnego z liczącej 24 karty talii. Ilość stanów dla tego procesu jest równa

2 i odpowiada dwóm możliwościom wylosowania koloru karty - czarnego (w przypadku

wylosowania pika bądź trefla) lub czerwonego (w przypadku kier bądź karo). Dla tego

przypadku prawdopodobieństwo przejścia między tymi stanami wyniesie 0.5 dla każdego

z nich. Tą samą wartość przyjmie prawdopodobieństwo znalezienia się w danej chwili

w jednym ze stanów.

Page 15: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

15

Rys.3 - Diagram procesu Markowa dla przykładu losowania kart.

1.2.2.2. Ukryty model Markowa

Opisany powyżej model jest zbyt prosty, żeby za jego pomocą móc modelować

bardziej skomplikowany proces losowy. W przypadku z losowaniem kart kolejne

obserwacje to kolejne stany procesu [5]. W tym rozdziale zostanie poruszony temat

ukrytych modeli Markowa, w których obserwacje wynikają z probablistycznych funkcji

stanu. Są to modele, w których podstawowy proces nie jest możliwy do obserwacji, ale

może być obserwowany przez inny proces poprzez sekwencję obserwacji.

Sztandarowym i najczęściej stosowanym przykładem obrazującym działanie prostego

HMM jest losowanie kul z urn. Wyobraźmy sobie sytuację, gdy oglądamy jakiś teleturniej,

w którym maszyna ustawiona za sceną w sposób losowy wybiera jedną z N urn, z których

każda zamiera M kul w różnych kolorach, losuje jedną z tych kul, pokazuje widzom

i zwraca. Przy założeniu, że w każdej z urn mogą być kule o tych samych kolorach, wynik

losowania nie daje nam żadnej jasnej informacji na temat pochodzenia tej kuli - proces

losowania jest ukryty.

Teraz nazwijmy fachowo elementy tego procesu. Kolor kuli to obserwacja o(t)

w danym momencie. Zaś urny to poszczególne stany, dla których jest zdefiniowane

prawdopodobieństwo wylosowania kuli w danym kolorze. Oto elementy opisujące ukryty

model Markowa [8]:

Page 16: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

16

N - liczba stanów modelu, dla każdej chwili t oznaczna jako ,

M - liczba obserwacji odpowiadających każdemu ze stanów ( O = { }),

A - niesymetryczna macierz prawdopodobieństwa przejść między stanami

,

B - macierz prawdopodobieństw obserwacji

gdzie to prawdopodobieństwo obserwacji wygenerowane przez stan .

Prawdopodobieństwo to jest zależne wyłącznie od aktualnego stanu , zatem:

.

Podobnie jak w przykładzie z urnami i kulami, w przypadku Surikate ciąg kolejnych

stanów dla kolejnych ramek sygnału jest dla nas ukryty. Ukryte modele Markowa

pozwalają nam na ich opisanie i sklasyfikowanie za pomocą algorytmu Bauma-Welcha

[1]. Baza takich modeli umożliwia nam identyfikację nowej sekwencji, czyli rozpoznanie.

Funkcją odpowiedzialną za rozpoznanie w przypadku HTK dla HMM jest algorytm

Viterbiego [6].

1.2.3. Algorytm Viterbiego

Algorytm Viterbiego należy do grupy metod niedeterministycznych tj. takich

metod, za pomocą których wyznacza się prawdopodobieństwo reprezentujące

dopasowanie sygnału do zastosowanych modeli probablistycznych. Służy do odnalezienia

w grafie najlepszej ścieżki, czyli najbardziej prawdopodobnej sekwencji dla procesu

Markowa o skończonej ilości stanów [12]. Aby uniknąć złożoności, ma on charakter

rekursywny, czyli powtarzający się, odnoszący się do siebie.

Zakłada, że kolejne punkty ścieżki to kolejne stany (Si), zaś linie łączące te punkty

to przejścia między kolejnymi stanami. Do każdego pośredniego i końcowego punktu jest

jedna najbardziej prawdopodobna ścieżka. Każda z tych ścieżek jest opisana pewnym

prawdopodobieństwem δ. δ(S,t) jest maksymalnym prawdopodobieństwem a posteriori

dla wszystkich sekwencji kończących się na stanie S w czasie t, zaś najlepszy fragment

Page 17: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

17

ścieżki to sekwencja charakteryzująca się maksymalnym prawdopodobieństwem jej

wystąpienia. Każdy stan w danym czasie jest opisany tymi dwiema wartościami.

Załóżmy, że chcemy znaleźć najlepszą ścieżkę ze stanu S0(t=1, t<T-1) do stanu

Sx(t=T). Jak widać na rys. 4, najbardziej prawdopodobna ścieżka musi przejść przez stan

S1(t=T-1), S2(t=T-1) bądź S3(t=T-1).

Rys. 4 - poszukiwanie najlepszej ścieżki przez algorytm Viterbiego.

Aby znaleźć najlepszą ścieżkę do stanu Sx(t=T), należy przypomnieć sobie

wspomniane wcześniej założenie Markowa dla modeli pierwszego rzędu -

prawdopodobieństwo wystąpienia danego stanu na podstawie sekwencji stanów zależy

tylko od poprzedniego stanu [3]. Zatem najbardziej prawdopodobna ścieżka może zostać

wyliczona ze wzoru:

(1.7)

Page 18: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

18

gdzie:

- prawdopodobieństwo δ,

- prawdopodobieństwo wystąpienia sekwencji,

- prawdopodobieństwo obserwacji.

Powyższy przykład zakłada, że stan S jest stanem końcowym. W przypadku, gdy

chcielibyśmy znaleźć sekwencję dla stanów w czasie T+1, należy obliczyć możliwe

ścieżki dla wszystkich stanów w czasie T posługując się tym algorytmem.

Działanie algorytmu Viterbiego opiera się na kryterium maksymalnej

wiarygodności. Dzięki temu pozwala on na określenie końcowego i optymalnego

rozpoznania poprzez gotowe modele.

1.3. HTK

HTK (Hidden Markov Model Toolkit) to zestaw narzędzi zawierający biblioteki

w języku C oraz inne moduły służące między innymi do automatycznego rozpoznawania

mowy przez budowę i manipulowanie ukrytymi modelami Markowa. Jego zastosowania

nie kończą się jednak na identyfikacji mówców - toolkit jest też z powodzeniem używany

np. do sekwencjonowania kodu DNA. Pierwsza wersja HTK została stworzona na

uniwersytecie Cambridge (CUED - Cambridge University Engineering Department)

w 1989 roku przez Steve'a Young'a. Już od wielu lat jest on stosowany nie tylko w celach

dydaktycznych, ale też w aplikacjach komercyjnych [13]. Ostatnia aktualizacja miała

miejsce 13 marca 2009 roku (wersja 3.4.1).

Page 19: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

19

1.3.1. Surikate - opis działania systemu

Surikate to system zarówno do identyfikacji, jak i weryfikacji mówcy stworzony przez

Zespół Przetwarzania Sygnałów AGH [18] i firmę Techmo. [15] Jest to system

hybrydowy, podzielony na dwie gałęzie osobno identyfikujące mówcę. Jedna z gałęzi

realizuje rozpoznanie poprzez toolkit HTK, natomiast druga przy użyciu dyskretnej

transformaty falkowej (ang. Discrete Wavelet Transform - DWT) oraz FFT. Wynik

z każdej gałęzi jest następnie mnożony przez określoną wagę, ponieważ żadna ze

wcześniej wspomnianych metod nie ma stuprocentowej skuteczności. W finalnej wersji

systemu założono, że najlepsze efekty rozpoznania były uzyskane przy równej wadze dla

obu rozwiązań [7]. W tym rozdziale została opisana gałąź, w której za identyfikację

mówcy są odpowiedzialne metody i narzędzia wchodzące w skład toolkitu HTK.

Jeszcze przed rozpoczęciem procesu identyfikacji plik dźwiękowy jest poddawany

normalizacji amplitudowej. Jest to zabieg polegający na dostosowaniu ujednoliconej

głośności dla całego nagrania. W ten sposób można pozbyć się nadmiernie brzmiących

fragmentów wypowiedzi.

Kolejnym krokiem jest ekstrakcja cech potrzebnych do jak najlepszego

sklasyfikowania sygnału mowy. Do opisu sygnału mowy użyto 23 MFCC oraz 26 banków

filtrów z uwagi na najlepszą efektywność tego rozwiązania potwierdzoną w testach [7].

Ramki sygnałów rozpoznane jako te zawierające dźwięk są opisane za pomocą 8 stanów,

zaś ramki ciszy przy pomocy 3.

Następnie, za pomocą ukrytych modeli Markowa i algorytmu Viterbiego otrzymane

zestawy parametrów są porównywane z parametrami mówców zawartych w bazie i na tej

podstawie otrzymuje się wynik rozpoznania.

Na kolejnej stronie zamieszczono rysunek poglądowy przedstawiający działanie tej

gałęzi.

Page 20: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

20

Rys.5 - uproszczony schemat blokowy działania jednej z gałęzi Surikate.

Page 21: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

21

1.4. Metody statystyczne służące do oceny skuteczności algorytmu

Jest wiele metod, za pomocą których możemy ocenić skuteczność danego algorytmu

bądź klasyfikatora. Służą one do wyboru optymalnego klasyfikatora, który

w najtrafniejszy sposób określi przynależność danych wejściowych do określonych klas.

Nie znamy wprost prawdopodobieństwa, że dany klasyfikator spełnia swoje zadanie, ale

skuteczność jego działania można wyznaczyć za pomocą eksperymentu.[4]

Jedną z podstawowych metod jest prosta walidacja - próby, których znamy

przynależność, są przydzielane do klas znajdujących się w bazie i procent błędnych

przyporządkowań jest skutecznością danego klasyfikatora. Ważnym jest użycie zbioru

walidycyjnego niebędącego częścią zbioru treningowego, na którym zostały wytrenowane

klasy. Przez to unikniemy zawyżonej oceny prawidłowości.

Dla wybranego klasyfikatora warto jeszcze raz, w sposób ostateczny ocenić jego

skuteczność, przeprowadzając kolejną klasyfikację na tzw. próbie testowej. Jest ona

niezależna zarówno od próby uczącej, jak i walidacyjnej. Umożliwia ona

zminimalizowanie współczynnika losowości, jaki mógł zaważyć na wynikach dla próby

walidacyjnej. Przeważnie próba ucząca zawiera 50%, zaś walidacyjna i testowa po 25%

całkowitej zawartości zbioru obserwacji, jednak nie ma złotego środka na uniwersalną

proporcję.

Przy braku dużej ilości danych często jest się zmuszonym do rezygnacji z próby

walidacyjnej. Może też nastąpić skrajna sytuacja zastosowania tylko i wyłącznie próby

uczącej. Wtedy musimy wielokrotnie używać tego samego zbioru uczącego. Istnieje

szereg metod stosowanych w tym celu dających dobre rezultaty. Do sztandarowych

zaliczamy kroswalidację.

K-krotna kroswalidacja (określana także jako test bądź sprawdzian krzyżowy) polega

na podziale danych na K równych części a następnie tworzenie z K-1 części, tworzących

zbiór uczący, klasyfikatora. Część danych nie należąca do serii treningowej jest zbiorem

testowym (treningowym) a suma błędnych rezultatów, jakie osiągnie klasyfikator dla

K powtórzeń algorytmu podzielona przez liczność oryginalnej próby uczącej jest równa

ocenie skuteczności klasyfikatora. Podział na zbiory uczące i testowe przedstawia rys. 6.

Rys.6 - podział zbioru danych na zbiór uczący (kolor zielony) i serię testową (kolor czerwony) dla testu

krzyżowego.

Page 22: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

22

Przy dużej ilości klasyfikatorów i dużym współczynniku K zwiększa się ilość obliczeń

- przy porównywaniu na przykład pięciu różnych metod klasyfikacji i K równym 10

otrzymujemy 50 różnych klasyfikatorów, po 10 dla każdej z metod.

W badanej gałęzi systemu klasyfikatorem jest algorytm Viterbiego opisany

w rozdziale 1.2.3. Jednak jego skuteczność zależy w dużej mierze od danych, jakie budują

model mówcy. W dalszej części pracy zostaną przedstawione testy opierające się na

sprawdzianie krzyżowym, umożliwiające zbadanie poprawnej automatycznej anotacji

nagrań przez toolkit HTK.

1.5. Budowa pliku w formacie .wav

System rozpoznawania mówców Surikate przetwarza pliki dźwiękowe w formacie

.wav. Ma on jednak pewne ograniczenia związane z trenowaniem nowych modeli

mówców - będzie to wytłumaczone w kolejnym rozdziale.

Operacje na plikach dźwiękowych .wav są niezbędne do działania systemu i jego

ewentualnych testów. W tym celu potrzebna jest znajomość budowy plików w tym

formacie, aby poprawnie je otwierać oraz edytować ich zawartość.

Plik .wav składa się z trzech części - nagłówka 'RIFF' zawierającego opis otwieranego

pliku oraz dwóch 'podczęści' - jednej o nazwie 'fmt' określającą format informacji

zawartych w drugiej 'podczęści' o nazwie 'data', w której podane są rozmiary, jakie

zajmują kluczowe informacje jak i najbardziej interesujące wartości, czyli dane pliku

dźwiękowego [16].

Tabela znajdująca się na kolejnej stronie przedstawia pola charakterystyczne dla pliku

w formacie .wav.

Page 23: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

23

Tab.1.1 - Budowa pliku .wav.

* PCM (ang. Pulse Code Modulation) - jedna z najpopularniejszych metod, za pomocą których sygnał

analogowy jest reprezentowany w systemach cyfrowych.

**

***

Nazwa pola Rozmiar pola w bajtach

ChunkID 4

ChunkSize 4

Format 4

Subchunk1ID 4

Subchunk1Size 4

AudioFormat 2

NumChannels 2

SampleRate 4

ByteRate 4

BlockAlign 2

BitsPerSample 2

2 ExtraParamSize

X ExtraParams

Subchunk2ID 4

Subchunk2Size 4

Data

Zawiera litery tworzące słowo "data"

Rozmiar pola Data w bajtach

Faktyczne dane pliku dźwiękowegoSubchunk2SizeData

Wartość częstotliwości próbkowania

Wartość obliczana ze wzoru**

Wartość obliczana ze wzoru***

Ilość bitów na próbkę

fmt

Jeżeli używamy PCM*, pola nie istnieją

informacja

Zawiera litery tworzące słowo "RIFF" w kodzie ASCII

Rozmiar całego pliku w bajtach licząc od tego następnego pola

Zawiera litery tworzące słowo "WAVE"

fmt

Zawiera litery tworzące słowo "fmt "

Rozmiar reszty podczęści w bajtach licząc od następnego pola

Wartość pola równa 1 dla PCM*. Inna liczba oznacza inną formę kompresji

Ilość kanałów (1 dla Mono, 2 dla Stereo)

RIFF

Page 24: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

24

2. Klasa CrossVal - opis zaimplementowanych metod

Celem niniejszej pracy jest implementacja klasy, która realizuje test krzyżowy danych

przesyłanych do Surikate, a dokładniej do gałęzi odpowiedzialnej za rozpoznawanie przy

użyciu toolkitu HTK. Poniżej zamieszczono spis ważniejszych metod użytych w tej klasie.

2.1. RecoutRemake

Dane wejściowe: plik recout.mlf z HTK,

Dane wyjściowe: przerobiony plik recout.mlf zapisany pod nazwą zdefiniowaną przez

Użytkownika.

Metoda o nazwie RecoutRemake ma za zadanie odpowiednie sparsowanie

pierwotnego pliku rozpoznania z HTK. Toolkit analizuje nagranie na podstawie ram

czasowych o krótkich długościach trwania (wartości na rys. 7 podane w jednostce 100ns).

Celem tej metody jest usunięcie powtarzających się pod rząd rozpoznań jednego mówcy

i zastąpienie ich jednym wersem. Ponadto parser usuwa ujemne liczby znajdujące się na

końcu każdego wersu będące logarytmem prawdopodobieństwa rozpoznania, które na tą

chwilę stopnia rozwoju programu nie są brane pod uwagę.

Page 25: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

25

Rys.7 - porównanie rozmiaru i budowy plików tekstowych z rozpoznaniem przed użyciem (po lewej) i po

użyciu (po prawej) funkcji RecoutRemake.

2.2. MergeWaves

Dane wejściowe: Ścieżki do dwóch plików dźwiękowych w formacie .wav,

Dane wyjściowe: Plik dźwiękowy w formacie .wav będący scaleniem plików

podanych jako dane wejściowe.

Metoda o nazwie MergeWaves, jak sama nazwa wskazuje, jest odpowiedzialna za

scalenie dwóch plików .wav. Napisanie tej funkcji było niezbędne ze względu na fakt, iż

przy ewentualnym tworzeniu nowego modelu mówcy na podstawie kilku nagrań za

każdym razem następuje nadpisanie już istniejącego modelu. W wyniku tego mówca jest

reprezentowany plikiem, który jako ostatni wysłano do treningu.

Przy pomocy tej metody program sam scala podane mu pliki, przez co trening może

odbyć się na pliku będącym reprezentacją dwóch lub więcej osobnych plików. Znajduje

ona zastosowanie przy implementacji testu krzyżowego, o którym szerzej będzie

powiedziane w podpunkcie 3.5.

Page 26: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

26

2.3. TrainModel

Dane wejściowe: plik .wav reprezentujący mówcę, dla którego chcemy wytrenować

model,

Dane wyjściowe: Wytrenowany model mówcy.

Metoda TrainModel korzysta z funkcji MergeWaves opisanej w poprzednim

podpunkcie w wyniku, gdy mówcę reprezentuje więcej niż jeden plik dźwiękowy. Za jej

pośrednictwem wskazany przez Użytkownika plik jest wysyłany do narzędzi zawartych

w toolkicie HTK w celu jego parametryzacji oraz wyuczenia klasyfikatora. Otrzymany

w ten sposób model jest dodawany do bazy mówców.

2.4. TestModel

Dane wejściowe: plik .wav przeznaczony do rozpoznania przez system, nazwa

spodziewanego mówcy, interwał w sekundach, po jakim czasie

trwania program powinien zwrócić błąd,

Dane wyjściowe: Plik tekstowy z wynikiem zawierający rezultaty rozpoznania.

Metoda TestModel nie tylko testuje plik .wav i zwraca rezultaty na podstawie bazy

mówców zawartej w systemie, ale też pozwala zadecydować Użykownikowi, jaki jest

dopuszczalny maksymalny interwał złego rozpoznania przez system. Ten zabieg ma na

celu założenie granicy błędnego ciągłego rozpoznania - program będzie uznawał

identyfikację za nieprawidłową tylko w przypadku przekroczenia tej wartości.

Wygenerowany plik tekstowy zawiera nazwę pliku poddanego rozpoznaniu,

spodziewanego rezultatu, wartość interwału określonego przez Użytkownika, listę

błędnych rozpoznań wraz z przedziałami czasu, w których miały one miejsce oraz błąd

rozpoznania pliku podany w procentach i obliczony na podstawie wzoru:

Page 27: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

27

(2.1)

gdzie:

- niespójność pliku x wynikająca z rozpoznania dla wartości interwału i,

i - rozmiar interwału [s],

- k-ta rama czasowa zawierająca rozpoznanie różne od spodziewanego

[s],

N - ilość ram czasowych zawierających rozpoznanie różne od spodziewanego,

- całkowity czas trwania analizowanego pliku dźwiękowego [s].

2.5. CrossWavfile

Dane wejściowe: Ścieżka do pliku w formacie .wav poddawanego analizie, określenie

ilości części, na które będzie dzielony plik, wartość interwału, przy

którym program bedzie zwracał błąd rozpoznania,

Dane wyjściowe: Plik tekstowy zawierający procent błędnego rozpoznania dla

każdego z klasyfikatorów, uśrednione błędne rozpoznanie oraz

wartość odchylenia standardowego.

Metoda CrossWavfile używa wszystkich funkcji opisanych wcześniej. Dzięki niej

możemy sprawdzić, jak metoda klasyfikująca radzi sobie z identyfikacją. W tym celu

przed uruchomieniem tej metody niezbędnym jest wytrenowanie przynajmniej 2-3 modeli

'obcych' mówców na podstawie jednorodnych nagrań w celu uniknięcia zawyżenia

wartości rozpoznania.

Przed przystąpieniem do K - krotnej kroswalidacji następuje podzielenie badanego

pliku .wav na 5 bądź 10 części (czyli założenie, że rozmiar zbiorów uczącego

i treningowego będzie wynosił odpowiednio 80/20 lub 90/10 procent całkowitego

rozmiaru pliku dźwiękowego poddanego testowi). Następnie program zaczyna realizować

sprawdzian krzyżowy - w pętli wykonującej się tyle razy, na ile podzielono plik .wav,

jedna z pięciu/dziesięciu części reprezentuje zbiór testowy, natomiast pozostałe są

ponownie łączone w jeden i tworzą zbiór uczący. Po wykonaniu tych operacji następuje

Page 28: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

28

kolejno trenowanie modelu na zbiorze uczącym, identyfikacja mówców ze zbioru

treningowego i koniec jednego przebiegu pętli.

W pliku tekstowym o lokalizacji i nazwie określonej przez Użytkownika są zawarte

zbiorcze wyniki dla każdej z części poddanej analizie. Istnieje też możliwość zapisania

całego logu do pliku tekstowego i podejrzenie działania całego systemu. Skrócony sposób

działania zaprezentowano na rys. 8.

Page 29: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

29

Rys. 8 - Schemat blokowy metody CrossWavfile.

Page 30: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

30

3. Wyniki dla przeprowadzonych testów

3.1. Założenia i opis doświadczeń

W tym podrozdziale prześledzono kolejne etapy działania funkcji CrossWavfile.

Opisano także przyjęte założenia dla przeprowadzanych testów.

W testach użyto nagrań z następujących źródeł:

- Lektor Jerzy Wolf - dwa jednorodne nagrania (pięcio- i dwuminutowe),

- Nagrania pobrane ze strony [17] - jednorodne nagrania z obrad Sejmu o różnych

długościach, niekiedy poprzecinane wtrąceniami bądź reakcjami posłów,

- Nagranie pobrane ze strony [11] - nagranie zawierające dźwięki odkurzacza.

Ściągnięte pliki z Internetu musiały zostać odpowiednio sformatowane. W tym celu

posłużono się darmowym programem Audacity [10], słuzącym także do edycji niektórych

nagrań, to jest przycinaniu, dodawaniu kolejnych mówców do nagrania. Poniżej format,

w którym dane zostały dostarczone do testów:

Częstotliwość próbkowania - 16 kHz,

Liczba kanałów - 1 (Mono),

Bitrate - 256 kbps,

Kodek - PCM,

Normalizacja w dziedzinie amplitudowej.

Model o nazwie DstSpk jest tworzony każdorazowo przez sprawdzian krzyżowy

z danych o objętości 80 bądź 90 procent całego nagrania (w zależności od wyboru

krotności testu) poddanego testowi.

Modele o nazwach SPKA i SPKB są modelami mówców wytrenowanymi na dwóch

różnych jednorodnych nagraniach z przemówień sejmowych. Zostały wytrenowane raz i są

używane we wszystkich testach.

Model SPKC to model mówcy pojawiający się od drugiego testu. Powstał on

z pięciominutowego nagrania autorstwa Jerzego Wolfa.

Page 31: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

31

Pierwszy test będzie polegał na poddaniu pięciominutowego nagrania autorstwa

Jerzego Wolfa pięciokrotnemu testowi krzyżowemu. Zostanie obliczony współczynnik

błędu rozpoznania dla danego nagrania. Następnie z pliku wynikowego zostanie

odczytane, który z wytworzonych modeli mówców powstałych w wyniki sprawdzianu

krzyżowego charakteryzował się najlepszą skutecznością identyfikacji. Dla każdego

z osobna z wytrenowanych w ten sposób modeli mówców zostanie przeprowadzona

operacja identyfikacji na innym dwuminutowym, jednolitym nagraniu lektora i otrzymane

wyniki zostaną porównane.

Drugi test to przeprowadzenie pięcio- oraz dziesięciokrotnego testu krzyżowego na

siedmiominutowym pliku .wav będącym nagraniem losowego przemówienia jednego

z posłów. Doświadczenie ma na celu porównanie otrzymanych wyników z obu

sprawdzianów i ich skonfrontowanie ze sobą.

Założeniem trzeciego testu jest sprawdzenie, jak program będzie się zachowywał przy

nagraniu, na którym występuje trzech różnych mówców. W tym celu plik .wav został

poddany pięciokrotnemu testowi krzyżowemu. Baza mówców nie zawierała żadnego

z mówców występujących na nagraniu. Oczekiwanym wynikiem jest bardzo niska

rozpoznawalność dla klasyfikatorów, w których część treningowa jest pozbawiona

większości wypowiedzi mówcy (Rys.9 - części 1, 3 oraz 5).

Czwarty test to symulacja następującej sytuacji: zaraz po przemówieniu (w tym celu

użyto nagrania z testu 2) następuje 'sprzątanie' sali obrad - na koniec nagrania został

dodany szum odkurzacza. Ma on na tyle długi czas trwania, że wchodzi całkowicie

w zawartość jednej z pięciu części, na jakie jest dzielony plik przy teście krzyżowym

(Rys. 10). Test ma na celu sprawdzenie, jaki będzie wynik identyfikacji szczególnie dla tej

wspomnianej części nagrania i jakie będą konsekwencje takiego podziału pliku.

Page 32: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

32

3.2. Otrzymane wyniki

3.2.1. Pierwszy test

Poniżej zaprezentowano w formie wykresów wyniki testu krzyżowego dla nagrania

autorstwa J.Wolfa dla 5 klasyfikatorów. W bazie znajdowały się dodatkowo 3 modele

mówców - dwa modele przypadkowych mówców oraz model dźwięku wydawanego przez

odkurzacz.

Wykres 2.1 - Wyniki rozpoznania dla jednolitego pliku w pięciokrotnym teście krzyżowym dla każdego

z utworzonych klasyfikatorów dla testu pierwszego.

Tab. 2.1 - Wyniki rozpoznania dla jednolitego pliku w pięciokrotnym teście krzyżowym dla każdego

z utworzonych klasyfikatorów dla testu pierwszego.

DstSpk SpkA SpkB

K1 99,55 0,45 0

K2 98,11 1,89 0

K3 99,12 0,88 0

K4 98,74 1,26 0

K5 100 0 0

procent rozpoznania [%]

Klasyfikator

Page 33: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

33

Wykres 2.2 - Wynik całkowitego błędnego rozpoznania dla każdego z użytych klasyfikatorów dla testu

pierwszego.

Tab. 2.2 - Wynik całkowitego błędnego rozpoznania dla każdego z użytych klasyfikatorów dla testu

pierwszego.

Suma błędnego

procentu rozpoznania [%]

K1 0,45

K2 1,89

K3 0,88

K4 1,26

K5 0

Klasyfikator

Page 34: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

34

Średnia wartość błędnego rozpoznania dla klasyfikatorów dla testu 1:

Odchylenie standardowe błędnego rozpoznania dla klasyfikatorów dla testu 1:

Następnie każdy z pięciu klasyfikatorów otrzymanych z testu krzyżowego (K1..K5),

jak i model otrzymany na podstawie całego pięciominutowego nagrania (K) został

poddany testowi na nagraniu dwuminutowym.

Wykres 2.3. - Procentowe rozpoznanie dla pliku testowego dla testu pierwszego.

Page 35: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

35

Wykres 2.4 - Procent całkowitego błędnego rozpoznania dla pliku testowego dla testu pierwszego.

Tab.2.3. - Wyniki dla każdego z klasyfikatorów dla identyfikacji nagrania testowego dla testu

pierwszego.

Klasyfikator Nazwa modeluProcent rozpoznania

dla pliku testowego [%]

Procent całkowitego

błędnego rozpoznania

[%]

DstSpk 96,9

SpkA 2,3

SpkB 0,8

DstSpk 96

SpkA 2,3

SpkB 1,7

DstSpk 98

SpkA 0,4

SpkB 1,6

DstSpk 96

SpkA 2,3

SpkB 1,7

DstSpk 94,8

SpkA 3,7

SpkB 1,5

DstSpk 95,6

SpkA 2,3

SpkB 2,1

4,4

5,2

4

3,1

4

2

K1

K2

K3

K4

K5

K

Page 36: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

36

3.2.2. Drugi test

Poniżej zamieszczono wyniki w postaci wykresów oraz tabel otrzymane dla drugiego

testu.

Wykres 2.4 - Wyniki rozpoznania dla niejednorodnego pliku w pięciokrotnym teście krzyżowym dla

każdego z utworzonych klasyfikatorów dla testu drugiego.

Tab.2.4 - Wyniki rozpoznania dla niejednorodnego pliku w pięciokrotnym teście krzyżowym dla

każdego z utworzonych klasyfikatorów dla testu drugiego.

DstSpk SpkA SpkB SPkC

K1 67,9 10,5 21,5 0,1

K2 93,2 2,3 4,5 0

K3 97,84 0 2,16 0

K4 86,3 0,7 13 0

K5 88,5 2,9 8,6 0

Klasyfikator

procent rozpoznania [%]

Page 37: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

37

Wykres 2.5 - Suma błędnego rozpoznania niejednorodnego pliku w pięciokrotnym teście krzyżowym

dla każdego z utworzonych klasyfikatorów dla testu drugiego.

Tab. 2.5 - Suma błędnego rozpoznania niejednorodnego pliku w pięciokrotnym teście krzyżowym dla

każdego z utworzonych klasyfikatorów dla testu drugiego.

Suma błędnego

procentu rozpoznania [%]

K1 32,1

K2 6,8

K3 2,16

K4 13,7

K5 11,5

Klasyfikator

Page 38: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

38

Wykres 2.6 - Wyniki rozpoznania dla niejednorodnego pliku w dziesięciokrotnym teście krzyżowym

dla każdego z utworzonych klasyfikatorów dla testu drugiego.

Tab. 2.6 - Wyniki rozpoznania dla niejednorodnego pliku w dziesięciokrotnym teście krzyżowym dla

każdego z utworzonych klasyfikatorów dla testu drugiego.

DstSpk SpkA SpkB SPkC

K1 61,7 12,4 25,6 0,3

K2 79,9 2,5 17,6 0

K3 81,8 9,1 9,1 0

K4 100 0 0 0

K5 85,1 3,4 11,5 0

K6 98,8 0 1,2 0

K7 98,7 0 1,3 0

K8 74,5 0 25,5 0

K9 93,5 5 1,5 0

K10 95,4 4,6 0 0

Klasyfikator

procent rozpoznania [%]

Page 39: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

39

Wykres 2.7 - Suma błędnego rozpoznania niejednorodnego pliku w dziesięciokrotnym teście

krzyżowym dla każdego z utworzonych klasyfikatorów dla testu drugiego.

Tab. 2.7 - Suma błędnego rozpoznania niejednorodnego pliku w dziesięciokrotnym teście krzyżowym

dla każdego z utworzonych klasyfikatorów dla testu drugiego.

Średnia wartość błędnego rozpoznania dla klasyfikatorów w przypadku

5-krotnego sprawdzianu krzyżowego dla testu 2:

Odchylenie standardowe błędnego rozpoznania dla klasyfikatorów w przypadku

5-krotnego sprawdzianu krzyżowego dla testu 2:

suma błędnego

procentu rozpoznania [%]

K1 38,3

K2 20,1

K3 18,2

K4 0

K5 14,9

K6 1,2

K7 1,3

K8 25,5

K9 6,5

K10 4,6

Klasyfikator

Page 40: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

40

Średnia wartość błędnego rozpoznania dla klasyfikatorów w przypadku

10-krotnego sprawdzianu krzyżowego dla testu 2:

Odchylenie standardowe błędnego rozpoznania dla klasyfikatorów w przypadku

10-krotnego sprawdzianu krzyżowego dla testu 2:

3.2.3. Trzeci test

W poniższym podrodziale zaprezentowano podział pliku .wav na części wraz

z zaznaczeniem występowania mówców w nagraniu, jak i otrzymane wyniki dla

pięciokrotnego testu krzyżowego dla testu 3.

Rys.9 - Udział każdego z mówców w nagraniu (Spk1, Spk2, Spk3) oraz jego podział na części z

zaznaczeniem kolejnych etapów testu krzyżowego (K1..K5 - części treningowe, Test1..Test5 - części

testowe) dla testu trzeciego.

K5

Test1

Test2

Test3

Test4

Test5

K1

K2 K2

K3 K3

K4 K4

Part1 Part2 Part3 Part4 Part5

Plik .wav

Spk1 Spk2 Spk3

Page 41: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

41

Wykres 2.8 - Wyniki rozpoznania niejednorodnego pliku w pięciokrotnym teście krzyżowym dla

każdego z utworzonych klasyfikatorów dla testu trzeciego.

Tab. 2.8 - Wyniki rozpoznania niejednorodnego pliku w pięciokrotnym teście krzyżowym dla każdego

z utworzonych klasyfikatorów dla testu trzeciego.

DstSpk SpkA SpkB SPkC

K1 56,78 31,92 8,64 2,66

K2 74 8,3 15,8 1,9

K3 41,3 27 18,5 13,2

K4 75,2 5,1 19,2 0,5

K5 51,2 2 10,5 36,3

Klasyfikator

procent rozpoznania [%]

Page 42: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

42

Wykres 2.9 - Suma błędnego rozpoznania niejednorodnego pliku w pięciokrotnym teście krzyżowym

dla każdego z utworzonych klasyfikatorów dla testu trzeciego.

Tab. 2.9 - Suma błędnego rozpoznania niejednorodnego pliku w pięciokrotnym teście krzyżowym dla

każdego z utworzonych klasyfikatorów dla testu trzeciego.

Średnia wartość błędnego rozpoznania dla klasyfikatorów w przypadku

5-krotnego sprawdzianu krzyżowego dla testu 3:

Odchylenie standardowe błędnego dla klasyfikatorów w przypadku

5-krotnego sprawdzianu krzyżowego dla testu 3:

Suma błędnego

procentu

rozpoznania [%]

K1 43,22

K2 26

K3 58,7

K4 24,8

K5 48,8

Klasyfikator

Page 43: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

43

3.2.4. Czwarty test

W poniższym podrodziale zaprezentowano podział pliku .wav na części wraz

z zaznaczeniem występowania mówcy oraz dźwięków odkurzacza w nagraniu, jak

i otrzymane wyniki dla pięciokrotnego testu krzyżowego.

Rys.10 - Udział mówcy (Spk1) oraz odgłosów odkurzacza (Odkurzacz) w nagraniu oraz jego podział na

części (Part1..Part5) z zaznaczeniem kolejnych etapów testu krzyżowego dla testu czwartego (części

treningowe - K1..K5, części testowe - Test1..Test5).

Wykres 2.10 - Wyniki rozpoznania niejednorodnego pliku w pięciokrotnym teście krzyżowym dla

każdego z utworzonych klasyfikatorów dla testu czwartego.

Test5

K1

K2

K3 K3

K4

K5

Test4 K4

Test3

K2 Test2

Plik .wav

Spk1 Odkurzacz

Part1 Part2 Part3 Part4 Part5

Test1

Page 44: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

44

Tab. 2.10 - Wyniki rozpoznania niejednorodnego pliku w pięciokrotnym teście krzyżowym dla każdego

z utworzonych klasyfikatorów dla testu czwartego.

Wykres 2.11 - Wyniki rozpoznania niejednorodnego pliku w pięciokrotnym teście krzyżowym dla

każdego z utworzonych klasyfikatorów dla testu czwartego.

Średnia wartość błędnego rozpoznania dla klasyfikatorów w przypadku

5-krotnego sprawdzianu krzyżowego dla testu 4:

Odchylenie standardowe błędnego rozpoznania dla klasyfikatorów w przypadku

5-krotnego sprawdzianu krzyżowego dla testu 4 z pominięciem K5:

Odchylenie standardowe błędnego rozpoznania dla klasyfikatorów w przypadku

5-krotnego sprawdzianu krzyżowego dla testu 4:

DstSpk SpkA SpkB SPkC

K1 41,7 21 35 2,3

K2 62,3 7,2 27,8 2,7

K3 53,8 6,5 31,7 8

K4 41 6,4 45,2 7,4

K5 0 0,6 99,4 0

Klasyfikator

procent rozpoznania [%]

Page 45: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

45

4. Wnioski oraz propozycje dalszego rozwinięcia projektu

Pierwszy test potwierdził, że plik zawierający nagranie lektora zawiera tylko

i wyłącznie jego głos - średni procent błędnych rozpoznań dla powstałych w procesie testu

krzyżowego klasyfikatorów jest bliski zeru. W przypadku przeprowadzenia osobnego testu

identyfikacji zakładając kolejne wersje klasyfikatora otrzymane w czasie testu krzyżowego

jako model mówcy wykazano jednak, że błąd rozpoznania nie jest większy dla

klasyfikatora, który wykazał się największą rozpoznawalnością w trakcie sprawdzianu.

Całkowite błędne rozpoznanie dla klasyfikatora K nauczonego na podstawie

pięciominutowego nagrania lektora rzędu 4,4% dla dwuminutowego zbioru testowego

uważam za bardzo dobry wynik.

W przypadku drugiego testu wyniki pięcio- oraz dziesięciokrotnego sprawdzianu

krzyżowego są do siebie bardzo zbliżone. Można stwierdzić, że dla siedmiominutowego

nagrania, w którym występuje jeden mówca wystarczy przeprowadzić pięciokrotny test,

który będzie miał podobny rezultat z równoczesnym szybszym czasem uzyskania wyniku-

różnica uzyskana w obu pomiarach w przypadku średnich błędnego rozpoznania dla

klasyfikatorów wynosi niecałe 0,2%. Jednak dzielenie pliku na więcej części daje nam

więcej informacji na temat tego, gdzie mogą być potencjalne zakłócenia.

Trzeci test polegający na zbadaniu nagrania pod kątem jednolitości przyniósł

spodziewane wyniki rozpoznania - fragmenty do testowania, w których występował jeden

mówca charakteryzowały się większym procentem błędnego rozpoznania przez

klasyfikator utworzony z reszty pliku. Widać to dobrze w wynikach zawartych w tabeli

2.9. Jest to spowodowane faktem, iż klasyfikator był za słaby z powodu niewystarczającej

ilości próbek mówcy występującego we fragmencie nagrania przeznaczonego do testu,

czyli uznał tą część testową za obcą. Jest to jednak bardzo zależne od odpowiedniego

podziału pliku - przy podziale na mniejsze części możliwe jest zakwalifikowanie części

testowej jako poprawnej z powodu większej ilości wystąpień mówcy obecnego w nagraniu

treningowym.

Rezultaty otrzymane na podstawie czwartego testu dla jego piątego klasyfikatora

bardzo dobrze reprezentują faktyczną zawartość nagrania - piąta część pliku została

w całości źle rozpoznana. Czwarty konstruktor zawierający fragment szumu w części

testowej charakteryzował się drugim największym procentowym błędnym rozpoznaniem.

Page 46: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

46

Wyniki testów mogą się różnić w zależności od ilości mówców w bazie i ich

wytrenowania. Im więcej modeli tym większa różnorodność klasyfikatorów, co może

prowadzić do błędnej identyfikacji. Identyfikacja mówcy przez system HTK ma jedną

bardzo dużą wadę - nie można założyć braku rozpoznania, więc jeżeli modele zawarte

w bazie różnią się w sposób wyraźny od testowanego pliku spowoduje to wzrost

poprawnych klasyfikacji.

Na tą chwilę projekt realizujący test krzyżowy działa poprawnie, jest jednak kilka

rzeczy, które na przyszłość powinny zostać rozwinięte. Do takich można zaliczyć między

innymi metodę konwertującą plik dźwiękowy z popularnego formatu MP3 na plik .wav

gotowy do rozpoznania - z odpowiednim nagłówkiem i formatem. Można także

zaprojektować interfejs graficzny umożliwiający lepszą i łatwiejszą współpracę

z Użytkownikiem.

Duże zastrzeżenia można mieć także do czasu trwania testu krzyżowego - dla

piętnastominutowego nagrania przy pięciokrotnym teście krzyżowym zwrócenie wyników

zajęło programowi ponad 4 godziny. Jest to spowodowane głównie przez długi czas

trwania treningu dla dwunastominutowego nagrania. Na tą chwilę Surikate zapisuje

i analizuje plik .mlf potrzebny do treningu jako plik tekstowy, ale jak podaje [6], jest

możliwość jego zapisu w formie binarnej. Niestety, i to nie pomaga w skróceniu czasu

trwania obliczeń. Należy pomyśleć o optymalizacji systemu do rozpoznawania mówcy.

Kolejnym pomysłem na rozwój projektu jest opcja wizualizacji wyników w postaci

wykresu lub tabeli, które można wyeksportować jako arkusz kalkulacyjny bądź grafikę.

Można także zaimplementować odpowiednią metodę realizującą wczytywanie

rozpoznawanego pliku .wav i narysowanie jego przebiegu w czasie w różnych kolorach

odpowiadających rozpoznaniom.

Wskazane jest także dalsze testowanie i analiza wyników dla innych plików z różnymi

konfiguracjami interwałów, krotności sprawdzianu krzyżowego oraz ilościami mówców

w bazie.

Page 47: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

47

5. Bibliografia

Literatura przedmiotu:

[1] Baum L.E., Petrie T., Soules G., Weiss N.: A maximization technique occuring in

the statistical analysis of probablistic functions of markov chains. The Annuals of

Mathematical Statistics, vol.41, No.1, pp. 164-171, 1970.

[2] Davis S.B., Mermelstein P.: Comparison of parametric representations for

monosyllabic word recognition in continuously spoken sentences. IEEE

Transactionson Acoustics, Speech and Signal Processing, vol. ASSP-28, no.4,

pp.357-366, 1980.

[3] Forney G.D.: The Viterbi algortihm. Proceedings IEEE, vol. 61, pp. 268-273, 1973.

[4] Koronacki J., Ćwik J.: Statystyczne systemy uczące się. str. 88-91, Warszawa,

Wydawnictwa naukowo-techniczne Warszawa 2005.

[5] Rabiner L.R.:A Tutorial on Hidden Markov Models and Selected Applications in

Speech Recognition. Proceedings of the IEEE, vol. 77, no.2, pp, 257-261, 1989.

[6] Young S., Evermann G., Gales M., Hain T.,Kershaw D., Liu X., et al.: The

HTK Book (Revised for HTK Version 3.4 December 2006).

UK:Cambridge University Engineering Department.

[7] Ziółko B., Kozłowski W., Ziółko M., Samborski R., Sierra D., Gałka J..:

Hybrid Wavelet-Fourier-HMM Speaker Recognition. Department of Electronics,

AGH University of Science and Technology Kraków, 2011.

[8] Ziółko M., Ziółko B.: Przetwarzanie Mowy. Kraków, Wydawnictwa AGH 2011.

Page 48: Praca dyplomowa - Zespół Przetwarzania Sygnałów [DSP AGH]dydaktyka:m_pasternak.pdf · miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba

48

Publikacje elektroniczne:

[9] Akustyka Mowy. Podstawy rozpoznawania mowy. Dostępny:

https://sound.eti.pg.gda.pl/student/amowy/AM_07_ASR.pdf

(odwiedzona 14 I 2014r.)

[10] Audacity. Dostępny:

http://audacity.sourceforge.net/?lang=pl (odwiedzona 8 I 2014r.)

[11] Freesound - Vacuum Cleaner. Dostępny:

http://www.freesound.org/people/Huminaatio/sounds/159348/

(odwiedzona 12 I 2014r.)

[12] Hidden Markov Models - Viterbi Algorithm. Dostępny:

http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/viterbi_algorit

hm/s1_pg1.html

(odwiedzona 14 I 2014r.)

[13] HTK Speech Recognition Toolkit. Dostępny:

http://htk.eng.cam.ac.uk/ (odwiedzona 5 XII 2013r.)

[14] Lokalna analiza częstotliwościowa. Dostępny:

http://wavelet.elektro.agh.edu.pl/wyklad/pdf/Lokalna.pdf (odwiedzona 14 I 2014r.)

[15] Strona firmy Techmo. Dostępny:

http://techmo.pl/index.php/surikate/opis-produktu (odwiedzona 9 I 2014r.)

[16] WAVE PCM soundfile format. Dostępny:

https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

(odwiedzona 14 I 2014r.)

[17] Wystąpienia w Sejmie. Dostępny:

http://sejmometr.pl/sejm_wystapienia (odwiedzona 14 I 2014r.)

[18] Zespół Przetwarzania sygnałów - DSP AGH. Dostępny:

http://www.dsp.agh.edu.pl/pl:about (odwiedzona 15 I 2014r.)