ĆWICZENIE RACHUNKOWE nr 2
Analiza sygnału mowy.
Ekstrakcja charakterystyk w środowisku MATLAB
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 f =22050 Hz, liczba bitów na próbkę w s
konwersji A/C=16.
Zarejestrowane słowo stanowi L-próbkowy sygnał (
s i), gdzie 1 ≤ i ≤ L . Będziemy
analizować sygnał (
s i) pozyskany w środowisku umiarkowanie zakłóconym. Usunąć ciszę z sygnału (
s i), 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ł z(i) o zerowej wartości średniej: L
µ = 1 ∑s(i)
L i=1
z(i) = (
s i) − µ dla 1≤ i ≤ L
Wykonać wykres sygnału z(i) w funkcji czasu.
2. Sygnał z(i) podzielić na ramki (segmenty) o długości N = 256. Dla każdej ramki wyznaczyć:
• wartość największą M
M = max z(n)
1≤n≤N
• energię sygnału
N
E = log ∑ z( )2
n
n=1
• współczynniki LPC (przyjąć p=12)
• liczbę przejść przez zero PPZ
N
= 1
PPZ
∑
[
sign z(n)] −
[
sign z(n − )
1 ]
2 n=2
gdzie:
[
sign z(n)] = 1 dla
z(n) > 0
[
sign z(n)] = −1 dla
z(n) ≤ 0
Wykonać odpowiednie wykresy dla sekwencji ramek sygnału z(i). Ocenić przebieg wykresów dla różnych fonemów sygnału mowy.
3. Wyznaczyć i porównać spektrogramy sygnału z(i):
• pokazać wpływ oknowania (przyjąć okna: prostokątne i Hamminga)
• dobrać szerokość i przekrycie okien.
4. Wybrać i narysować pięć ramek, po jednej z każdego z fonemów zarejestrowanego słowa. Dla każdej ramki:
a) dokonać analizy autokorelacyjnej [xcorr(sig)]; b) wyznaczyć 256-punktowe FFT z oknem Hamminga. Narysować widmo
f
amplitudowe dla częstotliwości z zakresu 0 s ;
2
c) dokonać analizy formantów dla fonemów (tam gdzie to możliwe) za pomocą poniższych metod:
Metoda I:
wyznaczyć widmo amplitudowe
[abs(fft(sig)];
wyznaczyć widmo amplitudowe
[abs(fft(hamming(256) .* sig))];
wyznaczyć widmo mocy
[10 log10(abs(fft(hamming(256) .* sig)))];
Metoda II:
wyznaczyć widmo predykcji liniowej:
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);
d) 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)
UWAGA: WYKRESY POWINNY MIEĆ ODPOWIEDNIE SKALE
Należy przeanalizować i porównać charakterystyki sygnału mowy uzyskane za pomocą różnych metod i dla różnych warunków analizy pod kątem wykorzystania do rozpoznawania mowy i segmentacji sygnału mowy.
dyskretny czas
dyskretne częstotliwości
DFT wyznacza przekształcenie z w dyskretnych punktach na jednostkowym okręgu płaszczyzny z.
k
N-punktowa DFT wyznacza ocenę w N punktach dla pulsacji ω = 2π
dla
k
N
k = 0, ,
1 ,...,
2
N .
częstotliwości radialne [− π π]
f
f
odpowiadają częstotliwościom fizycznym − s
s
2
2
lub
[0 2π] [0 f
s ]
Konwersja między częstotliwościami radialnymi i fizycznymi:
f
0
s
odpowiada [0 π]
2
k
f
k
1 k
1
π
odpowiada
s
=
gdzie
= f
s
N
2 N
T
2 N
T
Przykład
1 = f = 12 8, kHz
s
T
1
1
N = 128 wtedy sygnał jest obserwowany przez NT = 128
=
s =
ms
10
,
12 kHz
8
100
,
12 kHz
8
rozdzielczość częstotliwościowa jest
=
Hz
100
.
128
Przykład
1 = f = 12 8, kHz
s
T
1
4
N = 512 wtedy sygnał jest obserwowany przez NT = 512
=
s =
ms
40
,
12 kHz
8
100
,
12 kHz
8
rozdzielczość częstotliwościowa jest
=
Hz
25
.
512
Jest kompromis między rozdzielczością częstotliwościową i czasową: długie w czasie okna dają dobrą rozdzielczość częstotliwościową (odległość między sąsiadującymi punktami w DFT jest mała). Jednak podczas trwania długiego okna, sygnał
prawdopodobnie zmieni się.