background image

Komunikacja człowiek-komputer – laboratoria blok I, wersja koocowa. 

Format sprawozdania: 

Sprawozdanie ma byd zrealizowane w zespole 2-osobowym, w szczególnym przypadku (nieparzysta 
liczba osób w grupie) w zespole 3-osobowym.  

Sprawozdanie ma 3 części (praca na kolejnych trzech zajęciach), opisane poniżej. 

Analiza ma zostad przeprowadzona w środowisku Matlab. Pracę należy udokumentowad wykresami z 
Matlaba. 

Sprawozdanie należy zapisad do formatu PDF i wysład najpóźniej dnia poprzedzającego lab nr 5 na 
adres 

asamborska@wi.zut.edu.pl

.     

Format plików dźwiękowych: 

Pliki mają mied format bezstratny wav oraz parametry: 16b, 44.1 kHz, MONO, czyli jeden kanał  
(w przypadku nagraniu STEREO należy wykorzystad jeden, dowolny z kanałów).  

Każda osoba w zespole nagrywa 2 frazy: 

„Jestem studentem informatyki” oraz „Nazywam się <imię> <nazwisko>”. 

Należy zwrócid uwagę na następujące problemy występujące w nagraniach głosu: 

1.  Dynamika sygnału (czy zakres amplitudy jest odpowiednio wykorzystany, czy nie występuje 

przesterowanie

) 

2.  Jaka jest amplituda szumu na początku i na koocu nagrania oraz czy jest on losowy czy 

pseudookresowy. 

Jeżeli występują problemy warto powtórzyd nagranie, zadbad o ciszę w pomieszczeniu, ewentualnie 
zmieni d mikrofon. Poprawne nagranie dźwięku ułatwia też odpowiedni program, z darmowych 
przykładow

Audacity

 

LAB 1  
Automatyczne wykrywanie segmentów dźwięcznych i bezdźwięcznych: 

1.  Należy wczytad plik dźwiękowy za pomocą funkcji wavread zapisując wektor sygnału do 

zmiennej sygnal oraz odczytad parametry nagrania.  

2.  Sygnał należy wyświetlid tak, aby na osi poziomej znajdowała się jednostka czasu [ms] (należy 

pamiętad o znaczeniu parametru częstotliwośd próbkowania). 

3.  Po podzieleniu sygnału na ramki (okna) długości 10 ms obliczyd dla każdej ramki dwie 

statystyki – funkcję energii E oraz funkcję przejśd przez zero Z: 

 

 

gdzie:   

  

s – wektor sygnału, j – numer ramki, n – długośd ramki w próbkach. 

background image

4.  Uzyskane dwie funkcje (wektory) energii E oraz zer Z należy znormalizowad w całym zakresie, 

aby dla fragmentu nagrania stanowiącego sygnał mowy mieściły się w zakresie 0:1. 

5.  Wykonad badania na nagranych plikach dźwiękowych w celu odpowiedzi na następujące 

pytania: 
a)  Jaki wpływ na segmentowanie sygnału ma długośd okna?  
b)  Jakie elementy nagrania zostają rozdzielone przy bardzo długim, a jakie przy bardzo 

krótkim oknie? 

c)  Jaka jest poprawnośd i precyzja automatycznego podziału na segmenty? 
d)  Jaka długośd okna wydaje się byd optymalna? 
e)  Jakie typy głosek można rozdzielid automatycznie na podstawie funkcji Z i E? 
f)  Czy istnieją sekwencje głosek nierozdzielnych? 
g)  Jaki wpływ na realizację zadania ma szum w nagraniach głosu? 
h)  Czy te same parametry analizy można zastosowad do badania nagrao obu osób w grupie? 

 

Wnioski należy zilustrowad odpowiednimi wykresami z programu Matlab.  

Przykład funkcji E(czerwona) i Z(niebieska) rozdzielających głoski (fonemy):  

 

 

 

Dla chętnych: podzielid sygnał na nakładające się ramki np. w stopniu 50% i przeprowadzid powyższe 
analizy. Jak wpływa nakładanie ramek na precyzję granic segmentów?  

LAB 2 
Analiza częstotliwościowa – widmo mowy dźwięcznej i bezdźwięcznej: 

1.  Za pomocą wcześniejszego skryptu należy zlokalizowad fragment nagrania stanowiący 

samogłoskę ustną i skopiowad jej fragment długości 2048 próbek do zmiennej okno

2.   Obliczyd logarytmiczne widmo amplitudowe dla badanego okna (w to tzw. funkcja 

okienkująca): 
 

w=hamming(2048);  

widmo=log(abs(fft(okno.*w) ) ); 

 

3.  Wyświetlid widmo w taki sposób, aby na osi poziomej znajdowała się jednostka częstotliwości 

*Hz+ w zakresie od 0 Hz do częstotliwości próbkowania 44100 Hz. Ze względu na symetrię 
widma i na zakres istotny w analizie mowy wystarczy rozpatrywad i wyświetlad zakres 0-
10000Hz. 

4.  Odczytad F0, czyli częstotliwośd podstawową (częstotliwośd drgania strun głosowych) na 

podstawie pierwszego dominującego maksimum w przebiegu widma (seria maksimów 
występujących w równych odległościach to struktura harmoniczna, należy zatem odczytad 
częstotliwośd pierwszej harmonicznej). Przykład poniżej: 
 

      R 

       A   

  

          L   

 

<szum> 

background image

F0=250 Hz 

 

5.  Wykonad powyższe zalecenia dla kilku innych samogłosek i spółgłosek (w tym /s/). Aby 

upewnid się, że poprawnie zidentyfikowano daną głoskę można zastosowad funkcję 
wavplay(sygnal, fs)

6.  Odpowiedzied na następujące pytania: 

a)  Które z badanych głosek posiadają strukturę harmoniczną i można odczytad z nich F0 

(częstotliwośd drgania strun głosowych)? 

b)  Czym różni się wizualnie widmo głosek dźwięcznych od bezdźwięcznych? 
c)  Czy widma samogłosek różnią się między sobą? W jaki sposób? 
d)  Czy częstotliwośd F0 jest stała dla tego samego nagrania, ale różnych głosek? 
e)  Jaka jest średnia częstotliwośd F0 głosów osób w zespole? 

Wnioski należy zilustrowad odpowiednimi wykresami z programu Matlab.  

LAB 3 
Automatyczne rozpoznawanie samogłosek ustnych /a, e, i, o u, y/: 

 

1.  Za pomocą wcześniejszego skryptu należy zlokalizowad fragment nagrania stanowiący 

samogłoskę ustną i skopiowad jej fragment długości 2048 próbek do zmiennej okno

2.  Wyznaczyd dla tego fragmentu p=20 współczynników liniowego filtra (LPC Liniowe 

Kodowanie Predykcyjne): 

a=lpc(sygnal, p)) 

3.  Uzupełnid otrzymany wektor a długości p zerami do długości okna sygnału (2048). 
4.  Wyznaczyd wygładzone widmo amplitudowe na bazie wektora a: 

widmo_lpc=log(abs(fft(a))) 

5.  Odbid otrzymane wygładzone widmo w poziomie (pomnożyd przez -1), nałożyd 

wykres na właściwe widmo amplitudowe fragmentu sygnału tak, aby oba znalazły się 
na podobnej wysokości na osi y (prawdopodobnie będzie koniecznośd przeskalowania 
lub/i przesunięcia). Należy zadbad o prawidłową oś częstotliwości [Hz]! 

6.  Otrzymane maksima są to FORMANTY, oznaczane kolejno F1, F2... Przeanalizowad 

częstotliwości pierwszych dwóch formantów dla fragmentów samogłosek ustnych. 
Przedstawid wyniki pomiarów F1 i F2 dla różnych samogłosek na wykresie (F1 w 
poziomie, F2 w pionie). 

7.  Odpowiedzied na następujące pytania: 

a) 

Jak wpływa ilośd wybranych współczynników filtra p na proces rozpoznawania? 
Przetestowad kilka możliwości.

 

b) 

Jakie samogłoski udało się właściwie rozpoznad?

 

c) 

Jak bardzo zbliżone są częstotliwości formantowe tych samych samogłosek 
wypowiadanych przez osoby z zespołu?

 

background image

Przykład wygładzonego widma nałożonego na właściwe widmo amplitudowe (oznaczono 
kolejne formanty): 
 

 

Wzorcowa tablica do rozpoznawania polskich samogłosek: 

 

 

 

W przypadku, gdy istnieje problem ekstrakcji niezakłóconych samogłosek z nagrania należy 
dokonad kolejnego nagrania audio, tym razem zawierającego izolowane samogłoski: 
/a,e,i,o,u,y/. 

 

Dla chętnych – dowiedzied się i krótko opisad, co to jest i do czego służy Liniowe Kodowanie 
Predykcyjne. 

0

1000

2000

3000

4000

5000

6000

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

3

F1  F2 

F3 

F4 

F5