logo
Politechnika Wrocławska
Metody i algorytmy sztucznej inteligencji

raport z projektu

Rozpoznawanie rozmówcy

Wrocław, 21 czerwca 2007
Prowadzący:
dr inż. Witold Paluszyński

Autorzy:
Paweł Szydło (128403)
Daniel Wójt (132430)

Spis treści:

  1. Opis zadania
  2. Przyjęta metoda rozwiązania
    - Cechy głosu ludzkiego
    - Metoda wyodrębniania cech
    - Metoda klasyfikacji
  3. Aspekt techniczny
  4. Przebieg eksperymentów
  5. Dyskusja wyników, wnioski
  6. Bibliografia

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: Fd - 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ΔFdFśrΔFśrBΔB
Tomasz P.31328129010083171
Marek S.16027982125656173
Daniel Wójt236321175152728126
Paweł Szydło296971128183771166

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):
screen 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ŹleTrafień [%]
Tomasz P.14670
Marek S.15575
Daniel Wójt12860
Paweł Szydło14670

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

  1. Wikipedia
  2. R. Tadeusiewicz - "Sygnał mowy"
  3. BASS help