Międzywydziałowa Szkoła Inżynierii Biomedycznej Projekt dyplomowy inżynierski Dorota Błaszczyk Nr albumu: 204312 Agnieszka Gielar Nr albumu: 125603 kierunek studiów: inżynieria biomedyczna Automatyczna tablica okulistyczna w oparciu o mel-cepstralną analizę sygnału mowy Automatic vision test chart based on the mel-frequency cepstrum analysis of speech signal. Opiekun: dr inż. Jakub Gałka Kraków, grudzień 2009
Kraków,... Imię i nazwisko: Dorota Błaszczyk Nr albumu: 204312 Kierunek studiów: inżynieria biomedyczna OŚWIADCZENIE Oświadczam, świadomy odpowiedzialności karnej za poświadczanie nieprawdy, że niniejszy projekt dyplomowy inżynierski wykonałem osobiście i samodzielnie i nie korzystałem ze źródeł innych niż wymienione w dokumentacji. Jednocześnie oświadczam, że dokumentacja projektu inżynierskiego 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ł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 niniejszy projekt inżynierski nie był wcześniej podstawą żadnej innej urzędowej procedury związanej z nadawaniem dyplomów wyższej uczelni lub tytułów zawodowych.... podpis dyplomanta 3
Kraków,... Imię i nazwisko: Agnieszka Gielar Nr albumu: 125603 Kierunek studiów: inżynieria biomedyczna OŚWIADCZENIE Oświadczam, świadomy odpowiedzialności karnej za poświadczanie nieprawdy, że niniejszy projekt dyplomowy inżynierski wykonałem osobiście i samodzielnie i nie korzystałem ze źródeł innych niż wymienione w dokumentacji. Jednocześnie oświadczam, że dokumentacja projektu inżynierskiego 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ł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 niniejszy projekt inżynierski nie był wcześniej podstawą żadnej innej urzędowej procedury związanej z nadawaniem dyplomów wyższej uczelni lub tytułów zawodowych.... podpis dyplomanta 5
Podział zadań w projekcie Poniższa tabela przedstawia zadania zrealizowane przez autorki ( D - Dorota Błaszczyk, A - Agnieszka Gielar): Rozdział Zadania Realizacja Wykaz najważniejszych skrótów i oznaczeń Tekst rozdziału D, A Streszczenie Tekst rozdziału A Wstęp Tekst rozdziału D Proces rozpoznawania mowy Rejestracja sygnału mowy Tekst rodziału D Parametryzacja sygnału mowy Tekst rozdziału D (4.2.1-2), A (4.2.3) Algorytmy rozpoznawania mowy Tekst rozdziału A Implementacja proponowanego rozwiązania Architektura aplikacji Tekst rozdziału D Wyświetlanie znaków na tablicy Tekst rozdziału D Rejestracja odpowiedźi pacjenta Tekst rozdziału D Automatyczne rozpoznawanie mowy Tekst rozdziału A Wynik badania Tekst rozdziału A Prezentacja działania aplikacji Tekst rozdziału D Weryfikacja poprawności działania Tekst rozdziału A Dodatek A: Instrukcja obsługi aplikacji Tekst rozdziału D Dodatek B: Metody badania ostrości wzroku Tekst rozdziału A Dodatek C: Spis zawartości dołączonych nośników Tekst rozdziału A Skala ocen: (6.0 celująca), 5.0 bardzo dobra, 4.5 plus dobra, 4.0 dobra, 3.5 plus dostateczna, 3.0 dostateczna, 2.0 niedostateczna
Imię i nazwisko: Dorota Błaszczyk Nr albumu: 204312 Kierunek studiów: inżynieria biomedyczna Merytoryczna ocena projektu inżynierskiego przez opiekuna: Końcowa ocena projektu przez opiekuna:... Data:... Podpis:... Merytoryczna ocena projektu inżynierskiego przez recenzenta: Końcowa ocena projektu przez recenzenta:... Data:... Podpis:... 7
Skala ocen: (6.0 celująca), 5.0 bardzo dobra, 4.5 plus dobra, 4.0 dobra, 3.5 plus dostateczna, 3.0 dostateczna, 2.0 niedostateczna
Imię i nazwisko: Agnieszka Gielar Nr albumu: 204312 Kierunek studiów: inżynieria biomedyczna Merytoryczna ocena projektu inżynierskiego przez opiekuna: Końcowa ocena projektu przez opiekuna:... Data:... Podpis:... Merytoryczna ocena projektu inżynierskiego przez recenzenta: Końcowa ocena projektu przez recenzenta:... Data:... Podpis:... 9
Spis treści 1 Wykaz najważniejszych skrótów i oznaczeń 13 2 Streszczenie 14 3 Wstęp 15 3.1 Wprowadzenie.................................. 15 3.2 Przegląd dotychczasowych rozwiązań..................... 16 3.3 Cel i zakres pracy................................ 17 4 Proces rozpoznawania mowy 19 4.1 Rejestracja sygnału mowy........................... 19 4.2 Parametryzacja sygnału mowy......................... 20 4.2.1 Opis sygnału w dziedzinie czasu.................... 21 4.2.2 Opis sygnału w dziedzinie częstotliwości............... 24 4.2.3 Parametryzacja MFCC......................... 27 4.3 Algorytmy rozpoznawania mowy....................... 29 4.3.1 Algorytm DTW............................. 29 4.3.2 Ukryte modele Markova........................ 31 4.3.3 Sieci neuronowe............................. 34 5 Implementacja proponowanego rozwiązania 36 5.1 Wyświetlanie znaków na tablicy........................ 37 5.2 Rejestracja odpowiedzi pacjenta........................ 38 5.3 Automatyczne rozpoznawanie mowy...................... 38 5.3.1 Filtracja wstępna............................ 38 5.3.2 Segmentacja sygnału.......................... 39 5.3.3 Parametryzacja............................. 40 5.3.4 Nieliniowa transformacja czasowa DTW............... 43 5.4 Wynik badania................................. 47 6 Prezentacja działania aplikacji 51 6.1 Architektura aplikacji.............................. 51 6.2 Okno główne programu............................. 52 6.3 Wprowadzenie danych osobowych pacjenta.................. 55 6.4 Zapis i wydruk wyniku............................. 57 6.5 Obsługa błędów................................. 58 7 Weryfikacja poprawności działania 60 7.1 Optymalizacja programu............................ 60 7.2 Wpływ mikrofonu na skuteczność rozpoznawania mowy........... 64 7.3 Podsumowanie................................. 65 8 Dodatek A: Instrukcja obsługi 67 8.1 Wymagania sprzętowe............................. 67 8.2 Instalacja aplikacji............................... 67 8.3 Uruchamianie programu............................ 68 8.4 Przeprowadzanie badania............................ 69 9 Dodatek B: Metody badania ostrości wzroku 73 11
10 Dodatek C: Spis zawartości dołączonych nośników (CD-ROM) 75 11 Dodatek D: Spis procedur informatycznych 76 12
1 Wykaz najważniejszych skrótów i oznaczeń Lista skrótów: ANN sztuczne sieci neuronowe (ang. Artificial Neural Networks) ASR automatyczne rozpoznawanie mowy (ang. Automatic Speech Recognition) CWT ciągła transformacja falkowa (ang. Continuous Wavelet Transform) DARPA ang. Defense Advance Research Projects Agency DBN dynamiczne sieci Bayesa (ang. Dynamic Bayesian Network) DCT dyskretna transformacja kosinusowa (ang. Discrete Cosine Transform) DFT dyskretna transformacja Fouriera (ang. Discrete Fourier Transform) DP programowanie dynamiczne (ang. Dynamic Programming) DTW nieliniowe dopasowanie czasowe (ang. Dynamic Time Warping) DWT dyskretna transformacja falkowa (ang. Discrete Wavelet Transform) FFT szybka transformacja Fouriera (an. Fast Fourier Transform FIR filtr o skończonej odpowiedzi impulsowej (ang. Finite Impulse Response) GUI graficzny interfejs użytkownika (ang. Graphical User Interface) GUIDE środowisko do budowania graficznych interfejsów użytkownika (ang. Graphical User Interface Development Environment) HMM ukryte/ukryty (niejawne) model(e) Markova (ang. Hidden Marcov Model(s)) HTK IDFT ang. Hidden Marcov models ToolKit odwrotna dyskretna trasformacja Fouriera (ang. Inverse Discrete Fourier Transform) IIR filtr o nieskończonej odpowiedzi impulsowej (ang. Infinite Impulse Response) k-nn algorytm kalsyfikacji k najbliższych sąsiadów (ang. k Nearest Neighbors ) Log MAR LP LPC MFC MFCC PRA PRR RMS SD SI SNR SPEC STFT VA WERR WRR ZCA ZCPA minimalna rozdzielczość kątowa (ang. Minimal Angle of Resolution) predykcja liniowa (ang. Linear Prediction) współczynniki predykcji liniowej (ang. Linear Prediction Coefficients) współczynniki melowo - częstotliwościowe (ang. Mel - Frequency Coefficients) melowo - częstotliwościowe współczynniki cepstralne (ang. Mel - Frequency Cepstral Coefficients) precyzja rozpoznawania (ang. Phone Recognition Accuracy) ilość poprawnie rozpoznanych fonemów (ang. Phone Recognition Ratio) wartość skuteczna (średniokwadratowa (ang. Root Mean Square)) system rozpoznawania mowy zależny od mówcy (ang. Speaker Dependent) system rozpoznawania mowy niezależny od mówcy (ang. Speaker Independent) stosunek mocy sygnału do mocy szumu (ang. Signal to Noise Ratio) spektrogram (ang. spectrogram) krótkoczasowa transformacja Fouriera (ang. Short - Time Fourier Transform) ostrość wzroku (ang. Visual Acuity) ilość błędnie rozpoznanych słów (ang. Word Error Ratio) ilość poprawnie rozpoznanych słów (ang. Word Recognition Ratio) analiza przejść przez zero (ang. Zero Crossing Analysis) ang. Zero Crossing with Pick Amplitudes 13
Lista oznaczeń: x x, x(n) X x ˆx x d(x 2, x 1 ) f p G H(z) t skalar, zmienna wektor, n-ty element wektora zbiór lub macierz wartość średnia transformata Fouriera sygnału (wektora, funkcji) norma wektora wartość odległości metryki pomiędzy dwoma punktami w przestrzeni topologicznej częstotliwość próbkowania wzmocnienie transmitancja filtra czas próbkowania 2 Streszczenie Niniejszy projekt inżynierski łączy w sobie system rozpoznawania mowy (ASR, ang. Automatic Speech Recogniotion) oraz standardowe badanie okulistyczne, jakim jest badanie ostrości wzroku (VA, ang. Visual Acuity). Praca składa się z 8 rozdziałów. W części pierwszej, analitycznej (rozdziały od 1 do 4) przedstawiono problematykę automatycznego rozpoznawania mowy w oparciu o analizę źródeł literaturowych. Część druga, syntetyczna (rozdziały od 5 do 6) zawiera opis implementacji oraz prezentację działania aplikacji do badania ostrości wzroku. Program został zrealizoawany przy pomocy pakietu MATLAB. Algorytm postępowania obejmował następujące etapy: zaprojektowanie i implementacja interfejsu graficznego w środowisku GUI (ang. Graphical User Interface) oraz zbudowanie adekwatengo oprogramowania obejmującego m. in. automatyczne rozpoznawanie sygnału mowy jak również określanie wyniku badania. Rozpoznawanie mowy zostało zrealizwane dzięki zastosowaniu m. in. wspołczynników melcepstralnych MFCC (ang. Mel-Frequency Cepstral Coefficients) i nieliniowego dopasowania czasowego DTW (ang. Dynamic Time Warping). Wynik badania uzyskano stosując ułamek Snellena (w postaci dziesiętnej) dla wyznaczania ostrości wzroku, a jego interpretację oparto o normę DIN 58220. Natomiast rozdział 7 stanowi część weryfikacyjną projketu i obejmuje omówienie wyników oraz podsumowanie najważniejszych osiągnięć autorek. Proponowana automatyczna tablica okulistyczna ATO może stać się narzędziem indywiudalnej kontroli nad jakością wzroku użytkownika. 14
3 Wstęp Mowa jest najwygodniejszym, najskuteczniejszym i najbardziej naturalnym sposobem porozumiewania się. Jest nie tylko wyrazem myśli człowieka, ale stanowi istotne źródło informacji o cechach osobniczych mówcy, o jego stanie fizycznym i emocjonalnym. Przez swoją naturalność, proces artykulacji mowy odczytywany jest jako łatwy i prosty. Tymczasem w rzeczywistości jest zjawiskiem niezwykle skomplikowanym. Z procesem artykulacji związane są takie dziedziny jak: mechanika, akustyka, logopedia, fonetyka, foniatria, fizjologia, psychologia. Ta interdyscyplinarność, jest powodem wielu trudności w jego zrozumieniu i implementacji. Przyczyniła się również do ogromnego zainteresowania tym zjawiskiem. Od wielu lat mechanizmy powstawania mowy są przedmiotem badań prowadzonych w ośrodkach na całym świecie. Prowadzone prace są poświęcone procesom generowania, artykulacji, percepcji, transmisji oraz kodowania sygnału mowy. Od lat 50-tych XX w. przedmiotem badań stał się problem automatycznego rozpoznawania mowy (ASR, ang. Automatic Speech Recognition). Był on również inspiracją dla twórców science - fiction, czego dowodem są np.: komputer HAL w filmie Stanleya Kubrick a pt.: Odyseja Kosmiczna 2010 i robot R2D2 z Gwiezdnych Wojen Georga Lucas a. Skonstruoawanie takiej maszyny w rzeczywistości okazało się bardzo trudne. Niemożliwe jest bowiem zbudowanie takiego urządzenia, które byłoby na tyle uniwersalne, by mogło zrozumieć słowa wypowiadane w różnych warunkach akustycznych, na różne tematy, przez różnych rozmówców[1]. 3.1 Wprowadzenie Istnieje wiele rodzajów systemów rozpoznawania mowy. Istnieją systemy ukierunkowane tylko na rozpoznawanie mowy ciągłej i te, których zadaniem jest rozpoznawanie pojedynczych wyrazów. Ze względu na wielkość możemy podzielić systemy ASR na małe, średnie i duże. Systemy małe są zdolne do rozpoznania łacznie ok. 100 słów lub zwrotów. Systemy średnie to takie, w których ilość rozpoznawanych słów nie przekracza 3 tysięcy. Natomiast systemy duże są zdolne do rozpoznania nawet 20 tysięcy słów czy zwrotów. Kolejny podział systemów ASR to ten, w jakim wyróżnić można systemy zależne od mówcy (SD, ang. Speaker Dependent) i od niego niezależne (SI, ang. Speaker Independent). Różnica pomiędzy tymi dwoma systemami polega na tym, że system zależny od mówcy został ukierunkowany na danego mówcę, a niezależny nie został ukierunkowany 15
na żadnego mówcę i działa bardziej uniwersalnie. 3.2 Przegląd dotychczasowych rozwiązań Wraz z rozwojem techniki i wzrostem mocy obliczeniowej komputerów, powstawało coraz więcej projektów dotyczących systemów ASR, najwięcej dla języków dominujących tj.: angielskiego, niemieckiego, chińskiego, hiszpańskiego, francuskiego. Wśród znaczących projektów znaleźć można nie tylko prace badawcze tj.: CMUSphinx 1, HTK 2, ale również rozwiązania komercyjne np.: Dragon 3, ViaVoice 4. Zagadnienia te były poruszane również przez polskich badaczy, a do tych najbardziej znanych zaliczyć można prace R. Tadeusiewicza [2, 3], S. Grocholewskiego [4], Cz. Basztury [5]. W dzisiejszych czasach systemy wykorzystujące komunikację głosową do przesyłania wiadomości od komputera do człowieka i odwrotnie, są coraz bardziej popularne i znajdują coraz to nowsze zastosowania. Przykładem rozwiązania komercyjnego, jest technologia rozpoznawania mowy firmy Microsoft zaimplementowana w systemie Vista. Umożliwia ona sterowanie systemem Windows wyłącznie za pomocą głosu. Kolejnym przykładem jest przeglądarka Opera, której praca może być sterowana mową. Użytkownik korzysta z dostępnych poleceń, ale ma również możliwość definiowania własnych. Każde polecenie kierowane do przeglądarki, musi być poprzedzone jednym z prefiksów: Opera, Hal, Browser po to, by przeglądarka miała pewność, iż wypowiadane słowa są skierowane na pewno do niej. Przykładowa komenda: Opera speak powoduje uruchomienie w przeglądarce funkcji głosowych następuje odczytanie przez komputer tekstu wyświetlonego w danej chwili w oknie przeglądarki[6]. Zarządzanie komputerem w sposób głosowy, pozwala na zastąpienie urządzeń wejścia takich jak mysz, touchpad, czy klawiatura. Dlatego właśnie systemy ASR wykorzystywane są w interfejsach dla osób niepełnosprawnych.ten typ interfejsu przeznaczony jest dla tych, którzy nie są w stanie posługiwać się wyżej wymienionymi urządzeniami wejścia, a mogą wysyłać polecenia głosowe do komputera. Jest to duże ułatwienie dla osób niepełnosprawnych, dzięki temu mogą pracować na komputerze, grać w gry, komunikować 1 CMUSphinx jest to sytem rozpoznawania mowy ciągłej, niezależny od mówcy, wykorzystujący HMM i n-gramowy model statystyczny języka. Opracowany na Carnegie Mellon University, obecnie istnieje IV wersja systemu. 2 HTK ang. The Hidden Markov Model Toolkit, poręczne narzędzie służące do budowania i zarządzania ukrytymi modelami Markova HMM. 3 Dragon ang. Dragon Naturally Speaking, jedna z pierwszych aplikacji na komputery PC, służąca do rozpoznawania mowy ciągłej. 4 ViaVoice grupa aplikacji służących do rozpoznawania mowy ciągłej oferowana przez firmę IBM. 16
się ze znajomymi. Prowadzone są badania nad wprowadzeniem dalszych ułatwień. W pracy K. Szklannego [7] przedstawiona jest implementacja portalu głosowego przeznaczonego do e-learningu. Wykorzystano w nim technologię Text-To-Speech i system ASR. Tego typu systemy mają zastosowanie nie tylko dla komputerów, ale również dla urządzeń przemysłowych, telefonów (wybieranie głosowe), bankomatów. Być może w przyszłości dołączą do tej grupy lodówki, radia, telewizoty itd. Systemy ASR znalazły też zastosowania w medycynie. M. Kłaczyński w swojej pracy doktorskiej [8] przedstawił zastosowanie analizy sygnału akustycznego mowy w obszarze diagnostyki wibroakustycznej. Autor opracował modele parametryczne wybranych deformacji mowy polskiej związanych ze schorzeniami aparatu głosowego. Udowodnił, iż na podstawie analizy głosu chorego, można określić stopień deformacji sygnału mowy patologicznej. Problem automatycznego rozpoznawania mowy był bardzo interesujący z punktu widzenia autorów niniejszej pracy, z tego powodu postanowili podjąć wyzwanie i wykorzystać system ASR do zarządzania aplikacją diagnostyczną. Tematyka projektu wydała się tym bardziej intersująca ze względu na jej przydatność w dobie postępującej technologii i rozwoju telemedycyny. Autorzy uznali, iż warto zbudować aplikację, która wykorzystując system ASR, umożliwia przeprowadzenie wiarygodnego badania wzroku bez wizytu u lekarza, posiadając jedynie odpowiednie oprogramowanie i standardowy sprzęt komputer PC wyposażony w mikrofon. 3.3 Cel i zakres pracy Celem niniejszego projektu było zbudowanie aplikacji, spełniającej zadanie przyjaznej i łatwej w obsłudze tablicy okulistycznej, dzięki której użytkownik bez konieczności wizyty u lekarza mógłby skontrolować ostrość swojego wzroku. Innowacyjnością tego rozwiązania, byłaby nie tylko możliwość przeprowadzenia badania w domu, ale róznież w wykorzystaniu systemu ASR w procesie weryfikacyjnym. Zadaniem systemu ASR zaimplementowanego w aplikacji, byłoby rozpoznanie lekcji 5 zawartej w nagranej przez mikrofon odpowiedzi użytkownika na wyświetlony znak. Na podstawie wyniku rozpoznania sprawdzałoby się, czy znak który zobaczył badany, to ten, jaki został mu wyświetlony. 5 lekcja (łac. lectio czytanie, odczyt) sposób odczytania na głos znaków pisma 17
Aplikacja miała za zadanie dodatkowo umożliwiać zapis i wydruk wyniku. Są to bardzo ważne funkcjonalności i niezbędne w przypadku adresowania aplikacji również do lekarzy, czego nie wykluczali autorzy pracy. Dzięki tym funkcjom, byłoby możliwe dokumentowanie i przechowywanie wyników badań dla konkretnego pacjenta. Rozdział 4 ma za zadanie przybliżyć czytelnikowi poszczególne zagadnienia, bezpośrednio związane z budowaną aplikacją.podrozdział?? przedstawia drogę jaką przebywa sygnał analogowy od jego powstania w aparacie artykulacyjnym, aż do jego cyfrowej reprezentacji w komputerze. Następnie czytelnikowi zostaną przedstawione współczesne metody parametryzacji stosowane w systemach ASR. Rozdział kończy prezentacja najbardziej popularnych algorytmów rozpoznawania mowy. Rozdział 5 kompleksowo przedstawia zbudowaną aplikację. Zawiera opis architektury programu opartej o GUI oraz szczegółowe omówienie metody wykorzystywanej do rozpoznawania lekcji użytkownika. Krok po kroku przedstawione zostały mechanizmy przetwarzania sygnału mowy, które prowadzą do wyciągnięcia z nigo informacji semantycznej. Następnie czytelnikowi zostanie przybliżony sposób weryfikowania poprawności rozpoznania przez użytkownika litery i wyliczania ostrości wzroku. Rozdział 6 prezentuje działanie aplikacji od strony użytkownika. Przedstawia architekturę programu wraz ze szczegółowym opisem jego komponentów. Pracę kończy rozdział 7 weryfikujący działanie aplikacji i podsumowujący wykonaną pracę. Zawiera opis procesu optymalizacyjnego aplikacji. Stanowi on również refleksję nad rezulatatmi jej pracy. Autorzy proponują w tym rozdziale możliwości dalszej rozbudowy aplikacji o funkcjonalności, pozwalające jej na wydajniejszą realizację zadań. 18
4 Proces rozpoznawania mowy 4.1 Rejestracja sygnału mowy Wstępne przetwarzanie sygnału mowy może być dokonywane metodami analogowymi, przynajmniej do etapu filtracji dolnoprzepustowej, odcinającej wszelkie składowe sygnału powyżej częstotliwości Nyquista, w celu uniknięcia nakładania się widm. Po tym etapie znajduje się układ przetwarzania analogowego-cyfrowego. Następnie sygnał przesyłany do komputera ulega trasnformacji tak, aby zadziałał system rozpoznawania mowy. Badacze sygnału mowy i konstruktorzy urządzeń automatycznego rozpoznawania tego typu sygnału, decydują się na rozbudowę analogowej części aparatury i na dokonywanie procesów wstępnego przetwarzania sygnału jeszcze przed jego wprowadzeniem do komputera. Przetwarzanie, o którym mowa, może kierować się w stronę różnych parametrycznych i bardzo oszczędnych reprezentacji sygnału mowy, względnie może ograniczać się do przekształcenia sygnału do postaci widma dynamicznego (np. za pomoca filtrów, układów uśredniających itd.). To drugie podejście jest zwykle preferowane, ponieważ objętość informacyjna widma jest na tyle mniejsza od objętości samego orginału, że wystarcza do rozsądnego pomieszczenia fragmentów sygnału mowy w pamięci komputera. Podejmując decycję o zastosowaniu zestawu filtrów pasmowych do wydzielania charakterystyk sygnału mowy, przydatnych w systemie rozpoznającym, powinno się dodatkowo określić dużą liczbę szczegółowych parametrów procesu wstępnego rozpoznawania i przetwarzania, przez który tracona jest pewna część informacji zawartej w sygnale. Stosowanie w analogowym systemie wstępnego przetwarzania filtrów o skali liniowej gwarantuje możliwość natychmiastowego użycia FFT do wszystkich opracowanych wcześniej algorytmów przetwarzania sygnału, wydobywania parametrów, rozpoznawania itd. Użycie na wstępie filtrów o skali logarytmicznej prowadzi do konieczności przerabiania całego oprogarmowania w momencie pojawienia się możliwości pełnej ćyfryzacjiśystemu. Problem wyboru częstości próbkowania sygnałów wyjściowych z filtrów jest bardzo ważny, wyznacza bowiem objętość wynikowego zbioru danych wprowadzanych do komputera dla ustalownego odcinka sygnału mowy. Dokładność amplitudowa przetwarzania analogowo - cyfrowego, następującego w każdym kanale częstotliwościowym oddzielnie lub za pomocą jednego przełączonego przetwornika, stanowi następny wymiar warunkujący informacyjną objętość wprowadzanego do komputera sygnału. Dynamika sygnałów w poszczególnych pasmach jest niewielka, znacznie mniejsza od dynamiki pełnego sygnału mowy. W rozpoz- 19
nawaniu mowy dokładność odwzorowania amplitud sygnału nie ma wielkiego znaczenia, gdyż ważniejsze są relacje między sygnałem w sąsiednich pasmach, niż dokładne wartości [2]. Reasumując można zaproponować strukturę systemu wprowadzania syganłu mowy do komputera w postaci przedstawionej na rys. 1. Rysunek 1: Struktura układu wstępnego przetwarzania i wprowadzania sygnału mowy do komputera. 4.2 Parametryzacja sygnału mowy Sygnał mowy jest przebiegiem czasowym, na który składają się dźwięki powstające w aparacie artykulacyjnym człowieka. Aby móc go analizować nie wystarczy sam proces rejestracji i wstępnego przetwarzania należy jeszcze wybrać odpowiednią metodę jego reprezentacji, zależną od celu dalszego użycia. Założeniem parametryzacji jest otrzymanie w jej wyniku takiego przekształcenia sygnału wejściowego (przebiegu zmian ciśnienia akustycznego), by uzyskać możliwie małą liczbę parametrów zawierających informacje istotne dla systemu, tj. o zawartości fonetycznej syganłu, przy jednoczesnej minimalizacji wrażliowści tych parametrów na zmienność sygnału nieistotną z punktu widzenia automatycznego rozpoznawania mowy [9]. Problem parametryzacji można rozwiązać w dziedzinie czasu i częstotliwosci. Omówienie metod parametryzacji w dziedzinie czasu i częstotliwości znajduje się odpowiednio w podrozdziałach: 4.2.1 i 4.2.2. Autorzy ze względu na temat swojego projektu, umieścili osobny podrozdział 4.2.3 bardzo dokładnie opisujący jedną z metod parametryzacji w dziedzinie częstotliwościowej, wykorzystującej analizę mel - cepstralną (MFCC, ang. Mel - Frequency Cepstral Coeficcients) sygnału. 20
4.2.1 Opis sygnału w dziedzinie czasu Sygnał mowy jest wyrażony jako ciąg czasowy x(t) przyjmujący wartości rzeczywiste, dzięki czemu może być poddawany operacjom matematycznym. Nagrany sygnał analogowy x(t) jest przetwarzany przez przetwornik analogowo cyfrowy A/C na sygnał cyfrowy x[n] w procesie próbkowania (dyskretyzacji). Proces ten polega na pobieraniu z sygnału x(t) próbek co pewien okres czasu t (stały lub zmienny), zwany okresem próbkowania. Odwrotność okresu próbkowania to częstotliwość próbkowania i oznacza się ją symbolem f p. Wartość sygnału cyfrowego w n - tej chwili czasowej opisuje zależność: (1). Z sygnału cyfrowego można odtworzyć sygnał analogowy, jeśli częstotliwość próbkowania f p jest dobrze dobrana w stosunku do widma częstotliwościowego sygnału. x[n] = (n t) (1) Wśród metod parametryzacji w dziedzinie czasu wyróżniamy metody: Oparte na strukturze makrometrycznej sygnału wykonanie obliczeń po wstępnej segmentacji sygnału. Otrzymuje się takie parametry jak np.: amplituda i częstość zmian. Oparte na strukturze mikrometrycznej sygnału analiza przebiegu sygnału pod kątem jego przejść przez zero. Uzyskiwane parametry to: częstość przejść przez zero, rozkład interwałów czasowych pomiędzy kolejnymi przejściami. Metody łączone np. ZCPA ( ang. Zero Crossing with Pick Amplitudes). Do najczęstszych parametrów wyznaczanych na podstawie analizy struktury makrometrycznej sygnału zaliczają się [10] : a) wartość średnia sygnału x miara kumulacji sygnału. b) wartość maksymalna X MAX i minimalna sygnału X MIN wartość maksymalna sygnału niesie informację o jego dynamice, przede wszystkim o tym, czy wystąpiło zjawisko przesterowania czy została przekroczona charakterystyka dynamiczna przetwornika A/C. [8] c) energia sygnału E x miara energii niesionej przez sygnał. 21
d) moc średnia sygnału P x miara mocy średniej sygnału. e) wartość skuteczna sygnału RMS (ang. Root Mean Square) in. wartość średniokwadratowa, jest statystyczną miarą sygnałów okresowo zmiennych. f) obwiednia o(t) amplitudy zawiera informacje o zmianach energetycznych sygnału: o(t) = HILB 2 (x(t)), (2) gdzie: HILB transformata Hilberta opisana wzorem (3): HILB(x(t)) = t2 t 1 x(τ) dτ. (3) Π (t τ) Opis matematyczny poszczególnych parametrów znajduje się w tabeli nr 1. Tablica 1: Wybrane parametry sygnałów ciągłych x(t) i dyskretnych x(n). Parametr Sygnał ciągły x(t) Sygnał dyskretny x(n) Wartość średnia sygnału: x = 1 t 2 t 1 t2 t 1 x(t)dt x = 1 n 2 n 1 n2 n=n 1 x(n) Wartość maksymalna sygnału: X MAX = max(x(t)) X MAX = max(x(n)) Wartość minimalna sygnału: X MIN = min(x(t)) X MIN = min(x(n)) Energia sygnału: E x = t 2 t 1 x 2 (t)dt E x = n 2 n=n 1 x 2 (n) Moc średnia sygnału: P x = x 2 P x = x 2 Wartość skuteczna sygnału RMS: X RMS = P x X RMS = P x t 1, t 2 i n 1, n 2 odpowiednio: początek i koniec sygnału ciągłego i dyskretnego. Analiza przejść przez zero (ZCA, ang. Zero Crossing Analyse) jest przeprowadzana w dziedzinie czasu i zaliczana do metod mikrometrycznych opisu sygnału. Analiza ZCA polega na wyznaczaniu takich punktów t i na osi czasu t, dla których sygnał x(t) przyjmuje wartość zero (czyli spełniona jest zależność x(t i ) = 0). Graficzna interpretacja przejścia przez zero sygnału pokazana jest na rysunku (2). Ważnym parametrem z punktu widzenia rozpoznawania mowy, oprócz częstości przejść przez zero, jest rozkład interwałów czasowych pomiędzy kolejnymi przejściami. Analiza przejść przez zero poprzedzona filtracją dolnoprzepustową pozwala wyznaczyć przebieg tonu krtaniowego drgań fałdów głosowych [8]. Ton krtaniowy (podstawowy) występuje dla głosek dźwięcznych i w literaturze często określany jest jako formant f 0. Jest ściśle związany z geometrią aparatu artykulacyjnego, a co się z tym wiąże jest charakterystyczny 22
Rysunek 2: Graficzna interpretacja przejścia przez zero sygnału, źródło [8] dla danego mówcy. Dlatego wykorzystuje się go w rozpoznawaniu mowy, jak również w diagnostyce medycznej. Oprócz metod analizy bazujących na analizie sygnału w oparciu o jego strukturę makro- i mikrometryczną, istnieją jeszcze metody łączone. Należy do nich metoda ZCPA ( ang. Zero Crossing with Peak Amplitudes) przedstawiona w pracy [11]. Rysunek nr 3 stanowi graficzną ilustrację metody. Rysunek 3: Graficzna interpretacja metody ZCPA, źródło [11] Pierwszy etap metody ZCPA to filtracja w dziedzinie czasu sygnału x(n) przez fil- 23
try pasmowo - przepustowe. Sygnały otrzymane w wyniku filtracji są poddawane detekcji przejść przez zero. Rejestruje się zarówno sąsiednie interwały czasowe miedzy przecięciami osi z i i z i 1 ( Detektor przejść przez zero ), jak również szczytowe wartości amplitudy p i występującej między nimi ( Detektor szczytów ). Następnie na podstawie odwrotności interwałów czasowych między kolejnymi przecięciami osi czasu, przefiltrowane sygnały przedstawiane są na histogramie ( Konstrukcja histogramu ). Wartości słupków histogramu są wartościami ważonymi, w których wagą jest wartość szczytowej amplitudy sygnału odpowiadającej danej parze interwałów czasowych. Zaletą tego rodzaju parametryzacji jest prostota i szybkość algorytmu. Szczytowe wartości amplitud reprezentują wartości chwilowe mocy sygnału. Interwały czasowe pomiędzy kolejnymi przejściami sygnału przez zero, przedstawiają wartości chwilowe częstotliwości dominujących f i. Niestety metoda ZCPA cechuje się wysoką złożonością obliczeniową, wynikającą bezpośrednio z konieczności precyzyjnego określania punktów przecięcia osi czasu. 4.2.2 Opis sygnału w dziedzinie częstotliwości Klasyczna analiza widmowa, jaką jest transformacja Fourier a nie nadaje się do analizy sygnału mowy. Nie dostarcza informacji o czasie w widmie sygnału, co z punktu widzenia rozpoznawania mowy jest bardzo ważne. Mowa jako ciąg czasowy składa się z następujących po sobie zdarzeń (zmian częstotliwości i amplitudy, kolejności wyrazów, fonemów), których czas trwania i kolejność występowania umożliwiają jej rozpoznawanie[12]. Informacji o czasie dostarcza tzw. krótkotrwała (krótkookresowa) transformacja Fourier a (STFT, ang. Short Time Fourier Transform), którą opisuje zależność (4). Transformacja STFT polega na wyznaczaniu transformat Fourier a fragmentów sygnału x(t) określonych za pomocą okna czasowego w(t) o ograniczonym przedziale, umieszczonego w momencie czasu b. ˆx w (f, b) = Postać dyskretną zależności (4) opisuje wzór (5): ˆx w [k, l] = N 1 n=0 w(t b)x(t)e 2πjft (t)dt (4) nk 2πj w[n l]x[n]e N (5) Kwadrat modułu transformacji STFT nosi miano spektrogramu i stanowi charakterystykę czasowo - częstotliwościowo -amplitudową sygnału. Przykładowy spektrogram 24
zamieszczony jest na rysunku 4. Wyraża się zależnością (6): SP EC(f, b) = ST F T (f, b) 2 = ˆx w (f, b) 2 (6) Rysunek 4: Spektrogram słów nineteenth century wypowiedzianych przez kobietę, [13] Na podstawie spektrogramu wyznacza się formanty 6. Bezwzględne wartości częstotliwości formantowych zależą od cech osobniczych, ale wartości względne są od nich niezależne. Dlatego konfiguracja widmowa formantów jest wykorzystywana jako wzorzec większości głosek. Więcej na ten temat znaleźć można w pracy: [8]. Każdy spektrogram jest trójwymiarową macierzą danych reprezentującą zadany sygnał mowy. Dzięki temu możliwe jest porównanie dwóch sygnałów w oparciu o analizę statystyczną (np. obliczając odchylenie średniokwadratowe między wartościami w macierzach), czy operacje logiczne takie jak XOR. Autor pracy [14] zaprojektował aplikację wykorzystującą analizę spektrogramu w rozpoznawaniu mowy w oparciu o procesor sygnałowy TMS320C6711. Zwraca uwagę na fakt, iż analiza widmowa pozwala na idealną reprezentację mowy, ale charakteryzuje się niską skutecznością rzędu 50-80% roz poznawania słów. Niska skuteczność algorytmu wynika z faktu, iż nie można z jego pomocą wyekstrahować charakterystycznych cech zawartych w każdym sygnale. Oprócz tego metoda ta jest obarczona dużym błędem w przypadku przesunięć czasowych i silnych zmian amplitudy. Predykcja liniowa (LP, ang. Linear Prediction) jest obecnie jedną z najczęściej stosowanych metod parametryzacji. Głównym założeniem metody jest fakt, iż mowa jest splotem pobudzenia, generowanego przez struny głosowe i toru przejścia. Torem przejścia 6 formant pasmo częstotliwości uwypuklone w barwie dźwięku 25
jest trakt głosowy reprezentowany jako niezmienny w czasie filtr liniowy. stosowanym filtrem jest filtr typu IIR o transmitancji opisanej wzorem (7) [10]: H(z) = Najczęściej G 1 p k=1 a, (7) k kz gdzie: p rząd predykcji, G wzmocnienie, a k k-ty współczynnik wielomianu mianownika ( k = 1, 2, 3,...). W modelu LP sygnał mowy opisany jest zależnością (8) [10]: gdzie e(n) pobudzenie. p x(n) = G e(n) a k x(n k), (8) k=1 Wyznaczenie parametrów traktu głosowego sprowadza się do wyznaczenia wzmocnienia G i wektora współczynników{a k } wielomianu mianownika transmitancji. Metodą, która w prosty sposób wyznacza współczynniki filtra traktu głosowego, jest iteracyjna metoda Durbina - Levinsona. Dokładny opis metody znajduje się w książce [10]. Współczynniki predykcji liniowej otrzymane metodą LPC, są wykorzystywane w rozpoznawaniu mowy z użyciem algorytmu DTW (ang. Dynamic Time Warping), który jest opisany w rozdziale: 4.3.1. Kolejnym narzędziem do częstotliwościowej analizy sygnału mowy, jest dyskretna dekompozycja falkowa (DWT, ang. Discrete Wavelet Transform). Metoda ta polega na dekompozycji sygnału za pomocą filtrów cyfrowych. W parametryzacji sygnału z użyciem DWT, wyznacza się dyskretną transformację segmentowanego sygnału. Jako wynik otrzymuje się wektor współczynników falkowych { d m } i { a M } na M poziomach rozdzielczości. Następnie oblicza się energię każdego z wektorów współczynników dekompozycji [12]: { d e dm 2 = N m n=1 d 2 [m] = m [n], dla m = 1,..., M a M 2 = N M n=1 a 2 M [n], dla m = M + 1 Wynikiem tego działania jest wektor o M + 1 elementach, który po przeprowadzeniu normalizacji zawiera frakcje energii w poszczególnych pasmach częstotliwości. (9) Ostatni etap stanowi dekorelacja elementów wektora z wykorzystaniem dyskretnej transformacji cosinusowej (DCT, ang. Discrete Cosinus Transform). W pracy [12] znajduje się opis dwóch nowych metod nierównomiernej segmentacji falkowej w kontekście rozpoznawania mowy polskiej. 26
4.2.3 Parametryzacja MFCC W rozdziałach 4.2.1 i 4.2.2 opisano możliwości prarametrycznego przedstawiania sygnału. Autorzy publikacji [15],[16] dotyczących automatycznego rozpoznawania mowy przedstawili zalety dwóch metod - liniowego kodowania predykcyjnego (LPC ang. Linear Prediction Coding) oraz współczynników cepstralnych w dziedzinie częstotliwościowej o skali melowej (MFCC - ang.mel-frequency Cepstral Coefficients). MFCC jest algorytmem stosowanym w badaniach sygnału mowy pod kątem jej rozpoznawania, charakteryzuje się zadowalającą skutecznością przy umiarkowanej złożoności obliczeniowej. MFCC jest oparty na charakterystyce słyszenia ludzkiego ucha. Ucho ludzkie reaguje nieliniowo na częstotliwości sygnału dźwięku - różnice w zakresie niskich częstotliwości ( 1kHz) są łatwiej wykrywalne, aniżeli podobne różnice w zakresie słyszalnego spektrum. Im wyższa częstotliwość, tym gorsza dokładność - tym większe odstępy między kolejnymi pasmami są potrzebne dla zrekompensowania nieliniowości. Skala Mel została (rys. 5) wyznaczona empirycznie i wynosi: ( ω Mel = 2595 lg 1 + ω ) 700Hz (10) Rysunek 5: Odwzorowanie skali częstotliwości w skalę mel Otrzymanie nieliniowej skali spektrum syganłu możliwe jest dzięki zastosowaniu transformaty Fouriera opartej na filtracji melowej. Każdy współczynnik trasnformaty Fouriera jest mnożony przez odpowidający mu współczynnik filtru melowego. Na rysunku 6 przedstwiono charakterystkę banku 12 filtrów melowych. 27
Rysunek 6: Charakterystyka banku 12 filtrów melowych Filtry mogą przyjmować postać: trójkątną dla detekcji cech na podstawie skali Mel, lub trapezoidalną związaną ze skalą Bark, stosowaną do liniowej predykcji. Dokładna postać filtrów zależy od rozdzielczości stosowanej reprezentacji częstotliwości. Dla obliczenia (np. L=32) tzw. współczynników mel - spektralnych MFC(l, τ) dla każdej ramki sygnału wykorzystujemy zbiór l trójkątnych filtrów D (l,k): MF C(l, τ) = M 1 k=0 [D(l, k) F C(k, τ)], l = 1,..., L. (11) Wartość pojedynczego współczynnika MFC odpowiada ważonej sumie wartości FC należących do zakresu trójkatnego filtra pasmowego odpowidającego danemu MFC. Cepstrum jest wynikiem charaterystycznego przekształcenia: MF CC(h) = F T 1 {MF C{F T {h}}}, dla h = x w. (12) Ogólnie cepstrum posiada wartości zespolone, ale w wyniku tego przekształcenia dla MFC(.) wynik ma wartości rzeczywiste. Na koniec wyznacza się liczbę (np. K = 12) współczynników mel - cepstarlnych (MFCC) według wzoru: L 1 k (2l + 1)π MF CC(k, τ) = [logmf C(l, τ) cos( )], k = 1,..., K. (13) 2L l=0 Ponieważ układ głosu ma charakter ciągły, zatem poziomy energii w sąsiednich pasmach są skorelowane. Dlatego niezbędna do tego transformata Fouriera (przekształcenie kosinusowe) zamienia zbiór logarytmów energii na skorelowane ze sobą współczynniki ćepstralne. Nadal nieużyteczna do rozpoznania głosek energia podstawowej częstotliwości drgań krtaniowych i jej harmoniczne mogą nakładać się na amplitudy mierzonych częstotliwości. Dlatego często stosuje się przetwarzanie końcowe zwane litrowaniem (rozdziel- 28
nie). Celem kroku litrowania jest usunięcie szkodliwego wpływu podstawowych drgań krtaniowych na zestaw cech [17]. Na rys. 7 przedstwiono w sposób schematyczny zasadę wyliczania MFCC. Rysunek 7: Schemat blokowy MFCC. 4.3 Algorytmy rozpoznawania mowy 4.3.1 Algorytm DTW Programowanie dynamiczne (DP ang. Dynamic Programming) jest efektywną metodą stosowaną przede wszystkim do optymalizacji wielostopniowych procesów decyzyjnych, charakteryzujących się kaskadowym połączeniem bloków. Kierunek obliczeń optymalizacyjnych jest zwykle przeciwny do kierunku ruchu strumnienia (np. upływu czasu)[18]. Podstawą metody jest tzw. zasada optymalizacji Bellmana (rys. 8), która ma tę właściwość, że niezależnie od stanu początkowego i decyzji początkowej, pozostałe decyzje muszą stanowić ciąg optyalny ze względu na stan wynikający z pierwszej decyzji. Rysunek 8: Schemat zasady Bellmana Programowanie dynamiczne zastosowane jest m. in. w nieliniowej transformacie czasowej DTW (ang. Dynamic Time Warping), którą wykorzystuje się w celu weryfikacji poprawności działania systemu rozpoznawania mowy opartego na wzorcach. DTW stanowi algorytm pomiaru podobieństwa dwóch sekwencji, które mogą różnić się w czasie lub prędkości. Wybór niniejszej metody jest uwarunkowany charakterem danych podlegających analizie. W przypadku rozpoznawania mowy mamy do czynienia z następującymi cechami [19]: różna długość wektorów cech wynikająca z różnic w rozmiarze (złożoności) sygnału, 29
zmienność rozmiaru lokalnych elementów tworzących sygnał takich jak: wysokość tonu głosu (męski, żeński) i szerokość odcinków łączących różne fonemy, braki lub nadmiar fonemów tworzących sygnał. Dynamiczne dopasowanie wzorca w czasie, tzw. marszczenie czasu DTW stanowi początkową metodę rozpoznawania mowy, stosowaną do lat 80. XX wieku. W tym rozwiązaniu na bazie modeli występują prototypy wzorców złożonych w postaci sekwencji wzorców prostych: Y l,...,y m. Klasyfikacja złożonego wzorca X polega na wyznaczeniu jego odległości od wszystkich reprezentantów klasy D(X,Y i ), nawet wtedy, kiedy wzorce mają różne czasy trwania. W procesie klasyfikacji stosujemy regułę decyzyjną minimalizacji odległości[17]: tzn. l = argmind(x, Y l ). (14) W procesie klasyfikacji założono, że możliwa jest dekompozycja miary odległości, odległości dwóch wzorców złożonych składa się z sumy lokalnych odległości, tzn. d ij =d(x i,y i ), liczonych par prostych wzorców wzdłuż ścieżki w przestrzeni dopasowania stanowiącej rozwiązanie wzoru (rys. 9): 0 dla i= j = 0, D ij = mind i 1,j 1, D i 1,j, D i,j 1 + d ij dla i> 0, j> 0, pozostałe (15) Rysunek 9: Schemat obliczania ścieżek lokalnych według algorytmu DTW. Poszukiwana jest ścieżka o specjalnej postaci [17]: 30
ścieżka nie może cofać się ani po wcześniej dopasowanych segmentach, ani też po wcześniejszych elementach modelu, możliwe jest powtórzenie na ścieżce rozwiązania (raz po razie) elementu reprezentowania wzorca lub elementu aktualnego wzorca. Autor pracy[12] przedstawia zastosowanie różnych metryk odległości i ich efektywność w rozpoznawaniu mowy. Najbardziej skuteczne według [12], są metryki: hiperboliczna cosh (cosiunus hiperboliczny) i logarytmiczna log - spectral. Oprócz wyboru metryki, na wynik rozpoznania, ma również wpływ zastosowana metoda parametryzacji. Autror [12] otrzymane wyniki trafności dopasowań dla transformacji falkowej porównuje z wynikami uzyskanymi dla parametryzacji metodą MFCC. W metodzie falkowej, występują większe błędy dopasowania wzorca. Stąd wniosek, że metodę DTW lepiej jest stosować dla współczynników mel - cepstralnych, niż otrzymanych metodami falkowymi. Wówczas nawet najprostsza metryka, jaką jest metryka euklidesowa, pozwala na otrzymanie bardzo dobrych wyników poprawnego dopasowania. Ze względu na specyfikę natury sygnału mowy, istotną kwestią jest wybór metody pomiaru odległości, które biorą pod uwagę podmiotowe własności ludzkiego postrzegania [20]. Oprócz podstawowej metryki euklidesowej można wykorzystać metrykę cosh bądź log - spectral, które dają mniejsze błędy w przypadku porównania sygnałów (rys. 10). Rysunek 10: Zakres błędów dla systemu rozpoznawania mowy opartego o MFCC [20]. 4.3.2 Ukryte modele Markova Automatyczne rozpoznawanie mowy (ASR, ang. Automatic Speech Recognition z wykorzystaniem wielowarstwowych statystycznych modeli języka opartych na ukrtych 31
Rysunek 11: Typy ukrytych modeli Markova (a) - model ergodyczny, (b) i (c) - model Bakisa modelach Markova HMM (ang. Hidden Makov Model) jest obecnie metodą dominującą. W tego typu systemach prawdopodobieństwa obserwacji dla danego stanu modelu, projektuje się zazwyczaj ciągłymi rozkładami funkcji gęstości prawdopodobieństwa [9]. Na rys.11 przedstawiono charakterystyczne typy modeli Markova przydatne w czasie analizowania sygnałów dźwiękowych. W modelu ergodycznym (rys.11 a) istnieje połączenie z każdego stanu do każdego. W procesie analizowania sygnału dźwiękowego, w procesie uczenia jak i w procesie rozpoznawania, bardziej skuteczne okazały się modele lewo -prawe (rys. 11 b) (ang. left-right hmm models) zwane modelami Bakisa, w których nie ma połączeń do stanów poprzednich. Etap rozpoznawania sygnału dźwiękowego obejmuje prawdopodobieństwo wygenerownia danego sygnału przez model, co pozwala na zbudowanie tablicy rankingowej słów, a w zasadzie modeli, które uzyskały największe prawdopodobieństwo. W omawianym modelu możliwe są łuki trzech rodzajów: przejście do kolejnego stanu wprowadzenie nowego symbolu (krok podstawienia SUBstitute ). pozostanie w danym stanie ponowienie wyjścia (krok wstawienia INSert ). pominięcie stanu (krok usunięcia DELete ). Uczenie dla modelu HMM w systemie rozpoznawania mowy obejmuje: 1. Detekcja cech ramek np. cech MFCC, energia i cechy różnicowe. 32
2. Inicjalizacja rozkładów prawdopodobieństw klas określenie liczby klas (centrów rozkładów prawdopodobieństwa) metodą LBG VQ (kwantyzacja wektorowa przestrzeni cech ramek). 3. Przygotowanie danych uczących ręczne etykietowanie danych w postaci fonemów i trzyfonowych modeli. 4. Uczenie elementów macierzy A i B modeu HMM : określenie prawdopodobieństw obserwacji cech metoda w przód - wstecz, wyznaczenie prawdopodobieństw przejść pomiędzy stanami metoda Baumana - Wecha lub trening Viterbiego. Układ będący w danym stanie emituje jedną z możliwych obserwcji o t z prawdopodobieństwem b j (o t ): b j (o t ) = P (o t q t = j), j = 1,..., N. (16) Generacja losowej sekwencji O jest rezultatem jednorazowego przejścia po stanach modelu.sekwencja stanów Q zależna jest od parwdopobieństw przejść pomiędzy stanami, zdefiniowna jako: a ij = P (q t = j q t 1 ), i,j = 1,..., N, (17) która dla i, j = 1, 2,..., N podaje prawdopodbieństwo a ij przejścia ze stanu i do stanu j. Tak zdefiniowany proces Markova tworzy model opisujący pewien układ, który w każdym momencie może znajdować się tylko w jednym ze stanów q t. Układ ten obserwujemy w dyskretnych chwilach czasowych t = 1,..., T. Jeśli w danym momencie ten układ znajduje się w stanie i, to w momenciet + 1 przechodzi on do stanu j z prawdopodbieństwem a ij niezależnie od chwili czasowej t oraz stanów poprzednich. Proces startuje z jednego ze stanów zgodnie z rozkładem początkowym zdefiniowanym w postaci: π i = P (q 1 = i), i = 1,..., N, (18) który określa parwdopodobieństwo rozpoczęcia procesu od stanu i.każdy model HMM można zapisać jednoznacznie w sposób zwarty jako λ(a, B, Π), gdzie macierz przejść A=[a ij ], macierz wyjść B=[b j (o t )] oraz wektor początkowy π, nazywają się parametrami modelu [21]. W automatycznym rozpoznawaniu mowy stosowane są najszerzej ze względu na postać sygnału mowy modele HMM, w których wyjściowe rozkłady prawdopodbieństw są ciągłe. 33
W ukrytym modelu Markova zakłada się, że jeden z procesów nie jest bezpośrednio obserwowany (ukryte są realizacje stanów modelu), jedynie drugi z nich jest obserwowany (w modelu HMM są nimi symbole wyjściowe). Ogólnie każdy model HMM jest agregacją następujących elemnetów [17]: (S, O, Π, A, B) gdzie S skończony zbiór stanów (wartości ogólnego procesu), O skończony zbiór symboli wyjściowych (wartości obserwowane), Π prawdopodobieństwa początkowe stanów, A macierz prawdopodobieństw przejść pomiędzy stanami, B macierz prawdopodobieństw symboli wyjściowych (jeden wiersz odpowiada jednemu stanowi). Hierarchiczny model HMM, w którym dany model zagnieżdżony jest w szerszym modelu, stanowi narzędzie do jednorodnego modelowania procesu rozpoznawania mowy na różnych poziomach abstrakcji danych fonemy, słowa, sekwencje słów. W kontekście HMM należy wspomnieć o dynamicznych sieciach Bayesa (DBN ang. Dynamic Bayesian Network). Stanowią one ogólne narzędzie statycznego modelowania systemów zmiennych w czasie[17]. Tematykę automtycznego systemu rozpoznawania mowy opartego na ukrytch modelach Markova podjęto w wielu pracach, m. in. w: [21, 22, 16, 15] i wielu innych. 4.3.3 Sieci neuronowe Sztuczne sieci neuronowe ANN (ang. Artificial Neural Networks) są rzeczywistymi modelami układu nerwowego [18].Według prac [23, 24, 18] sieć neuronowa jest bardzo uproszczonym modelem mózgu. Zbudowana jest ze sztucznych neuronów lub poprawniej z elementów neuropodobnych, których pierwowzorem są komórki nerwowe budujące mózg człowieka. W technicznych sieciach neuronowych elementy te są skrajnie uproszczone i charakteryzują się podstawowymi właściwościami. Neuron jako techniczny model komórki nerwowej ma N wejść x n oraz jedno wyjście y (rys.12). Rysunek 12: Model komórki neuronowej podstawowy element ANN. 34
Przetwarzanie informacji wejściowej na informację wyjściową uzależnione jest od mogących się zmieniać współczynników w i nazywanych wagami. Neurony można łączyć w różny sposób, tworząc sieci. Najprostszą strukturą sieci jest sieć jednowarstwowa, w której jedna warstwa nie uczestniczy w przetwarzaniu infromacji, natomiast druga pracuje nad właściwym rozwiązaniem stawianych sieci zadań [24]. Z takich elementarnych fragmentów buduje się sieć, łącząc je ze sobą według pewnych prostych reguł. Stosowane sieci najczęściej buduje się jako struktury złożone z pewnej liczby warstw neuronów, połączonych między sobą w sąsiednich warstwach na zasadzie każdy z każdym. Cykl działania sieci neuronowej jest wypadkową działania poszczególnych neuronów oraz zachodzących pomiędzy nimi interakcji. Pojedynczy neuron w typowych przypadkach realizuje operację iloczynu skalarnego wektora syganłów wejściowych oraz wektora wag [25]. Sieci neuronowe służące do rozwiązywania wielu zadań z dziedziny przetwarzania sygnałów, klasyfikacji, rozpoznawania i diagnostyki muszą działać według określonych algorytmów. Algorytmy ANN zawarte są przede wszystkim w strukturze połączeń elementów sieci neuronowej, w parametrach tych połączeń (wagi) oraz w metodzie uczenia [18].W systemach rozpoznawania mowy proces uczenia sieci jest realizowany jako proces uczenia pod nadzorem, czyli z nauczycielem. Na wejście układu podaje się wzorzec oraz ustala się, jaką odpowiedź chce się uzyskać. Wartość oczekiwaną (ang. target) definiuje się jako wektor o tylu wymiarach, ile jest wzorców. W przypadku trenowania sieci w kierunku rozpoznawania danego wzorca, wartość ta wynosi jeden w wymiarze odpowiadającym danemu wzorcowi, a zero we wszystkich innych wymiarach. Proces uczenia sieci pod nadzorem jest procesem adaptacyjnym, w którym adaptacja wag sieci odbywa się pod wpływem błędu e(n), określonego dla każdej pary uczącej: wzorzec - target. Korelacja wartości wag sieci, prowadząca do minimalizacji błędu (różnicy między odpowiedzią sieci a wartością oczekiwaną) odbywa się dzięki sprzężeniu zwrotnemu. Proces adaptacji dla układu: wektor wzorca x(n), wektor aktualnej odpowiedzi y(n), wektor wartości oczekiwanej d(n) przedstawiony jest na rysunku nr 13. Kompleksowy opis i przegląd problematyki sztucznych sieci neuronowych zawierają: książka R. Tadeusieuwcza [23] oraz tom 6 monografii pod red. M. Nałęcza [25]. 35
Rysunek 13: Proces uczenia sieci neuronowej. Rysunek 14: Schemat działania Automatycznej Tablicy Okulistycznej ATO. 5 Implementacja proponowanego rozwiązania W niniejszym rozdziale zostanie przybliżony czytelnikowi schemat działania Automatycznej Tablicy Okulistycznej ATO. Tablica została zaprojektowana do użytku domowego, ale dodatkowo wyposażono ją w funkcjonalności, dzięki którym może być stosowana również przez lekarzy w ich gabinetach. Autorzy pracy mając do wyboru narzędzia, o których była mowa w rozdziale 4, postanowili wykonać projekt w środowisku MATLAB, 36
przyjmując schemat postępowania przedstawiony na rysunku nr 14. Rysunek nr 14 obrazuje działanie tablicy ATO, podczas rozpoznawania pojedynczego, wyświetlonego znaku. Dokładne omówienie poszczególnych etapów tego algorytmu znajduje się w podrozdziałach: 5.1 5.4. 5.1 Wyświetlanie znaków na tablicy W trakcie standardowego badania ostrości wzroku w gabinecie okulistycznym, pacjent rozpoznaje znaki znajdujące się na planszy zawieszonej na ścianie. Znak, który w danej chwili ma rozpoznać pacjent, jest pokazywany z pomocą wskaźnika lub podświetlany przez lekarza. Innowacyjnością rozwiązania prezentowanego w niniejszej pracy, jest realizacja tablicy jako aplikacji komputerowej, wyświetlającej symbole na monitorze. Znaki wyświetlane są pojedynczo i losowo, zwiększa to rzetelność przeprowadzanego badania (badany nie widzi wszystkich znaków, nie ma możliwości wcześniejszego rozpoznania i zapamiętania znaku znajdującego się np. na pozycji obok). Wielkość wyświetlanych znaków została zaczerpnięta ze standardowego badania, podobnie jak odległość ich wyświetlania, która wynosi 5m. W tabeli nr 2 [26] znajdują się wartości, służące do wyznaczenia ostrości wzroku dla odległości d = 5 m. Dokładne omówienie zagadnienia ostrości wzroku znajduje się w rozdziale 5.4. Tablica 2: Zestawienie danych do określania ostrości wzroku pacjenta. D Wysokość oczka literowego Ostrość wzroku 50 m 73 mm 5/50 40 m 58 mm 5/40 35 m 50 mm 5/35 30 m 43 mm 5/30 25 m 36 mm 5/25 20 m 29 mm 5/20 15 m 22 mm 5/15 10 m 15 mm 5/10 7 m 10 mm 5/7 5 m 9 mm 5/5 Wyświetlane przez tablicę ATO znaki, to czarne litery i cyfry na bialym tle. wielkość została dobrana zgodnie z tabelą nr 2 ( Wielkość oczka literowego ). Ich 37
5.2 Rejestracja odpowiedzi pacjenta Głównym założeniem niniejszego projektu było zbudowanie tablicy okulistycznej, w której decyzja czy badany rozpoznał poprawnie, czy błędnie wyświetlany znak, odbywa się poprzez analizę odpowiedzi zarejestrowanej przez mikrofon. Po wyświetleniu znaku, badany ma 3 sekundy na określenie jaki znak widzi. Przez ten czas mikrofon rejestruje dźwięk. W niniejszym projekcie korzystano z domowych mikrofonów nieprofesjonalnych. Z założenia aplikacja ma umożliwiać badanie wzroku w domu, dlatego dostosowanie jej do ogólnodostępnych mikrofonów jest czymś oczywistym. W czasie rejestarcji dźwięku aplikacja korzysta z wbudowanej funkcji MATLABA o nazwie: wavrecord. Rejestrowane jest 48 000 próbek z częstotliwością próbkowania f p równą 16 khz (czas nagrania wynosi 3 sek.). Próbki pobierane są z jednego kanału i zapisywane jako macierz obiektów typu double. 5.3 Automatyczne rozpoznawanie mowy Automatyczne rozpoznawanie sygnału mowy (ASR, ang. Automatic Speech Recognition) stanowi główny trzon projektu (rys. 15), w którym odbywa się przetwarzanie sygnału oraz porównywanie go z wzorcami. 5.3.1 Filtracja wstępna Początkowy etap przetwarzania sygnału mowy obejmuje proces preemfazy. Polega on na przeskalowaniu mocy sygnału, aby każdy kolejny sygnał miał taki sam zakres wartości amplitud (wyższe częstotliwości mają mniejszą amplitudę od niższych). Preemfazę zwykle uzyskuje się filtrując sygnał filtrem skończonym (FIR, ang. Finite Impulse Response filter), którego funkcja przejścia w dziedzinie z ma postać: H(z) = 1 a z 1, 0 a 1 (19) gdzie a to parametr preemfazy. Typową wartością a jest 0,95, co daje wzmocnienie wysokich częstotliwości o ponad 20 db. W dziedzinie czasu zastosowany filtr ma postać: x (n) = x(n) a x(n 1) (20) Taka normalizacja ma na celu uniezależnienie wyników od amplitudy dźwięku oraz wyeliminowanie szumu tła. 38
Rysunek 15: okulistycznej Schemat algorytmu automatycznego rozpoznawania mowy w tablicy 5.3.2 Segmentacja sygnału Stany ustalone w mowie trwają chwilę i ciągle się zmieniają zgodnie ze zmianami artykulacji. Dlatego zastosowana analiza spektralna musi być przeprowadzona dla krótkich odcinków czasu, które można uznać za ustalone, zwane ramkami: x t(n) = x (n t Q), 1 n N, 1 t T (21) t numer ramki,n długość ramki,q przesunięcie.jeśli Q = N wtedy ramki na siebie nie zachodzą. Dzięki zastosowaniu ramki, pomiaru parametrów dokonujemy nie z całego sygnału dźwiękowego, a tylko z jego fragmentu. Podział sygnału dźwiękowego na ramki powoduje, iż uzyskujemy ciąg pomiarów, z których każdy jest wektorem odpowiednio zdefiniowanych 39
cech. Krótkie ramki (np. 5-10 ms) dają niedokładne informacje o położeniu harmonicznych, ale umożliwiają dobre wychwycenie szybkich zmian w sygnale. Spektrogramy uzyskane w ten sposób noszą nazwę szerokopasmowych. Długie ramki (60-70 ms) dają dokładne informacje o położeniu harmonicznych, ale nie są w nich odzwierciedlane szybkie zmiany spektrum. W związku z tym, że długość ramki ma wpływ na rozdzielczość widma, kompromisem jest ramka o czasie około 20-30 ms. W projekcie ma ona długość 20 ms, z przesunięciem 10 ms. Efektem tej operacji jest seria widm chwilowych. W celu eliminacji pojawiania się dodatkowych harmonicznych w widmie wygłądza się framgenty przebiegu czasowgo na jego końcach, poprzez pomnożenie sygnału źródłowego przez odpowiednio skonstruowaną funkcję okna. W projekcie zastosowano okno Hamminga, powszechnie stosowane w systemach rozpoznawania mowy: { 0, 54 0, 46 cos( 2πn w(n) = ) 0 n N-1 N 1 0 w przeciwnym przypadku Okno (rys. 36) przpomina kształtem połowę cyklu fali sinusoidalnej. Każdą ramkę (22) Rysunek 16: Okno Hamminga sygnału przemnożono przez funkcję okna (okienkowanie) w celu zabezpieczenia widma chwilowego przed pojawieniem się w nim zakłóceń podczas dokonywania przekształcenia Fouriera. 5.3.3 Parametryzacja Spośród znanych technik parametryzacji mowy, największe uznanie zyskały metody widmowe. Ucho ludzkie jest swoistego rodzaju przetwornikiem akustycznym o funkcjon- 40
Rysunek 17: Schemat zastosowanego algorytmu wyznaczania współczynników MFCC. alności analizatora widmowego. Celowe jest więc zastosowanie różnych technik analizy widmowej do wyznaczenia istotnych cech sygnału (ang. feature extraction), za pomocą których możliwy będzie efektywny opis jego właściwości [12]. W projekcie zastosowano metodę parmateryzacji opartą na analizie sygnału flitrami pasmowo - przepustowymi rozłożonymi równomiernie na melowej skali częstotliwości. Jest to metoda prosta, a jednocześnie wydajna w wyznaczaniu współczynników melowo - częstotliowściowych z sygnałów dyskretnych. Otrzymano w ten sposób powszechnie stosowane i uznane za standard melowo - częstotliwościowe współczynniki cepstralne MFCC. Ogólny schemat zastosowanego algorytmu przedstawiony został na rys. 17 Pierwszym etapem wyznaczania MFCC jest obliczenie dyskretnego widma kolejnej ramki sygnału za pomocą dynamicznej transformty Fouriera (DFT, ang. Dynamic Fourier Transform) z sygnału otrzymuje się widma chwilowe. W projekcie przyspieszono obliczenia stosując szybką transformtę Fouriera (FFT, ang. Fast Fourier Transform), wyliczając dla każdej ramki analizowanego syganłu zarówno widma jak i energię (funkcja melspektrum.m). Następnie widmo poddawane jest filtracji za pomocą melowego banku filtrów pasmowo - przepustowych. Przygotowano w tym celu zestaw 12 filtrów w skali Mel, umożliwiających wygładzenie uzyskanego widma (funkcja melcepst.m). Bank filtrów znormalizowano, tj. w każdym paśmie częstotliwości maksymalna wartość wynosi 1. Otrzymano dla każdego filtru charakterystykę zgodną z rys. 18. Nie zastosowano logartymu energii wygładzonego widma uzyskanego po filtracji, ponieważ operacja ta odpowiada procesowi dynamicznej kompresji czyli utracie informacji z sygnału. Cyfrowo sprowadza się ona do obliczenia logarytmu z kwadratów wartości uzyskanych na wyjściach zestawu filtrów w skali Mel. Odpowiedź częstotliowościowa zastsowanych filtrów ma symulować zachowanie ucha, dlatego takie filtrowanie nosi nazwę perceptual. 41
Rysunek 18: Przykład filtru zastosowanego w projekcie. Rysunek 19: Postać sygnału dla optotypu 8 po wymnożeniu przez bank filtrów. Otrzymany bepozśrednio wektor zawiera liczbę elementów równą liczbie pasm melowych tj. 12, dla których dokonano normalizacji, by w każdym suma wartości wynosiła 1 (fukcja newmel.m). Przykład przetworzonego sygnału widoczny jest na rys. 19 Po przeprowadzeniu odwrotnej transformaty Fouriera (IDFT, ang. Inverse Discrete Fourier Transform) uzyskuje się zestaw współczynników cepstrum w skali częstotliowści typu Mel. Cepstrum dobrze wychwytuje wystąpienia formantów traktu głosowego, nawet jeśli występują szumy. Jednocześnie cepstrum jest dość podobne dla różnych ludzi jest ono głównie zależne od zmian artykulacji, a mniej od tonu podstawowego głosu (wysokości głosu). Współczynniki MFCC są najważniejszymi parametrami mowy. Uzyskany wektor para- 42
metrów (cech) y t identyfikuje w systemie rozpoznawania daną jednostkę mowy. Początkowa ilość informacji opisująca tą jednoskę została przekształcona w znacznie mniejszą ilość.ta mała ilość parametrów zgrupowana w wektor może być wykorzystana w algorytmach porównania. Opisanej konwersacji uległy sygnały wzorcowe, jak i sygnał dźwiękowy podany przez pacjenta. Otrzymano macierze wektorów współczynników MFCC, które są niezbędne do dalszej analizy w bloku ASR. 5.3.4 Nieliniowa transformacja czasowa DTW Porównanie dwóch wzorców mowy odbywa się poprzez wyliczenie odległości między każdą parą wektorów tych wzorców za pomocą programowania dynamicznego. Szukana jest optymalna (o najniższym koszcie) droga między dwoma punktami, wyznaczana jest ścieżka transformacji czasu. Po nałożeniu pewnych ograniczeń na kształt ścieżki (zbliżenie do obszaru przekątnej w liniowej transformacji czasu), metoda ta bardzo dobrze spełnia swoją rolę: eliminuje wpływ nierównomiernego tempa mowy nie pozwalając jednocześnie na dopasowanie zupełnie innych wzorców. W przypadku prostego systemu rozpoznawania izolowanych słów o niewielkim słwniku (kilkadziesiąt słów) można pozwolić sobie na porównywanie wejściowego wzorca z wszystkimi słownikowymi i użycie metody k najmniejszych sąsiadów. Dane są następujące szeregi czasowe: X = x 1, x 2,..., x n Y = y 1, y 2,..., y y (23) Na ich podstawie stworzno macierz D o wymiarach nxm, której element d(i, j) określa odległość pomiędzy punktami x i oraz y i rozpatrywanych szeregów czasowych. Każdy element szeregu X może być przypisany do jednego lub więcej elementów szeregu Y. Przypisanie dwóch punktów z szeregów określa się jako (i, j), gdzie i oraz y są indeksami odpowiednio szeregu X oraz Y. Ścieżką dopasowania (ang. warping path) W nazywa się ciągły 7 szereg elementów określających przypisanie punktów z rozpatrywanych szeregów do siebie: W = w 1, w 2,..., w k,..., w K, (24) gdzie K jest całkowitą długością ścieżki mającą następujące ograniczenia max(m, n) K m + n + 1 (25) 7 W sensie ciągłości ścieżki, jako dotyczącej następujących po sobie elementów 43
Rysunek 20: Wzorce kroku w procesie szukania ścieżki optymalnej metody DTW. Na ścieżkę dopasowania W nakłada się następujące warunki: warunki brzegowe w 1 = (1, 1), w k = (m, n). ciągłość ograniczenie dowolnych kroków w ścieżce dopasowania do sąsiednich pól macierzy d (również sąsiednich po przekątnej). monotoniczność punkty ścieżki dopasowania muszą być rozłożone monotonicznie w czasie (nie mogą powracać do raz przypisanych elementów). Z punktu widzenia określenia podbieństwa szeregów interesująca jest ta ścieżka, która minimalizuje koszt dopasowania szeregów. Jest to miara rozdzielczości szeregu X do szeregu Y : K DT W (X, Y ) = min W D(w k ) (26) k=1 Minimalny koszt dopasowania ścieżki liczony od początku macierzy dla każdego elementu szeregów, zapisywany jest w macierzy λ o wymiarach mxn. Każdy element tej macierzy zdefiniowany jest jako: λ(i, j) = D(i, j) + minλ(i 1, j 1), λ(i, j 1), λ(i 1, j), (27) gdzie D jest macierzą odległości elementów. Element λ(m, n) określa minimalny koszt dopasowania do siebie dwóch sekwencji, natomiast ścieżka, która daje taką wartość, jest szukaną optymalną ścieżką dopasowania szeregów. Powyższą rekurencję odnosząc do planu macierzowego można przedstawić jako sumę minimalnej odległości z trzech sąsiednich węzłów z odległością λ f (i, j) znalezioną w bieżącym węźle. Możliwe są inne tzw. wzorce kroku. 44
Rysunek 21: Przykłady sposobów zawężania obszaru poszukiwań ścieżki dopasowania [27]. W niniejszej pracy przyjęto wzór kroku zgodny ze wzorem (rys. 20 a) czyli badane jest minimum spośród sąsiadów odpowiednio znajdujących się na diagonali, po lewej stronie i na dole od badanego węzła. Aby wyznaczyć ścieżkę dopasowania należy prześledzić jej przebieg. Zaczynając od końca (ang. backtracking), należy przechodzić przez kolejne sąsiednie elementy macierzy zgodnie z regułą przechodzenia do elemetu, który jest najmniejszy, oraz przy zachowaniu wcześniej wspomnianych ograniczeń. Jeśli macierz została wyznaczona prawidłowo, to ostatni element ścieżki (pierwszy element ścieżki wynikowej) będzie element (0, 0) macierzy. Ostatnim etapem jest odwrócenie kolejności w wyznaczonej ścieżce. W celu zmniejszenia kosztu obliczeniowego algorytmu DTW dąży się do wyeliminowania pewnej przestrzeni rozwiązań (ang. search subspace). Poszukiwanie rozwiązań ogranicza się wówczas do dopuszczonego regionu. Przykłady ograniczeń obszaru poszukiwań przedstawia rys. 21. Do metod ograniczających przestrzeń poszukiwań zaliczyć można: metodę przeglądania okien (ang. windowing), metodę ważonych prostych kierunkowych (ang. slope weighting) i inne. Na rysunku nr 22 przedstawiono wynik działania algorytmu DTW (funkcja dtw2.m) zastosowanego w projkecie. Podstawowy algorytm DTW w celu wyznaczenia wartości elementów macierzy odległości D stosuje standardową miarę euklidesową określoną, jako: d(i, j) = P p=1 (x p (i) y p (i)) 2, (28) gdzie P jest całkowitą liczbą wymiarów, w jakich opisane są punkty (i, j). 45
Rysunek 22: Przykład dopasowania dwóch sygnałów dla optotypu E. Miara euklidesowa jest bardzo dobra do porównywania ze sobą dwóch punktów jednak nie najlepiej nadaje się do porównywania ze sobą szeregów czasowych. Zaproponowano zastosowanie metryki cosh, która według badań w pracy [20] pozwala na lepsze dopasowanie badanych szeregów: d(i, j) = 1 2 P p=1 ( xi (i) x j (i) + x j(i) x i (i) + 2 ) (29) W niniejszym projekcie dane wejściowe stanowią tablice współczynników melcepstralnych. Zadaniem metody DTW jest wyliczenie ścieżki dopasowania o jak najmniejszym koszcie tej operacji. Całkowity koszt dopasowania tych sekwencji jest miarą podobieństwa dwóch sgnałów. Im mniejszy koszt tym większe podobieństwo badnaych sygnałów. Sygnał wzorcowy oraz porównywany zapisane są, w dwóch macierzach X i Y. W zastosowanej metodzie DTW każda kolumna macierzy odpowiada ramce sygnału testowanego X, a każdy wiersz przypisany jest do odpowiedniej ramki sygnału wzorcowego Y. Przecięcia wierszy i kolumn są węzłami, możliwymi elemntami ścieżki dopasowania. Węzeł (i, j) będący elementem ścieżki dopasowania oznacza, że zostały dopasowane i - ta ramka sygnału testowego i j - ta ramka sygnału wzorcowego. Każdy węzeł należący do zbioru węzłów P = (i 1, j),(i 1, j 1),(i, j 1), jest potencjalnym poprzednikem węzła(i, j). W celu usprawnienia działania algorytmu na przestrzeń poszukiwań nakładane są ograniczenia. W rozwiązaniach przyjętych w pracy została użyta metoda przeglądania 46
okien, w której granice j węzłów poszukiwań wyznaczane są z warunków: J MAX = max( m 1 n 1 J MIN = min( m 1 n 1 i + 0, 5m + 1, m), (30) i 0, 5m + 1, m), (31) Po wyliczeniu ścieżki dopasowania dwóch ciągów czasowych oraz całkowitego kosztu dopasowania następuje wyznaczenie wyniku rozpoznania optotypu z tablicy, poprzez wyznaczenie numeru rozpoznanegp wzorca wraz z minimalną odległością między sygnałami i porównanie skorelowanej z nim tablicy pseudolosowych znaków z sekwencją wyświetlanych optotypów. 5.4 Wynik badania Badanie ostrości wzroku jest podstawowym testem czynnościowym oka i powinno być przeprowadzone przy każdym badaniu okulistycznym. Ocenia ono widzenie centralne, które jest funkcją zdolności rozdzielczej czopków zgrupowanych w środkowej części dna oka, w obszarze dołeczka środkowego (foveola centralis), położonego w centrum dołka środkowego (fovea centralis). Aby dwa punkty mogły być postrzegane jako odrębne, emanowane przez nie promienie światła muszą podrażnić dwa czopki przedzielone jednym niepobudzonym. Średnica 1 czopka równa się ok. 0,004 mm, przyjęto, że minimalna odległość tych punktów musi odpowiadać wielkości kątowej 1 (1 min.). Jest to zdolność rozdzielcza siatkówki przyjęta jako norma. Zasada Snellena, według której opracowane są testy przeznaczone do badania ostrości wzroku z bliska i z daleka, opiera się na tej normie. Wszystkie znaki tekstowe, tzw. optotypy (litery, cyfry, ewentualnie inne znaki graficzne lub figury przeznaczone dla osób nieumiejących czytać), są takiej wielkości i kształtu, aby każdy z ich elementów był postrzegany pod kątem 1 z odległości przewidzianej do jego rozpoznania [28]. Ramiona kąta rozwierają się wraz z odległością od jego wierzchołka, stała wielkość kątowa daje inne wymiary liniowe wraz z odsuwaniem się obiektu od oka. Snellen wprowadził określenie ostrości wzroku (visus) przy zastosowaniu ułamka (32): V = d D, (32) Gdzie: 47
V (łac. visus) ostrość wzroku; d odległość z jakiej przeprowadza się badanie wzroku ( tu 5 m); D odległość z jakiej dany znak powinien być widziany pod kątem 5 o ; Cały znak jest widziany pod kątem 5, szczegół znaku widoczny jest pod kątem 1. Zasada tworzenia znaków optometrycznych na tablicy Snellena przedstawia rys. 23. Rysunek 23: Spostrzeganie optotypu na tablicy Snellena. Badanie ostrości wzroku w dal przeprowadza się dla każdego oka osobno, począwszy od oka prawego lub chorego przy starannym zasłonięciu oka niebadanego. Tablice Snellena do badania ostrości wzroku w dal są przeznaczone do jego oceny z odległości 5 m (lub 6m), a jego wynik jest podawany zgodnie z regułą Snellena w postaci powyższego ułamka. Dla dzieci przedszkolnych lub młodszych stosowane są optotypy tzw. widełkowe lub obrazkowe. Stoswane sa również tablice pozwalające na zapisywanie ostrości wzroku w postaci ułamka dziesiętnego (obecnie najczęściej stosowane). Przy gorszej ostrości (V 6/60) w badaniu dla dali następuje w kolejności przybliżenie tablicy, liczenie palców, ruchy dłoni i badanie poczucia światła. Ostrość wzroku nie zawsze jest wystarczjącym wskaźnikiem jakości widzenia w sytuacji realnego świata ze względu na występowanie u ludzi róznego rodzaju problemów neurologicznych, katarakt, noszenie soczewek oraz dzięki chriurgii refrakcyjnej. Testy do badania ostrości wzroku mogą być przeprowadzane z zastosowaniem: kartonowych tablic z drukowanymi optotypami, tablic z białego szkła, z możliwością podświetlenia poszczególnych rzędów optotypów lub też pojedynczych, rzutowanych optotypów przez projektor na jasny, matowy ekran. Badanie ostrości wzroku z bliska polega na czytaniu z odległości 30 cm, każdym okiem osobno, stanadryzowanego tekstu z tablic Snellena do bliży. Wszystkie znaki, zgodnie 48
Rysunek 24: Przykłady tablic stosowanych w badaniu ostrości wzroku. z zasadą Snellena, powinny być odczytywane z odpowiedniej odległości (D), wynoszącej od 0,5 do 3,0 m. Drugi etap badnaia to próba korekcji okularowej. Testy do badania ostrości wzroku do bliży umożliwiają pomiar tej wielkości zarówno obuocznie, jak i jednoocznie. Zwykle obuoczna ostrość wzroku może być nieco wyższa niż jednooczna. Faktyczna niejednakowa ostrość wzroku każdego z oczu do bliży przy jednakowej ostrości do dali jest ważnym faktem, którego badający nie może zbagatelizować. Na wynik badania wszelkich testów określających ostrość wzorku ma wpływ szereg czynników fizjologicznych, fizycznych i psychofizycznych, często od siebie zależnych. W celu zunifikowania wyników badania ostrości wzorku służących do prównania i dla celów naukowo - badawczych stosuje się aktualnie testy do badania ostrości wzroku z zapisem logarytmicznej wartości kąta (norma ISO 8596). Zawierają one po 5 liter w każdym rzędzie, a Log MAR (minimalnej rozdzielczości kątowej, ang. Minimal Angle of Resolution) między każdą linią wynosi 0,1. Każdy optotyp ma przypisaną wartość 0,02 jednostki Log MAR. Jest to zapis w progresji geometrycznej i obowiązuje on zarówno w tablicach opracowanych do badania ostrości wzroku w dal, jak i z bliska. Każda z trzech popularnych tablic do badania ostrości wzroku (przykład rys. 24) składa się z dziesięciu rzędów optotypów literowych systemu Sloana (ang. Sloan Letters), po pięć liter w rzędzie. Te same litery użyte są w każdym z rzędów wszystkich trzech tablic, ale w każdej z tablic umieszczone są w różnym porządku: w lewej i prawej litery w odpowiednich rzędach mają odwróconą kolejność, w środkowej znajdują się te same litery uszeregowane losowo. Wielkość liter w minutach kątowych stopniowo zmniejsza się od pierwszego do dziesiątego rzędu (licząc od góry) w równych odstępach logarytmicznych, określanych jako logmar. 49
W tabeli 3 podano sposób stopniowania wielkości optotypów zarówno w skali logmar, jak i w przybliżonej skali Snellena [29]. Tablica 3: Porównanie dwóch skal tablic testowych stosowanych w okulistyce Rząd LogMAR Snellen 1 0,7 40/200 (20/100) 2 0,6 40/160 (20/80) 3 0,5 40/120 (20/60) 4 0,4 40/100 (20/50) 5 0,3 40/80 (20/40) 6 0,2 40/60 (20/30) 7 0,1 40/50 (20/25) 8 0,0 40/40 (20/20) 9-0,1 40/32 (20/16) 10-0,2 40/25 (20/12.5) Norma DIN 58220 wprowadza 14 stopni ostrości wzroku (bystrość wzorku, V. A. ang. visual acuity) w formie dziesiętnej. Dzielą się one na 4 grupy: ostrość bardzo mała: V = 0,1; 0,125; 0,16; 0,2; 0,25; 0,32; (niedowidzenie, słabe widzenie); ostrość zredukowana: V = 0,4; 0,5; 0,63; ostrość od wsytarczającej do bardzo dobrej: V = 0,8; 1; 1,25; 1,6; ostrość wyjatkowo dobra V = 2,0; W projekcie poprawność rozpoznania danego optotypu określono poprzez wyznaczenie minimalnej ścieżki dopasowania sygnału testowego do wszystkich sygnałów wzorcowych w ilości 13. Optotypy wzorców wyświetalne są w losowej kolejności. Spośród wyznaczonych ścieżek wybrano najmniejszą, której przypisany był określony wzorzec, dzięki skorelowanej z ostrością odpowiednio przygotowanej tablicy. Program dostosowano do badania dla dali (5 m od monitora komputera), a wynik badania podawnay jest w notacji ułamka dziesiętnego, wyliczonego zgodnie ze wzorem Snellena. Osiągniętą przez pacjenta ostrość wzroku zapisywano następująco: jeśli badany rozpoznał wszystkie (tj. 2) optotypy dla danej linii (wielkości oczka literowego) lub nie rozpoznał jednego, wtedy przypisano mu 50
ostrość wzroku na tym poziomie. Jeśli badany nie rozpoznał prawidłowo optotypów dla danej lini, wtedy przypisano mu ostrość wzroku na niższym poziomie. Cała procedura przedstwiona jest tabeli 4. Tablica 4: Zestawienie przyjętych parametrów w algorytmie określania ostrości wzroku. nr linii D VA optotypy w linii przeczytane optotypy grupa ostrości graf. 1 50 0,10 1 1 niedowidzenie :-(( 2 40 0,13 2 2-3 niedowidzenie :-(( 3 35 0,14 2 4-5 niedowidzenie :-(( 4 30 0,17 2 6-7 słaba :-(( 5 25 0,20 2 8-9 słaba :-(( 6 20 0,25 2 10-11 słaba :-( 7 15 0,33 2 12-13 zredukowana :-[ 8 10 0,50 2 14-15 zredukowana :-[ 9 7 0,71 2 16-17 dobra :-) 10 5 1,00 2 18-19 (max) bardzo dobra :-)), gdzie D odległość, z której elementy są widziane pod kątem 1, a więc optotyp powinien być rozpoznawany; V A ostrość wzroku wyrażona regułą Snellena. 6 Prezentacja działania aplikacji 6.1 Architektura aplikacji Aplikacja została napisana w środowisku MATLAB. O wyborze tego środowiska zaważyło kilka czynników. Po pierwsze MATLAB dostarcza wielu użytecznych narzędzi z zakresu przetwarzania sygnałów, akwizycji, obróbki i zapisu danych. Do najważniejszych z punktu widzenia tematyki projektu, zaliczyć można wbudowane funkcje wykorzystywane do analizy widmowej sygnału, generowania wykresów, projektowania i implementacji filtrów, wyświetlania obrazów, nagrywania dźwięków z określoną częstotliwością próbkowania, zapisu danych do pliku o dogodnym rozszerzeniu. Po drugie wbudowany pakiet GUIDE (ang. Graphical User Interface Development Environment), ułatwia projektowanie, budowanie i programowanie interfejsu graficznego aplikacji tzw. GUI (ang. Graphical User Interface). Główną strukturę opisywanej aplikacji stanowi właśnie GUI, które w przejrzysty sposób przeprowadza użytkownika przez 51
proces badania ostrości wzroku. Kolejnym argumentem przemawiającym za wyborem tego środowiska, jest możliwość udostępniania napisanej aplikacji w postaci pliku o rozszerzeniu:.exe. Jest to ważne z punktu widzenia dostępności programu, który uruchomi się bez konieczności posiadania dodatkowego oprogramowania. Na architekturę aplikacji składają się dwa okna GUI. Nadrzędne okno okno główne programu o nazwie ATO, uruchamia się wraz ze startem programu i umożliwia przeprowadzenie badania. Okno podrzędne o nazwie Dane pacjenta, wywoływane jest po wciśnięciu odpowiedniego przycisku okna głównego. Korzystając z tego okna można zapisać i wydrukować wynik badania. Celem ułatwienia komunikacji na płaszczyźnie program użytkownik, aplikację wypasażono dodatkowo w okna informacyjne np.: okno komunikujące o udanym zapisie do pliku lub o pojawieniu się błędu. Rysunek nr 25 przedstawia architekturę programu. Rysunek 25: Schemat uproszczonej architektury programu. 6.2 Okno główne programu Okno główne jako najważniejsza część interfejsu graficznego aplikacji, zostało zbudowane tak, aby w prosty sposób przeprowadzić użytkownika przez proces badania. Rysunek nr 26 przedstawia widok okna głównego ATO. Okno główne dzieli się na trzy funkcjonalne części. axes pole wykresu; wprowadzanie danych; 52
Rysunek 26: Okno główne programu ATO. przeprowadzanie badania; We wnętrzu pola axes wyświetlane są kolejno znaki. Zbiór wyświetlanych znaków opracowano w oparciu o standardową tablicę okulistyczną. Dokonano kilku modyfikacji, mających na celu zwiększenie precyzji rozpoznawania symboli PRA (ang. Phone Recognition Accuracy) zastąpiono podobnie brzmiące litery cyframi. Do wyświetlanych znaków należą: A, E, F, L, O, R, U, Z, 3, 5, 6, 8, 9. Po zakończeniu badania dodatkowo w polu axes pojawia się wykres słupkowy przedstawiający ilość znaków danej wielkości, które zostały poprawnie rozpoznane przez badanego. Przyciski: Dane pacjenta i Nagranie bazy umożliwiają wprowadzenie przez użytkownika danych, wykorzystywanych przez aplikację. Wciśnięcie przycisku Dane pacjenta powoduje otwarcie okna (podrzędnego względem okna ATO ) o tej samej nazwie, w którym wprowadza się dane osobowe badanego. Dokładny opis tego okna znajduje się w rozdziale nr 6.3. Przycisk Nagranie bazy rozpoczyna nagrywanie bazy wzorców dla każdego ze znaków tablicy. Baza ta jest wykorzystywana w badaniu, do określenia poprawności rozpoznania wyświetlanego symbolu. Odpowiedź na dany znak tablicy, rejestrowana w czasie trwania badania, jest porównywana z nagranymi wcześniej wzorcami w bazie. Poniżej przycisków umożliwiających wprowadzanie danych, znajduje się blok przycisków obsługujących badanie. Kliknięcie guzika Start rozpoczyna badanie. W polu 53
axes wyświetlane są kolejno znaki, poczynając od tych największych, a na najmniejszych kończąc. Kolejność znaków jest przypadkowa wraz z rozpoczęciem badania, uruchamiany jest program, który losuje sekwencję wyświetlanych symboli. Na jedno badanie przypada 19 znaków, w tym po dwa znaki dla każdej ostrości wzroku prócz ostrości 5/50. Tej wartości odpowiada największy rozmiar znaku, który jest wyświetlany tylko jeden raz (wyjaśnienie nomenklatury znajduje się w tabeli nr 2). Po zakończeniu badania w polu Wynik wyświetla się ostrość wzroku badanego. Przykładowy wynik badania pokazany jest na rysunku nr 27. Rysunek 27: Okno główne z wynikiem badania. Przycisk Stop zatrzymuje badanie. Umożliwia tym samym skrócenie przebiegu badania w przypadku gdy użytkownik, np. lekarz w gabinecie okulistycznym, stwierdzi że kontynuacja badania nie będzie miała wpływu na jego ostateczny wynik. Ma to miejsce wtedy, gdy badany nie widzi znaków danej wielkości, a w dalszej kolejności sprawdzeniu podlegałoby to, czy może widzieć jeszcze mniejsze znaki. Po kliknięciu przycisku Stop rozpoczyna się rejestracja odpowiedzi na widoczny znak. Następnie w polu zawierającym wynik, pojawia się wynik badania (analogicznie jak w przypadku badania, którego przebieg nie został skrócony). Przycisk Wyjście zamyka program po zakończeniu badania. Skutkuje to zamknięciem wszystkich aktualnie otwartych okien aplikacji i całkowite wyjście z programu. 54
6.3 Wprowadzenie danych osobowych pacjenta Na początku pracy z niniejszym projektem założono, że budowana aplikacja będzie przeznaczona do użytku domowego. Stopniowo w miarę zagłębiania się w tematykę pracy, stwirdzono jednak, że aplikacja może z powodzeniem być stosowana przez lekarzy, jeśli wyposaży się ją w dodatkowe funkcje umożliwiające zarządzanie danymi pacjenta. W tym celu zaprojektowano i zbudowano dodatkowe GUI, podrzędne względem okna ATO okno Dane pacjenta. Okno to jest wywoływane spod przycisku Dane pacjenta i zostało zbudowane w oparciu o strukturę formularza. Dzięki temu dane są prezentowane w sposób czytelny i przejrzysty. Dodatkową zaletą jest możliwość powiązania GUI ze strukturą bazodanową. Ma to duże znaczenie w przypadku zastosowań ściśle medycznych (w przychodniach, gabinetach okulistycznych), gdzie kładzie się nacisk na przechowywanie danych o pacjencie. Rysunek nr 28 przedstawia widok okna Dane pacjenta. Rysunek 28: Okno Dane pacjenta programu ATO. Okno reprezentuje formularz, do którego wprowadza się dane pacjenta. W momencie otwierania okna, jedynie dwa pola są aktywne: pola z imieniem i datą. Stanowi to zabezpieczenie, mające na celu wykluczenie pomyłek wynikających z zamiany miejscami imienia z nazwiskiem. Autorzy zaprogramowali formularz w taki sposób, żeby przejścia pomiędzy polami realizowane były za pośrednictwem klawisza Enter. Jest to znaczne 55
ułatwienie, przyspieszające proces wprowadzania danych. Użytkownik nie musi klikać w kolejne pole formularza, by móc w nim pisać. W trakcie testowania aplikacji, zauważono, że 80 % użytkowników, odruchowo wciskało klawisz Enter, żeby potwiedzić wporwadzane w do pola dane i przejść do kolejnego. Okienko zawierające datę badania jest zrealizowane w postaci aktywnej kontrolki. Data ustawiana jest automatycznie na podstawie daty systemowej, wyklucza to możliwość pomyłek. W formularzu zastosowano bardzo ciekawe rozwiązanie, które również ma na celu ograniczenie ilości błędów związanych z wprowadzaniem danych. Pole zawierające datę urodzenia pacjenta jest cały czas nieaktywne. Użytkownik nie może wprowadzić do niego danych. Napisano program, który wyznacza datę urodzenia na podstawie numeru PESEL. Po wprowadzeniu numeru PESEL i jego zatwierdzeniu klawiszem Enter data urodzenia pojawia się automatycznie. Numer PESEL zawiera informacje o dacie urodzenia, płci swojego posiadacza, tzw. numer kontrolny i liczbę porządkową. Cyfry od 1 do 6 tego numeru ewidencyjnego, zawierają informację o dacie urodzenia zakodowaną w następujący sposób: cyfry 1 i 2 dwie ostatnie cyfry roku urodzenia; cyfry 3 i 4 miesiąc urodzenia, dla osób urodzonych w latach 1900-1999 zapisywany jest normalnie, dla osób urodzonych w innych latach numer miesiąca jest zakodowany: lata 1800-1899 numer miesiąca powiększony jest o 80; lata 2000-2099 numer miesiąca powiększony jest o 20; lata 2100-2199 numer miesiąca powiększony jest o 40; lata 2200-2299 numer miesiąca powiększony jest o 60; cyfry 5 i 6 dzień miesiąca; Dzięki automatycznemu wprowadzaniu daty, użytkownik może sprawdzić czy nie zrobił błędu w numerze PESEL, konfrontując swoją datę urodzenia z tą wyliczoną. Dodatkowo formularz wykorzystuje zależność nr 33, która sprawdza czy numer PESEL nie jest przekłamany. S = a + 3 b + 7 c + 9 d + e + 3 f + 7 g + 9 h + i + 3 j + k, (33) 56
Litery a k odpowiadają kolejnym cyfrom numeru PESEL od lewej do prawej. Jeżeli wartość sumy S nie jest podzielna przez 10, to oznacza, że numer PESEL zawiera błąd. Niestety korzystając z tego algorytmu, nie można jednoznacznie określić czy dany numer ewidencyjny istnieje, czy też nie. Przyczyną tego zjawiska jest fakt, że w numerach PESEL również pojawiają się błędy. Takie pomyłki zdarzają się bardzo rzadko, dlatego algorytm został zastosowany w aplikacji. Pasek zadań formularza zawiera trzy kontrolki: Drukuj, Zapisz i Zamknij. Przyciski Zapisz i Drukuj powodują zapis i wydruk danych z formularza. Dokładny opis tych procedur znajduje się w podrozdziale 6.4. Przyciśnięcie przycisku Zamknij powoduje zapis danych zawartych w formularzu do pliku i zamknięcie okna Dane pacjenta. Podrozdział 6.5 zawiera opis metod weryfikujących poprawność danych wprowadzanych do formularza. 6.4 Zapis i wydruk wyniku W nawiązaniu do aspektu medycznego, aplikację wyposażono w funkcje, umożliwiające zapis i wydruk wyniku. Są wywoływane za pomocą przycisków znajdujących się na pasku zadań okna Dane pacjenta. Po kliknięciu guzika Zapisz następuje zapis wyniku badania do pliku tekstowego o rozszerzeniu.txt. Nazwą pliku jest PESEL badanego i data badania w formie numerycznej, rozdzielone znakiem podkreślenia:. Zapis pliku jest potwierdzany przez okno dialogowe (patrz rys. nr 30). Rysunek nr 29 przedstawia zawartość pliku z wynikiem badania. Rysunek 29: Wygląd pliku z wynikiem badania po jego otwarciu. MATLAB nie wspiera drukowania plików tekstowych (możliwe jest tylko drukowanie wyników w postaci obiektów o rozszerzeniu.fig). Problem ten rozwiązano, wysyłając dane 57
do Notatnika i wywołując polecenie drukowania z jego poziomu. Ta metoda będzie działać tylko na komputerach z systemem operacyjnym Windows, podobnie jak cała aplikacja. Wydruk wyniku następuje po kliknięciu przycisku Drukuj na pasku zadań okna Dane pacjenta. Rysunek 30: Okno dialogowe informujące o poprawnym zapisie danych do pliku. 6.5 Obsługa błędów Nawet dobry programista, nie może przewidzieć wszystkich możliwych zdarzeń, jakie mogą pojawić się w trakcie użytkowania napisanego przez niego programu. Takie nieprzewidziane zdarzenia nazywają się sytuacjami wyjątkowymi. Pojawiają się wtedy, gdy z pewnych powodów (np. brak pliku z danymi, błędny format danych, brak podłączonego urządzenia wejścia/wyjścia itp.) nie jest możliwe wykonanie określonej funkcji lub ciągu instrukcji. Aby uniknąć gwałtownego przerwania wykonywania się programu, aplikacja została wyposażona w mechanizmy obsługujące sytuacje wyjątkowe: błędy danych wejściowych; błędy urządzeń zewnętrznych; 58
Błędy danych wejściowych związane są z ich nieprawidłowym formatem. Pojawiają się w momencie wprowadzania przez użytkownika informacji do formularza Dane pacjenta. Np.: nieprawidłowy format numeru PESEL: numer PESEL za krótki, zawiera litery, numer nie istnieje (patrz rozdział 6.3 równianie 33); nieprawidłowy format imienia/nazwiska: w imieniu/nazwisku występują cyfry; Do błędów urządzeń zewnętrznych należy brak podłączonego mikrofonu. Gdyby nie zastosowano obsługi tego błędu, w przypadku braku aktywnego mikrofonu, następowałoby gwałtowne zatrzymanie pracy programu. Wystąpienie któregoś z omawianych powyżej błedów, powoduje przewanie wykonywania się programu i wyświetlenie stosownego komunikatu użytkownikowi. Komunikaty wyświetlane są w oknach dialogowych, ich przykłady znajdują się w tabeli nr 5. Tablica 5: Przykładowe komunikaty błędów: A brak podłączonego mikrofonu, B zły format danych w imieniu/nazwisku, C nieprawidłowy PESEL; A) B) C) 59
7 Weryfikacja poprawności działania 7.1 Optymalizacja programu W celu określenia skuteczności projektowanych systemów ARS korzysta się z kryteriów będących miarami jakości segmentacji jak i pozostałych stosowanych algorytmów. Jako najważniejsze należy wymienić: WRR - ilość poprawnie rozpoznanych słów (ang. Word Recoggnittion Ratio) WERR - ilość błednie rozpoznanych słów (ang. Word Error Ratio PRR - ilość poprawnie rozpoznznaych fonemów (ang. Phone Recognittion Ratio) PRA - precyzja rozpoznawania (ang. Phone Recognition Accuracy SNR - stosunek energii sygnału do szumu (ang. Signal to Noise Ratio) CR - stopień kompresji (ang. Compression Ratio) inne. Metody praktycznego pomiaru jakości segmentacji pozwalają na ocenę skuteczności algorytmu, na łatwe, szybkie i wiarygodne porównanie otrzymanych wyników [12]. W ramach oceny proponowanego rozwiązania przebadano skuteczność rozpoznawnia sygnałów ze względu na zastosowaną metrykę w algorytmie DTW tj. euklides i cosh oraz ze względu na szerokośc okna Hammminga i ilość kanałów melowych, mając do dyspozycji bazę złożoną z sekwencji 7 nagrań dla 6 osób (4 mężczyzn i 2 kobiety). Każde nagranie zawierało tablicę 13 sygnałów wzorcowych odpowiadających optotypom podczas przeprowadzania nagrywania bazy dla badania. Przy pomocy pakietu Matlab i odpowiednich funkcji skonstruowano macierz o wymiarch (42 x 13), w której zapisywano efekt rozpoznawania sygnałów dla zmieniających się parametrów jako wynik porównania kolejnego sygnału wzorcowego z każdym syganłem w nagraniach odpowiadajacych kolejności wypowiedzi dla wszystkich osób. Ilość wierszy odpowiada numerom sygnałów w nagraniu, natomiast kolumny zawierają tablice 13-elementowe (binarne, jedna wartość 1 tylko w przypadku rozpoznania sygnału) dla 42 nagrań czyli po 7 nagrań dla 6 osób. 60
Rysunek 31: WRR dla badanych parametrów. Dla zmian (kombinacji) każdego z 3 badanych parametrów tj. szerokości okna Haminnga, ilości kanałów melowych i rodzaju metryki określono oddzielną macierz dopasowania. Na podstawie zbioru wszystkich macierzy dopasowań wyznaczono ilość poprawnie rozpoznanych słów WRR (ang. Word Recoggnittion Ratio) przedstawioną na rys.31 (gdzie o. H. - szerokość okna Hamminga [ms], k - ilość kanałów melowych). W celu wyznaczenia WERR ilości błędnie rozpoznanych słów (ang. Word Error Ratio) należałoby od 100 % odjąć wartość WRR. Im wyższa wartość WRR tym niższa wartość WERR, tzn. program popełnia mniej błedów podczas prozesu analizy i rozpoznawania sygnałów. Rys. 31 pozwala zauważyć wyższość metryki cosh, nad euklides. WRR dla metryki euklides wynosi ok. 34-28 % natomiast dla metryki cosh ok. 43-50 %. Rozrzut ten wynika z porównania dodatkowych parametrów dla badanego systemu ASR. Najlepszą wartość WRR w metryce euklides przypada na szerokości okna Haminnga 15 ms i 6 kanałów melowych ( 34 %), zwiększenie wartości tych parametrów powoduje pogorszenie badanego kryterium. Zastosowanie szerokiego okna charateryzuje się większym WERR. W metryce cosh maksmalnlną wartość WRR blisko 50 % określona jest dla szerokości okna Hamminga 30 ms i 15 kanałów melowych. Od ilości 6 kanałów do 15 następowało polepszenie WRR dla każdej szerokości okna, po natomiast spadek. W przpadku zastosowania szerokiego okna wartość WERR maleje. Również podjęto się próby oceny wpływu płci badanego na kryteriu WRR. Efekt analizy przedstawia rys. 32.Otrzymane wyniki nie oddają jednoznacznie czy istnieje zależność płci od rozpoznania, ze względu na nierówmierność ilości osób badanych tj. 2 kobiety i 4 61
Rysunek 32: Wpływ płci osoby badanej na WRR. mężczyzn. Z badań literaturowych wynika, że pomiędzy płciami nie ma wyraźnych różnić w WRR, wynika ona raczej ze stanów chorobowymi, wieku mówców czy osobniczych zmian w transmisji toru głosowego [9]. Przebadano również WRR względem wozrców wyświetlanych podczas nagrywania pacjenta, uwaględniając głównie podział na wykorzystaną metrykę tzn. w tabeli 6 euklides, a w tabeli 7 cosh oraz szerkość okna Hamminga (o.h. [ms]). Metryka cosh wykazuje zdecydowanie lepszą wartość WRR, potwierdzając badania autora pracy [20]. Najbardziej ropoznawalne wzorce to: 1) dla metryki euklides Z, U, 9, 8 (38-52%); 2) dla metryki cosh 3, Z, 5, U, 6, 8, 9, 8 (42-82 %); Zastosowanie metryki cosh poszerzyło znacznie nie tylko zakres rozpoznawanych optotypów ale również ich ilość jest większa. W obu metrykach najbardziej rozpoznawlana była cyfra 8 (euklides - 52 %, cosh - 82%). Reasumując można stwierdzić, że proponowana aplikacja przy zastosowaniu metryki cosh daje zdecydowanie lepsze rezulaty niż stosowana jako standard w DTW metryka euklides. Dzięki przetestowaniu głównych parametrów segmentacji syganłu mowy możliwy jest dobór ich odpowiednich wartości aby polepszyć skuteczność systemu ARS w automatycznej tablicy okulistycznej. W podstawowej wersji programu zastosowano szerokośc okna Hamminga równą 20 ms z przesunięciem 10 ms, 12 kanałów melowych oraz jak już wcześniej wspomniano metrykę cosh w stsosowanym algorytmie DTW. 62