sd potrek, WAT, SEMESTR V, systemy dialogowe, SDial, spr


Wojskowa Akademia Techniczna

Systemy dialogowe

Sprawozdanie laboratorium nr 2

Prowadzący:

Dr inż. Andrzej Wiśniewski

Piotr Jędrzejewski

Grupa: I0M1S1

  1. TREŚĆ ZADANIA

0. Dokonać rejestracji słowa (słów) zawierającego:

- dwie samogłoski (różne);

- spółgłoskę nosową (m, n, ń);

- spółgłoskę trącą bezdźwięczną (f, h, s, ś, sz, cz);

- spółgłoskę zwartą (p, t, k, b, d, g).

Przyjąć: mono, częstotliwość próbkowania 0x01 graphic
=22050 Hz, liczba bitów na próbkę w konwersji A/C=16.

Zarejestrowane słowo stanowi L-próbkowy sygnał 0x01 graphic
, gdzie 0x01 graphic
. Będziemy analizować sygnał 0x01 graphic
pozyskany w środowisku umiarkowanie zakłóconym. Usunąć ciszę z sygnału 0x01 graphic
, wykonać wykres tego sygnału w funkcji czasu,

  1. Przetwarzanie wstępne: z powodu takich czynników jak ofset konwertera A/D i szumu o częstotliwości 50 (60) Hz w sygnale, digitalizowany sygnał mowy ma niezerową wartość średnią, niezbędną dla wielu sposobów przetwarzania. Utworzyć sygnał 0x01 graphic
    o zerowej wartości średniej:

0x01 graphic

0x01 graphic
dla 0x01 graphic

Wykonać wykres sygnału 0x01 graphic
w funkcji czasu.

  1. Sygnał 0x01 graphic
    podzielić na ramki (segmenty) o długości 0x01 graphic
    256. Dla każdej ramki wyznaczyć:

0x01 graphic

0x01 graphic

0x01 graphic

gdzie:

0x01 graphic

Wykonać odpowiednie wykresy dla sekwencji ramek sygnału0x01 graphic
. Ocenić przebieg wykresów dla różnych fonemów sygnału mowy.

  1. Wyznaczyć i porównać spektrogramy sygnału 0x01 graphic
    :

  1. Wybrać i narysować pięć ramek, po jednej z każdego z fonemów zarejestrowanego słowa. Dla każdej ramki:

  1. dokonać analizy autokorelacyjnej [xcorr(sig)];

  2. wyznaczyć 256-punktowe FFT z oknem Hamminga. Narysować widmo amplitudowe dla częstotliwości z zakresu 0x01 graphic
    ;

  3. dokonać analizy formantów dla fonemów (tam gdzie to możliwe) za pomocą poniższych metod:

Metoda I:

[abs(fft(sig)];

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

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

Metoda II:

a=lpc(hamming(256) .* sig, 16);

h=abs(1 ./ fft([a zeros(1,256-17)]));

Wykonać wykresy widm i wyznaczyć częstotliwości formantowe (porównać wyniki w/w metod);

  1. ramki rozszerzyć o 256 próbki zerowe i dla takiej ramki wyznaczyć widmo 512-punktowe („nowa” ramka powinna składać się z 256 próbek „starej” ramki w otoczeniu 128 próbek zerowych z przodu i z tyłu analizowanego sygnału mowy; zastosować 512-punktowe okno Hamminga); narysować wykres widma amplitudowego, porównać z widmem z punktu b)

  1. REALIZACJA ZADANIA

Zadanie 1

Przetwarzanie wstępne: z powodu takich czynników jak ofset konwertera A/D i szumu o częstotliwości 50 (60) Hz w sygnale, digitalizowany sygnał mowy ma niezerową wartość średnią, niezbędną dla wielu sposobów przetwarzania. Utworzyć sygnał 0x01 graphic
o zerowej wartości średniej:

0x01 graphic

0x01 graphic
dla 0x01 graphic

Wykonać wykres sygnału 0x01 graphic
w funkcji czasu.

Do realizacji zadania nagrałem słowo `koszmar' z parametrami zalecanymi w treści zadania. Spełniało one wszystkie wymagania podane w treści zadania.

0x01 graphic

Rys. 1 Wykres sygnału w funkcji czasu

0x01 graphic

Rys. 2 Wykres sygnalu o zerowej wartosci sredniej w funkcji czasu

Zadanie 2

Sygnał 0x01 graphic
podzielić na ramki (segmenty) o długości 0x01 graphic
256. Dla każdej ramki wyznaczyć:

0x01 graphic

0x01 graphic

0x01 graphic

gdzie:

0x01 graphic

Wykonać odpowiednie wykresy dla sekwencji ramek sygnału0x01 graphic
. Ocenić przebieg wykresów dla różnych fonemów sygnału mowy.

Podzieliłem sygnał na ramki. W wyniku uzyskałem 88 ramek o długości 256 każda. Część sygnału została odrzucona, ponieważ długość uzyskanej ramki była mniejsza niż pożądana wielkość równa 256. Wyliczyłem wartość największą, energię sygnału, współczynniki LPC(dla p=12) oraz Liczbę przejść przez zero PPZ.

0x01 graphic

Rys. 3 Wykres maksymalnych wartosci w poszczególnych ramkach

0x01 graphic

Rys. 4 Energia sygnału w poszczególnych ramkach

0x01 graphic

Rys. 5 Wykres PPZ w poszczególnych ramkach


0x01 graphic

Rys. 6 Wykresy LPC


Wykres maksymalnych wartości w poszczególnych ramkach pozwala zauważyć granice pomiędzy fonemami słowa. Na jego podstawie możemy wywnioskować również gdzie znajdują się głoski bezdźwięczne i dźwięczne. Wykres energii może posłużyć do rozpoznawania dźwięczności głosek. Wykres liczby przejść przez zero informuje o położeniu dźwięków szeleszczących, które mają dużą liczbę PPZ. Wykresy LPC pokazuje, jaka jest odpowiedź filtru biegunowego na pobudzenie, czyli szacuje wartość przyszłych próbek na podstawie poprzednich. Obserwując wykres wartości maksymalnych oraz wykres energii sygnału, zauważyć możemy, że oba wykresy zachowują się podobnie z tym, że dla wartości maksymalnych bliskich zeru energia przyjmuje wartości ujemne.

Zadanie 3

Wyznaczyć i porównać spektrogramy sygnału 0x01 graphic
:

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

Spektrogram jest wykresem widma amplitudowego sygnału dla każdej chwili, dla której sygnał jest określony. Konstruuje się go dzieląc cały sygnał na części, dla których obliczone amplitudy składowych harmonicznych są wartościami spektrogramu. Argumentami są, więc częstotliwość i czas.

Z powyższych wykresów można wywnioskować, że duży wpływ na wyniki ma rozmiar okna. Przy dużym rozmiarze okna (większa dokładność w dziedzinie częstotliwości) daje się dostrzec formanty, które są pomoce przy analizowaniu sygnału. Jednak zmniejszamy dokładność odczytu w dziedzinie czasu. Zatem należy wybierać okno o średnim rozmiarze. Natomiast im większe przekrycie spektrogramu, tym wierniejsze jego odwzorowanie. Okno Hamminga powoduje zredukowanie tzw. Listków bocznych, które występują przy korzystaniu z okna prostokątnego. Dzieje się tak, ponieważ okno Hamminga ma łagodnie opadające zbocza. Przez co użycie tego okna daje dużo wyraźniejszy wykres.

Zadnie 4

Wybrać i narysować pięć ramek, po jednej z każdego z fonemów zarejestrowanego słowa. Dla każdej ramki:

  1. dokonać analizy autokorelacyjnej [xcorr(sig)];

  2. wyznaczyć 256-punktowe FFT z oknem Hamminga. Narysować widmo amplitudowe dla częstotliwości z zakresu 0x01 graphic
    ;

  3. dokonać analizy formantów dla fonemów (tam gdzie to możliwe) za pomocą poniższych metod:

Metoda I:

[abs(fft(sig)];

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

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

Metoda II:

a=lpc(hamming(256) .* sig, 16);

h=abs(1 ./ fft([a zeros(1,256-17)]));

Wykonać wykresy widm i wyznaczyć częstotliwości formantowe (porównać wyniki w/w metod);

  1. ramki rozszerzyć o 256 próbki zerowe i dla takiej ramki wyznaczyć widmo 512-punktowe („nowa” ramka powinna składać się z 256 próbek „starej” ramki w otoczeniu 128 próbek zerowych z przodu i z tyłu analizowanego sygnału mowy; zastosować 512-punktowe okno Hamminga); narysować wykres widma amplitudowego, porównać z widmem z punktu b)

0x01 graphic

Rys. 22 Autkorelacja fonemu k

0x01 graphic

Rys. 23 Autkorelacja fonemu o

0x01 graphic

Rys. 24 Autkorelacja fonemu sz

0x01 graphic

Rys. 25 Autkorelacja fonemu m

0x01 graphic

Rys. 26 Autkorelacja fonemu a

Z wykresów autokorelacji widać, że głoski dzwięczne w tym przypadku o, m, a maja reguralniejsze przebiegi autokorelacji z których da się łatwo odczytac lokalne maksima. Natomiast głoski bezdzwięczne k, sz maja przebiegi bez wyraźnych maksimów lokalnych co dobrze widac na wykresach.

0x01 graphic

Rys. 27 Widmo amplitudowe połowy zakresu częstotliwości fonemu k

Dla fonemu k widać maksima w okolicach 1kHz, 4.1kHz, 5kHz.

0x01 graphic

Rys. 28 Widmo amplitudowe połowy zakresu częstotliwości fonemu o

Maksima lokalne dla o występują w częstotliwościach około 400Hz, 1kHz 2.2kHz, 4kH

0x01 graphic

Rys. 29 Widmo amplitudowe dla połowy zakresu częstotliwości fonemu sz

Dla sz można wyróżnić następujące maksima w częstotliwościach około 2kHz, 4kHz

0x01 graphic

Rys. 30 Widmo amplitudowe połowy zakresu częstotliwości fonemu m

Dla m widmo jest jednostajne. Cięzko wyróżnić maksimum ale znajduje się ono w okolicy 1kHz. Głoska ma ograniczone widmno ponieważ jest głoską nosową.

0x01 graphic

Rys. 31 Widmo amplitudowe połowy zakresu częstotliwości fonemu a

Dla a wyrażnie widać maksima z racji tego iż a jest samogłoską. Występują one w okolicach 300Hz, 950Hz, 3kHz oraz 4kHz.

0x01 graphic

Rys. 32 Widmo amplitudowe ramki fonemu k

0x01 graphic

Rys. 33 Widmo mocy ramki fonemu k

0x01 graphic

Rys. 34 Widmo predykcji liniowej ramki fonemu k

0x01 graphic

Rys. 35 Widmo amplitudowe ramki fonemu o

0x01 graphic

Rys. 36 Widmo mocy ramki fonemu o

0x01 graphic

Rys. 37 Widmo predykcji liniowej ramki fonemu o

0x01 graphic

Rys. 38 Widmo amplitudowe ramki fonemu sz

0x01 graphic

Rys. 39 Widmo mocy ramki fonemu sz

0x01 graphic

Rys. 40 Widmo predykcji liniowej ramki fonemu sz

0x01 graphic

Rys. 41 Widmo amplitudowe ramki fonemu m

0x01 graphic

Rys. 42 Widmo mocy ramki fonemu m

0x01 graphic

Rys. 43 Widmo predykcji liniowej ramki fonemu m

0x01 graphic

Rys. 44 Widmo amplitudowe ramki fonemu a

0x01 graphic

Rys. 45 Widmo mocy ramki fonemu a

0x01 graphic

Rys. 46 Widmo predykcji liniowej ramki fonemu a

Częstotliwości formantowe są cechą charakterystyczną wyróżniającą dany język. Dla języka polkiego istnieje 7 charakterystycznych formantów. Jednak ogranicza się prace do poszukiwania od 3 do 5 formantów

Po analizie obu metod mogę stwierdzić że metoda druga daje bardziej jednoznacze wyniki czestotliwości formantowych. Dużo łatwiej odczytać z widma predkcji liniowej częstotliwości formantowe. Z drugiej strony metoda pierwsza dostarcza bardziej szczegółowych danych z których można odczytać więcej częstotliwości formantowych niż z metody drugiej.

Fonem

1 formant [Hz]

2 formant [Hz]

3 formant [Hz]

k

1000

2000

4100

o

400

1000

2200

sz

2100

2300

4000

m

300

-

-

a

450

1100

3300

Metoda 1

Metoda 2

Fonem

1 formant [Hz]

2 formant [Hz]

3 formant [Hz]

k

4100

8900

9800

o

400

1000

3900

sz

2100

2400

4100

m

200

-

-

a

350

950

3350

Jak widać winiki z obu metod sa podobne z wyjątkiem fonemu k dla którego ciężko mi było wyznaczyć formanty. Różnice w wynikach mogą wynikać z niedokładności przy odczycie wartości z wykresu oraz z wybrania złej ramki dla danego fonemu.

0x01 graphic

Rys. 47 Widmo amplitudowe ramki fonemu k z oknem Hamminga równym 512

0x01 graphic

Rys. 48 Widmo amplitudowe ramki fonemu o z oknem Hamminga równym 512

0x01 graphic

Rys. 49 Widmo amplitudowe ramki fonemu sz z oknem Hamminga równym 512

0x01 graphic

Rys. 50 Widmo amplitudowe ramki fonemu m z oknem Hamminga równym 512

0x01 graphic

Rys. 51 Widmo amplitudowe ramki fonemu a z oknem Hamminga równym 512

Porównując wykresy widma amplitudowego z oknem Hamminga 256 i oknem Hamminga 512 widać, że przy większym oknie Hamminga wykres jest dokładniejszy (występuje wieksza liczba prążków). Kształt wykresu jest zachowany jednak w związku z większą liczbą prążków wartości są większe.

Porównując wszystkie widma (amplitudowe, Hamminga, predykcji liniowej) wykresy te są do siebie zbliżone kształtem różnią się jednak wartością amplitud. Wynika to z różnych sposobów wyznaczania np. widmo amplitudowe predykcji liniowej wyznaczane jest na podstawie historii poprzednich próbek.

32



Wyszukiwarka