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).

Podobne dokumenty