1. Opis zadania
Celem projektu było stworzenie algorytmu rozpoznającego rozmówcę. Wybrano metodę niezależną od tekstu (text independent),
czyli rozpoznającą rozmówcę niezależnie od wypowiadanych sentencji. Głównym problemem przy tym podejściu jest wyodrębnienie charakterystycznych
cech danego rozmówcy.
2. Przyjęta metoda rozwiązania
Cechy głosu ludzkiego
Jako podstawowe cechy charakteryzujące głos ludzki wybrano:
- Częstotliwość dominującą (Fd) - jako częstotliwość, na ktorej fala dźwiękowa ma największą amplitudę
- Częstotliwość średnią (Fśr) - będącą uśrednieniem wszystkich amplitud fali dźwiękowej
- Szerokość pasma (B)- jako rozpiętość od najmniejszej do największej częstotliwości na jakiej wystepuje dźwięk
Metoda wyodrębniania cech
Pierwszym krokiem do analizy sygnału było przeprowadzenie szybkiej transformaty Fouriera
(Fast Fourier Transform - FFT). Pasmo dźwięku o szerokości
22050 Hz zostało tym samym opisane za pomocą 1024 wartości amplitud. Transformata była liczona w odstepach co 20 ms na sygnale podawanym "na żywo" z mikrofonu.
"Mała" średnia była liczona z każdych 50 próbek a "duża" z 16 "małych", co daje odpowiednio interwały 1 i 16 sekund. Do każdej "dużej" średniej wyliczane
były dodatkowo wartości odchylenia średniego (od "małych" średnich). Przy wyliczaniu częstotliwości dominującej oraz szerokości pasma brane były pod uwagę
tylko częstotliwości, na których sygnał przekroczył progową wartość amplitudy równą 0.08 (w skali od 0 do 1).
Z zebranych cech mówiącego tworzony był
model rozmówcy.
Przykład analizy widma wykonany przez program wygląda następująco (kreskami różowymi oznaczone są "małe" średnie częstotliwości dominującej a kreskami
żółtymi średnie częstotliwości):
Metoda klasyfikacji
Zdecydowano się zrezygnować z najpopularniejszej w tym zastosowaniu metody ukrytych modeli Markowa
(Hidden Markov Models - HMM), ponieważ jest
ona wysoce skomplikowana matematycznie i jej implementacja okazała się zbyt trudna. W projekcie zastosowano dużo prostszą metodę klasyfikacji rozmówcy,
którą można opisać wzorem:

gdzie:
p - prawdopodobieństwo, z jakim aktualny rozmówca pasuje do modelu
Ci - wartość cechy
i modelu rozmówcy
ΔCi - odchylenie średnie cechy
i modelu rozmówcy
Xi - wartość cechy
i aktualnego rozmówcy
qi - waga cechy
i
Na drodze wielu eksperymentów ustalono następujące wagi cech: F
d - 0.9, F
śr - 0.5, B - 0.3.
3. Aspekt techniczny
Należy zaznaczyć, że sprzęt audio wykorzystywany do tworzenia modeli i późniejszego rozpoznawania rozmówcy miał ogromny wpływ na jakość wyników.
Wykorzystanie różnych mikrofonów a nawet różnych kart dźwiękowych znacznie zmieniało parametry modelu.
Projekt wykonano w języku C++ w środowisku Borland. Do obsługi dźwięku wykorzystano darmową bibliotekę BASS. Eksperymenty przeprowadzono przy
użyciu mikrofonu kierunkowego SoundMAX Superbeam podłączonego do karty dźwiękowej Intel HD Audio.
4. Przebieg eksperymentów
Pierwszym krokiem było utworzenie modeli rozmówców. Stworzono cztery takie modele. Wszystkie one opisywały mężczyzn w podobnym wieku, więc ich parametry nie
różniły się zbytnio, co pozwoliło na ocenę skuteczności systemu w trudnych sytuacjach. W procesie tworzenia modeli rozmówca czytał przykładowy tekst jednostajnym
głosem a system rejestrował wartości poszczególnych
cech.
| Fd | ΔFd | Fśr | ΔFśr | B | ΔB |
Tomasz P. | 313 | 28 | 1290 | 100 | 831 | 71 |
Marek S. | 160 | 27 | 982 | 125 | 656 | 173 |
Daniel Wójt | 236 | 32 | 1175 | 152 | 728 | 126 |
Paweł Szydło | 296 | 97 | 1128 | 183 | 771 | 166 |
Nastepnie przystąpiono do właściwego rozpoznawania rozmówcy. Osoba czytała przykładowy tekst, a system na bieżąco (co 16 sekund) wyliczał prawdopodobieństwo
należenia rozmówcy do danego modelu. Dla każdej z osób wykonano 20 pomiarów.
Okno programu w trakcie procesu rozpoznawania (mówił Daniel Wójt):

Wyniki wszystkich 20 pomiarów przedstawiają się nastepująco (za udane rozpoznanie uważa się sytuację, gdy prawdopodobieństwo należenia osoby do odpowiedniego modelu jest wyższe od pozostałych):
| Dobrze | Źle | Trafień [%] |
Tomasz P. | 14 | 6 | 70 |
Marek S. | 15 | 5 | 75 |
Daniel Wójt | 12 | 8 | 60 |
Paweł Szydło | 14 | 6 | 70 |
5. Dyskusja wyników, wnioski
Skuteczność rozpoznawania rozmówcy, jaką osiągnięto podczas eksperymentów, jest zadowalająca. Niższa skuteczność rozpoznawania Daniela Wójta zdaje się wynikać
z podobieństwa parametrów jego mowy do parametrów mowy Pawła Szydło.
Koniecznym jest zaznaczenie, że taka skuteczność jest możliwa tylko jeżeli rozmówca mówi jednostajnym głosem, pozbawionym emocji oraz cały eksperyment
przebiega w dokładnie takich samych warunkach w jakich powstał model (uwzględniając takie niuanse jak nachylenie głowy mówiącego).
Zagadnienie rozpoznawania mówiącego okazało się znacznie trudniejsze niż sądzono. Niewielkie zmiany w środowisku powodują duże zmiany w wartościach cech mowy
do tego stopnia, że w początkowej fazie eksperymentu cechy wydawały się niemal losowe. Z pewnością rozpoznawanie mowy jest jednym z najtrudniejszych zadań, jakie stoją
przed technikami sztucznej inteligencji.
6. Bibliografia
- Wikipedia
- R. Tadeusiewicz - "Sygnał mowy"
- BASS help