background image

 
 
 
 
 

Systemy Dialogowe 

Sprawozdanie z ćwiczenia laboratoryjnego nr 2

 

 
Temat laboratorium: 
Analiza sygnału mowy.  
Ekstrakcja charakterystyk w środowisku MATLAB 
(wersja poprawiona) 

 

 

 

 

 

 

 

 

Prowadzący: 

Dr inż Andrzej Wiśniewski 

Wykonała 

Anna Grzeszyk 

I0I1S1 

10.12.2012r. 

 

 

background image

0. Rejestracja badanego słowa 

Zarejestrowano słowo „sztukowań” według zadanych kryteriów: dźwięk mono, o częstotliwości 

próbkowania f

s

 = 22050 Hz i przy 16 bitach na jedną próbkę. Dźwięk zapisano w formacie .wav, a następnie 

odczytano w programie MATLAB za pomocą następującego fragmentu kodu: 

% Wczytanie i wyświetlenie sygnału

 

[d,fs, nbits]= wavread(

'grzeszyk.wav'

);

 

 

Dźwięk zapisano w wektorze d, częstotliwość próbkowania pobrano do zmiennej fs, odczytano również 

dla sprawdzenia poprawności liczbę bitów na próbkę. Ciszę usunięto przed zaimportowaniem pliku 
dźwiękowego za pomocą programu do edycji plików audio Audacity. Pobrany dźwięk przedstawiono na wykresie 
w funkcji czasu. 

 

1. Przetwarzanie wstępne 

Kolejnym krokiem na drodze analizy sygnału mowy jest utworzenie sygnału z(i) o zerowej wartości 

średniej. Aby to uczynić, należy policzyć wartość średnią (µ) dla wszystkich próbek pobranego dźwięku (s(i)), a 
następnie policzyć różnicę pomiędzy wartością każdej z próbek i wartością średnią. Potrzebne wzory: 

   

 
 

∑     

 

   

 

                              

 

 

 

 

 

 

 

0

0.2

0.4

0.6

0.8

1

1.2

1.4

-0.1

-0.05

0

0.05

0.1

0.15

0.2

Sygnał wejściowy (czas trwania)

W

ie

lk

ć 

pr

ób

ek

Wykres sygnału w funkcji czasu 

background image

Otrzymany sygnał: 

Porównanie sygnału przed i po obróbce: 

 

Widać, iż uzyskany w wyniku operacji sygnał nie różni się znacząco od sygnału oryginalnego, przez co 

możemy wnioskować, że został nagrany w dosyć dobrych warunkach, jeśli chodzi o szumy. Nie jest ich jednak 
pozbawiony, na co wskazuje niezerowa wartość średnia, równa w przypadku zarejestrowanego słowa 
0.009727762222290. 
 
 
 
 
 
 

0

0.2

0.4

0.6

0.8

1

1.2

1.4

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

Sygnał wejściowy

W

ie

lk

ć 

pr

ób

ek

Wykres różnic pomiędzy sygnałem oryginalnym a sygnałem o zerowej wartości średniej w funkcji czasu

0

0.2

0.4

0.6

0.8

1

1.2

1.4

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

Sygnał wejściowy (czas trwania)

W

ie

lk

ć 

pr

ób

ek

Wykres sygnału o zerowej wartości średniej w funkcji czasu

background image

20

40

60

80

100

120

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

Wykres maksymalnych wartości w poszczególnych ramkach

Numer ramki

W

ar

to

ść

 m

ak

sy

m

al

na

2. Analiza sygnału podzielonego na ramki 

 

Odtąd wszystkie operacje zostaną przeprowadzone w oparciu o sygnał z(i). Podzielono go na segmenty o 

długości 256, czyli mieszczące po 256 próbek dźwięku. Dla każdej ramki należało wyznaczyć następujące 
cechy: 

 

wartość największą 

       

     

         

 

energię sygnału 

        ∑     

 

 

   

 

 

współczynnik LPC (parametr p=12) 

 

liczba przejść przez zero PPZ 

     

 
 

∑     [    ]       [        ] 

 

   

 

gdzie: 

{

    [    ]                 

    [    ]                  

 

 
Następnie wykonano odpowiednie wykresy ilustrujące otrzymane wyniki:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dzięki wykresowy maksymalnych wartości w poszczególnych ramkach możemy dostrzec granice pomiędzy 

kolejnymi fonemami słowa oraz zauważyć, gdzie mamy głoski dźwięczne, a gdzie bezdźwięczne. Na początku 
wykresu obserwujemy chwilę nieusuniętej ciszy, natomiast ramki o dużo wyższych wartościach reprezentują 
już dźwięki mowy. Możemy zaobserwować, że największe wartości notujemy w okolicach fonemu „k”, 
natomiast lokalne maksima o mniej więcej takim samym poziomie reprezentują samogłoski. 

 

background image

 

Wykres wartości energii jest również miarą pomocną w rozpoznawaniu dźwięków. Informuje nas, w 

których miejscach rozmieszczone są dźwięczne i bezdźwięczne fonemy. Chwila ciszy posiada bardzo dużą 
energię ujemną, natomiast w momencie rozpoczęcia artykulacji słowa widzimy nagłą zmianę energii, która 
znów przechodzi w dziedzinę ujemną, a znaczne spadki notujemy w okolicach wybrzmiewania samogłosek. 

 

Wykres liczby przejść przez 0 daje nam informację o położeniu dźwięków szeleszczących i dźwięcznych 

jak i również pokazuje miejsca ciszy – tam mamy dużą ilość zmian sygnału. Przy głoskach dźwięcznych drganie 
krtani powoduje powstanie sygnałów okresowych, które oscylują wokół zera, dając zarówno wartości ujemne, 
jak i dodatnie. Toteż nie dziwi fakt, że największe ilości przejść notujemy właśnie w tych rejonach. Dla 
porównania warto spojrzeć na takie głoski w słowie jak „t”, „k” czy „w” – widzimy, iż tam drgań nie 
obserwujemy wcale. 

 

 

 

 

20

40

60

80

100

120

-6

-5

-4

-3

-2

-1

0

1

Wykres wartości energii dla poszczególnych ramek

Numer ramki

E

n

e

rg

ia

20

40

60

80

100

120

0

10

20

30

40

50

60

70

80

90

100

Wykres PPZ dla ramek

Numer ramki

Li

cz

ba

 p

rz

ej

ść

 p

rz

ez

 z

er

o

background image

 

 

    

   

 

Wykresy LPC, inaczej liniowego kodowania predykcyjnego informuje nas, jaka jest odpowiedź filtru 

biegunowego na pobudzenie, próbowane jest przybliżenie przyszłych próbek na podstawie kombinacji 
poprzednich. Rząd filtra został ustalony na 12, wobec tego w predykcji jest branych pod uwagę 12 próbek. W 
efekcie otrzymano 13 współczynników opisujących sygnał mowy, przy czym pierwszy jest zawsze równy jeden, 
a więc został pominęty. 

3. Wyznaczenie spektrogramów sygnału z(i) 

 

 

Zasada wyznaczania spektrogramu sygnału polega na pokazaniu częstotliwości sygnału w funkcji czasu. 

Uzyskuje się go na podstawie obliczonych amplitud harmonicznych opisujących dany sygnał. W metodzie 
najważniejsze jest odpowiedni dobór okna i przekrycia. Można wobec tego uzyskać albo wierne odwzorowanie 
czasowe albo częstotliwościowe sygnału w zależności od wielkości okna. Przekrycie zaś jest to wartość, o jaką 
ramki zachodzą na siebie. W poniższych przykładach używano przykładowych przekryć o wartościach 25, 50 i 
75%. Im większe przekrycie, tym wierniejsze odwzorowanie, jednakże zwiększa się nadmiarowość obliczeń. 
Przeprowadziłam test w ramach którego dobierałam wielkość okna oraz podane wyżej przekrycie i najlepsze 
rezultaty, największą widoczność uzyskałam w przypadku okna o wielkości 256 próbek. Zwyczajowo wykresy 
spektrogramu przedstawia się jako funkcję czasu w dziedzinie częstotliwości (podawanej w Hz). Niestety nie 
jest to standard w użytej bibliotece programu Matlab, toteż do generacji wykresów musiałam posłużyć się 
niestandardową składnią. 

20

40

60

80

100

120

-0.2

0

0.2

Wykres LPC dla współczynnika5

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.4

-0.2

0

0.2

Wykres LPC dla współczynnika6

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.2

0

0.2

0.4

Wykres LPC dla współczynnika7

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-1

-0.5

0

0.5

Wykres LPC dla współczynnika2

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.5

0

0.5

Wykres LPC dla współczynnika3

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.5

0

0.5

Wykres LPC dla współczynnika4

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.2

0

0.2

Wykres LPC dla współczynnika8

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.4

-0.2

0

0.2

0.4

Wykres LPC dla współczynnika9

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.4

-0.2

0

0.2

Wykres LPC dla współczynnika10

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.1

0

0.1

0.2

0.3

Wykres LPC dla współczynnika11

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.4

-0.2

0

Wykres LPC dla współczynnika12

Numer ramki

W

a

rt

o

s

c

 L

P

C

20

40

60

80

100

120

-0.1

0

0.1

0.2

0.3

Wykres LPC dla współczynnika13

Numer ramki

W

a

rt

o

s

c

 L

P

C

background image

Należy również wspomnieć o rodzajach okien stosowanych w spektrogramach. Jest ono stosowane, aby 

pozbyć się szumów występujących w sygnałach. Z racji różnych kształtów, okna przydają się w różnych 
zastosowaniach. Dla potrzeb rozpoznawania mowy zostało użyte okno prostokątne i Hamminga. Poniżej 
zamieszczam obrazek ilustrujący różnice pomiędzy tymi dwoma oknami (zaczerpnięty z polskiej Wikipedii – 
hasło okno czasowe): 

 

 

Okno prostokątne charakteryzuje się mniejszym tłumieniem na końcach przedziału czasowego, natomiast 

okno Hamminga stosuje stopniowe wygładzanie krawędzi, toteż przy usuwaniu szumów jest efektywniejsze, co 
zostało docenione przez funkcję wbudowaną, bowiem okno te jest standardowo stosowane przy uzyskiwaniu 
spektrogramów.  

Wykresy uzyskanych spektrogramów: 

 

Okno prostokątne daje nam obraz rozłożenia fonemów w mowie, jednakże nie jest on wyraźny, wszystkie 

dźwięczne fonemy wyglądają podobnie. Spójrzmy wobec tego na okno Hamminga: 

 

 

0.2

0.4

0.6

0.8

1

1.2

1.4

0

0.5

1

1.5

2

x 10

4

Time

Spektrogram okno prostokątne szerokość 256, przekrycie 50%

F

re

q

u

e

n

c

y

 (

H

z

)

background image

 

Zmiana jest zauważalna, zniknęły długie, żółte pasy poprzez całą dziedzinę częstotliwości, stąd można 

poznać różnicę pomiędzy wydźwiękiem głosek.  

Widać wyraźnie, iż rozmiar okna ma wpływ na uzyskane wyniki, duży rozmiar powoduje, iż można 

dostrzec formanty, jednak wyniki w dziedzinie czasowej zostały uśrednione. Zauważono, iż okno o rozmiarze 
256 bądź 512 daje najlepsze rezultaty, gdyż zależy nam na dostrzeżeniu częstotliwości wyżej wspomnianych 
formantów. Na obrazach widać również, iż dźwięki szeleszczące tworzą długą linię, ciągnąca się przez całą 
długość osi częstotliwości. Głoski takie jak t,k czy w w zarejestrowanym słowie w dziedzinie częstotliwości 
niemal nie występują. Jeśli chodzi o przekrycie, najlepsze rezultaty daje nadmiarowość rzędu 50 bądź 75%. 

4. Analiza wybranych ramek dla fonemów 

 

Wybrano 6 ramek, zawierających dwie samogłoski, spółgłoskę nosową, spółgłoskę trącą 

bezdźwięczną oraz spółgłoskę zwartą. Każda z ramek posiada 256 próbek, wybranych ze środka zakresu danego 
fonemu. Poniżej przedstawiono zbiorczy wykres wartości próbek dla wszystkich ramek 

 

 

Wynikiem wykonania funkcji xcorr() jest wektor zawierający 511 wartości (2n-1, gdzie n jest 

liczbą próbek). Autokorelacja jest funkcją z dziedziny statystyki, która informuje nas, jaka jest zależność 
danej próbki od próbek sąsiednich. Wartości z otrzymanego wektora są bardzo różne i zależne od badanej 
ramki. Wynikać to może z niedoskonałości nagrania, zawierającego mimo redukcji zakłóceń otoczenia wciąż 

0.2

0.4

0.6

0.8

1

1.2

1.4

0

0.5

1

1.5

2

x 10

4

Time

Spektrogram okno Hamminga szerokość 256, przekrycie 50%

F

re

q

u

e

n

c

y

 (

H

z

)

50 100 150200250

-0.02

0

0.02

0.04

50 100150200250

0.076

0.078

0.08

0.082

0.084

0.086

0.088

50 100150200250

-0.1

-0.05

0

50 100 150200250

0.035

0.04

0.045

0.05

50 100150200250

-0.1

-0.05

0

0.05

0.1

50 100150200250

-0.04

-0.02

0

0.02

0.04

background image

wiele czynników zniekształcających pobrany sygnał. Poniższe wykresy prezentują wartości otrzymanych 
autokorelacji dla wszystkich 6 ramek: 

 

W przypadku fonemu sz mamy potwierdzenie, iż jest on typem dźwięcznym, toteż obserwujemy sygnał 

okresowy, o wyraźnie zaznaczonym szczycie, symetryczny. Świadczy on o dobrym dopasowaniu ramki do 
dalszej analizy. 

 

Fonem t, z racji swojej bezdźwięczności, nie posiada harmonicznego wykresu, natomiast i tutaj 

dostrzegamy wysoką zależność w ramce, odpowiednią dla głosek bezdźwięcznych. Należy zauważyć, iż w 
poprzednim przypadku dobierałam ramki ze środka fonemu, gdzie napotkałam się w przypadku fonemów 
bezdźwięcznych na ciszę, toteż niniejsze wykresy są otrzymane z początków fonemów, co zaowocowało 
otrzymaniem innych wyników, jeśli chodzi o nieprawidłowe wykresy korelacyjne. 

0

100

200

300

400

500

600

-4

-2

0

2

4

6

8

10

12

x 10

-3

Autkorelacja dla fonemu sz

0

100

200

300

400

500

600

-0.1

-0.05

0

0.05

0.1

0.15

0.2

0.25

Autkorelacja dla fonemu t

background image

 

Fonem u z kolei jest samogłoską, toteż na wykresie autokorelacji widzimy wyraźny harmoniczny przebieg, 

charakterystyczny dla innych samogłosek. 

 

Dla fonemu k uzyskaliśmy dosyć nietypowy przebieg, tutaj wnioskować możemy o złym dopasowaniu 

ramki, gdyż wykres autokorelacji podobny jest do wykresu autokorelacji ciszy. 

0

100

200

300

400

500

600

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

Autkorelacja dla fonemu u

0

100

200

300

400

500

600

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

Autkorelacja dla fonemu k

background image

 

Fonem o to kolejna samogłoska, której dźwięczność możemy zaobserwować na wykresie autokorelacji, 

charakteryzuje się znacznie bardziej dynamicznym przebiegiem niż u. 

 

Fonem ń również przy artykulacji pobudza struny głosowe do drgania, toteż wykres autokorelacji jest 

podobny do innych głosek dźwięcznych. 

Kolejnym krokiem w analizie sygnału jest wyznaczenie 256-punktowej szybkiej transformaty Fouriera z 

oknem Hamminga oraz narysowanie widma amplitudowego w zakresie połowy częstotliwości nagrania. Dzięki 
zobrazowaniu widma amplitudowego otrzymujemy wartości częstotliwości w dziedzinie czasu. Wspomniane 
ograniczenie połowy częstotliwości (w wypadku nagrania będzie to zakres [0 11025]) jest stosowane, gdyż 
uzyskane widmo jest symetryczne względem fs/2. Spowodowane jest to faktem, iż powstałe widma po 
osiągnięciu tego progu zaczynają się na siebie nakładać, a przez to zadanego sygnału nie dałoby się odtworzyć. 
Należy również wspomnieć, iż z każdego otrzymanego widma dałoby się odtworzyć cały sygnał. Kod 
odpowiedzialny za utworzenie widma amplitudowego wygląda następująco: 

 
 
 
 

0

100

200

300

400

500

600

-1

-0.5

0

0.5

1

1.5

Autkorelacja dla fonemu o

0

100

200

300

400

500

600

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

0.25

0.3

Autkorelacja dla fonemu ni

background image

Otrzymane wykresy przedstawiają się następująco: 

 

Widmo amplitudowe jest szczególnie pomocne w analizie dźwięków mowy, gdyż pozwala ono na 

dostrzeżenie częstotliwości formantowych ramek. Wyznacza się je poprzez odnalezienie lokalnych maksimów w 
dźwięku, które w przypadku szeleszczącej zgłoski sz można odnaleźć na poziomie około 1400Hz oraz w 
okolicach 5kHz. 

 

Widmo amplitudowe dla fonemu t nie pozwala  nam odnaleźć żadnych  charakteryzujących ten dźwięk 

miejsc, z racji jego bezdźwięczności. 

0

2000

4000

6000

8000

10000

12000

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] sz

Częstotliwość [Hz]

A

m

p

lit

u

d

a

0

2000

4000

6000

8000

10000

12000

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] t

Częstotliwość [Hz]

A

m

p

lit

u

d

a

background image

 

Spółgłoska u należy do dźwięcznych, stąd też należałoby szukać jej maksimów lokalnych, choć 

specyficznych dla każdego rozmówcy, to jednak bezsprzecznie istniejących. Dla „u” odnaleźć można 
częstotliwości formantowe w okolicach około 200Hz jak i 1500Hz. 

 

Dla fonemu t sytuacja jest podobna, jak w przypadku k – częstotliwości formantowych po prostu nie ma. 

0

2000

4000

6000

8000

10000

12000

0

0.5

1

1.5

2

2.5

3

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] u

Częstotliwość [Hz]

A

m

p

lit

u

d

a

0

2000

4000

6000

8000

10000

12000

0

0.5

1

1.5

2

2.5

3

3.5

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] k

Częstotliwość [Hz]

A

m

p

lit

u

d

a

background image

 

Dla fonemu o najwięcej informacji dostarcza pasmo do 2kHz. Obserwujemy tam wszystkie lokalne 

maksima na poziomie około 300Hz, 700Hz oraz 1400Hz. Oczywiście wszystkie podawane przeze mnie wartości 
są tylko próbą przybliżenia miejsc występowania maksimum lokalnego, dlatego nie są one dokładne, a jedynie 
odczytane z wykresu. Dokładne wyznaczenie częstotliwości formantowych odbywać się będzie w dalszych 
punktach niniejszego sprawozdania. 

 

Widmo amplitudowe dla fonemu ń jest dosyć jednostajne poza fragmentem spotkanym około 300Hz – 

tam mamy wyraźne maksimum lokalne. 

 

Następnie dokonano analizy formantów dla fonemów za pomocą poniższych metod: 

Metoda I: 

 

wyznaczono widmo amplitudowe za pomocą polecenia:  

[abs(fft(sig)]; 

 

wyznaczono widmo amplitudowe za pomocą polecenia:  

[abs(fft(hamming(256).*sig))]; 

 

wyznaczono widmo mocy za pomocą polecenia: 

[10 log10(abs(fft([a zeros(1,256-17)))]; 

Metoda II: 

 

wyznaczyć widmo predykcji liniowej: 

a = lpc(hamming(256).*sig,16); 
h = abs(1./fft([a zeros(1,256-17)])); 

0

2000

4000

6000

8000

10000

12000

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] o

Częstotliwość [Hz]

A

m

p

lit

u

d

a

0

2000

4000

6000

8000

10000

12000

0

0.5

1

1.5

2

2.5

3

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] ń

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

background image

 
 

Wykonano wykresy widm zgodnie z podanym w instrukcji laboratoryjnej wzorami. Na rysunkach 

podobnie jak w przypadku widm wyznaczanych powyżej ujęto skalę częstotliwościową w zakresie od 0 do 
połowy fs sygnału. Poniżej przedstawiono wszystkie otrzymane wykresy z podziałem na wybrane ramki 
fonemów: 

 

 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Widmo amplitudowe dla ramki fonemu sz

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

-25

-20

-15

-10

-5

0

Widmo mocy dla ramki fonemu sz

Częstotliwość [Hz]

M

o

c

 [

d

B

]

background image

 

 

 

Widmo amplitudowe informuje nas, iż w sygnale największe amplitudy mają harmoniczne z przedziału 

od 1 do 6kHz. W dźwięku „sz” występują bardzo duże spadki mocy, co może świadczyć o jego dużej zmienności. 
Widmo predykcji liniowej doskonale nakreśla nam lokalne maksima w dźwięku – piki pokrywają się z 
odnalezionymi w widmie amplitudowym. 

 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

2

4

6

8

10

12

14

16

Widmo predykcji liniowej dla ramki fonemu sz

Częstotliwość [Hz]

H

(f

s

)

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

0.5

1

1.5

2

2.5

3

3.5

Widmo amplitudowe dla ramki fonemu t

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

background image

 

 

 
 

 

Dźwięk „t” to spółgłoska bezdźwięczna toteż obserwowane widmo amplitudowe jest znikome, zerowe. 

Moc sygnału jest również dosyć duża, a predykcja z racji zerowych wartości widma amplitudowego również 
równa 0,  poza wartością początkową, którą z racji możliwości wystąpienia błędu należy pominąć. 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

-30

-25

-20

-15

-10

-5

0

Widmo mocy dla ramki fonemu t

Częstotliwość [Hz]

M

o

c

 [

d

B

]

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

10

20

30

40

50

60

70

80

90

100

Widmo predykcji liniowej dla ramki fonemu t

Częstotliwość [Hz]

H

(f

s

)

background image

 

 

 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

1

2

3

4

5

Widmo amplitudowe dla ramki fonemu u

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

-20

-15

-10

-5

0

Widmo mocy dla ramki fonemu u

Częstotliwość [Hz]

M

o

c

 [

d

B

]

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

5

10

15

20

25

30

35

40

45

50

55

Widmo predykcji liniowej dla ramki fonemu u

Częstotliwość [Hz]

H

(f

s

)

background image

 

Samogłoska dźwięczna „u” charakteryzuje się dużą wartością widma amplitudowego w niskich 

częstotliwościach (zbliżonych do częstotliwości formantowych), dla tego przedziału jest również 
zaobserwowana moc dodatnia sygnału, jak i silna predykcja. 

 

 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

1

2

3

4

5

6

Widmo amplitudowe dla ramki fonemu k

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

-25

-20

-15

-10

-5

0

5

Widmo mocy dla ramki fonemu k

Częstotliwość [Hz]

M

o

c

 [

d

B

]

background image

 

 

Dźwięk „k” daje podobne wyniki co „t” – obserwujemy niską wartość widma amplitudowego, bardzo duże moce 
ujemne sygnału oraz zerowe wartości widma predykcji. 

 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

50

100

150

200

250

Widmo predykcji liniowej dla ramki fonemu k

Częstotliwość [Hz]

H

(f

s

)

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

1

2

3

4

5

6

7

8

Widmo amplitudowe dla ramki fonemu o

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

background image

 

 

W widmie amplitudowym ramki zawierającej fragment fonemu o największe wartości możemy 

zaobserwować w przedziale do 2kHz oraz nagły skok przy 3kHz, możemy się więc domyślać, iż tam 
umiejscowione są częstotliwości formantowe. Zauważono również, iż są to miejsca o największej mocy 
dodatniej bądź najmniejszej ujemnej wartości. 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

-20

-15

-10

-5

0

5

Widmo mocy dla ramki fonemu o

Częstotliwość [Hz]

M

o

c

 [

d

B

]

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

10

20

30

40

50

60

70

80

90

Widmo predykcji liniowej dla ramki fonemu o

Częstotliwość [Hz]

H

(f

s

)

background image

 

 

 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

Widmo amplitudowe dla ramki fonemu ń

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

-25

-20

-15

-10

-5

0

Widmo mocy dla ramki fonemu ń

Częstotliwość [Hz]

M

o

c

 [

d

B

]

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

5

10

15

20

25

30

35

40

45

50

55

Widmo predykcji liniowej dla ramki fonemu ń

Częstotliwość [Hz]

H

(f

s

)

background image

 

Ramka dla fragmentu fonemu „ń” charakteryzuje się najwyższymi wartościami widma amplitudowego w 

przedziale do 1kHz, obserwujemy względne poziomy na mocy na stopie ok. -20dB oraz bardzo duże wyniki dla 
widma predykcji liniowej we wspomnianym przedziale 1kHz. 
 

Wyznaczenie częstotliwości formantowych opiera się na wyznaczeniu maksimów lokalnych dla obwiedni 

widma amplitudowego i odpowiadających im częstotliwości. Głoski polskie posiadają 7 formantów, zaś w 
praktyce ogranicza się do poszukiwania od 3 do 5. Oto tablica zawierająca informacje odnośnie częstotliwości, 
na jakich występują formanty: 

 

 
 Zostały wyznaczone przedziały częstotliwości, w których mogą formanty występować, jednakże ich 

pasma zachodzą na siebie, co dodatkowo utrudnia ich odszukanie. Jako że wcześniejsze wykresy potwierdziły, 
iż nie wszystkie głoski posiadają częstotliwości formantowe, swoje poszukiwania ograniczyłam tylko do głosek 
sz, u, o, ń. Wykorzystałam w tym celu wbudowaną funkcję programu Matlab, w której poszukuję w ramce 
widma (właściwie w jego użytecznej połowie) wartości maksimów lokalnych, przy zastrzeżeniu odnośnie 
wartości minimalnych pików i ich oddaleniu od siebie. Pobieram do dwóch wektorów wartość pierwszych 6 
pików oraz ich indeksy. 

 

 

 

 

Numer indeksu odnalezionego piku naleźy teraz przemnożyć przez skalę częstotliwościową, aby uzyskać 

odnalezione piki (w przypadku branego pod uwagę widma jest to fs/256): 

background image

 

 

 
Dla uzyskanych wyników porównanie z wartościami odczytanymi z wykresów daje dosyć dobre 

rezultaty, gdyż mimo nieznalezienia wszsystkich pików poprawnie, to dla prawidłowych dopasowań możemy 
określić dokładną wartość. Należy nadmienić, iż ze względu na skalowanie częstotliwości, przedział pomyłki 
wynosi +/- 40 Hz. Otrzymane wyniki obarczone są dosyć dużym prawdopodobieństwem złego dopasowania, gdyż 
nie jest zapewniona dobra rozdzielczość ramki w dziedzinie częstotliwości. Dlatego też w kolejnym  poleceniu 
okno zostało rozszerzone do 512 próbek, przy czym 128 próbek o zerowej wartości zostaje umieszczonych 
przed i po właściwym sygnale ramki. Należy zaznaczyć, iż formanty dobrze opisują głoski dźwięczne. Do 
rozpoznawania np. głosek szeleszczących służą momenty widmowe. 

 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

0.1

0.2

0.3

0.4

0.5

Widmo amplitudowe dla ramki fonemu sz z oknem Hamminga równym 512

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

2000

4000

6000

8000

10000

12000

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] sz

Częstotliwość [Hz]

A

m

p

lit

u

d

a

background image

 

 

 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

0.5

1

1.5

2

2.5

3

Widmo amplitudowe dla ramki fonemu t z oknem Hamminga równym 512

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

2000

4000

6000

8000

10000

12000

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] t

Częstotliwość [Hz]

A

m

p

lit

u

d

a

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

Widmo amplitudowe dla ramki fonemu u z oknem Hamminga równym 512

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

2000

4000

6000

8000

10000

12000

0

0.5

1

1.5

2

2.5

3

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] u

Częstotliwość [Hz]

A

m

p

lit

u

d

a

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Widmo amplitudowe dla ramki fonemu k z oknem Hamminga równym 512

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

2000

4000

6000

8000

10000

12000

0

0.5

1

1.5

2

2.5

3

3.5

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] k

Częstotliwość [Hz]

A

m

p

lit

u

d

a

background image

 

 

 

Po dodaniu 256 próbek zerowych na pierwszy rzut oka wykresy nie zmieniły się, jednak po dokładnym 

przyjrzeniu można zauważyć, iż amplituda wzrosła dwukrotnie, niektóre z prążków już nie osiągają tak 
wysokich wartości. Świadczyć to może o wpływie zakłóceń na badany sygnał, ponieważ praktyka dodawania 
nadmiarowych próbek jest prowadzona właśnie po to, aby zapewnić lepszą rozdzielczość wykresów w 
dziedzinie częstotliwości, a tym samym umożliwić bardziej dokładne określenie częstotliwości formantowych. 

5. PODSUMOWANIE 

 
Drugie ćwiczenie laboratoryjne miało za zadanie zaznajomienie przeprowadzających z technikami 

stosowanymi w analizie mowy a także trudnościach, jakie napotyka się w drodze do prawidłowych odczytów. 
Nagranie jest bowiem niezwykle podatne na wszelkiego rodzaju zniekształcenia płynące z otaczających 
nagrywającego dźwięk szumów otoczenia. O ile odszukanie częstotliwości formantowych dla samogłosek 
powiodło się, o tyle inne formanty nie były już na tyle czytelne do zdiagnozowania. 

Ogromnym problemem w rozpoznawaniu mowy jest również fakt, iż ten sam dźwięk wypowiedziany 

dwa razy może dawać zupełnie inne rezultaty. Parametry wyliczone w tym ćwiczeniu są specyficzne dla każdej 
osoby, i aby osiągnąć dobre wyniki w rozpoznawaniu mówcy, nie należy ich wyliczać tylko na podstawie jednej 
próbki dźwiękowej. 

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

1

2

3

4

5

6

7

Widmo amplitudowe dla ramki fonemu o z oknem Hamminga równym 512

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

2000

4000

6000

8000

10000

12000

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] o

Częstotliwość [Hz]

A

m

p

lit

u

d

a

0

1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

Widmo amplitudowe dla ramki fonemu ń z oknem Hamminga równym 512

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]

0

2000

4000

6000

8000

10000

12000

0

0.5

1

1.5

2

2.5

3

Widmo amplitudowe dla częstotliwości z zakresu [0;fs/2] ń

Częstotliwość [Hz]

A

m

p

lit

u

d

a

 [

V

]