i9g1s1 wozniak lab3 sd


WOJSKOWA AKADEMIA TECHNICZNA
im. Jarosława Dąbrowskiego
SYSTEMY DIALOGOWE
SPRAWOZDANIE Z ĆWICZENIA nr 3
Temat: Urządzenie automatycznego rozpoznawania sygnału mowy
metodą rozpoznawania wzorców
(projekt dla małego słownika)
Wykonał: plut. pchor. Radosław WOyNIAK
Grupa: I9G1S1
1
1. TREŚĆ ZADANIA
1) Założenia:
- mały słownik wyrazów rozpoznawanych: 10 słów,
- jednostka fonetyczna: całe słowo.
2) Przygotować dane:
- sformułować słownik wyrazów rozpoznawanych;
- dokonać rejestracji wszystkich słów (każde słowo 15-krotnie, w
oddzielnym pliku .wav);
- do rejestracji przyjąć: fs = 22050 Hz, 16 bitów/próbka, kodowanie
PCM, mono;
3) Zdefiniować wzór testowy(obserwacja) (współrzędne wektora obserwacji,
np.: energia, długość  liczba próbek, liczba przejść przez zero,
współczynniki FFT (widmo) od 3 do 10, współczynniki LPC, itp.)
4) Opracować procedurę uczenia - utworzyć wzorce słów:
- zdefiniować wzorzec,
- określić ciąg uczący,
- dokonać estymacji parametrów wzorców
5) Opracować procedurę rozpoznawania
6) Dokonać weryfikacji i testowania urządzenia:
- określić ciąg testowy
- wyznaczyć statystyki rozpoznawania (estymatory
prawdopodobieństwa poprawnego rozpoznania, analiza błędów
rozpoznawania)
- zaproponować kierunki zmian w celu poprawienia jakości
zbudowanego urządzenia ARM
Dokonać implementacji urządzenia w środowisku MATLAB.
2
2. WYNIKI
W celu realizacji zadania został sformułowany słownik składający się z 10
wyrazów (nagranych po 15 razy każdy). Zgodnie z zaleceniami każdy wyraz został
zapisany w oddzielnym pliku typu wav. Przy nagrywaniu przyjąłem częstotliwość
próbkowania wynoszącą 22kHz, rozdzielczość 16bitów na próbkę oraz tryb mono.
Nagrane wyrazy to:
beta;
koc;
drukarka;
borowiki;
komputer;
daktyloskopia;
mysz;
rower;
spacja;
wideo;
System rozpoznawania wyrazów został zaimplementowany zgodnie z
uproszczoną strukturą rozpoznawania sygnału mowy metodą rozpoznawania
wzorców.
PROCEDURA
UCZENIA
WZORCE
rozpoznana
UKAAD UKAAD
PORÓWNANIA DECYZYJNY
mowa
tryb rozpoznawania
tryb uczenia
OBSERWA-
CJA
ANALIZA
SYGNAAU
sygnał
mowy
Rys.1. Uproszczona struktura rozpoznawania sygnału mowy metodą
rozpoznawania wzorców.
3
%tryb uczenia
for i=1:L
ocena=0;
for j=1:5
%nazwy plikow ujednolicone
z=wavread([deblank(A(i,:)) int2str(j)]);%nazwy plików odpowiadaja
zawartosci
z=z/max(abs(z)); %wartosci amplitud w zakresie [-1,+1]
dlugosc=length(z); %pomiar dlugosci dzwieku
E=z'*z; %pomiar energii
z1=z(2:dlugosc); %wspolczynnik do wzoru na ppz
z2=z(1:dlugosc-1); %wspolczynnik do wzoru na ppz
PPZ = sum(abs(sign(z1)-sign(z2)))/2; %oblcizenie liczby przejsc
przez zero
MAX=max(abs(z)); %wartosc max
LPC=sum(abs(lpc(z,12))); %wspolczynnik LPC z 12
parametry=[dlugosc,E,PPZ,MAX,LPC]; %wektor obserwacji
parametry=parametry.*wagi; %wymnożenie wektora przez odpowiednie
wagi
ocena=ocena+parametry;
end;
tablica_ocen(i,:)=ocena/5;
end;
tablica_wynikowa=sum(tablica_ocen')*0.05;%dopuszczalna roznica wartosci
elementow miedzy wzorcem testowym i rozpoznowalnym
Rys.2. Listing fragmentu kodu programu odpowiedzialnego za tryb uczenia się
wyrazów przez system.
W trybie testowym do budowy wektora obserwacji wykorzystane zostały takie
wartości jak:
długość sygnału próbki;
energię sygnału:
N
2
E = log
z(n)
n=1
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
wartość największą M
M = maxz(n)
1ŁnŁN
współczynniki LPC (p=12);
Po obliczeniu wyżej wymienionych wartości dla każdego słowa wzorcowego,
zostały one wymnożone przez odpowiednie wagi w celu polepszenia ich
charakterystyk.
wagi=[1 0.8 0.5 0.2 0.1]
Kolejne liczby wektora wagi odpowiadają wartością wektora obserwacji.
wagi=[dlugosc, Energia, PPZ, MAX, LPC]
4
Następnie dla każdego wyrazu obliczana jest średnia wszystkich parametrów.
Po zakończeniu etapu uczenia się sumuje tablice ocen i wymnażam przez
współczynnik 0,05, dzięki czemu otrzymuje dopuszczalną różnicę wartości
elementów, którą wykorzystam do porównania wzorca testowego z rozpoznanym.
%tryb rozpoznawania
for i=1:L
for j=6:15
%nazwy plikow ujednolicone
z=wavread([deblank(A(i,:)) int2str(j)]);%nazwy plików odpowiadaja
zawartosci
z=z/max(abs(z)); %wartosci amplitud w zakresie [-1,+1]
dlugosc=length(z); %pomiar dlugosci dzwieku
E=z'*z; %pomiar energii
z1=z(2:dlugosc); %wspolczynnik do wzoru na ppz
z2=z(1:dlugosc-1); %wspolczynnik do wzoru na ppz
PPZ = sum(abs(sign(z1)-sign(z2)))/2; %oblcizenie liczby przejsc
przez zero
MAX=max(abs(z)); %wartosc max
LPC=sum(abs(lpc(z,12))); %wspolczynnik LPC z 12
parametry2=[dlugosc,E,PPZ,MAX,LPC]; %wektor z badanymi wartosciami
parametry2=parametry2.*wagi; %wymnożenie wektora przez odpowiednie
wagi
if sum((tablica_ocen(i,:)-
parametry2)')<=tablica_wynikowa(i)%porownanie wzorca testowego z wyrazami
badanymi
tablica_koncowa(j-5,i)=1; %uzupelnianie tablicy poprawnym
rozpozanniem
end;
end;
end;
display('tablica przedstawiajaca wynik rozpoznania,kolumny to odzielne
wyrazy');
tablica_koncowa
rozpoznane=0;
nie_rozpoznane=0;
for i=1:10
for j=1:10
if tablica_koncowa(i,j)==1 %odczytanie wartosci z tablic w celu
obliczenia rozpoznawalnosci
rozpoznane=rozpoznane+1;
else
nie_rozpoznane=nie_rozpoznane+1;
end;
end;
end;
rozpoznane
nie_rozpoznane
display('Wynik procentowy badania');
zgodnosc=(rozpoznane)/(rozpoznane+nie_rozpoznane)*100%
Rys.3. Listing fragmentu kodu programu odpowiedzialnego za tryb rozpoznawania
wyrazów przez system oraz opracowanie i wyświetlenie wyników.
5
W procesie rozpoznawania podobnie jak w etapie uczenia, także obliczam
poprzednio wymienionych wartości dla każdego słowa rozpoznawanego, oraz w celu
polepszenia wykrywania zostają one wymnożone przez odpowiednie wagi.
Sam etap porównywania wzorca testowego i rozpoznanego polega na
odejmowaniu tablicy zbadanych wyrazów wzorcowych od kolejnych wyrazów
badanych i porównaniu z dopuszczalną różnicę wartości elementów, którą uzyskałem
po etapie uczenia.
Rys. 5. Zrzut ekranu uzyskanych obliczeń i wyników.
Końcowy etap polegał na podliczeniu poprawnych i niepoprawnych
rozpoznań, obliczeniu procentowego rozpoznania wyrazów oraz wyświetleniu
wyników.
6
3. WNIOSKI i SPOSTRZEŻENIA.
Cel ćwiczenia został osiągnięty, ponieważ udało się zaprojektować i wykonać
urządzenie automatycznego rozpoznawania sygnału mowy zgodnie z uproszczoną
strukturą rozpoznawania sygnału mowy metodą rozpoznawania wzorców. Wynik
82% poprawnie rozpoznanych wyrazów jest zadowalający przy wykorzystaniu 5
wskazników. Dzięki temu, że słownik składał się z małej liczby wyrazów,
zdecydowałem się na rozpoznawanie wyrazów w pierwszej kolejności na podstawie
ich długości wartości energii sygnału. Jest to jedna z najłatwiejszych metod przy tak
małej liczbie wyrazów. Jednak wynik nadal nie był wystarczający, dlatego posłużyłem
się także w liczbą przejść przez zero, wartością maksymalną M oraz
współczynnikami LPC. Zapewnie wykorzystanie kolejnych wskazników jak np.
współczynniki FFT (widmo) lub obliczanie energii sygnału dla kolejnych części
wyrazów.
Błędy w wykryciu wyrazów były spowodowane najprawdopodobniej nienajlepszej
jakości sprzętem do nagrywania oraz brakiem odpowiedniego, wyciszonego miejsca
do nagrywania. Niedoskonałości wy wykrywaniu można także poszukiwać w
podobieństwie wykorzystanych wyrazów (ich długości  liczby próbek).
W celu poprawy jakości zbudowanego urządzenia można by było oprócz dodania
wyżej wspomnianych wskazników, także spróbować zwiększyć liczbę wzorcowych
wyrazów.
7


Wyszukiwarka

Podobne podstrony:
i9g1s1 wozniak lab4 sd
i9g1s1 wozniak lab5 sd
lab3 polowienia
Lab3
skrypt część ogólna J Woźniak
projekt SD NAW MT RW v2
SD przykłady do w2
SD przykłady do w1 13
Hipua lab3 spr
lab3 PMUEM
I9G1S1 Nadolny Michal Lab10
WdA Lab3 Lukasz Skrodzki
pn10 Matlab lab3 Bubak
Wykres W, skala sd
lab3 miernictwo
www Modul SD Wprow
ZSW LAB3 4

więcej podobnych podstron