Realizacja adaptacyjnego testu zrozumiałości mowy w środowisku

Transkrypt

Realizacja adaptacyjnego testu zrozumiałości mowy w środowisku
Rok akademicki 2012/2013
Politechnika Warszawska
Wydział Elektroniki i Technik
Informacyjnych
Instytut Informatyki
PRACA DYPLOMOWA INŻYNIERSKA
Jerzy Woźniak
Realizacja adaptacyjnego testu zrozumiałości
mowy w środowisku MATLAB
Opiekun pracy
dr hab. inż. Jan Żera
Ocena: .....................................................
.................................................................
Podpis Przewodniczącego
Komisji Egzaminu
Dyplomowego
Kierunek:
Informatyka
Specjalność:
Inżynieria Systemów Informatycznych
Data urodzenia:
1988.04.15
Data rozpoczęcia studiów:
2007.10.01
Życiorys
Urodziłem się 15 kwietnia 1988 roku w Wieluniu. W roku 2001 ukończyłem Szkołę Podstawową nr 1 w Wieluniu, w 2004 -­‐ Gimnazjum nr 1 im. Kazimierza Wielkiego w Wieluniu, w 2007 -­‐ I Liceum Ogólnokształcące im. Tadeusza Kościuszki w Wieluniu w klasie o profilu matematyczno-­‐fizycznym. W roku 2007 zdałem maturę z rozszerzoną matematyką, fizyką oraz językiem angielskim. W październiku 2007 roku, rozpocząłem dzienne studia inżynierskie na kierunku Informatyka na Wydziale Elektroniki i Technik Informacyjnych na Politechnice Warszawskiej. ........................................................
Podpis studenta
EGZAMIN DYPLOMOWY
Złożył egzamin dyplomowy w dniu ................................................................................. 20__ r
z wynikiem ...................................................................................................................................
Ogólny wynik studiów: ................................................................................................................
Dodatkowe wnioski i uwagi Komisji: ..........................................................................................
.......................................................................................................................................................
.......................................................................................................................................................
2 STRESZCZENIE
Celem niniejszej pracy inżynierskiej była realizacja adaptacyjnej wersji testu
zrozumiałości mowy MRT (ang. modified rhyme test) w środowisku MATLAB.
Test zrozumiałości mowy MRT określa procentową zrozumiałość wypowiadanych
słów w warunkach określonego stosunku sygnału do szumu. W celu zwiększenia
efektywności testu MRT wykorzystano procedurę adaptacyjną MLP (ang. maximumlikelihood procedure). Poprawność działania programu została zweryfikowana
poprzez przeprowadzenie testów dla trzech poziomów zrozumiałości. Otrzymane
wyniki potwierdziły prawidłowe działanie programu.
Słowa kluczowe: test zrozumiałości mowy; modified rhyme test; maximumlikelihood procedure
Implementation of the adaptive speech intelligibility test in MATLAB
The aim of this thesis was to implement the adaptive version of speech intelligibility
modified rhyme test (MRT) in MATLAB. The MRT test determines the percent
correct recognition of spoken words at a given signal-to-noise ratio. In order to
increase the efficiency of the MRT test the maximum-likelihood procedure (MLP)
was used. The program was verified by running the test at three levels of predefined
percent correct intelligibility. The results confirmed the proper implementation of the
program.
Keywords: speech intelligibility test; modified rhyme test; maximum-likelihood
procedure
3 Spis treści 1. Wstęp ................................................................................................................................ 5 2. Warunki określające zrozumiałość mowy ........................................................... 5 2.1. Test MRT ............................................................................................................................... 6 3. Testy adaptacyjne ......................................................................................................... 8 3.1. Procedura MLP .................................................................................................................... 8 4. Struktura programu (funkcjonalna) ................................................................... 10 4.1. Test adaptacyjny ............................................................................................................. 10 4.2. Procedura weryfikacyjna ............................................................................................. 11 5. Struktura plików i kodu ........................................................................................... 11 5.1. Plik z listą słów ................................................................................................................ 11 5.2. Pliki z nagraniami lektora ............................................................................................ 12 5.3. Pliki z kodem programu ............................................................................................... 12 createSNRtoTfigure.m ........................................................................................................................ 12 getRandomSet.m ................................................................................................................................... 13 loadWords.m .......................................................................................................................................... 13 main.m ....................................................................................................................................................... 13 maximumLikelihood.m ...................................................................................................................... 13 maximumLikelihoodUpdate.m ....................................................................................................... 13 playWord.m ............................................................................................................................................. 14 psychometricFunc.m ........................................................................................................................... 14 psychometricFuncInv.m .................................................................................................................... 15 questionUI.m .......................................................................................................................................... 15 randomizationTest.m ......................................................................................................................... 17 startTest.m .............................................................................................................................................. 17 startVerify.m ........................................................................................................................................... 17 writeResultsCsv.m ............................................................................................................................... 18 6. Działanie programu .................................................................................................. 18 6.1. Test adaptacyjny ............................................................................................................. 18 Możliwości konfiguracyjne ............................................................................................................... 18 Obsługa programu ............................................................................................................................... 19 Wyniki ....................................................................................................................................................... 22 6.2. Procedura weryfikacyjna ............................................................................................. 23 7. Testowanie ................................................................................................................... 23 8. Analiza przebieg testu adaptacyjnego ................................................................ 25 9. Podsumowanie ........................................................................................................... 29 10. Bibliografia ................................................................................................................ 29 4 1. Wstęp Tematem niniejszej pracy była realizacja adaptacyjnego testu zrozumiałości mowy. Wykorzystano środowisko programistyczne MATLAB. Środowisko to udostępnia wszystkie potrzebne narzędzia matematyczne, umożliwia stworzenie estetycznego i intuicyjnego w użyciu interfejsu użytkownika (prezentacji pytań i wyników), pozwala na łatwe operowanie na próbkach dźwiękowych. Test zrozumiałości lub artykulacji mowy polega na określaniu procentowego stopnia zrozumiałości lub rozpoznawania wypowiadanych elementów mowy (zdań, słów, sylab, sylab bez znaczenia semantycznego) dla podanego stosunku sygnału do szumu (ang. signal-­‐to-­‐noise ratio -­‐ SNR). W pracy użyto testu zrozumiałości mowy MRT (ang. modified rhyme test) [2]. Test MRT jest testem zamkniętym, w którym przy określonym stosunku poziomu sygnału do szumu prezentuje się wyrazy, a zadaniem osoby badanej jest wybór usłyszanego wyrazu ze skończonej listy słów. Dla uzyskania krzywej zrozumiałości wyrażającej procentową zrozumiałość w funkcji stosunku sygnału do szumu czynność tę powtarza się dla odpowiedniej liczby (np. 6-­‐ciu) poziomów S/N (ang. signal/noise). W pracy zrealizowano adaptacyjną wersję testu z użyciem procedury MLP (ang. maximum-­‐likelihood procedure) [1]. W procedurze adaptacyjnej dla zadanej wartości zrozumiałości procentowej program automatycznie reguluje poziom prezentacji tak, aby dojść do takiej wartości, przy której uzyskiwana jest zrozumiałość na założonym poziomie. Użycie procedury adaptacyjnej zwiększa efektywność poprzez szybkie osiągnięcie żądanego punktu na krzywej zrozumiałości. Efektywność wybranego testu adaptacyjnego MLP pozwala na uzyskanie wyniku o satysfakcjonującej precyzji po 30-­‐tu odpowiedziach w badaniu. W pracy, algorytm MRT-­‐MLP został zweryfikowany z użyciem dodatkowo zaimplementowanej procedury, dzięki której sprawdzono, czy dla wyznaczonego poziomu stosunku sygnału do szumu uzyskano założoną zrozumiałość. Praca składa się ze wstępu (rozdział 1), siedmiu rozdziałów tematycznych, podsumowania i bibliografii. W rozdziale 2 został przedstawiony test zrozumiałości mowy MRT. W rozdziale 3 zostały omówione testy adaptacyjne i procedura MLP wykorzystana w niniejszej pracy. W rozdziale 4 opisana jest ogólna funkcjonalność programów (głównego i weryfikacyjnego). Rozdział 5 przedstawia strukturę kodu i plików używanych w teście. W rozdziale 6 przedstawiony został interfejs testu oraz jego obsługa. Rozdziały 7 i 8 przedstawiają wyniki potwierdzające prawidłową implementację programu oraz analizę przebiegu testu. Rozdział 9 zawiera podsumowanie niniejszej pracy. 2. Warunki określające zrozumiałość mowy Esencją komunikacji międzyludzkiej jest przekazanie treści mową w zrozumiały sposób. Hałas i inne dźwięki potrafią komunikację tę skutecznie zakłócić. Na ulicy czy w barze, hałas muzyki, bądź rozmowy innych ludzi potrafią uniemożliwić zrozumienie przekazywanej mowy. 5 Na zrozumiałość mowy ma wpływ stosunek sygnału mowy do szumu (ang. signal-­‐to-­‐noise ratio -­‐ SNR), rodzaj szumu lub hałasu oraz warunki pogłosowe. W badaniach stosuje się różne rodzaje sygnału zakłócającego. W badaniach audiologicznych często wykorzystuje się tzw. "babble noise" stanowiący szum niezrozumiałych rozmów tłumu ludzi, natomiast w sytuacjach uwarunkowanych technicznie często modeluje się charakter szumu tak, aby w dziedzinie częstotliwości odzwierciedlał środowisko, dla którego chcemy określić zrozumiałość mowy. W niniejszej pracy jako zakłócenie w realizowanej adaptacyjnej wersji testu MRT (ang. modified rhyme test) zastosowano szum różowy. Opracowany program ma zastosowanie przy dowolnym rodzaju sygnału zakłócającego. 2.1. Test MRT W 1965 roku na zlecenie U. S. Air Force powstał test MRT (ang. modified rhyme test), opisany w pracy House'a i innych [2]. Test stosuje listę 300-­‐tu słów pogrupowanych po 6 wyrazów w 50 grup. Każdy zestaw 6-­‐ciu słów posiada podobną głoskę początkową lub końcową. Stąd pochodzi nazwa -­‐ test rymowany (ang. rhyme test). Lista użytych wyrazów, zaczerpnięta z pracy [2], została przedstawiona w Tabeli 1. Sześć słów znajdujących się w jednym rzędzie tworzy jedną grupę, w ramach której rozpoznaje się pojedyncze słowo. Test polega na wizualnym prezentowaniu osobie badanej grupy 6-­‐ciu wyrazów oraz odtworzeniu wypowiedzi lektora, w której na tle szumu wypowiadany jest wyraz, który należy rozpoznać. Przeprowadzenie prezentacji wszystkich słów zamieszczonych w Tabeli 1 pozwala na określenie procentowej zrozumiałości mowy TWS (ang. total word score) przy danym stosunku sygnału mowy do szumu. Z punktu widzenia procedury pomiarowej test MRT jest testem 6-­‐alternatywnego wymuszonego wyboru (6-­‐AFC -­‐ ang. alternative-­‐forced choice), należącym do rodziny metod alternatywnego wymuszonego wyboru n-­‐AFC (n alternatyw). Oznacza to, że prezentowanych jest 6 słów, z których wybór tylko jednego jest prawidłowy. Poziomem losowym tego testu, przy którym ma miejsce całkowity brak zrozumiałości jest poprawność odpowiedzi równa 16,7% (losowa szansa trafienia prawidłowej odpowiedzi 1
na poziomie 6). Oryginalny test MRT był testem tzw. "stałego bodźca"1) (ang. constant stimuli). Wypowiedzi lektora były odtwarzane kolejno przy 6-­‐ciu wartościach stosunku sygnału do szumu (+4, 0, -­‐4, -­‐8, -­‐12 i -­‐16 dB), co pozwalało na otrzymanie 6-­‐punktowej krzywej zrozumiałości. Wyznaczenie takiej krzywej jest pracochłonne. Zastosowanie procedury adaptacyjnej, opisanej w punkcie 3.1, pozwala na wyznaczenie dowolnego pojedynczego punktu na krzywej zrozumiałości, bez konieczności wyznaczania całej krzywej. 1) Test tzw. "stałego bodźca" polega na wykonywaniu wielokrotnych prezentacji przy tym samym stosunku sygnału do szumu i badaniu procentowego poziomu poprawnych odpowiedzi. 6 Tabela 1 -­‐ Pogrupowana lista słów użytych w teście MRT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 bat bean bun came cut dig duck fill hear kick late map page pass peace pill pun rave sake sad seep sing sud tab teach led sold jig kick book hark gale peel will foil fame ten pin sun rang tent sip top meat kit hot nest bust raw way bad beach bus cape cub dip dud fig heath king lake mat pane pat peas pick puff rake sale sass seen sit sum tan tear shed told wig lick took dark male reel hill coil same pen sin nun fang bent rip hop feat bit got vest just paw may back beat but cane cuff did dull fin heal kid lay math pace pang peak pip pup race save sag seethe sin sub tam tease red hold big sick shook mark tale feel kill boil came den tin gun gang went tip pop heat fit not west rust law say bass beam buff cake cup dim dub fizz heave kit lace man pay pad peal pig puck rate sane sack seed sip sun tang teal bed fold rig pick cook lark bale heel till oil name hen win fun bang dent dip cop seat sit pot test must jaw gay ban bead buck cave cud dill dug fib heat kiss lane mass pale path peat pin putt raze safe sap seem sick sup tack team fed gold pig wick hook park sale keel fill toil tame then din bun sang rent hip mop beat wit lot best gust thaw day bath beak bug case cuss din dun fit heap kill lame mad pave pan peach pit pub ray same sat seek sill sung tap teak wed cold fig tick look bark pale eel bill soil game men fin run hang sent lip shop neat hit tot rest dust saw pay 7 3. Testy adaptacyjne Procedury adaptacyjne pozwalają na dostosowywanie poziomu prezentacji bodźca podczas eksperymentu na podstawie odpowiedzi udzielanych przez osobę badaną [3]. Test przeprowadzany metodą adaptacyjną rozpoczyna się od wysokiej wartości sygnału, dla której osoba badana powinna udzielić prawidłowej odpowiedzi. Udzielanie prawidłowych odpowiedzi powoduje zmniejszanie poziomu natężenia bodźca, natomiast pojawianie się nieprawidłowych odpowiedzi prowadzi do jego zwiększania. W rezultacie, zgodnie ze stosowaną procedurą statystyczną, adaptacja prowadzi do poziomu prezentacji, przy którym ma miejsce założony procentowy poziom prawidłowych odpowiedzi. Prostą procedurą adaptacyjną jest procedura schodkowa (ang. adaptive staircase procedure) (Levitt, 1971). Po udzieleniu odpowiedzi, poziom bodźca jest zmniejszany lub zwiększany o wartość nazwaną krokiem, zależnie od tego, czy udzielona odpowiedz była poprawna czy też nie. Punkt, w którym wartość ulega zwiększeniu po poprzednim zmniejszeniu, bądź odwrotnie, nazywany jest punktem zwrotnym. Wynikiem tej procedury jest poziom bodźca, przy którym ma miejsce 50% poprawnych odpowiedzi, który wyznacza się jako wartość średnią punktów zwrotnych. W celu uzyskania innej docelowej wartości procentowej prawidłowych odpowiedzi niż 50%, można zmniejszać poziom prezentacji dopiero po dwóch lub trzech kolejno udzielonych prawidłowych !
!
odpowiedziach (adaptacja zmierza odpowiednio do ! ≅70,7% i ! ≅79,4% !
prawidłowych odpowiedzi). Procedury schodkowe należą do najprostszych procedur adaptacyjnych o stosunkowo małej efektywności. Na potrzeby tej pracy wybrano bardziej skomplikowaną procedurę MLP (ang. maximum-­‐likelihood procedure), za to o większej efektywności. 3.1. Procedura MLP Procedura adaptacyjna MLP (ang. maximum-­‐likelihood procedure) polega na znalezieniu krzywej psychometrycznej2), którą posługuje się osoba badana [1]. W przypadku testu, o którym mowa w niniejszej pracy, krzywa psychometryczna ma kształt dystrybuanty rozkładu normalnego przeskalowanej 1
tak, że jej dolna asymptota jest przy wartości 6 , a górna przy wartości 1. 1
Wartość 6 oznacza poziom losowy, a wartość 1 poziom całkowitej pewności przy wyborze odpowiedzi. Trzy hipotetyczne krzywe psychometryczne (A, B i C) są pokazane na rys. 1. Na przykład, osoba badana posługująca się krzywą "A", przy prezentacji na poziomie powyżej 10 dB udziela prawidłowych odpowiedzi z prawdopodobieństwem bliskim 1. Wraz ze zmniejszaniem poziomu, występują 2) Krzywa psychometryczna wyraża procent prawidłowych odpowiedzi w funkcji poziomu sygnału. 8 Rys. 1 -­‐ Przykładowy kształt trzech krzywych psychometrycznych określających przewidywaną zrozumiałość mowy dla danego poziomu SNR; algorytm MLP odczytuje wartości z przecięcia ustalonego poziomu TWS i wybieranych przez procedurę krzywych coraz większe trudności w rozpoznaniu wyrazu, aż do momentu, gdy wybór ten ma charakter całkowicie losowy, czyli prawdopodobieństwo udzielenia 1
poprawnej odpowiedzi wynosi 6, co dla krzywej "A" ma miejsce przy poziomie poniżej -­‐30 dB. Dystrybuanta stanowiąca krzywą psychometryczną testu ma dwa parametry -­‐ odchylenie standardowe σ, określające jej nachylenie, oraz wartość średnią μ, określającą przesunięcie wzdłuż osi poziomu. W niniejszej pracy zostało przyjęte σ=6,8 dB, zgodnie z [2] i [4]. Zadaniem procedury MLP jest zidentyfikowanie krzywej, wzdłuż której krzywej porusza się słuchacz. W związku z tym, zakłada się w programie istnienie 300 przesuniętych krzywych i zadaniem programu jest ustalenie zgodnie z największym prawdopodobieństwem, która z nich opisuje odpowiedzi osoby badanej. Dla wyjaśnienia w jaki sposób procedura MLP określa poziom sygnału prezentacji, rozważmy następujący przykład. Przypuśćmy, że krzywe A, B i C, pokazane na rys. 1, są krzywymi psychometrycznymi prawdopodobnie używanymi przez słuchacza. Dla dowolnej wartości poziomu bodźca x, mamy jakąś szanse udzielenia prawidłowej odpowiedzi i prawdopodobieństwo to jest określone przez A(x), B(x) i C(x). Zwykle, nie interesuje nas cała krzywa tylko konkretne punkty na niej leżące. Prawdopodobieństwo udzielenia poprawnej odpowiedzi w próbie i, na poziomie prezentacji bodźca xi, wynosi odpowiednio dla każdej krzywej A(xi), B(xi) i C(xi). Prawdopodobieństwo udzielenia niepoprawnej odpowiedzi jest dopełnieniem do jeden: 1 -­‐ A(xi), 1 -­‐ B(xi) i 1 -­‐ C(xi). W próbie i prezentujemy bodziec na poziomie xi i odnotowujemy, czy odpowiedź była poprawna (Zi = 1), czy też nie (Zi = 0). 9 Określenie łącznego prawdopodobieństwa dla krzywej A opisane jest wzorem (1): Prawdopodobieństwo dla krzywej A po próbie n: !
! !! (!! ) 1 − !(!! )
!(!) = !!!!
(1) !!!
xi -­‐ poziom sygnału do szumu prezentacji w próbie i Zi -­‐ przyjmuje wartość 1, jeśli w próbie i udzielono prawidłowej odpowiedzi, 0 w przeciwnym przypadku A(xi) -­‐ wartość krzywej psychometrycznej "A" dla SNR na poziomie xi Spośród wszystkich krzywych wybiera się tę krzywą, z którą po n prezentacjach związane jest największe prawdopodobieństwo. Z krzywej tej dla wartości przyjętej procentowej zrozumiałości mowy odczytuje się poziom do przyjęcia w następnej prezentacji bodźca. Przed uruchomieniem procedury wprowadzany jest docelowy poziom zrozumiałości. Program dysponuje 300-­‐ma krzywymi z parametrem przesunięcia μ w zakresie od -­‐20 dB do +10 dB co 0,1 dB. Po każdej odpowiedzi słuchacza, dla każdej krzywej wyznaczane jest prawdopodobieństwo wyrażone wzorem (1). Następnie, wybierana jest krzywą, dla której prawdopodobieństwo to jest największe i dla wartości wprowadzonej zrozumiałości przyjmuje się odpowiadający poziom sygnału, który jest użyty przy następnej prezentacji. Przyjmuje się arbitralnie określoną liczbę prezentacji. Program może zostać zakończony w dowolnym miejscu i jako wartość docelową przyjmuje się wartość poziomu sygnału otrzymanego po udzieleniu ostatniej odpowiedzi. 4. Struktura programu (funkcjonalna) Program udostępnia dwie podstawowe funkcjonalności: • test adaptacyjny -­‐ określający wartość poziomu sygnału do szumu bodźca dla podanego poziomu poprawności udzielanych odpowiedzi (TWS) • procedura weryfikacyjna -­‐ służy sprawdzeniu poprawności wyników otrzymanych w adaptacyjnej części testu, w celu stwierdzenia poprawności działania algorytmu 4.1. Test adaptacyjny Uruchomienie testu adaptacyjnego odbywa się poprzez uruchomienie głównego skryptu poprzez wykonanie polecenia main, po czym należy podać interesujący nas poziom TWS. Istnieje również możliwość uruchomienia testu poprzez funkcję: 10 startTest(tws) Parametry: • tws -­‐ poziom poprawności udzielanych odpowiedzi, który chcemy uzyskać określając poziom sygnału do szumu wypowiadanych przez lektora słów 4.2. Procedura weryfikacyjna W celu uruchomienia procedury weryfikacyjnej należy skorzystać z funkcji: startVerify(snr, n) Parametry: • snr -­‐ stosunek sygnału do szumu dla prezentowanych słów • n -­‐ ilość prób w teście weryfikacyjnym 5. Struktura plików i kodu Zgodnie z założeniami MATLAB, każda funkcja ma swój osobny plik nazwany tak, jak funkcja w nim zdefiniowana. W folderze samples, znajdują się próbki wypowiadanych przez lektora kwestii oraz szum różowy nagrany z generatora. Lista słów jest zapisana w pliku w formacie arkusza kalkulacyjnego Excel wordlist.xlsx. 5.1. Plik z listą słów Zestaw słów wczytywany jest z arkusza kalkulacyjnego Excel (plik wordlist.xlsx). Każdy wiersz to jedna grupa wyrazów, a sześć kolejnych nieparzystych kolumn to kolejne wyrazy w danej grupie. Co drugi wiersz jest obecnie nadmiarowy, możliwy do wykorzystania w rozwoju programu, rozszerzonej statystyki. 11 Rys. 1 -­‐ Lista słów w pliku wordlist.xlsx widoczna z poziomu Microsoft Excel 5.2. Pliki z nagraniami lektora W folderze samples znajdują się nagrania lektora. Dla każdego wyrazu z widocznej powyżej listy musi istnieć plik z nagraniem dźwiękowym o nazwie, jak słowo, z rozszerzeniem .wav i w takim właśnie formacie. 5.3. Pliki z kodem programu createSNRtoTfigure.m Funkcja tworzy okno z wykresem przebiegu testu, podaje statystykę: liczba wykonanych prezentacji/liczba zadanych prób, ustawiony poziom TWS w procentach, otrzymany próg w dB. Argumenty wejściowe: • snrvalues -­‐ tablica wartości wyliczonego stosunku sygnału do szumu prezentowanej próbki dźwiękowej po próbie o danym indeksie 12 •
•
•
trials -­‐ liczba wykonanych prezentacji tws -­‐ ustawiony poziom TWS threshold -­‐ poziom SNR uzyskany po ostatniej próbie getRandomSet.m Funkcja zwraca losowy zestaw z listy wyrazów, dokonuje wymieszania kolejności prezentacji wyrazów oraz wybiera jedno ze słów w zestawie. Argumenty wejściowe: • wordList -­‐ lista wyrazów w formacie zwracanym przez loadWords() Argumenty wyjściowe: • set -­‐ tablica zawierająca cały zestaw z już wymieszaną kolejnością wyrazów • setNo -­‐ liczba porządkowa wylosowanego zestawu • word -­‐ wylosowany wyraz • wordNo -­‐ liczba porządkowa wyrazu w wymieszanym zestawie • wordID -­‐ identyfikator wyrazu, nazwa pliku z wyrazem bez rozszerzenia .wav, tożsame z word loadWords.m Funkcja wczytuje zestawy słów z arkusza kalkulacyjnego Excel z pliku wordlist.xlsx. Argumenty wyjściowe: • wordList -­‐ lista wyrazów main.m Skrypt uruchamiający test adaptacyjny. Prosi o wpisanie poziomu TWS, a następnie uruchamia funkcję startTest() z wprowadzonym poziomem TWS. maximumLikelihood.m Funkcja zwraca poziom SNR na podstawie algorytmu maximum-­‐likelihood. Argumenty wejściowe: • mldata -­‐ struktura zawierająca dane algorytmu maximum-­‐likelihood (patrz startTest.m) Argumenty wyjściowe: • snrLevel -­‐ poziom SNR odczytany z funkcji psychometrycznej dla krzywej o największym prawdopodobieństwie maximumLikelihoodUpdate.m Funkcja aktualizująca wiedzę algorytmu maximum-­‐likelihood wywoływana po udzieleniu odpowiedzi przez osobę badaną. Wylicza prawdopodobieństwo 13 dla każdej krzywej psychometrycznej na podstawie wzoru podanego w opisie procedury MLP. Argumenty wejściowe: • mldata -­‐ struktura danych dla algorytmu maximum-­‐likelihood, opisana w startTest.m • snr -­‐ poziom SNR, przy którym wypowiedź lektora była prezentowana • result -­‐ wynik w postaci tekstowej, "correct" -­‐ jeśli odpowiedź była prawidłowa, "wrong" -­‐ w przeciwnym wypadku Argumenty wyjściowe: • newSnr -­‐ poziom SNR po aktualizacji danych MLP • probabilityList -­‐ zaktualizowana lista prawdopodobieństw dla każdej krzywej psychometrycznej playWord.m Funkcja odtwarza nagranie lektora dla danego wyrazu w sposób blokujący -­‐ program się zatrzymuje aż do zakończenia odtwarzania próbki. Wyliczana jest wartość RMS dBFS dla szumu i prezentowanego nagrania. Na tej podstawie ustawiana jest głośność szumu na poziomie noiseLevel i odpowiednio do niej dopasowywany poziom sygnału nagrania lektora, zgodnie z podanym snr. W przypadku, gdy dla danego poziomu SNR wartość sygnału przekroczy maksymalną dopuszczalną wartość, zostanie wyświetlone ostrzeżenie o przesterowaniu sygnału. Argumenty wejściowe: • word -­‐ słowo, dla którego chcemy odtworzyć odpowiadające nagranie (nazwa odtwarzanego pliku: samples/xxx.wav, gdzie xxx to w/w słowo) • snr -­‐ poziom sygnału do szumu SNR, przy którym kwestia lektora zostanie wypowiedziana W funkcji definiowana jest wartość noiseLevel, którą możemy modyfikować. Określa ona poziom szumu w dBFS. psychometricFunc.m Funkcja opisuję krzywą psychometryczną. Zwracana jest wartość prawdopodobieństwa udzielenia prawidłowej odpowiedzi dla danego poziomu sygnału do szumu przy założeniu, że osoba badana używa podanej krzywej psychometrycznej. Argumenty wejściowe: • count -­‐ całkowita liczba krzywych psychometrycznych • diff -­‐ odległość między krzywymi • curveNo -­‐ liczba porządkowa wybranej krzywej 14 • snr -­‐ poziom SNR, dla którego chcemy otrzymać wynik Argumenty wyjściowe: • probabilityValue -­‐ wartość prawdopodobieństwa udzielenia prawidłowej odpowiedzi dla podanej krzywej psychometrycznej i poziomu SNR psychometricFuncInv.m Funkcja opisuję odwrotną do funkcji psychometrycznej. Na podstawie poziomu TWS otrzymujemy poziom SNR. Argumenty wejściowe: • count -­‐ całkowita liczba krzywych psychometrycznych • diff -­‐ odległość między krzywymi • curveNo -­‐ liczba porządkowa wybranej krzywej • tws -­‐ poziom TWS, dla którego chcemy otrzymać wynik Argumenty wyjściowe: • snrLevel -­‐ wartość SNR dla danego poziomu TWS na podanej krzywej psychometrycznej questionUI.m Plik ten zawiera funkcje opisujących działanie okna dialogowego, w którym widzimy prezentowane słowa oraz dokonujemy wyboru jednego z nich. Wygląd okna jest zapisany w pliku questionUI.fig wygenerowanym przez edytor GUIDE znajdujący się w środowisku MATLAB. Obsługując okno z zewnątrz, wykorzystujemy tylko funkcję questionUI() opisaną niżej. Dalsze funkcję wykorzystywane są wewnętrznie. questionUI(varargin) Funkcja, którą wywołujemy, aby komunikować się z okienkiem. Jej zawartość została wygenerowana automatycznie przez GUIDE i zgodnie z zaleceniem nie była modyfikowana. Przy wywołaniu możemy podać różną liczbę parametrów, w zależności od działania jakie chcemy uzyskać. Przykładowe scenariusze wywołania funkcji: • chcemy wyświetlić okno z sześcioma wyrazami (kolejno: went, rent, sent, tent, dent, bent) questionUI('a1', 'went', 'a2', 'rent', 'a3', 'sent', 'a4', 'tent', 'a5', 'dent', 'a6', 'bent'); • chcemy otrzymać odpowiedź użytkownika na wyświetlone wcześniej pytanie w postaci liczby przypisanej dla danego wyrazu podczas jego 15 •
•
prezentacji answer = questionUI('waitforanswer', 'yes'); chcemy podświetlić błędną odpowiedź na czerwono questionUI('bad', numer_blednej_odpowiedzi); chcemy podświetlić prawidłową odpowiedź na zielono questionUI('good', numer_prawidlowej_odpowiedzi); buttonsColor(hand, color) Używana wewnętrznie, nadaje wszystkim przyciskom kolor podany w drugim parametrze color, hand to uchwyt do okna. questionGUI_OpeningFcn Wywoływana przy każdorazowym wykonaniu questionUI(). Wykonuje polecenia przekazywane poprzez questionUI(varargin), których działanie jest opisane wyżej w sekcji opisującej właśnie tę funkcję. askClose() Pytająca o potwierdzenie zamknięcia, wywoływana gdy test jeszcze trwa, a użytkownik zdecyduje się na zamknięcie okna. Zwraca false, jeśli zrezygnuje z przerywania testu, true w przeciwnym wypadku. questionGUI_OutputFcn Automatycznie wygenerowana, przekazująca na wyjście ustawioną wartość. Funkcje answerbuttonX_Callback Funkcje wywoływane w przypadku naciśnięcia, któregoś z 6-­‐ciu przycisków z odpowiedziami. Ustawia wartość wyjściową zgodną z dokonanym wyborem. questionGUI_WindowKeyPressFcn Wzywana, gdy wciśniemy jakiś klawisz. Jeśli oczekujemy na odpowiedź, wciśnięcie klawisza 1-­‐6 zostanie uznane, jako wybranie odpowiedzi. Dodatkowo mamy możliwość przerwania testu za pomocą klawisza Escape. questionGUI_CloseRequestFcn Wzywana, gdy próbujemy zamknąć okno. Jeśli program oczekuje na odpowiedź, decyzja będzie wymagała potwierdzenia. W przeciwnym wypadku, okno zostanie zamknięte od razu. 16 randomizationTest.m Wykonuje sprawdzenie losowości. Przeprowadza symulację miliona testów, w których każdy zawiera 30 losowo wybranych grup składających się z 6-­‐ciu losowo ułożonych, jeśli chodzi o kolejność, wyrazów. Wszystkie funkcje losujące są identyczne, jak w przypadku prawdziwego testu. Argumenty wejściowe: • wordlist -­‐ lista wyrazów, w formacie zwracanym przez loadWords() Argumenty wyjściowe: • groupChosen -­‐ macierz pokazująca ile razy grupa o danym indeksie została wybrana • wordOnPosition -­‐ macierz pokazująca ile razy słowo o danym indeksie (rzędy 1-­‐300) zostało umieszczone na danej pozycji (kolumny 1-­‐6) • wordChosen -­‐ tablica 6-­‐ciu liczb określających ile razy każda z pozycji dla prawidłowej odpowiedzi została wybrana startTest.m Rozpoczyna adaptacyjną część testu zrozumiałości mowy. W tej funkcji zapisany jest cały przebieg testu. Na początku ustawiane są parametry maximum-­‐
likelihood procedure oraz inicjalizowane zmienne, tabele, macierze. Po trialsEnd próbach, prezentowany jest wykres, jak zmieniało się oszacowanie poziomu bodźca do szumu w zależności od próby. Wyniki zapisywane są zarówno w pliku CSV, jak i zwracane przez funkcję. Argumenty wejściowe: • tws -­‐ wartość parametru TWS, dla którego chcemy uzyskać wynik Argumenty wyjściowe: • results -­‐ tabela z kolejnymi oszacowaniami; ostatni wynik to wynik całego testu startVerify.m Uruchamia procedurę weryfikacji wyników. Po otrzymaniu wyników z adaptacyjnej części testu, możemy sprawdzić czy otrzymane przez nas wyniki są prawidłowe, tj. na otrzymanym poziomie prezentacji czytanego tekstu lektora do szumu uzyskujemy wynik procentowy zgodny z TWS, dla którego przeprowadzaliśmy część adaptacyjną testu. Prawidłowe odpowiedzi są zliczane i na końcu, na konsolę wyświetlany jest procentowy udział prawidłowych odpowiedzi oraz parametry wejściowe. Argumenty wejściowe: • snr -­‐ wartość stosunku sygnału do szumu prezentowanych próbek • n -­‐ liczba prób, dla jakiej chcemy uzyskać wynik 17 writeResultsCsv.m Zapisuje przebieg testu do pliku CSV. Argumenty wejściowe: • rowArray -­‐ tablica z kolejnymi wpisami Argumenty wyjściowe: • rowsWritten -­‐ liczba zapisanych wyników 6. Działanie programu Program wykonuje adaptacyjny test zrozumiałości mowy oraz umożliwia weryfikację działania algorytmu na podstawie otrzymanych wyników. Poniżej znajduje się opis działania obu tych funkcjonalności oraz przedstawione są możliwości wprowadzania zmian w przebiegu testu. 6.1. Test adaptacyjny Test ten umożliwia otrzymanie poziomu bodźca dla zadanej procentowej poprawności TWS (Total Word Score). Poniżej zaprezentowane są możliwości konfiguracji testu oraz jego przebieg. Możliwości konfiguracyjne W pliku startTest.m możemy edytować strukturę zawierającą ustawienia dla procedury MLP. mlData.count -­‐ ilość hipotetycznych krzywych psychometrycznych mlData.diff -­‐ różnica między kolejnymi krzywymi psychometrycznymi mlData.tws -­‐ wartość TWS, domyślnie przepisywana z parametru funkcji trialsEnd -­‐ ilość prób, po której test zostanie zakończony Z punktu widzenia procedury MLP istotny jest również kształt funkcji psychometrycznej. Jest on opisany w pliku psychometricFunc.m. Należy również określić funkcję odwrotną w pliku psychometricFuncInv.m. Domyślna funkcja psychometryczna to dystrybuanta rozkładu 1
normalnego przeskalowana tak, aby osiągała wartości od 6 do 1. Podając wartość stosunku sygnału do szumu otrzymujemy prawdopodobieństwo zrozumienia słowa dla podanej krzywej. Funkcja odwrotna umożliwia nam odczytanie stosunku sygnału do szumu, jaki powinniśmy użyć w celu osiągnięcia danego poziomu TWS. Domyślnie użyta funkcja psychometryczna oparta jest o dystrybuantę rozkładu normalnego posiadającej parametry sigma, czyli nachylenie funkcji oraz mi, czyli przesunięcie, które należy określić w plikach psychometricFunc.m i psychometricFuncInv.m. Domyślne ustawienia tych parametrów: 18 mi = -­‐2/3 * count * diff + numer_krzywej * diff Powyższy wzór wynika z faktu, iż chcemy uzyskać zakres -­‐20 do +10 dB w odstępie 0,1 dB, co przy domyślnych parametrach (count = 300, diff = 0,1) daje: -­‐2/3 * count * diff = -­‐2/3 * 300 * 0,1 = -­‐20 Do powyższego wyrażenia należy dodać numer krzywej pomnożony przez odstęp między kolejnymi hipotetycznymi krzywymi, co pozwala nam wybrać jedną z (domyślnie) 300tu krzywych znajdujących się w odstępie 0,1 dB: + numer_krzywej * diff sigma -­‐ wartość sigmy rozkładu normalnego, czyli nachylenia funkcji psychometrycznych, domyślnie użyta jest wartość σ=6,8 dB, zgodnie z pracą [4] W pliku playWord.m można zmienić poziom szumu, zmieniając głośność prezentacji dźwiękowych bez ingerencji w stosunek sygnału do szumu, za pomocą zmiennej noiseLevel. Obsługa programu Aby uruchomić test adaptacyjny, uruchamiamy główny skrypt (main), który prosi nas o wpisanie żądanej wartości TWS. Test ten możemy również uruchomić ręcznie, za pomocą funkcji startTest(TWS), gdzie TWS, to zapisany dziesiętnie ułamek odpowiadający interesującej nas wartości tego parametru. 1
Prawidłowe wartości TWS zawierają się w przedziale (6; 1) 1
-­‐ losowe wybieranie odpowiedzi 6
1 -­‐ brak błędnych odpowiedzi 19 Rys. 2 -­‐ Sposób prezentacji zestawu wyrazów osobie badanej W czasie jednego przebiegu testu osobie badanej prezentowane jest domyślnie 30 losowo wybranych (spośród 50) zestawów słów. Wyrazy są prezentowane w dwóch kolumnach, po trzy słowa w każdej, tak jak jest to widoczne na rys. 2. Kolejność słów jest losowa, w celu uniknięcia wpływu faworyzacji, którejkolwiek z pozycji przez osobę badaną. Po wyświetleniu propozycji odpowiedzi, odtwarzana jest próbka dźwiękowa na tle szumu. Próbka zawiera kwestię wypowiadaną przez lektora "Circle the xxx again", gdzie xxx to słowo, które należy zaznaczyć. Osoba badana wybiera odpowiedź za pomocą klawiatury naciskając odpowiadający klawisz -­‐ od 1 do 6, bądź za pomocą myszki klikając na wybraną odpowiedź. Po udzieleniu odpowiedzi, osoba badana jest informowana, czy wybór był prawidłowy na zasadzie sprzężenia zwrotnego. W wypadku zaznaczenia prawidłowej odpowiedzi -­‐ pole zmienia kolor na zielony, natomiast w przypadku błędnej -­‐ wyraz zostaje podświetlony na czerwono. Dodatkowo, pole z prawidłową, niewybraną odpowiedzią, zmienia kolor na zielony. Osoba badana ma sekundę na zobaczenie wyniku, po czym prezentowane są kolejne wyrazy i odtwarzana kolejna próbka dźwiękowa. 20 Rys. 3 -­‐ Zaznaczona została prawidłowa odpowiedź Rys. 4 -­‐ Została zaznaczona nieprawidłowa odpowiedź 21 Działanie programu można przerwać w trakcie działania testu zamykając okno, bądź naciskając klawisz Escape. Wyniki Po zadanej liczbie prezentacji (domyślnie 30), program kończy działanie i wyświetla przebieg testu. Prezentowany jest wykres, jak szacowanie poziomu sygnału do szumu dla zadanego TWS ulegało zmianie wraz z kolejnymi prezentacjami. Wyświetlana jest również liczba wykonanych prób, liczba zadanych prób, ustalony poziom TWS oraz otrzymany poziom SNR po ostatniej prezentacji. Rys. 5 -­‐ Przykładowy wynik działania jednego przebiegu testu Cały przebieg testu zwracany jest również przez funkcję startTest(). Jako wynik otrzymujemy tablicę z 30-­‐toma wartościami stosunku sygnału do szumu po danej próbie. 22 6.2. Procedura weryfikacyjna Stworzenie prawidłowo działającego testu adaptacyjnego wymagało stworzenia procedury weryfikacyjnej, która pozwala na sprawdzenie otrzymywanych wyników, czy program prawidłowo realizuje test zrozumiałości mowy. Istotą procedury weryfikacyjnej jest to, aby wybrany na początku poziom zrozumiałości mowy TWS użyty w teście adaptacyjnym był zbliżony do wyniku poprawności (procentowo wyrażonej liczbie poprawnie udzielonych odpowiedzi) otrzymanej w teście weryfikacyjnym, do którego wprowadziliśmy poziom SNR otrzymany z testu adaptacyjnego. Przebieg procedury weryfikacyjnej jest podobny do testu adaptacyjnego, z tą różnicą, że poziom natężenia bodźca nie ulega zmianie i zliczane są prawidłowo udzielone odpowiedzi, w celu określenia zrozumiałości mowy na podanym poziomie SNR. Aby zweryfikować działanie algorytmu trzeba wykonać wielokrotnie test adaptacyjny dla wybranych poziomów TWS. Należy wyciągnąć średnią wartość z otrzymanych wyników, niezależnie dla każdego poziomu TWS. Następnie, należy wprowadzić te dane do procedury weryfikacyjnej, dzięki której można stwierdzić czy uzyskany w teście adaptacyjnym poziom stosunku sygnału do szumu faktycznie pozwala na zrozumiałość mowy na zadanym poziomie TWS. Potwierdzenie poprawności działania algorytmu jest przedstawione w następnym rozdziale. Poniżej przedstawiony jest sposób wywoływania procedury weryfikacyjnej oraz przykładowy wynik jej działania. W celu uruchomienia testu weryfikacyjnego wywołujemy funkcję startVerify(snr, n), gdzie snr to otrzymany z testów adaptacyjnych poziom stosunku sygnału do szumu, a n to liczba prób jaką chcemy wykonać w teście weryfikacyjnym. Na rys. 5, dla TWS = 0.8 otrzymaliśmy poziom SNR = -­‐2,40dB, za pomocą procedury weryfikacyjnej, możemy sprawdzić, jaki poziom zrozumiałości mowy uzyskamy dla tego poziomu SNR. Przykładowy wynik działania procedury weryfikacyjnej: >> startVerify(-2.40, 100)
Test weryfikacyjny
Poziom SNR: -2.40 dB
Ilość prób: 100
Poprawność: 78.0%
7. Testowanie Badania przeprowadzono dla przyjętych poziomów zrozumiałości TWS 41,7% (niski poziom), 65,1% (sweetpoint3)) oraz 90% (wysoki poziom). Jest to podzbiór punktów użytych w pracy [4]. Dla każdej wartości TWS 3) sweetpoint -­‐ wartość, przy której uzyskuje się najmniejszą wartość odchylenia standardowego w wynikach pomiarów [1] 23 przeprowadzono 20 powtórzeń testu adaptacyjnego składającego się z 30-­‐tu prezentacji. Tabela 2 przedstawia wyniki testu adaptacyjnego oraz ich wartość średnią wraz z odpowiadającym jej odchyleniem standardowym. Tabela 2 -­‐ Wyniki otrzymane w 20 przebiegach testu na trzech poziomach zrozumiałości TWS. Dolna część tabeli (tło w kolorze szarym) prezentuje wartość średnią ze wszystkich przebiegów dla danego TWS, odchylenie standardowe, wynik otrzymany w procedurze weryfikacyjnej oraz przedział procentowy zrozumiałości odpowiadający ±σ TWS = 41,7% TWS = 65,1% TWS = 90% SNR [dB] SNR [dB] SNR [dB] 1 -­‐10,66 -­‐6,80 0,59 2 -­‐7,66 -­‐5,91 -­‐0,21 3 -­‐8,77 -­‐5,51 1,89 4 -­‐10,96 -­‐6,21 -­‐1,81 5 -­‐9,36 -­‐6,71 0,59 6 -­‐11,96 -­‐7,11 4,19 7 -­‐8,26 -­‐6,01 2,09 8 -­‐12,16 -­‐7,30 0,59 9 -­‐11,66 -­‐6,61 1,69 10 -­‐12,36 -­‐6,01 -­‐3,71 11 -­‐10,26 -­‐7,20 -­‐1,81 12 -­‐10,96 -­‐8,30 -­‐0,21 13 -­‐10,23 -­‐5,70 -­‐0,71 14 -­‐8,76 -­‐9,20 -­‐3,91 15 -­‐9,06 -­‐8,30 2,49 16 -­‐10,76 -­‐5,50 -­‐0,71 17 -­‐10,16 -­‐9,80 -­‐2,41 18 -­‐10,46 -­‐9,20 -­‐3,71 19 -­‐12,06 -­‐6,10 -­‐1,81 20 -­‐9,26 -­‐7,20 -­‐3,11 m -­‐10,29 dB -­‐7,04 dB -­‐0,50 dB σ w4) pz5) 1,38 dB 40% 36% -­‐ 47% 1,30 dB 67% 59% -­‐ 71% 2,29 dB 89% 83% -­‐ 95% Dla każdej wartości poziomu wyznaczonej jako wartość średnia m przeprowadzono test prezentujący 100 zadań. W ten sposób uzyskano procent prawidłowych odpowiedzi weryfikujący czy wyznaczony w procedurze adaptacyjnej poziom odpowiada wartościom TWS. Uzyskane wyniki mieszczą się w przedziale procentowym wyznaczonym jako ±σ (ostatni wiersz Tabeli 2), co świadczy o prawidłowej implementacji testu MRT. 4) wynik otrzymany w procedurze weryfikacyjnej 5) przewidywana zrozumiałość -­‐ przedział procentowy zrozumiałości; wartości końca przedziału zostały odczytane z funkcji psychometrycznej na podstawie wartości średniej i standardowego odchylenia (±σ)
24 8. Analiza przebieg testu adaptacyjnego Na rys. 6, 8 i 10 przedstawiono wartości maksymalną, średnią (linia pogrubiona) i minimalną stosunku sygnału do szumu w funkcji liczby prezentacji w teście adaptacyjnym. Linia pozioma w kolorze czarnym zaznacza końcową wartość testu (n = 30), którą przyjęto jako wartość asymptotyczną. Na rys. 7, 9 i 11 przedstawiono wartość odchylenia standardowego w funkcji liczby prezentacji. Rys. 6 i 7 odnoszą się do poziomu TWS = 41,7%, rys. 8 i 9 do TWS = 65,1%, natomiast rys. 10 i 11 do TWS = 90%. Można zauważyć, że po 10-­‐tej prezentacji w przypadku wszystkich wartości TWS średnia wartość odbiegała od wartości asymptotycznej o mniej niż 0,8 dB przy odchyleniach standardowych na poziomie 3,7-­‐3,9 dB. Po 20-­‐tej próbie uzyskano średnie różniące się o mniej niż 0,5 dB przy odchyleniu standardowym nieprzekraczającym 2,5 dB dla TWS 41,7%, 2,0 dB dla 65,1% oraz 3,4 dB dla 90%. Warto zaznaczyć, że od 12-­‐tej próby wartość odchylenia standardowego dla TWS = 65,1% jest najniższa, a otrzymane wartości średnie już od 5-­‐tej prezentacji różnią się o mniej niż 0,5 dB od wartości końcowej. Świadczy to o dużej efektywności testu przy tym poziomie TWS. W przypadku TWS = 65,1% odchylenie standardowe na poziomie mniejszym niż 2,0 dB uzyskuje się już przy 20-­‐tej prezentacji, a zatem test może zostać w tym przypadku skrócony do 20-­‐tu prezentacji. Skracając test do 20-­‐tu prezentacji przy TWS = 41,7% i 90% prowadzi do odchylenia standardowego na poziomie nieprzekraczającym (odpowiednio): 2,8 dB i 3,5 dB. 25 Rys. 6 -­‐ Maksymalna, średnia i minimalna wartość poziomu bodźca dla TWS 41,7% Rys. 7 -­‐ Wartość odchylenia standardowego dla TWS 41,7% 26 Rys. 8 -­‐ Maksymalna, średnia i minimalna wartość poziomu bodźca dla TWS 65,1% Rys. 9 -­‐ Wartość odchylenia standardowego dla TWS 65,1% 27 Rys. 10 -­‐ Maksymalna, średnia i minimalna wartość poziomu bodźca dla TWS 90% Rys. 11 -­‐ Wartość odchylenia standardowego dla TWS 90% 28 9. Podsumowanie Tematem niniejszej pracy była realizacja testu MRT (ang. modified rhyme test) [2] w formie adaptacyjnej przy wykorzystaniu procedury adaptacyjnej MLP (ang. maximum-­‐likelihood procedure) [1]. Użycie procedury MLP pozwoliło na efektywne uzyskanie wyników o satysfakcjonującej dokładności. Środowisko MATLAB, poza udostępnieniem szeroko rozwiniętych narzędzi matematycznych i statystycznych, umożliwiło stworzenie przejrzystego interfejsu na poziomie komunikacji z użytkownikiem. Został stworzony interfejs graficzny prezentujący zadania, odtwarzający próbki dźwiękowe na tle szumu oraz okno pokazujące przebieg testu po jego ukończeniu w formie wykresu. Aby potwierdzić poprawną implementację programu, przeprowadzono szereg testów z użyciem opracowanej procedury adaptacyjnej, których dokładność została oszacowana przez procedurę weryfikacyjnej. Wyniki pokazały, że program prawidłowo realizuje postawione w temacie pracy zadanie. 10. Bibliografia [1] Green, D.M., 1990. Stimulus selection in adaptive psychophysical procedures. J. Acoust. Soc. Amer. 87, 2662–2674. [2] House, A.S., Williams, C.W., Hecker, M.H.L., Kryter, K.D., 1965. Articulation testing methods: Consonant differentiation with a closed-­‐response set. J. Acoust. Soc. Amer. 37, 158–166. [3] Ozimek, E., 2002. Dźwięk i jego percepcja. Aspekty fizyczne i psychoakustyczne. PWN Warszawa-­‐Poznań, 379-­‐403. [4] Żera, J., 2004. Speech intelligibility measured by adaptive maximum-­‐
likelihood procedure. Speech Communication 42, 313-­‐328. 29 

Podobne dokumenty