ANALIZA SEMANTYCZNA OBRAZU I DŹWIĘKU (ASOD)
Transkrypt
ANALIZA SEMANTYCZNA OBRAZU I DŹWIĘKU (ASOD)
ANALIZA SEMANTYCZNA OBRAZU I DŹWIĘKU (ASOD) LABORATORIUM 4 - STEROWANIE INTERFEJSEM UŻYTKOWNIKA ZA POMOCĄ KOMEND GŁOSOWYCH. 1. ZADANIA Tematem laboratorium jest uzupełnienie gry „Snake” w sposób umożliwiający grę przy pomocy komend głosowych. Aplikacja ma obsługiwad cztery podstawowe komendy – góra, dół, lewo, prawo, sprawiające, że wąż odwraca się w żądanym kierunku. Sposób działania aplikacji jest następujący: 1. 2. 3. Ustawienia programu: Należy wybrad używany mikrofon (1) oraz częstotliwośd próbkowania 44.1 kHz, sygnał mono, 16 bitowy (2), po czym nacisnąd przycisk rozpoczęcia analizy (3). Uczenie klasyfikatora komend głosowych – za pomocą przycisków 4, 5, 6, 7 („Lewo”, „Prawo”, „Góra”, „Dół”: Po naciśnięciu przycisku odpowiadającego określonemu kierunkowi należy wypowiedzied to słowo do mikrofonu. Jeśli wyświetli się pasek energii sygnału (12) i spectrum (11), oznacza to, że analiza została przeprowadzona poprawnie a dana komenda została jednorazowo dodana do bazy komend. Dana komenda może byd dodawana do bazy wielokrotnie co sprawi, że będziemy dysponowad większą ilością modeli danego słowa. Cepstrum (10) poprawnie wyświetlane będzie dopiero po dodaniu drugiej komendy do słownika, gdyż jego wartości normalizowane są względem wariancji i średniej zapisanych ramek sygnału. Gra: Jeśli nie został wciśnięty żaden z przycisków (4, 5, 6, 7), to wypowiedziane do mikrofonu słowo zostanie zinterpretowane, a wynik analizy podany w polu górnym prawym rogu ekranu („L” – lewo, „P” – prawo, „G” – góra, „D” – dół, pole W). Wężyk podejmie akcję wskazaną przez określoną komendę. Jeśli wciśnięty zostanie przycisk 8 („Restart”) gra zostanie zresetowana (ale oczywiście deskryptory pozostaną bez zmian). Zadaniem studenta jest realizacja algorytmu rozpoznawania słowa mając deskryptory ramek aktualnie wypowiedzianego słowa i deskryptory zapisane podczas procesu trenowania. Proces ma odbywad się przy pomocy algorytmu Dynamic Time Warping (DTW). 2. ZASADA DZIAŁANIA APLIKACJI (ELEMENTY JUŻ ZAIMPLEMENTOWANE). Całe przetwarzanie znajduje się w pliku SoundAnalysis.cpp. a. Ramki sygnału – sygnał dzielony jest na nakładające się na siebie ramki. W załączonej aplikacji wybierane są ramki o długości 20ms z odstępem pomiędzy kolejnymi ramkami 10ms. Wynika z tego, że stopieo nałożenia się na siebie ramek wynosi 50%. b. Detekcja mowy – ustalona na podstawie energii ramek. Jeśli odpowiednia ilośd kolejnych ramek będzie miała energię powyżej określonego progu (stała NOISE_THRESHOLD), to sygnał uznawany jest za głos (realizacja w funkcji AddBuffer). c. Tworzenie deskryptora MFCC (funkcja ProcessWindow) – deskryptor pojedynczej ramki tworzony jest poprzez: wymnożenie jej przez okno Hamminga, wyznaczenie spectrum, transformację spectrum w dziedzinę logarytmiczną, wyznaczenie cepstrum, wybranie pierwszych elementów cepstrum (ich liczbę, czyli wielkośd deskryptora określa stała DESCRIPTOR_SIZE). z cepstrum usuwana jest składowa stałą i zastępowana jest rzeczywistą energią ramki wyznaczoną po normalizacji zakresu energii słowa. d. Model słowa (obiekt WordDescriptor) jest zestawem deskryptorów poszczególnych ramek. e. Porównywanie modelu słowa z aktualnie wypowiedzianym słowem – ma odbywad się za pomocą algorytmu Dynamic Time Warping (DTW). 3. UWAGI SZCZEGÓŁOWE: Należy uzupełnid klasę SpeechRecognition, a dokładniej funkcję RecognizeWord. Model właśnie wypowiedzianego słowa znajduje się w zmiennej actual_word. W zmiennej words[slowo] w której zapisanych jest MAX_WORDS słów znajdują się zapisane modele słów (z przypisanymi komendami). Jeśli któregoś słowa nie ma w bazie, to zmienna words[słowo].descriptor równa jest NULL. Należy ten warunek sprawdzad podczas rozpoznawania. Dwa deskryptory mogą byd ze sobą porównywane poprzez funkcję CalculateDistance. Wybór wersji algorytmu DTW jest dowolny. Funkcja rozpoznawania (RecognizeWord) powinna zwracad symbol rozpoznanego słowa (‘G’, ‘D’, ‘L’, ‘P’). 4. Uwagi Domyślny próg szumu ustawiony jest tak, aby działał w miarę dobrze przy próbkowaniu 44kHz/16 bitów (i ten tryb jest polecany do analizy). Program ma działad na tyle dobrze aby umożliwid zdobycie przynajmniej kilku punktów w grze. Algorytm można „ulepszyd” np. poprzez: podzielenie kosztu najkrótszej ścieżki przez liczbę ramek dłuższego porównywanego słowa, wprowadzenie dodatkowego przejścia kosztu w poziomie i w pionie, wprowadzenie możliwości ominięcia elementu, zmianę liczby analizowanych cech cepstralnych (DESCRIPTOR_SIZE).