Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Nejc Pušnik
GLASOVNA KLJUČAVNICA NA PLATFORMI RASPBERRY Pi
Magistrsko delo
Maribor, julij 2017
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Nejc Pušnik
GLASOVNA KLJUČAVNICA NA PLATFORMI RASPBERRY Pi
Magistrsko delo
Maribor, julij 2017
i
GLASOVNA KLJUČAVNICA NA PLATFORMI RASPBERRY Pi
Magistrsko delo
Študent: Nejc Pušnik
Študijski program: študijski program 2. stopnje
Računalništvo in informacijske tehnologije
Smer: /
Mentor: red. prof. dr. Aleš Holobar
Lektorica: Ksenija Pečnik, prof. slov. j.
ii
iii
Zahvala
Zahvaljujem se svojemu mentorju red. prof. dr. Alešu Holobarju za strokovno svetovanje, potrpežljivost in spodbudo pri nastajanju magistrskega dela.
Iskrena hvala tudi družini in dekletu za vso podporo in spodbudo med študijem. Posebna zahvala gre stricu Robertu za pomoč in svetovanje pri izdelavi lesenega
predala.
iv
Glasovna ključavnica na platformi Raspberry Pi
Ključne besede: glasovna ključavnica, Raspberry Pi, dinamično časovno prileganje,
koeficienti melodičnega kepstruma.
UDK: 004.357:004.934.8'1(043.2)
Povzetek
V magistrskem delu smo izdelali glasovno ključavnico na platformi Raspberry Pi. V
programskem jeziku Java smo izdelali program, ki s pomočjo mikrofona zajema zvočni
signal in iz njega izlušči koeficiente melodičnega kepstruma. Nato smo na podlagi razdalje,
izračunane z algoritmom dinamičnega časovnega prileganja, med seboj primerjali in
klasificirali posnetke izgovorjave 49 slovenskih besed sedmih različnih oseb. Analizirali smo
vpliv števila koeficientov melodičnega kepstruma, dolžine izgovorjene besede, števila
samoglasnikov v izgovorjeni besedi, spola govorcev in šuma. Pri posnetkih z razmerjem
signal–šum 25 dB je najmanjša dobljena napaka razpoznave znašala 9,45 %, pri posnetkih
z razmerjem signal–šum 15 dB pa približno 26,97 %.
v
Voice Lock on Raspberry Pi Platform
Keywords: Voice lock, Raspberry Pi, dynamic time warping, mel frequency cepstral
coefficient.
UDK: 004.357:004.934.8'1(043.2)
Abstract
In the master's thesis, we created a voice lock on the Raspberry Pi platform. In the Java
programming language, we created a program that uses a microphone to capture an
acoustic signal and extracts the Mel-frequency cepstral coefficients from it. Then, on the
basis of the distance, calculated by the dynamic time-matching algorithm, we compared
and classified the recordings of the pronunciation of 49 Slovene words by seven different
people. We analysed the influence of the number of Mel-frequency cepstral coefficients, the
length of the spoken word, the number of vowels in the spoken word, speaker’s gender and
noise. For the recordings with a signal-to-noise ratio of 25 dB the minimum detection error
was 9.45%, whereas for the recordings with a signal-to-noise ratio of 15 dB detection error
increased to 26.97%.
vi
KAZALO
1 UVOD ................................................................................................................ 1
2 STANJE TEHNIKE ................................................................................................ 3
2.1 Razpoznava govorcev ......................................................................................... 3
2.1.1 Značilnice ................................................................................................................... 3
2.1.2 Klasifikacijske metode................................................................................................ 4
2.2 Pregled uspešnosti uporabe raznih metod razpoznave govorcev ......................... 5
2.3 Obstoječe rešitve ............................................................................................... 7
2.4 Platforma Raspberry Pi ....................................................................................... 8
3 ZASNOVA REŠITVE IN IMPELEMNTACIJA .......................................................... 12
3.1 Detekcija govora .............................................................................................. 12
3.1.1 Energija signala ........................................................................................................ 13
3.1.2 Hammingovo okno ................................................................................................... 13
3.1.3 Število prehodov skozi ničlo .................................................................................... 14
3.2 Koeficienti melodičnega kepstruma .................................................................. 14
3.2.1 Predobdelava signala ............................................................................................... 15
3.2.2 Okenska funkcija ...................................................................................................... 15
3.2.3 Fourierova transformacija in filter Mel ................................................................... 16
3.2.4 Diskretna kosinusna transformacija ........................................................................ 16
3.2.5 Delta in delta-delta .................................................................................................. 17
3.2.6 Primer koeficientov MFCC ....................................................................................... 17
3.3 Dinamično časovno prileganje .......................................................................... 19
3.4 Implementacija glasovne ključavnice na Raspberry Pi ....................................... 25
3.4.1 Raspbian ................................................................................................................... 25
3.4.2 Java .......................................................................................................................... 26
3.4.3 Knjižnica TarsosDSP ................................................................................................. 27
3.4.4 Knjižnica Pi4J ............................................................................................................ 29
vii
3.5 Strojna oprema ................................................................................................ 30
3.5.1 LED-diode ................................................................................................................. 30
3.5.2 Gumb ....................................................................................................................... 30
3.5.3 Mikrofon USB ........................................................................................................... 31
3.5.4 Elektromagnetni zapah ............................................................................................ 31
3.5.5 Električna shema ...................................................................................................... 31
3.6 Implementacija klasifikacije ............................................................................. 32
3.6.1 Model govorca ......................................................................................................... 32
3.6.2 Inicializacija in pridobivanje zvočnih posnetkov ...................................................... 33
3.6.3 Obdelava zvočnega signala ...................................................................................... 34
3.6.4 VNEProcessor ........................................................................................................... 35
3.6.5 Upravljanje z GPIO ................................................................................................... 36
4 ANALIZA REŠITVE ............................................................................................. 38
4.1 Zasnova meritev ............................................................................................... 38
4.2 Vpliv števila MFCC-koeficientov ........................................................................ 41
4.3 Beli šum ........................................................................................................... 46
4.4 Vpliv samoglasnikov ......................................................................................... 52
4.5 Vpliv dolžine besed na uspešnost klasifikacije ................................................... 54
4.6 Vpliv spola govorca .......................................................................................... 59
4.7 Časovna in prostorska zahtevnost .................................................................... 61
5 ZAKLJUČEK ...................................................................................................... 65
6 VIRI ................................................................................................................. 67
viii
KAZALO SLIK
SLIKA 1.1: IDENTIFIKACIJA IN VERIFIKACIJA GOVORCA. POVZETO PO [15]. .............................................. 1
SLIKA 2.1: RASPBERRY PI 1, MODEL B. ........................................................................................... 9
SLIKA 3.1: SIGNAL PRED DETEKCIJO GOVORA. ................................................................................. 12
SLIKA 3.2: SIGNAL PO DETEKCIJI GOVORA. ..................................................................................... 13
SLIKA 3.3: HAMMINGOVO OKNO V ČASOVNI IN FREKVENČNI DOMENI. ................................................. 14
SLIKA 3.4: DIAGRAM POTEKA IZRAČUNA KOEFICIENTOV MFCC. ......................................................... 15
SLIKA 3.5: AMPLITUDE SPEKTRALNIH KARAKTERISTIK FILTROV MEL. AMPLITUDE POSAMEZNEGA FILTRA SO
TRIKOTNE OBLIKE. .............................................................................................................. 16
SLIKA 3.6: SPEKTROGRAM 15 KOEFICIENTOV MFCC ZA BESEDO »GORA«............................................ 18
SLIKA 3.7: RAZLIKE MED KOEFICIENTI MFCC RAZLIČNIH GOVORCEV PRI IZGOVORJAVI BESEDE »GORA«. CELICE
TEMNO MODRE IN RDEČE BARVE PREDSTAVLJAJO VEČJE RAZLIKE MED ISTO LEŽEČIMI KOEFICIENTI KOT
TISTE SVETLO MODRE BARVE. ............................................................................................... 19
SLIKA 3.8: DINAMIČNO ČASOVNO PRILEGANJE. POVZETO PO [30]. ..................................................... 20
SLIKA 3.9: KOEFICIENTI MFCC BESEDE »GORA« ZA DVE OSEBI. PUŠČICE MED STOLPCI MATRIK
PREDSTAVLJAJO ENO IZMED MOŽNIH PORAVNAV Z DTW. ZA VEČJO PREGLEDNOST SMO UPORABILI LE
PRVIH 5 OKEN. .................................................................................................................. 21
SLIKA 3.10: STROŠKOVNA MATRIKA MED OSEBO1 IN OSEBO2 PRI IZGOVORJAVI BESEDE »ALI«. TEMNEJŠA
KOT JE BARVA MATRIKE, MANJŠA JE RAZDALJA MED IZBRANIMA TOČKAMA. RDEČA ČRTA PREDSTAVLJA
OPTIMALNO POT PRILEGANJA. .............................................................................................. 23
SLIKA 3.11: VELJAVNA POT PRILEGANJA. POVZETO PO [30]. ............................................................. 24
SLIKA 3.12: NEUPOŠTEVANJE POGOJA MEJE. POVZETO PO [30]. ....................................................... 24
SLIKA 3.13: NEUPOŠTEVANJE POGOJA MONOTONOSTI. POVZETO PO [30]. .......................................... 24
SLIKA 3.14: NEUPOŠTEVANJE VELIKOSTI KORAKA. POVZETO PO [30]. ................................................ 24
SLIKA 3.15: VIDEZ OPERACIJSKEGA SISTEMA RASPBIAN. ................................................................... 26
SLIKA 3.16: PROCES DELOVANJA KNJIŽNICE TARSOSDSP. POVZETO PO [41]. ....................................... 28
SLIKA 3.17: RAZPORED DIGITALNIH LINIJ NA RASPBERRY PI B. RUMENO OBARVANE LINIJE SMO UPORABILI ZA
LED-DIODE, SIVO ZA GUMB IN MODRO ZA ZAPAH. OZEMLJITEV IN NAPAJANJE STA OBARVANA ČRNO IN
RDEČE. POVZETO PO [38]. .................................................................................................. 29
ix
SLIKA 3.18: LED-DIODE, UPORABLJENE ZA MAGISTRSKO DELO. .......................................................... 30
SLIKA 3.19: MIKRO GUMB. ........................................................................................................ 31
SLIKA 3.20: UPORABLJENI ELEKTROMAGNETNI ZAPAH UXCELL DC 4.5V SOLENOID ELECTROMAGNET. ...... 31
SLIKA 3.21: SHEMA ELEKTRIČNIH KOMPONENT. .............................................................................. 32
SLIKA 3.22: METODA TRYUNLOCK RAZREDA SPEAKERMODEL. .......................................................... 33
SLIKA 3.23: METODA RECORDANDEXTRACT RAZREDA KEYHOLE. ....................................................... 34
SLIKA 3.24: METODA PROCESS RAZREDA VNEPROCESSOR. .............................................................. 36
SLIKA 3.25: IZSEK PROGRAMSKE KODE ZA INICIALIZACIJO LINIJ GPIO. LINIJE GPIO_0, GPIO_1 IN GPIO_2
SKRBIJO ZA PRIŽIGANJE IN UGAŠANJE LED-DIOD. Z LINIJO GPIO_3 PREVERJAMO, ALI JE UPORABNIK
PRITISNIL GUMB, LINIJA GPIO_4 PA SKRBI ZA UPRAVLJANJE S KLJUČAVNICO. ................................. 37
SLIKA 3.26: IZSEK KODE ZA VKLOP IN IZKLOP LED DIOD. ................................................................... 37
SLIKA 4.1: PROTOTIP GLASOVNE KLJUČAVNICE, UPORABLJEN ZA SNEMANJE. ......................................... 38
SLIKA 4.2: POLOŽAJ PRI SNEMANJU SEJE 1 IN 2. .............................................................................. 39
SLIKA 4.3: SNEMANJE SEJE 3. ...................................................................................................... 39
SLIKA 4.4: BESEDA »GORA« BREZ DODANEGA ŠUMA. ...................................................................... 47
SLIKA 4.5: BESEDA »GORA« Z DODANIM BELIM ŠUMOM (SNRDB 20 DB). ........................................... 47
SLIKA 4.6: BESEDA »GORA« Z DODANIM BELIM ŠUMOM (SNRDB 15 DB). ........................................... 48
SLIKA 4.7: BESEDA »GORA« Z DODANIM BELIM ŠUMOM (SNRDB 10 DB). ........................................... 48
SLIKA 4.8: BESEDA »GORA« Z DODANIM BELIM ŠUMOM (SNRDB 5 DB). ............................................. 49
KAZALO TABEL
TABELA 2.1: VSI MODELI RASPBERRY PI IN NJIHOVE SPECIFIKACIJE. ..................................................... 10
TABELA 4.1: VPLIV ŠTEVILA MFCC-KOEFICIENTOV NA POVPREČNO VREDNOST METRIKE EER (± STANDARDNA
DEVIACIJA). ...................................................................................................................... 41
TABELA 4.2: VPLIV ŠTEVILA MFCC-KOEFICIENTOV NA POVPREČNO VREDNOST METRIKE EER (± STANDARDNA
DEVIACIJA). ...................................................................................................................... 41
TABELA 4.3: POVPREČNA USPEŠNOST KLASIFIKACIJE (± STANDARDNA DEVIACIJA) PRI DODAJANJU BELEGA
ŠUMA UČNI MNOŽICI. ......................................................................................................... 49
x
TABELA 4.4: POVPREČNA USPEŠNOST KLASIFIKACIJE (± STANDARDNA DEVIACIJA) PRI DODAJANJU BELEGA
ŠUMA TESTNI MNOŽICI. ....................................................................................................... 50
TABELA 4.5: BESEDE, UPORABLJENE ZA ANALIZO VPLIVA SAMOGLASNIKOV. .......................................... 52
TABELA 4.6: POVPREČNA USPEŠNOST (± STANDARDNA DEVIACIJA) KLASIFIKACIJE BESED Z RAZLIČNIM
ŠTEVILOM SAMOGLASNIKOV. ................................................................................................ 53
TABELA 4.7: BESEDE UPORABLJENE ZA ANALIZO VPLIVA DOLŽINE BESEDE ............................................. 54
TABELA 4.8: POVPREČNA VREDNOST EER (± STANDARDNA DEVIACIJA) BESED Z DVEMA SAMOGLASNIKOMA.
...................................................................................................................................... 55
TABELA 4.9: POVPREČNA VREDNOST EER (± STANDARDNA DEVIACIJA) VSEH BESED. .............................. 55
TABELA 4.10: POVPREČNE VREDNOSTI EER (± STANDARDNA DEVIACIJA) PRI UPORABI SAMO ŽENSKIH ALI
SAMO MOŠKIH GOVORCEV V UČNI MNOŽICI. ............................................................................ 59
TABELA 4.11: SPECIFIKACIJE OSEBNEGA RAČUNALNIKA IN RAČUNALNIKA RASPBERRY PI, NA KATERIH SMO
IZVAJALI MERITVE............................................................................................................... 62
TABELA 4.12: ČAS IZVAJANJA, KI ZAJEMA INICIALIZACIJO, USTVARJANJE UČNEGA MODELA IN TESTIRANJE
ENEGA VZORCA. ................................................................................................................ 62
TABELA 4.13: ČASOVNE MERITVE ZA PREPOZNAVO ENEGA VZORCA. ................................................... 63
TABELA 4.14: PORABA POMNILNIKA PRI KLASIFIKACIJI ENEGA VZORCA. ................................................ 63
1
1 UVOD
Glavni namen govora je komunikacija med ljudmi. Iz govora lahko poleg besed izluščimo še
mnogo drugih koristnih informacij. Te informacije nam razkrivajo spol govorcev, čustva, ki
jih izražajo, jezik v katerem pogovor teče, in identiteto govorcev. Razpoznava govorcev
(angl. speaker recognition) je torej področje, ki se ukvarja z identifikacijo in verifikacijo
govorcev s pomočjo informacij, pridobljenih iz zvočnega signala [9, 35]. Pozorni moramo
biti, da razpoznave govorcev ne zamenjamo z razpoznavo govora (angl. speech recognition),
ki se ukvarja z razpoznavo izgovorjenih besed.
Razpoznavo govorcev delimo na besedilno odvisno in neodvisno [9, 35]. Besedilno
neodvisni sistemi niso odvisni od izgovorjenih besed govorca, zato je razpoznavo govorcev
mogoče izvajati na spontanem govoru. Pri besedilno odvisni razpoznavi govorcev sistem
pričakuje točno določene besede, ki jih imenujemo tudi gesla [35]. Ravno zaradi poznanega
gesla takšni sistemi beležijo večjo uspešnost kot besedilno neodvisni sistemi.
Glede na način uporabe razpoznave govorcev poznamo identifikacijo in verifikacijo
govorcev (slika 1.1). Identifikacija je postopek, v katerem vsakemu govorcu pripišemo
identiteto iz zaprte množice možnih identitet [7, 9, 35]. Verifikacija govorca je proces, ki s
pomočjo glasovnih značilnosti preveri, ali je oseba res tista, za katero se izdaja. Verifikacija
govorcev kot rezultat vrne odločitev da ali ne, ki jo nato lahko uporabimo za razne
varnostne sisteme [7, 9, 35].
Slika 1.1: Identifikacija in verifikacija govorca. Povzeto po [15].
2
Na temo razpoznave govorcev obstaja že veliko raziskav [7, 35]. Pristopi k reševanju tega
problema segajo od enostavne primerjave dveh vzorcev [35], uporabe dinamičnega
časovnega prileganja [21, 28, 29, 30], uporabe različnih nevronskih mrež [7, 14, 35, 48] do
skritih modelov Markova [7, 14, 21, 35].
Namen magistrskega dela je pokazati, da lahko z uporabo ustreznih algoritmov in metod
kljub omejitvam strojne opreme na izbrani platformi (700 MHz enojedrni procesor ARM in
512 MB glavnega pomnilnika) uspešno implementiramo sistem za biometrično ključavnico.
Tak sistem naj bi bil cenovno ugoden in uporaben za široko paleto stvari iz vsakdanjega
življenja.
Magistrsko delo je razdeljeno na pet poglavij. V poglavju, ki sledi uvodu, pregledamo
literaturo in opišemo glavne lastnosti najbolj priljubljenih metod in algoritmov na področju
prepoznave govorcev. Ker je sestaven del našega magistrskega dela tudi platforma
Raspberry Pi, jo predstavimo in opišemo. Na koncu drugega poglavja predstavimo
obstoječe rešitve za prepoznavo govorcev. V tretjem poglavju opišemo izbrane algoritme,
knjižnice in strojno opremo, ki smo jih uporabili za izdelavo glasovne ključavnice. V četrtem
poglavju s pomočjo lastne zbirke posnetkov opravimo analizo svoje rešitve. Zadnje poglavje
vsebuje analizo in razpravo o dobljenih rezultatih, navaja možne izboljšave in poda sklepno
misel.
3
2 STANJE TEHNIKE
2.1 Razpoznava govorcev
2.1.1 Značilnice
Zvočni signal vsebuje ogromno podatkov, ki jih je neobdelane zelo potratno procesirati.
Večina postopkov za razpoznavo govorcev in tudi razpoznavo govora uporablja različne
metode za ekstrakcijo značilnic (angl. feature extraction) [35, 49]. Z ekstrakcijo značilnic iz
signala izluščimo pomembne in zavržemo vse nepotrebne in redundantne informacije.
Poznamo več metod za ekstrakcijo značilnic, najpogosteje omenjene pa so [9, 14, 49]:
linearno prediktivno kodiranje (angl. linear predictive coding, LPC). Linearno
prediktivno kodiranje računa koeficiente na podlagi predhodnih vzorcev, od tod
tudi ime. Z računsko nezahtevnim postopkom iz zvočnega signala odstrani obrazila,
nato oceni intenziteto in frekvenco preostalega signala. Uporablja se tudi za sintezo
govora in v algoritmih za kodiranje zvoka [9, 14, 44];
koeficienti melodičnega kepstra (angl. Mel-frequency cepstral coefficients, MFCC)
so uspešna in pogosto uporabljena metoda, saj poskušajo posnemati človeško
zaznavo zvoka. Uporabljajo tako imenovano skalo Mel: do 1000 Hz je skala linearna,
nato pa logaritmična. Koeficientom MFCC se pogosto dodajo še delta in delta-delta
koeficienti, ki opisujejo spreminjanje koeficientov MFCC skozi čas [9, 10, 14, 29];
koeficienti zaznave linearne predikcije kepstra (angl. perceptual linear prediction
cepstral, PLP) temeljijo na magnitudi spektra in so nastali kot poskus izboljšave
metode LPL. So robustnejši od metode LPL in poleg MFCC ena izmed bolj
uporabljenih metod [9, 20];
metoda i-vektorjev. S pomočjo faktorske analize iz posnetka dobimo vektor
značilnic z majhnim številom dimenzij, ki je neodvisen od dolžine samega posnetka.
Z namenom izboljšane učinkovitosti se ta metoda pogosto uporablja v kombinaciji
z različnimi statističnimi metodami, kot sta linearna diskriminantna analiza (angl.
linear discriminant analysis) in verjetnostna linearna diskriminantna analiza (angl.
probabilistic linear discriminant analysis) [13].
4
2.1.2 Klasifikacijske metode
V literaturi zasledimo večje število klasifikacijskih metod, ki se uporabljajo na področju
razpoznavanja govorcev:
1. Nevronske mreže srečujemo večinoma na področju umetne inteligence, vendar se
uporabljajo tudi za razpoznavo govorcev. Lahko jih uporabimo na več načinov: kot
metodo za ekstrakcijo značilnic iz posnetkov, kot klasifikator, ki na vhod sprejme
enega ali več vektorjev značilnic (MFCC, LPC itd.) ali pa kot celovit sistem za
klasifikacijo govorcev (zvočni signal je vhod v nevronsko mrežo) [48]. Nevronska
mreža poskuša posnemati delovanje človeških možganov, zato enako kot možgani
uporablja nevrone oziroma vozlišča, ki imajo svoje vhode, prenosno funkcijo in
izhod. Pomanjkljivost nevronskih mrež je, da jih je treba učiti, za kar pa je potreben
čas in veliko podatkov [35, 48].
2. Vektorska kvantizacija je metoda, katere osnovni princip je gručenje vektorjev.
Uporablja tako imenovano kodno knjigo (angl. code book), kjer so shranjene
povprečne vrednosti vsake gruče vektorjev in njihov indeks. Za vsak nov vektor se
izračuna oddaljenost do vseh gruč, nato pa se vektor doda najbližji gruči in se
izračuna nova povprečna vrednost gruče. Tako lahko več vektorjev, ki so med seboj
podobni, predstavimo z enim indeksom. Napako, ki nastaja zaradi razlike med
povprečno vrednostjo gruče in dejanskim vektorjem, imenujemo kvantizacijska
napaka. Za vsakega govorca je treba izdelati kodno knjigo, nato pa uporabimo
kvantizacijsko napako testnih vektorjev kot merilo za klasifikacijo [21].
3. Dinamično časovno prileganje (angl. dynamic time warping, DTW) temelji na
principu izračuna razdalje med dvema vektorjema [30, 35]. Za razliko od vektorske
kvantizacije je pomembno tudi časovno zaporedje vektorjev značilnic. Algoritem
DTW tako vrne razdaljo med testnim vektorjem in shranjenim vektorjem znanega
govorca. Na podlagi razdalje se odločimo, ali je govorec pristen ali ne. Algoritem
poskuša sam optimizirati razdaljo med vektorjema tako, da ju primerja na različnih
mestih. Ta lastnost je zelo praktična, saj dva posnetka iste besede nista nikoli
popolnoma enaka [21].
4. Gaussov mešalni model je ena izmed bolj priljubljenih metod klasifikacije,
predvsem pri besedilno neodvisni razpoznavi govorcev [21, 36]. Metodo si lahko
predstavljamo podobno kot kodne knjige pri vektorski kvantizaciji. Namesto gruč,
ki so definirane s povprečjem vseh vektorjev v njej, uporabimo gostote verjetnosti
(angl. probabilty density functions, PDF) Gaussove porazdelitve. Največji izziv te
metode predstavlja ravno izbira ustreznih gostot verjetnosti. Tako bi v optimalnem
primeru po ena gostota verjetnosti zajemala vse vektorje posameznega razreda [21,
36].
5
5. Skriti model Markova (angl. hidden Markov model, HMM) je sestavljen iz več
skritih, med seboj povezanih stanj, ki predstavljajo Markovo verigo [9]. Vsako stanje
predstavlja del izgovorjene besede. S pomočjo poznavanja trenutnega stanja in
statističnega modela lahko izračunamo verjetnost, da beseda pripada določenemu
razredu. Čeprav je metoda HMM zelo uspešna, je njena velika težava v tem, da
potrebuje veliko število učnih vzorcev za izgradnjo robustnega statističnega modela
[9, 21].
2.2 Pregled uspešnosti uporabe raznih metod razpoznave govorcev
Večina del na temo verifikacije govorcev je namenjena analizi telefonskih pogovorov.
Članek [53] pa se je osredotočil na verifikacijo govorcev na napravah VHF (angl. very high
frequency). Te se lahko uporabljajo za pomorsko komunikacijo ladij, komunikacijo med
letali in nadzornim stolpom ter kot FM-radio. V članku je omenjeno, da imajo takšni zvočni
posnetki mnogo več šuma kot posnetki telefonskih pogovorov. Za povečanje robustnosti
sistema so uporabili več različnih korpusov za učenje (lastne posnetke VHF, posnetke z iPad-
a, zasebno zbirko inštituta I2R [23] in bazo RSR2015 [37]). Sam sistem je bil sestavljen kot
fuzija treh različnih tehnik: Gaussovega mešalnega modela (angl. gaussian mixture model –
universal background model, GMM-UBM), metodo i-vektorjev in JFA (angl. joint factor
analysis). Vsi omenjeni sistemi so uporabili 57 koeficientov MFCC (vključno z značilnicami
delta in delta-delta). Verifikacijo so izvajali z dvema gesloma (imenom in ID-številko). Z
uporabo samo enega gesla je bila napaka sistema 14 % (ime) in 16 % (ID), ob združitvi obeh
gesel pa so napako zmanjšali na 11 % [53].
Že večkrat omenjena metoda i-vektorjev je trenutno zelo priljubljena pri besedilno
neodvisni verifikaciji govorca. Stafylakis in sodelavci [43] so želeli pokazati, da jo lahko
uporabimo tudi za besedilno odvisno verifikacijo. Metodo i-vektorjev, prilagojeno analizo
PLDA (angl. probabilistic linear discriminant analysis) in 60 koeficientov MFCC (vključno z
značilnicami delta in delta-delta) so preizkusili na korpusu RSR2015 [37]. Napake, ki so jih
dobili na treh različno prilagojenih analizah PLDA, so bile 2,99 %, 2,93 % in 1,71 %. V
zaključku raziskave so zapisali, da trenutno metodi i-vektorjev in PLDA nista dovolj uspešni,
da bi zamenjali enostavnejšo in uspešnejšo metodo GMM-UBM [43].
6
Najdemo tudi članke, kjer metode i-vektorjev in PLDA niso modificirali za besedilno odvisno
verifikacijo. V članku iz leta 2013 [25] lahko zasledimo, da so sestavili sistem z 39 koeficienti
PLP (vključno z značilnicami delta in delta-delta), filtrom RASTA [19], normalizacijo CMS
[52], metodo PLDA in metodo i-vektorjev. Za učenje so uporabili korpus NIST-SRE 2004 in
2005 [31, 32], za testiranje pa RSR2015 [37]. Odločili so se, da se bodo osredotočili le na
posnetke moških oseb. V svojih testih so preizkusili tudi, kakšen vpliv ima uporaba več gesel
za verifikacijo. Z uporabo enega gesla je bila napaka 6,97 %, z dvema gesloma 4,09 %, s
tremi pa se je zmanjšala na 3,27 % [25].
Eno izmed novejših del o verifikaciji govorcev predlaga uporabo globokih nevronskih mrež
za izločitev značilnic, ki se nato uporabijo v GMM-UBM [48]. Avtorji članka so ta sistem
primerjali z metodo i-vektorjev. Prišli so do ugotovitve, da je njihov pristop dober, vendar
slabši od metode i-vektorjev, ki je sicer namenjena za besedilno-neodvisno prepoznavo
govorcev. Ugotovili so tudi, da dobijo najboljše rezultate, če združijo oba pristopa in s tem
napako zmanjšajo na okoli 2,4 % [48].
Viswanadham, Subrahmanyam in Priya [49] so v svojem članku uporabili metodo vektorske
kvantizacije. Kot vhod so uporabili 12 koeficientov MFCC, ki jih je vektorska kvantizacija s
pomočjo algoritma K-means nato klasificirala v ustrezne gruče. Takšen sistem je imel
napako 6 % [49].
Ena izmed težav, ki otežujejo verifikacijo govorcev, je, da je nemogoče posneti dva
popolnoma enaka zvoka. Pojavljajo se majhne razlike, ki nastajajo zaradi zvokov iz okolice,
šuma snemalne naprave, človeškega dejavnika in raznih bolezni ter poškodb vokalnega
trakta. Raziskovalca Ariyaeeinia in Sivakumaran [4] sta raziskovala, kako lahko zmanjšamo
vpliv teh dejavnikov. Ugotovila sta, da lahko s pomočjo neomejene kohortne normalizacije
[26] napako razpoznave pri metodi HMM zmanjšamo s 15 % na 8 % [4].
V literaturi najdemo tudi praktične primere uporabe verifikacije govorca. Wahyudi in
Syazilawati [51] sta verifikacijo govorca uporabila na računalniku, ki je bil povezan z
elektromagnetno ključavnico. Kot značilnice sta uporabila koeficiente PLP, za prepoznavo
oseb pa adaptivno mehko logiko (angl. adaptive network based fuzzy inference system,
7
ANFIS). Teste sta izvedla na devetih osebah, sistem pa je bil naučen prepoznati tri osebe.
Prišla sta do ugotovitve, da je sistem primeren za uporabo v manj kritičnih varnostnih
sistemih, saj je napaka napačne zavrnitve znašala (angl. false rejection rate, FFR) okoli 14 %,
napaka napačne razpoznave (angl. false acceptance rate, FAR) pa 6,5 % [51].
2.3 Obstoječe rešitve
Namen magistrskega dela je izdelati celovito rešitev, ki se lahko uporabi za množico stvari
iz vsakdanjega življenja. Da bi to dosegli, smo se odločili, da verifikacijo govorca
implementiramo na platformi Raspberry Pi, ki jo lahko uporabimo praktično za vse, od
prižiganja in ugašanja hišnih luči [5], pošiljanja SMS-sporočil [5] do izdelave lastne igralne
konzole [5]. Z namenom, da bi ugotovili, kaj na tržišču že obstaja, smo izvedli kratek pregled
obstoječih rešitev.
Prvi mednarodni patent na temo verifikacije govorca je iz leta 1983 [8]. Patent je vložilo
podjetje CSELT (it. Centro Studi e Laboratori Telecomunicazioni), ki se je ukvarjalo z
raziskavami na področju telekomunikacij. Patent je bil temelj za mnogo drugih patentov na
področju razpoznave govorca in govora, saj je naveden v 29 drugih patentih [8].
Najdemo tudi podjetja, ki ponujajo celovite rešitve za glasovno verifikacijo. Podjetje
Nuance ponuja svoj izdelek VocalPassword [33], ki omogoča verifikacijo govorca prek
spleta, mobilne aplikacije ali telefonskega pogovora. Izdelek je namenjen predvsem
podjetjem iz finančnega sektorja (banke, borze), telekomunikacijskim podjetjem in javni
upravi. Za vzpostavitev sistema mora uporabnik ob prvi uporabi trikrat ponoviti izbrano
geslo, ki se nato shrani na njihov strežnik. Ob vsaki prijavi v sistem se izgovorjeno geslo
primerja s shranjenim in z bazo znanih goljufov [33].
Podjetje GoVivance ponuja podobno storitev [16]. Za razliko od Nuance njihov izdelek
uporablja besedilno neodvisno verifikacijo. Uporabnik mora prebrati besedilo, dolgo
približno med 30 in 45 sekund. Na voljo je kot namizna ali spletna aplikacija in deluje na
večini platform (Windows, Linux in Mac). Za svoje delovanje pa potrebuje najmanj 4 GB
delovnega pomnilnika in procesor s taktom vsaj 2.0 GHz [16].
8
V letu 2007 je nastalo podjetje United Linkers, ki ponuja razne biometrične sisteme za
varovanje avtomobilov. Eden izmed takih sistemov je Voicesafe-36 [47], ki je besedilno
neodvisen sistem za verifikacijo govorca. Uporabnik mora za vzpostavitev sistema na glas
prebrati vnaprej definirano besedilo. Sistem se vgradi v vozilo tako, da brez pravega
govorca ni mogoče zagnati motorja [47].
Z razmahom dokaj zmogljivih in dostopnih pametnih telefonov so se tudi na teh pojavile
aplikacije, ki omogočajo glasovno odklepanje. Preizkusili smo najbolj priljubljene aplikacije
Android za glasovno odklepanje, ki so na voljo v Google Play Store.
Smart Voice Lock Screen omogoča odklepanje zaslona z izbranim geslom. Aplikacija za
učenje potrebuje dve ponovitvi gesla in povezavo s spletom. Sama aplikacija oziroma
spletni servis, ki ga ta uporablja, ima vgrajeno tudi prepoznavo besed (angleških), saj ob
shranjevanju gesla prikaže, katero besedo smo izgovorili [1].
Tudi aplikacija Voice Lock, ki je druga po številu prenosov, ima podoben način delovanja.
Uporabnik mora tokrat samo enkrat izgovoriti geslo, da si ga aplikacija zapomni. Prav tako
kot prva prepoznava angleške besede, za svoje delovanje pa ne potrebuje povezave s
spletom. Žal za nobeno izmed preizkušenih aplikacij ni navedeno, kakšna tehnologija je
uporabljena [42].
Na operacijskem sistemu iOS ne najdemo veliko aplikacij, ki omogočajo verifikacijo govorca.
Ena izmed redkih je OpenSezMe [50]. Aplikacija za delovanje potrebuje povezavo s
spletom, namenjena pa je varnemu shranjevanju besedila. Za vzpostavitev sistema mora
uporabnik izgovoriti števila, ki se izpisujejo na zaslonu (od 1 do 9). Odklepanje poteka tako,
da se 3-krat prikažejo tri različna števila, ki jih mora uporabnik prebrati [50].
2.4 Platforma Raspberry Pi
Raspberry Pi (slika 2.1) je cenovno ugoden mini računalnik, katerega namen je predvsem
učenje programiranja in računalništva. Prvi izdani model nosi ime Raspberry Pi 1, model B
9
in se je začel prodajati februarja 2012. Kmalu mu je sledil še okrnjeni model A. Zaradi
velikega uspeha se skoraj vsako leto pojavi nov model. Za uporabo Raspberry Pi-ja
potrebujemo kartico SD oziroma micro-SD (nadomestilo za trdi disk), zaslon s priključkom
HDMI, kabel HDMI, tipkovnico in miško. Po potrebi lahko priključimo še USB-kamero,
slušalke ali zvočnike in vozlišče USB.
Eden izmed razlogov za uspeh računalnika Raspberry Pi je tudi možnost upravljanja s 26
oziroma 40 digitalnimi linijami (angl. general-purpose input/output pins, GPIO). S pomočjo
teh lahko naprava upravlja in prejema signale iz drugih električnih komponent, kot so
gumbi, stikala, diode LED in razni senzorski moduli (IR-kamera, merjenje temperature, vlage
itd.).
Pred pričetkom z delom na računalniku Raspberry Pi moramo na SD-kartico prenesti izbrani
operacijski sistem. Na voljo imamo veliko število distribucij (Raspbian, Ubuntu, Arch Linux
itd.), na novejših modelih (Raspberry Pi 2, model B, in Raspberry Pi 3, model B) pa deluje
tudi Windows 10. V tabeli 2.1 so navedene specifikacije vseh modelov [45].
Slika 2.1: Raspberry Pi 1, model B.
10
Tabela 2.1: Vsi modeli Raspberry Pi in njihove specifikacije.
Ime modela Specifikacije Izdaja
Raspberry Pi 1, model B Prvi izdani model
- 2 USB 2.0
- ARMv6 single core 700MHz
- 512 MB pomnilnika
- 26 GPIO
- priključek Ethernet
- SD-reža
Februar 2012
Raspberry Pi 1, model B+ - 4 USB 2.0
- ARMv6 single core 700 MHz
- 512 MB pomnilnika
- 40 GPIO
- priključek Ethernet
- mikro SD-reža
Julij 2014
Raspberry Pi 2, model B - 4 USB 2.0
- ARMv7 quad core 900 MHz
- 1 GB pomnilnika
- 40 GPIO
- priključek Ethernet
- mikro SD-reža
Februar 2015
Raspberry Pi 3, model B - 4 USB 2.0
- ARMv8 quad core 1.2 GHz 64bit
- 1 GB pomnilnika
- 40 GPIO
- priključek Ethernet
- mikro SD-reža
- Bluetooth 4.1
- 802.11n Wireless LAN
Februar 2016
Raspberry Pi 1, model A - 1 USB 2.0
- ARMv6 single core 700MHz
- 256 MB pomnilnika
- 26 GPIO
- SD-reža
Februar 2012
11
Ime modela Specifikacije Izdaja
Raspberry Pi 1, model A+ - 1 USB 2.0
- ARMv6 single core 700MHz
- 256 MB pomnilnika
- 40 GPIO
- mikro SD-reža
November 2014
Raspberry Pi Zero - 1 mikro USB
- 512 MB pomnilnika
- mikro SD-reža
- HAT-compatible 40-pin header
November 2015
12
3 ZASNOVA REŠITVE IN IMPELEMNTACIJA
3.1 Detekcija govora
Detekcija govora (angl. voice activity detection, VAD) oziroma izločanje odsekov signala
brez govora je pomemben korak predobdelave signala (sliki 3.1 in 3.2) [2]. Če detektorja
govora nimamo ali je slab, lahko to drastično poslabša rezultate verifikacije govorca. Zaradi
učenja na odsekih signala brez govora lahko dobimo pokvarjen akustični model. Preveč
»strog« detektor govora pa nam lahko odreže dele izgovorjenih besed in s tem pokvari
prepoznavo. Detekcija govora je sestavljena iz dveh delov: ocenjevanja značilnic in
odločanja na njihovi osnovi.
Za namen magistrskega dela smo uporabili detekcijo govora, ki temelji na uporabi energije
signala in števila prehodov ničel (angl. zero-crossing rate, ZCR) [6]. Na vhodu signal s
pravokotnim oknom razrežemo na intervale, velike 512 vzorcev, ki se prekrivajo za 256
vzorcev. Za vsak interval izračunamo število prehodov ničel. Nato okno pomnožimo s
Hammingovim oknom in izračunamo energijo odseka [2, 6].
Slika 3.1: Signal pred detekcijo govora.
13
Slika 3.2: Signal po detekciji govora.
3.1.1 Energija signala
Energija je enostavna mera, ki meri glasnost signala. Zaradi njene enostavnosti in
zadovoljive uspešnosti v okoljih brez veliko šuma je ena izmed bolj priljubljenih metod za
detekcijo govora. Energija signala v oknu m se izračuna po (3.1).
𝐸𝑚 =
1
𝑁∑ 𝑥(𝑚, 𝑛)2
𝑁
𝑛=1
(3.1)
Tu je Em energija m-tega odseka signala, N predstavlja dolžino oziroma velikost okna, x(m,n)
pa je vrednost n-tega vzorca signala pri m-ti postavitvi okna. Okna, katerih energija Em je
manjša od praga θ, ne vsebujejo govora. Prag izračunamo tako, da ob vsakem zagonu
sistema posnamemo zvočni posnetek dolžine 500 ms. Nato izračunamo povprečno energijo
posnetka in jo uporabimo kot naš prag [2, 6].
3.1.2 Hammingovo okno
Namen okenskih funkcij je razrez signala na krajše odseke. Če signal enostavno razrežemo
na krajše dele, smo uporabili pravokotno okno. Slabost tega je frekvenčno popačenje
signala na robovih oken (Gibbsov pojav). Zaradi te pomanjkljivosti pravokotnega okna se za
razrez signala pogosto uporabljajo druge okenske funkcije. Za potrebe našega magistrskega
dela smo uporabili Hammingovo okensko funkcijo (3.2), ki zmanjša Gibbsov pojav [3, 54].
14
ℎ(𝑛) = { 0.54 + 0.46 cos (
2𝜋𝑛
𝑁 − 1) , 0 ≤ 𝑛 < 𝑁
0, 0 > 𝑛 > 𝑁 . (3.2)
Slika 3.3: Hammingovo okno v časovni in frekvenčni domeni.
3.1.3 Število prehodov skozi ničlo
Število prehodov skozi ničlo je mera, ki šteje, kolikokrat v določenem časovnem intervalu
signal prečka ničlo oziroma spremeni predznak (3.3). V raziskavah so ugotovili, da odseki
brez govora vsebujejo veliko visokih frekvenc, kar pomeni, da v kratkem časovnem
intervalu velikokrat prečkajo ničlo [2, 6].
𝑍𝐶 =
1
2∑|𝑠𝑔𝑛[𝑥(𝑛)] − 𝑠𝑔𝑛[𝑥(𝑛 − 1)]|,
𝑁−1
𝑛=1
𝑠𝑔𝑛 = { 1, 𝑥(𝑛) ≥ 0
−1, 𝑥(𝑛) < 0 .
(3.3)
3.2 Koeficienti melodičnega kepstruma
Izmed vseh možnih značilnic, ki smo jih našteli pri opisu stanja tehnike, smo se odločili
uporabiti koeficiente melodičnega kepstra. Ti temeljijo na lestvici (skali) Mel, ki je približek
delovanja človeškega ušesa. Človeški sluh pri frekvencah, nižjih od 1000 Hz, bolje zaznava
manjše spremembe, medtem ko pri višjih frekvencah teh več ne sliši. Na podlagi tega
15
dejstva je bila ustvarjena skala Mel, ki je do 1000 Hz linearna, nato pa logaritemska. Za
izračun koeficientov MFCC (angl. Mel-frequency cepstral coefficients) poznamo več
postopkov, mi pa smo uporabili postopek, prikazan na sliki 3.4 [10, 28].
Slika 3.4: Diagram poteka izračuna koeficientov MFCC.
3.2.1 Predobdelava signala
Večina del, ki opisujejo koeficiente MFCC, predlaga uporabo različnih filtrov ali
normalizacije za izboljšanje kakovosti signala in uspešnosti samega sistema. Sami smo za
predobdelavo signala uporabili filter s končnim impulznim odzivom (angl. finite impulse
response, FIR). Namen filtra je poudariti višje frekvence v signalu. Lahko ga izvedemo v
časovni ali frekvenčni domeni. Za izračun FIR-filtra v časovni domeni uporabimo (3.4).
𝑦(𝑛) = 𝑥(𝑛) − 𝑎 𝑥(𝑛 − 1) (3.4)
Vhodni signal je predstavljen z x(n), izhod iz FIR-filtra pa z y(n). Vrednost spremenljivke a je
med 0 in 1. Samo smo uporabili vrednost 0,95, enako kot v literaturi [29].
3.2.2 Okenska funkcija
Signal po filtriranju razrežemo na odseke dolžine 512 vzorcev, ki se med seboj prekrivajo za
256 vzorcev. Nad vsakim odsekom izvedemo Hammingovo okensko funkcijo, ki smo jo že
opisali v prejšnjem poglavju.
16
3.2.3 Fourierova transformacija in filter Mel
Nad vsakim oknom izvedemo hitro Fourierovo transformacijo (angl. fast Fourier transform,
FFT), da dobimo spekter signala. Vsak spekter nato pomnožimo s spektri nabora filtrov Mel
(angl. Mel filter bank). Amplitude spektralne karakteristike teh filtrov so trikotne oblike in
se prekrivajo (slika 3.5). Izhod vsakega filtra Mel je vsota filtriranih spektralnih komponent.
Te vsote tvorijo tako imenovani spekter Mel.
Slika 3.5: Amplitude spektralnih karakteristik filtrov Mel. Amplitude posameznega filtra so
trikotne oblike.
3.2.4 Diskretna kosinusna transformacija
V zadnjem koraku izračuna koeficientov MFCC se moramo vrniti v časovno domeno. Zato
uporabimo diskretno kosinusno transformacijo nad logaritmom spektra Mel vsakega okna
(3.5).
𝑐𝑘 = ∑ (log 𝑆𝑛) cos [
𝜋𝑘
𝑁(𝑛 +
1
2) ]
𝑁−1
𝑛=0
𝑘 = 0, 1, … , 𝑁 − 1.
(3.5)
Spremenljivka N je število filtrov Mel, Sn pa je vrednost spektra odseka signala po množenju
z n-tim filtrom Mel. Število dobljenih koeficientov MFFC ck je enako številu filtrov N. Koliko
17
dobljenih koeficientov bomo uporabili, lahko izberemo sami, priporočeno število je
približno med 12 in 20 [28, 29].
3.2.5 Delta in delta-delta
Iz dobljenih koeficientov MFCC lahko izračunamo značilnice delta in delta-delta. Te so
znane po tem, da povečajo uspešnost klasifikacije [10, 28, 29]. Medtem ko koeficienti MFCC
opisujejo lastnosti posameznega okna, nam koeficienti delta in delta-delta povedo, kako se
koeficienti MFCC spreminjajo skozi čas. Izračunajo se po (3.6) in se nato pripnejo
koeficientom MFCC. Tako dobimo vektor značilnic, sestavljen iz koeficientov MFCC, delta
in delta-delta.
𝐷𝑤 =
∑ 𝑚(𝑐𝑤+𝑚 − 𝑐𝑤−𝑚)𝑀𝑚=0
2 ∑ 𝑚2𝑀𝑚=0
(3.6)
cw v (3.6) predstavlja vektor koeficientov MFCC okna w, Dw je tako vektor koeficientov delta
okna w. Vrednost M določimo sami, priporočena vrednost je med 2 in 3 [28]. Koeficiente
delta-delta izračunamo na enak način, le da vektor koeficientov MFCC zamenjamo z
vektorjem koeficienti delta (3.7).
𝐸𝑤 =
∑ 𝑚(𝐷𝑤+𝑚 − 𝐷𝑤−𝑚)𝑀𝑚=0
2 ∑ 𝑚2𝑀𝑚=0
(3.7)
3.2.6 Primer koeficientov MFCC
Po postopku, ki smo ga opisali v prejšnjih poglavjih smo izračunali 15 koeficientov MFCC za
besedo »gora«, ki so jo izgovorile tri različne osebe. Spektrogram dobljenih koeficientov
vidimo na sliki 3.6. Koeficient C0 je izpuščen, saj predstavlja energijo posameznega okna.
18
Za lažjo predstavo razlik med spektrogrami smo izdelali spektrograme, ki prikazujejo razliko
med isto ležečimi koeficienti. Te prikazujemo na sliki 3.7.
Slika 3.6: Spektrogram 15 koeficientov MFCC za besedo »gora«.
19
Slika 3.7: Razlike med koeficienti MFCC različnih govorcev pri izgovorjavi besede »gora«.
Celice temno modre in rdeče barve predstavljajo večje razlike med isto ležečimi koeficienti
kot tiste svetlo modre barve.
3.3 Dinamično časovno prileganje
Vektorje z značilnicami je treba med seboj primerjati, zato uporabimo eno izmed
klasifikacijskih metod. Ker je cilj magistrske naloge delujoča ključavnica za poljubnega
uporabnika, potrebujemo metodo, ki ne potrebuje veliko učnih vzorcev in je časovno in
prostorsko nezahtevna. Zaradi tega smo se odločili uporabiti dinamično časovno prileganje
DTW [21]. DTW je pogosto uporabljena tehnika, ki poišče optimalno poravnavo med dvema
vektorjema. Na sliki 3.8 je primerjava dveh vektorjev (črni črti zgoraj in spodaj) z DTW.
Vsaka črtkana črta predstavlja poravnavo med točko v prvem in drugem vektorju.
20
Slika 3.8: Dinamično časovno prileganje. Povzeto po [30].
Algoritem DTW primerja dve časovno odvisni zaporedji X: = (x1, x2, x3, …, xn) dolžine n ∈ N
in Y: = (y1, y2, y3, …, ym) dolžine m ∈ M. Da lahko primerjamo dva posamezna elementa xi in
yj, potrebujemo stroškovno funkcijo c(xi, yj). Če sta si elementa podobna je c(xi, yj) majhna,
drugače ima veliko vrednost. V primeru naše magistrske naloge je X vektor vseh oken
signala, posamezen element xi pa vektor koeficientov MFCC, enako velja za Y (torej sta
zaporedji X in Y v našem primeru matriki). Praktičen prikaz teh matrik za besedo »gora«
lahko vidimo na sliki 3.9. Stolpci v matrikah predstavljajo vektorje x1, x2, x3, x4, x5 oziroma
y1, y2, y3, y4, y5.
21
Slika 3.9: Koeficienti MFCC besede »gora« za dve osebi. Puščice med stolpci matrik
predstavljajo eno izmed možnih poravnav z DTW. Za večjo preglednost smo uporabili le
prvih 5 oken.
22
V magistrskem delu smo za stroškovno funkcijo uporabili evklidsko razdaljo, ki jo
izračunamo po (3.8).
𝑑(𝑥𝑖 , 𝑦𝑗) = 𝑑(𝑦𝑗 , 𝑥𝑖) = √∑(𝑥𝑖𝑧− 𝑦𝑗𝑧
)2
𝑍
𝑧=1
2
(3.8)
S stroškovno funkcijo d(xi, yj) izračunamo razdaljo med vektorjema xi in yj. Števca i in j nam
povesta, med katerima vektorjema (stolpcema) iz matrike X in Y bomo računali razdaljo.
Števec z pa predstavlja elemente vektorjev xi in yj, ki so v našem primeru koeficienti MFCC
(vrstice v matriki X in Y).
Za izračun vseh možnih poravnav med X in Y lahko uporabimo stroškovno matriko, primer
katere je podan na sliki 3.10. Stroškovna matrika A je velikosti [N:M], saj na njeni osi
postavimo elemente zaporedij X in Y. Matriko izpolnimo tako, da za vsak par elementov xi
in yj izračunamo razdaljo s pomočjo stroškovne funkcije c(xi, yj). Poravnava med
zaporedjema X in Y je v stroškovni matriki A predstavljena kot zaporedje poravnav njunih
elementov xi in yj (to zaporedje tvori pot med [1:1] in [M:N]). Vsaka poravna mora
upoštevati pogoje, navedene v nadaljevanju.
Pot prileganja (angl. warping path) je zaporedje z L-elementi p = (p1, p2, …, pL), kjer je pl(nl,
ml) in velja n ∈ {1, …, N}, m ∈ {1, …, M} ter l ∈ {1, …, L}. Pot prileganja mora izpolnjevati
naslednje pogoje [30]:
i. pogoj meje: p1 = (1,1) in pL= (N,M).
ii. pogoj monotonosti: n1 ≤ n2 ≤ …≤ nL in m1 ≤m2 ≤ … ≤mL
iii. velikost koraka: pi+1 – pi ∈ {(1,0),(0,1),(1,1)} za i ∈ [1:L-1]
23
Slika 3.10: Stroškovna matrika med Osebo1 in Osebo2 pri izgovorjavi besede »ali«.
Temnejša kot je barva matrike, manjša je razdalja med izbranima točkama. Rdeča črta
predstavlja optimalno pot prileganja.
Prvi pogoj pravi, da sta prva in zadnja elementa zaporedij X in Y vedno poravnana med
seboj. Pogoj monotonosti zahteva, da če je v zaporedju X element xi pred elementom xj,
mora enako veljati tudi za elementa iz zaporedja Y, s katerima sta ta xi in xj poravnana. Zadnji
pogoj prepoveduje podvajanje in izpuščanje posameznih elementov iz poravnave.
Praktičen prikaz pravil lahko vidimo na slikah od 3.11 do 3.14.
24
Slika 3.11: Veljavna pot prileganja. Povzeto
po [30].
Slika 3.12: Neupoštevanje pogoja meje.
Povzeto po [30].
Slika 3.13: Neupoštevanje pogoja
monotonosti. Povzeto po [30].
Slika 3.14: Neupoštevanje velikosti koraka.
Povzeto po [30].
Končna cena cp(X,Y) poti prileganja p(X,Y) ob uporabi stroškovne funkcije c je definirana s
(3.9).
𝑐𝑝(𝑋, 𝑌) = ∑ 𝑐(𝑥𝑛𝑙
, 𝑦𝑚𝑙)
𝐿
𝑙=1
(3.9)
Cilj algoritma DTW je poiskati optimalno pot prileganja v stroškovni matriki A [30]. Ker bi
bilo računanje vseh možnih poti časovno potratno, algoritem DTW uporabi principe
dinamičnega programiranja. Algoritem si ustvari tako imenovano akumulacijsko stroškovno
matriko D(n,m). Za izračun prvega stolpca matrike D uporabimo (3.10).
25
𝐷(𝑛, 1) = ∑ 𝑐(𝑥𝑘 , 𝑦1)
𝑛
𝑘=1
(3.10)
Tu je n ∈ [1:N]. Prvo vrstico izračunamo po enakem principu:
𝐷(1, 𝑚) = ∑ 𝑐(𝑥1, 𝑦𝑚)
𝑚
𝑘=1
(3.11)
Tu je m ∈ [M:1]. Nato z rekurzivno formulo (3.12) izračunamo preostanek matrike D.
𝐷(𝑛, 𝑚) = min{𝐷(𝑛 − 1, 𝑚 − 1), 𝐷(𝑛 − 1, 𝑚), 𝐷(𝑛, 𝑚 − 1)} + 𝑐(𝑥𝑛, 𝑦𝑚) (3.12)
Ob sledenju premikom, ki jih izvajamo v rekurziji, in upoštevanju pogojev poti prileganja
dobimo optimalno pot prileganja in razdaljo med vektorjema [30]. Prostorska zahtevnost
algoritma je tako O(N) ali O(M), saj lahko računamo bodisi po vrsticah bodisi po stolpcih.
Časovna zahtevnost pa je v obeh primerih O(NM) [30].
3.4 Implementacija glasovne ključavnice na Raspberry Pi
3.4.1 Raspbian
Raspbian je brezplačen operacijski sistem, namenjen platformi Raspberry Pi. Prvič je izšel
leta 2012 in je neuraden port Debian wheezy armhf [12], nastavljen tako, da uporablja
strojno plavajočo vejico (angl. hardware floating point). Na Raspbianu je shranjenih več kot
35.000 paketov, ki jih uporabnik lahko po želji namesti. Videz namizja Raspbiana je prikazan
na sliki 3.15 [34].
26
3.4.2 Java
Podjetje Sun Microsystems si je zadalo cilj, ustvariti programski jezik, ki je varen, enostaven,
robusten, prenosljiv in zmogljiv. Tako so leta 1995 predstavili Javo, objektno orientiran in
interpretiran programski jezik. Sintaksa Jave je precej podobna jezikom, kot so C, C++ in C#.
Razlog za to se skriva v tem, da so avtorji Jave zaradi razširjene uporabe jezika C++ hoteli
uporabnikom omogočiti enostaven prehod na njihov jezik, zato so kot vzor uporabili C++.
Poudariti moramo, da so se po C++ zgledovali samo pri videzu oziroma sintaksi jezika. To
opazimo tudi pri upravljanju s spominom, saj Java uporablja čiščenje spomina (angl.
garbage collector) in ne pozna kazalcev. Javanski prevajalnik prevede izvorno kodo v
javansko zbirno kodo (angl. bytecode), ki je neodvisna od arhitekture računalnika. To
omogoča veliko prenosljivost, saj lahko zbirno kodo nato uporabimo na vseh sistemih z
javanskim navideznim strojem (angl. Java virtual machine, JVM). Javanski navidezni stroj
zagotavlja, da se naš program na vseh sistemih obnaša enako, saj striktno definira velikosti
Slika 3.15: Videz operacijskega sistema Raspbian.
27
osnovnih podatkovnih tipov in aritmetične operacije nad njimi. Nekaj glavnih lastnosti Jave
[17]:
celoštevilčni podatkovni tipi. Java pozna 8-bitni tip byte, 16-bitni tip short, 32-bitni
tip int in 64-bitni tip long;
dva podatkovna tipa za realna števila: 32-bitni tip float in 64-bitni tip double. Realna
podatkovna tipa in aritmetični izrazi nad njima sledijo specifikacijam standarda IEEE
754 [22];
Java uporablja znakovni podatkovni tip char. Paziti moramo, da ga ne enačimo s
tipom char v C in C++. V Javi je tip char predstavljen kot 16-bitni znak v kodiranju
Unicode;
logični podatkovni tip Boolean, katerega vrednost je lahko true ali false;
poleg vseh aritmetičnih operatorjev, ki jih najdemo v C in C++, pozna Java še
operator za nepredznačen logični pomik v desno (>>>>) in rabo operatorja + za
združevanje dveh nizov znakov (angl. string);
uporaba polj (angl. arrays), ki jih lahko definiramo v času izvajanja. Za dostop do
vrednosti v polju uporablja oglate oklepaje. Dodatna prednost je vgrajeno
preverjanje, ali izbrano polje obstaja, in vračanje izjeme v primeru, ko tega polja ni;
objekt String za delo z besedilom. Za razliko od C in C++ ta ni polje tipa char. V
realnosti sta to objekta String (samo za branje) in StringBuffer (branje in pisanje);
večstopenjska uporaba stavkov break in continue;
čiščenje spomina (angl. garbage collection);
podpora nitim (angl. threads). Javina sistemska knjižnica vsebuje vse potrebne
objekte za delo z nitmi.
3.4.3 Knjižnica TarsosDSP
Pri izbiri knjižnice za obdelavo digitalnih signalov nas je omejeval izbrani programski jezik
in zahteva po sprotnem delovanju. Kot največji problem se je izkazalo predvsem to, da
veliko knjižnic ne omogoča zajemanja signala iz mikrofona. Ena izmed knjižnic, ki je bila
dobro posodobljena, je bila TarsosDSP [40], ki jo lahko uporabimo tudi na napravah
Android. Je odprtokodna knjižnica z dobro dokumentacijo in brez zunanjih odvisnosti.
Namen knjižnice je ponuditi pregledno in prenosljivo kodo za obdelavo zvočnih (avdio)
28
signalov. Knjižnica vsebuje pogosto uporabljene metode in algoritme, namenjene digitalni
obdelavi signalov. Delovanje knjižnice je okvirno prikazano na sliki 3.16. Iz zvočne datoteke
ali mikrofona razred AudioDispatcher zajema zvočni signal, ga razdeli na odseke izbrane
velikosti in skalira vse vrednosti na interval [1,-1]. Odseki so nato enkapsulirani v razred
AudioEvent, prek katerega lahko dostopamo do vseh podatkov. AudioDispatcher skrbi za
pošiljanje vseh odsekov skozi zaporedje izbranih metod za obdelavo signala. Metode za
obdelavo signala so implementirane v podrazredih razreda AudioProcessor. Tudi za
implementacijo svoje rešitve smo uporabili ta razred.
Navajamo nekaj tehnik obdelave signalov, ki nam jih omogočajo algoritmi, implementirani
v knjižnici TarsosDSP [40, 41]:
ocenjevanje osnovnih frekvenc (angl. pitch estimation),
zaznavanje pojavitve not (angl. onset detector),
časovno raztezanje z algoritmom WSOLA,
algoritem za prevzorčenje,
premikanje tonov (angl. pitch shifting),
razni filtri s končnim impulznim odzivom,
sinteza zvoka,
hitra Fourierova transformacija.
Slika 3.16: Proces delovanja knjižnice TarsosDSP. Povzeto po [41].
29
3.4.4 Knjižnica Pi4J
Namen knjižnice Pi4J je omogočiti upravljanje z GPIO v Javi. Knjižnica je izdana pod licenco
GNU LGPL in jo je mogoče prenesti z uradne spletne strani. Tam najdemo tudi
dokumentacijo, sistem številčenja GPIO (slika 3.17) in praktične primere uporabe. Pi4J
podpira vse trenutne modele Raspberry Pi in na njih omogoča [38]:
nastavljanje namembnosti digitalne linije (vhod ali izhod),
pisanje in branje digitalne linije,
nastavljanje privzetih vrednosti GPIO ob izklopu programa,
zaznavanje sprememb stanja na digitalnih linijah (prekinitve),
serijsko komunikacijo RS232,
komunikacijo I2C,
komunikacijo SPI.
Za potrebe magistrskega dela smo uporabili poslušanje spremembe stanja (ob pritisku na
gumb) in nastavljanje vrednosti digitalnih linij za prižiganje in ugašanje LED-diod in
ključavnice.
Slika 3.17: Razpored digitalnih linij na Raspberry Pi B. Rumeno obarvane linije smo uporabili
za LED-diode, sivo za gumb in modro za zapah. Ozemljitev in napajanje sta obarvana črno
in rdeče. Povzeto po [38].
30
3.5 Strojna oprema
Cilj magistrskega dela je tudi izdelava delujočega prototipa naprave. Glavna komponenta
je Raspberry Pi 1, model B, ki smo ga opisali že v začetnem poglavju.
3.5.1 LED-diode
Uporabili smo 3 različno obarvane 5 mm LED-diode, prikazane na sliki 3.18, katerih glavni
namen je komunikacija z uporabnikom. Rdeča LED-dioda zasveti, kadar sistem pri
odklepanju ni prepoznal osebe ali kadar sta pri ustvarjanju novega gesla dva posnetka
preveč različna. Rumena LED-dioda sveti, kadar sistem zazna zvok. Zelena LED-dioda pa
zasveti ob uspešni prepoznavi osebe ali kadar je pri ustvarjanju novega gesla posnetek
ustrezen.
Slika 3.18: LED-diode, uporabljene za magistrsko delo.
3.5.2 Gumb
Za lažje komuniciranje z napravo smo dodali en mikro gumb dimenzij 6 × 6 × 8 mm (slika
3.19). Kadar sistem prepozna osebo, lahko s pritiskom na gumb ustvarimo novo geslo.
31
Slika 3.19: Mikro gumb.
3.5.3 Mikrofon USB
Ker Raspberry Pi nima vgrajenega mikrofona in zvočne kartice, smo za snemanje zvoka
uporabili mikrofon Kinobo Makio – USB 2.0 Mini Microphone [24].
3.5.4 Elektromagnetni zapah
Za funkcijo odklepanja in zaklepanja smo uporabili elektromagnetni zapah Uxcell DC 4.5V
Solenoid Electromagnet [11] (slika 3.20). Kadar elektromagnetnemu zapahu dovajamo
električni tok, se zatič skrije in s tem odklene vrata oziroma predal.
Slika 3.20: Uporabljeni elektromagnetni zapah Uxcell DC 4.5V Solenoid Electromagnet.
3.5.5 Električna shema
Za povezavo vseh omenjenih komponent smo uporabili še štiri upore in bipolarni NPN-
tranzistor.
32
Slika 3.21: Shema električnih komponent.
Kot je razvidno iz sheme na sliki 3.21, se večina komponent napaja prek GPIO-linij. Izjema
je le elektromagnetna ključavnica, ki za svojo delovanje potrebuje 5 V napetosti (GPIO
omogočajo le 3,3 V). Zaradi tega smo morali uporabiti bipolarni NPN-tranzistor, ki je vezan
na primarno napajanje Raspberry Pi in ga upravljamo s GPIO_4. Pri GPIO_3 smo uporabili
Raspberry Pi-jev interni dvigovalni upor (angl. pull-up).
3.6 Implementacija klasifikacije
Za dosego cilja, ki smo si ga zadali, je bilo treba vse omenjene dele združiti v delujočo celoto.
3.6.1 Model govorca
Da lahko določimo, ali je trenutni govorec res oseba, za katero se izdaja, potrebujemo
model govorca (angl. speaker model). Model smo ustvarili tako, da smo od uporabnika
zahtevali, da šestkrat izgovori izbrano geslo. Tako dobimo šest posnetkov, katerim
izračunamo koeficiente MFCC in koeficiente delta in delta-delta. Ob klasifikaciji se s
pomočjo DTW izračuna razlika med shranjenimi in koeficienti nove besede. Kadar je vsota
razlike do vseh šestih besed večja od izbrane meje, je govorec slepar (angl. imposter).
Izbrana meja (poimenujmo jo meja DTW) je torej prag razdalje med dvema besedama, pod
katerim sta besedi in njuna govorca razpoznana kot ista. Mejo DTW izračunamo s pomočjo
(3.13) [29, 30].
33
𝑇 = ∑
𝑣𝑖 + 𝑘
2𝑡
5
𝑖=0
(3.13)
Mejo DTW T izračunamo iz vi, ki predstavlja število oken i-te besede v modelu, števila oken
trenutne besede k in izbrano mejo t. Za uspešno klasifikacijo je ključno izbrati ustrezno
mejo t. Rezultate uspešnosti pri različnih mejah t smo analizirali v naslednjem poglavju.
Model govorca in računanje vsote razlik sta implementirana v razredu SpeakerModel. Ta
ob hranjenju koeficientov skrbi še za njihov izvoz in uvoz iz datoteke. Na sliki 3.22 vidimo
metodo tryUnlock, ki izvaja primerjavo med koeficienti. Razliko med dvema vektorjema
koeficientov MFCC računamo s statično metodo razreda DTW.
Slika 3.22: Metoda tryUnlock razreda SpeakerModel.
3.6.2 Inicializacija in pridobivanje zvočnih posnetkov
Ob zagonu programa se ob inicializaciji vseh kontrol za Raspberry Pi (s knjižnico Pi4J) izvede
še snemanje kratkega zvočnega posnetka za določitev trenutnega praga detektorja govora.
Za potrebe magistrskega dela smo potrebovali dva vira zvočnih posnetkov. Prvi vir je iz
mikrofona (za realno časovno delovanje naprave), drugi pa iz zvočnih datotek (za analizo
34
uspešnosti). Po inicializaciji se sproži snemanje ali branje iz datoteke. Za to poskrbi razred
Keyhole, ki za argumente konstruktorja prejme vzorčevalno frekvenco, dolžino okna,
prekrivanje okna in čas snemanja. V tem razredu smo implementirali tudi metodo
RecordAndExtract. V njej nastavimo način obdelave zvočnega signala in nato sprožimo
začetek branja podatkov iz izbranega vira in njihovo obdelavo (slika 3.23).
Slika 3.23: Metoda RecordAndExtract razreda Keyhole.
3.6.3 Obdelava zvočnega signala
Obdelava zvočnega signala je implementirana prek vmesnika (angl. interface)
AudioProcessor. Razrede, ki implementirajo ta vmesnik, lahko dodajamo razredu
AudioDispatcher. Vrstni red obdelave signala je enak vrstnemu redu dodajanja teh
razredov. Za obdelavo signala smo uporabili naslednje razrede:
FIRFilter – implementacija filtra FIR,
MFCC – implementacija ekstrakcije koeficientov MFCC,
35
VNEProcessor – implementacija in klic vseh dodatnih rutin, ki jih potrebujemo
(detekcija govora, izračun DTW, proženje digitalnih linij).
3.6.4 VNEProcessor
Razred VNEProcessor skrbi za povezovanje vseh delov magistrske naloge. V metodi process
(slika 3.24) se izvaja detekcija govora. Kadar zaznamo govor, postavimo zastavico »zacetek«
in shranimo koeficiente MFCC, ki so se izračunali v razredu MFCC. Pri izgovorjavi določenih
besed in pri počasneje govorečih govorcih se med izgovorjavo besede pojavijo okna, ki ne
vsebujejo govora. Da takšnih besed ne bi odrezali, smo s pomočjo dodatne pogoja
preverjali, ali so okna brez glasu med okni z glasom (dovolili smo največ 5 oken brez glasu).
Kadar tihim oknom sledijo okna z glasom, normalno nadaljujemo s snemanjem, kadar pa je
oken več kot 5, tiha okna odrežemo. Vsem koeficientom MFCC dodamo koeficiente delta
in delta-delta in nato izvedemo primerjavo s shranjenim modelom govorca (uporabimo
razred SpeakerModel). Glede na predhodne nastavitve se nato procesiranje konča (kadar
beremo iz datoteke) ali pa se vse ponastavi za procesiranje nove besede (neskončno
delovanje).
36
Slika 3.24: Metoda process razreda VNEProcessor.
3.6.5 Upravljanje z GPIO
Za upravljanje z digitalnimi linijami smo uporabili knjižnico Pi4J. Preden začnemo
uporabljati linije GPIO, moramo nastaviti smeri in začetne vrednosti digitalnih linij. Prav
tako je treba podati privzete nastavitve, ki se nastavijo ob končanju ali prekinitvi programa,
in ustvariti metodo, ki posluša linijo, na kateri je gumb. Odsek kode, ki skrbi za vse
omenjene stvari, vidimo na sliki 3.25.
37
Ostane nam le še vklapljanje in izklapljanje linij. Na voljo imamo različne metode, prav tako
lahko za čas vklopa ali izklopa linije blokiramo vse ostale procese (slika 3.26).
Slika 3.25: Izsek programske kode za inicializacijo linij GPIO. Linije GPIO_0, GPIO_1 in
GPIO_2 skrbijo za prižiganje in ugašanje LED-diod. Z linijo GPIO_3 preverjamo, ali je
uporabnik pritisnil gumb, linija GPIO_4 pa skrbi za upravljanje s ključavnico.
Slika 3.26: Izsek kode za vklop in izklop LED diod.
38
4 ANALIZA REŠITVE
4.1 Zasnova meritev
Za analizo rešitve smo potrebovali posnetke različnih besed različnih govorcev. Ker na
spletu nismo našli ustrezne brezplačne zbirke, smo se odločili ustvariti lastno. Da bi zbirka
odražala čim bolj realno delovanje naše naprave, smo snemali z našim sistemom za
glasovno odklepanje (slika 4.1). Za snemanje in shranjevanje posnetkov smo uporabili
enako knjižnico kot za glasovno ključavnico. Z namenom zmanjšanja šuma okolice smo v
sobi, kjer je potekalo snemanje, izklopili vse naprave (računalnike, ventilator, ure,
ogrevanje).
Slika 4.1: Prototip glasovne ključavnice, uporabljen za snemanje.
Snemanje smo opravili v treh sejah. Prvi dve seji snemanja (P1 in P2) sta potekali tako, da
je bil mikrofon na mizi, oseba pa je sedela za mizo (slika 4.2). Za snemanje tretje (T1) seje
smo razdaljo med osebo in mikrofonom povečali (slika 4.3). V vsaki seji je sodelovalo 7 oseb
(3 ženske, 4 moški), ki so šestkrat ponovili 49 besed, in sicer: ali, atomski, avion, azbest,
39
bančnik, bergla, biljard, blesk, bobnič, bodica, bruto, čaj, čipka, čmrlj, dovršen, duda,
dvojček, ego, glasen, godec, gora, grd, Grmičar, jogurt, klošter, krema, krst, list, meduza,
mina, moka, nož, oče, odeja, oko, opica, paket, poklic, riba, smrt, spor, strupen, uho, ujeti,
um, vrisk, vrt, vzbrst, zdrs.
Slika 4.2: Položaj pri snemanju seje 1 in 2.
Slika 4.3: Snemanje seje 3.
40
Uspešnost delovanja smo merili z metriko EER (angl. equal error rate). Za izračun metrike
EER moramo izračunati senzitivnost (angl. sensitivity) in specifičnost (angl. specificity)
sistema. Senzitivnost, pogosto imenovano tudi FRR (angl. false reject rate), izračunamo s
(4.1).
𝐹𝑅𝑅 =
𝑇𝑃
(𝑇𝑃 + 𝐹𝑁) (4.1)
V (4.1) je TP število pravilno klasificiranih pozitivnih vzorcev, FN pa število nepravilno
klasificiranih pozitivnih vzorcev.
Specifičnost, pogosto imenovano FAR (angl. false acceptance rate), izračunamo s (4.2).
𝐹𝐴𝑅 =
𝑇𝑁
(𝑇𝑁 + 𝐹𝑃) (4.2)
Podobno kot pri FRR je tukaj TN število pravilno klasificiranih negativnih vzorcev, FP pa
število nepravilno klasificiranih negativnih vzorcev.
Metrika EER predstavlja vrednost na grafu FAR in FRR v odvisnosti od meje DTW, kjer se
funkciji FAR in FRR sekata (imata enako vrednost). Višja vrednost ERR pomeni slabšo
natančnost razpoznave.
V nadaljevanju smo analizirali, kako na uspešnost klasifikacije vplivajo različni dejavniki, kot
so število koeficientov MFCC, dolžina uporabljenih besed, število samoglasnikov v besedi,
spol govorca in šum. Za izračun uspešnosti klasifikacije smo vedno uporabili dve seji; z eno
smo ustvarili model govorca za vsako besedo v seji (učna seja), z drugo pa smo te modele
preizkušali (testna seja). Ob podajanju rezultatov v tabelah smo zapis učne in testne seje
skrajšali na »Učna seja -> Testna seja«.
41
4.2 Vpliv števila MFCC-koeficientov
V več virih je mogoče zaslediti priporočila za optimalno število koeficientov MFCC, ki se
giblje med 10 in 30. Da bi našli optimalne nastavitve za našo glasovno ključavnico, smo tudi
sami preizkusili vpliv števila koeficientov MFCC. Naj opomnimo, da se pri prepoznavi prvi
koeficient MFCC vedno izpusti, dodajo pa se še MFCC-koeficienti delta in delta-delta. Tako
pri uporabi 15 koeficientov MFCC dobimo vektor dolžine 42. V tabelah 4.1 in 4.2 so podani
rezultati za vse možne kombinacije sej.
Tabela 4.1: Vpliv števila MFCC-koeficientov na povprečno vrednost metrike EER
(± standardna deviacija).
P1 -> P2 P1 -> T1 P2 -> P1 P2 -> T1
5 MFCC 10,83 ± 11,91 % 31,40 ± 18,44 % 11,36 ± 12,28 % 28,03 ± 16,92 %
10MFCC 10,44 ± 11,29 % 30,84 ± 18,01 % 11,09 ± 11,98 % 27,59 ± 16,67 %
15 MFCC 9,60 ± 11,29 % 30,59 ± 18,14 % 10,67 ± 11,89 % 26,97 ± 16,93 %
20 MFCC 9,54 ± 11,29 % 31,08 ± 18,43 % 10,57 ± 12,01 % 27,24 ± 16,98 %
25 MFCC 9,45 ± 11,29 % 31,72 ± 18,70 % 10,53 ± 11,83 % 27,80 ± 17,19 %
30 MFCC 9,46 ± 11,29 % 31,97 ± 18,66 % 10,57 ± 11,85 % 28,29 ± 17,31 %
35 MFCC 9,60 ± 11,29 % 32,17 ± 19,07 % 10,58 ± 11,90 % 28,88 ± 17,51 %
Tabela 4.2: Vpliv števila MFCC-koeficientov na povprečno vrednost metrike EER
(± standardna deviacija).
T1 -> P1 T1 -> P2
5 MFCC 29,31 ± 17,08 % 25,68 ± 16,75 %
10 MFCC 28,31 ± 16,85 % 24,32 ± 16,49 %
15 MFCC 27,72 ± 16,54 % 23,91 ± 16,32 %
20 MFCC 28,00 ± 16,69 % 24,07 ± 16,53 %
42
T1 -> P1 T1 -> P2
25 MFCC 28,44 ± 16,97 % 24,52 ±16,55 %
30 MFCC 28,81 ± 16,81 % 25,03 ± 16,65 %
35 MFCC 29,27 ± 16,42 % 25,31 ± 16,60 %
Iz tabel 4.1 in 4.2 razberemo, da uporaba seje T1 (kot učne ali testne množice) odločilno
vpliva na natančnost razpoznave. Z njeno uporabo dobimo najboljše rezultate s 15
koeficienti MFCC. Kadar pa seje T1 ne uporabljamo, dobimo najmanjši EER z uporabo 25
koeficientov. Takšen rezultat je pričakovan, saj višji koeficienti MFCC vsebujejo več
podrobnosti in s tem tudi šuma. Seja T1 zaradi večje oddaljenosti od mikrofona vsebuje več
šuma iz okolice kot seji P1 in P2. Zato dobimo pri uporabi seje T1 boljše rezultate s 15
koeficienti kot pa s 25. Na grafih od 4.1 do 4.7 prikazujemo, kako večanje števila
koeficientov spreminja krivulji FAR in FRR (pri uporabi P1 kot učne in P2 kot testne
množice).
Graf 4.1: P1 -> P2, 5 koeficientov MFCC. Graf 4.2: P1 -> P2, 10 koeficientov MFCC.
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0 10 20 30
Meja DTW
FAR FRR
43
Graf 4.3: P1 -> P2, koeficientov 15 MFCC. Graf 4.4: P1 -> P2, 20 koeficientov MFCC.
Graf 4.5: P1 -> P2, 25 koeficientov MFCC. Graf 4.6: P1 -> P2, 30 koeficientov MFCC.
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
44
Graf 4.7: P1 -> P2, 35 koeficientov MFCC.
Na grafih od 4.8 do 4.14 je prikazan vpliv števila koeficientov MFCC na krivulji FAR in FRR
pri uporabi seje T1. Če primerjamo grafe 4.1–4.7 z grafi 4.8–4.14, vidimo vpliv šuma na
uspešnost prepoznave.
Graf 4.8: P1 -> T1, 5 koeficientov MFCC. Graf 4.9: P1 -> T1, 10 koeficientov MFCC.
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
45
Graf 4.10: P1 -> T1, 15 koeficientov MFCC. Graf 4.11: P1 -> T1, 20 koeficientov MFCC.
Graf 4.12: P1 -> T1, 25 koeficientov MFCC. Graf 4.13: P1 -> T1, 30 koeficientov MFCC.
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
46
Graf 4.14: P1 -> T1, 35 koeficientov MFCC.
4.3 Beli šum
Z namenom, da bi bolje raziskali vpliv šuma, smo s pomočjo programskega orodja Matlab
vsem posnetkom iz seje P1 dodali beli šum. Energijo šuma v izvirnih posnetkih smo
izračunali s pomočjo (4.3).
𝑆𝑁𝑅𝑑𝐵 = 10 log10
𝑃𝑠𝑖𝑔𝑛𝑎𝑙
𝑃𝑛𝑜𝑖𝑠𝑒 (4.3)
Tu Psignal in Pnoise predstavljata energijo signala in šuma. Ker so posnetki realni, je težko
izračunati energijo čistega signala. Pomagali smo si tako, da smo energijo šuma izračunali
na podlagi energije odseka posnetka, v katerem ni govora. Nato smo od energije odseka, ki
vsebuje govor, odšteli energijo šuma. Povprečen SNRdB za sejo P1 je znašal 24,64 ± 2,93 dB,
za sejo P2 24,28 ± 3,21 dB, za sejo T1 pa 16,21 ± 4,09 dB. S pomočjo Matlaba smo nato seji
P1 dodajali beli šum, dokler nismo dosegli SNRdB 20 dB, 15 dB, 10 dB in 5 dB (slike od 4.4
do 4.8).
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
47
Slika 4.4: Beseda »gora« brez dodanega šuma.
Slika 4.5: Beseda »gora« z dodanim belim šumom (SNRdB 20 dB).
48
Slika 4.6: Beseda »gora« z dodanim belim šumom (SNRdB 15 dB).
Slika 4.7: Beseda »gora« z dodanim belim šumom (SNRdB 10 dB).
49
Slika 4.8: Beseda »gora« z dodanim belim šumom (SNRdB 5 dB).
V tabeli 4.3 je naveden EER, ko uporabimo posnetke s šumom za učno množico, v tabeli 4.4
pa, ko jih uporabimo kot testne. Za analizo smo uporabili 15 koeficientov MFCC. Sejo z
dodanim belim šumom smo označili s P1+SNR20, P2+SNR15, P1+SNR10 itd.
Tabela 4.3: Povprečna uspešnost klasifikacije (± standardna deviacija) pri dodajanju belega
šuma učni množici.
P2 T1
P1 9,60 ± 11,29 % 30,59 ± 18,14 %
P1+SNR20 22,47 ± 14,98 % 39,76 ± 19,56 %
P1+SNR15 30,85 ± 17,20 % 43,64 ± 20,47 %
P1+SNR10 35,97 ± 18,48 % 46,10 ± 19,93 %
P1+SNR5 40,98 ± 19,85 % 47,72 ± 20,09 %
50
Tabela 4.4: Povprečna uspešnost klasifikacije (± standardna deviacija) pri dodajanju belega
šuma testni množici.
P2 T1
P1 10,67 ± 11,89 % 27,72 ± 16,54 %
P1+SNR20 21,56 ± 16,20 % 39,50 ± 16,42 %
P1+SNR15 29,58 ± 17,53 % 43,99 ± 11,14 %
P1+SNR10 34,50 ± 16,97 % 46,02 ± 14,38 %
P1+SNR5 37,69 ± 17,34 % 47,88 ± 14,51 %
Iz rezultatov je razvidno, da prisotnost belega šuma zmanjša uspešnost klasifikacije, kar je
tudi pričakovano. Zanimivo je, da uspešnost hitro pada. Pri poslušanju posnetka s SNRdB
5 dB lahko ljudje še vedno razločimo govorca, medtem ko naš sistem tega več ni zmožen
opravljati dovolj dobro. Tudi rezultati za SNRdB 10 dB so relativno slabi. Na grafih od 4.15
do 4.18 prikazujemo vpliv prisotnosti belega šuma v učni množici na krivulji FAR in FRR.
Graf 4.15: P1+SNR20 -> P2. Graf 4.16: P1+SNR15 -> P2.
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
51
Graf 4.17: P1+SNR10 -> P2. Graf 4.18: P1+SNR5 -> P2.
Na grafih od 4.19 do 4.22 je prikazano, kaj se dogaja s krivuljama FAR in FRR, kadar
dodajamo šum testni ali učni množici oziroma obema. Zanimiv je predvsem graf 4.22, kjer
učni in testni množici dodamo šum. Rezultat je v primerjavi z učno in testno množico brez
šuma slabši, vendar veliko boljši kot takrat, ko je šum prisoten izključno v učni ali testni
množici.
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
0 10 20 30
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
Graf 4.20: P1->P2, brez šuma (9,60 %
EER).
Graf 4.19: P1+SNR10 -> P2 (35,97% EER).
52
4.4 Vpliv samoglasnikov
V nadaljevanju smo analizirali kako na uspešnost klasifikacije vplivajo posamezne črke v
besedah. Osnovna delitev črk je na samoglasnike in soglasnike. Samoglasniki so črke, pri
izgovorjavi katerih pride do največje odprtosti govorne cevi (prostor od grla do ustnic),
seveda v primerjavi s soglasniki [46]. Pri analizi vpliva samoglasnikov smo uporabili besede,
zapisane v tabeli 4.5.
Tabela 4.5: Besede, uporabljene za analizo vpliva samoglasnikov.
Prikrit samoglasnik En samoglasnik Dva samoglasnika Trije samoglasniki
vrt sum ego ujeti
grd čaj ali opica
krst nož gora avion
zdrs list mina odeja
smrt spor duda bodica
čmrlj vrisk godec meduza
vzbrst blesk čipka atomski
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
Graf 4.22: P1 -> P2+SNR10 (35,65% EER). Graf 4.21: P1+SNR10 -> P2+SNR10 (15,91%
EER).
53
Tabela 4.6 prikazuje rezultate razpoznave. Izstopajo predvsem rezultati pri uporabi zgolj
enega samoglasnika. Za vse možne kombinacije učnih in testnih množic smo najboljši
rezultati vedno dobili pri uporabi enega samoglasnika. Na grafih od 4.23 do 4.26 vidimo
krivulji FAR in FRR za različna števila samoglasnikov pri uporabi P2 kot učne in P1 kot testne
množice.
Tabela 4.6: Povprečna uspešnost (± standardna deviacija) klasifikacije besed z različnim
številom samoglasnikov.
Brez
samoglasnikov En samoglasnik
Dva
samoglasnika
Trije
samoglasniki
P1 -> P2 8,55 ± 8,96 % 5,3 ± 9,29 % 12,24 ± 12,41 % 7,98 ± 10,13 %
P1 -> T1 36,41 ± 19,82 % 26,79 ± 16,45 % 30,82 ± 18,01 % 28,64 ± 19,21 %
P2 -> P1 8,94 ± 8,46 % 4,19 ± 6,92 % 12,98 ± 12,85 % 10,86 ± 11,84 %
P2 -> T1 34,20 ± 20,70 % 19,90 ± 14,25 % 27,20 ± 16,25 % 26,62 ± 16,86 %
T1 -> P1 31,26 ± 16,71 % 20,76 ± 16,29 % 28,28 ± 16,03 % 28,00 ± 16,71 %
T1 -> P2 26,97 ± 16,77 % 14,82 ± 14,49 % 24,78 ± 16,37 % 25,21 ± 17,72 %
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
3,00 13,00 23,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
3,00 13,00 23,00
Meja DTW
FAR FRR
Graf 4.23: P2 -> P1, prikrit samoglasnik. Graf 4.24: P2 -> P1, en samoglasnik.
54
4.5 Vpliv dolžine besed na uspešnost klasifikacije
Da bi raziskali vpliv dolžine uporabljenih besed na uspešnost klasifikacije, smo uporabili dve
različni množici besed. V prvi smo, da bi zmanjšali vpliv samoglasnikov, uporabili samo
besede, ki imajo natanko 2 samoglasnika (v tabeli 4.7 so te besede obarvane zeleno). V
drugo množico smo uvrstili vse besede, ki so nam bile na voljo (celotna tabela 4.7).
Tabela 4.7: Besede uporabljene za analizo vpliva dolžine besede
3 črke 4 črke 5 črk 6 črk 7 črk
ali gora godec azbest Grmičar
ego duda cekin bergla bančnik
uho mina bruto glasen biljard
oče moka krema bobnič dovršen
oko riba paket poklic dvojček
ime kino dotik jogurt strupen
nož krst čmrlj cedilo ilovica
vrt zdrs vrisk vzbrst kotlina
grd smrt blesk meduza atomski
čaj list godec bodica pištola
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
3,00 13,00 23,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
3,00 13,00 23,00
Meja DTW
FAR FRR
Graf 4.25: P2 -> P1, trije samoglasniki. Graf 4.26: P2 -> P1, dva samoglasnika.
55
3 črke 4 črke 5 črk 6 črk 7 črk
prt spor čipka pecivo časopis
lok trst ujeti optika kapital
V tabeli 4.8 je prikazan EER za besede različnih dolžin z dvema samoglasnikoma. Najboljše
rezultate dobimo pri uporabi besed dolžine 4 črk. Edina izjema je kombinacija P2 kot učne
in T1 kot testne množice. Najslabše rezultate smo dobili pri besedah dolžine 7 črk, kar
nakazuje na to, da se daljše besede obnesejo slabše.
Tabela 4.8: Povprečna vrednost EER (± standardna deviacija) besed z dvema
samoglasnikoma.
Dolžina: 3 4 5 6 7
P1 -> P2 6,48 ± 7,65 % 5,63 ± 8,32 % 14,36 ± 12,62 % 11,77 ± 11,50 % 19,73 ± 16,21 %
P1 -> T1 33,63 ± 19,80 % 25,37 ± 14,91 % 31,59 ± 20,02 % 28,19 ± 17,90 % 33,40 ± 15,61 %
P2 -> P1 7,47 ± 10,14 % 4,77 ± 8,42 % 17,02 ± 12,57 % 11,01 ± 11,37 % 19,17 ± 15,29 %
P2 -> T1 28,58 ± 17,97 % 23,06 ± 13,76 % 28,11 ± 16,40 % 21,19 ± 14,30 % 32,11 ± 15,93 %
T1 -> P1 29,84 ± 16,75 % 25,46 ± 17,88 % 27,07 ± 15,06 % 28,91 ± 15,98 % 31,92 ± 17,56 %
T1 -> P2 27,37 ± 16,16 % 18,55 ± 14,62 % 23,40 ± 15,66 % 20,76 ± 14,16 % 31,26 ± 17,71 %
V tabeli 4.9 vidimo rezultate, ki smo jih dobili ob uporabi vseh besed, ki smo jih imeli na
voljo. Čeprav se rezultati v tabeli 4.9 razlikujejo od tistih v tabeli 4.8, lahko pridemo do
podobnih zaključkov. Najboljši rezultati so znova pri besedah dolžine 4 črk, medtem ko so
najslabši pri besedah dolžine 7 črk.
Tabela 4.9: Povprečna vrednost EER (± standardna deviacija) vseh besed.
Dolžina: 3 4 5 6 7
P1 -> P2 6,08 ± 7,51 % 6,80 ± 7,90 % 9,42 ± 11,40 % 11,00 ± 10,62 % 17,88 ± 15,67 %
P1 -> T1 35,70 ± 19,72 % 23,36 ± 15,47 % 30,58 ± 14,03 % 31,96 ± 18,04 % 31,72 ± 16,24 %
P2 -> P1 7,29 ± 10,76 % 6,85 ± 7,91 % 11,24 ± 11,88 % 10,98 ± 12,34 % 18,04 ± 15,42 %
56
Dolžina: 3 4 5 6 7
P2 -> T1 29,25 ± 18,86 % 24,02 ± 15,78 % 25,67 ± 17,31 % 26,21 ± 16,54 % 30,29 ± 15,65 %
T1 -> P1 30,65 ± 16,07 % 20,54 ± 16,23 % 27,46 ± 15,46 % 31,08 ± 15,68 % 31,75 ± 17,28 %
T1 -> P2 24,24 ± 15,59 % 18,72 ± 15,42 % 22,06 ±16,03 % 25,08 ± 15,57 % 31,72 ± 17,66 %
Na grafih od 4.27 do 4.31 prikazujemo razlike med krivuljami FAR in FRR besed z dvema
samoglasnikoma ter besed z različnim številom samoglasnikov. Za učno množico je
uporabljena množica P1, za testno pa P2.
Graf 4.27: Krivulji FAR V in FRR V sta za vse besede dolžine 3 črk, krivulji FAR 2 in FRR 2 pa
za besede dolžine 3 črk z dvema samoglasnikoma.
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
3,00 5,00 7,00 9,00 11,00 13,00 15,00 17,00 19,00
Meja DTW
FAR V FRR V FAR 2 FRR 2
57
Graf 4.28: Krivulji FAR V in FRR V sta za vse besede dolžine 4 črk, krivulji FAR 2 in FRR 2 pa
za besede dolžine 4 črk z dvema samoglasnikoma.
Graf 4.29: Krivulji FAR V in FRR V sta za vse besede dolžine 5 črk, krivulji FAR 2 in FRR 2 pa
za besede dolžine 5 črk z dvema samoglasnikoma.
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
3,00 5,00 7,00 9,00 11,00 13,00 15,00 17,00 19,00
Meja DTW
FAR V FRR V FAR1 FRR1
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
3,00 5,00 7,00 9,00 11,00 13,00 15,00 17,00 19,00
Meja DTW
FAR V FRR V FAR 2 FRR 2
58
Graf 4.30: Krivulji FAR V in FRR V sta za vse besede dolžine 6 črk, krivulji FAR 2 in FRR 2 pa
za besede dolžine 6 črk z dvema samoglasnikoma.
Graf 4.31: Krivulji FAR V in FRR V sta za vse besede dolžine 7 črk, krivulji FAR 2 in FRR 2 pa
za besede dolžine 7 črk z dvema samoglasnikoma.
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
3,00 5,00 7,00 9,00 11,00 13,00 15,00 17,00 19,00
Meja DTW
FAR V FRR V FAR 2 FRR 2
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
3,00 5,00 7,00 9,00 11,00 13,00 15,00 17,00 19,00
Meja DTW
FAR V FRR V FAR 2 FRR 2
59
4.6 Vpliv spola govorca
Človeški sluh v večini primerov dobro loči ženski in moški glas, zato smo tudi sami
preizkusili, če ima kateri izmed spolov večjo uspešnost klasifikacije (tabela 4.10). Izvedli smo
dve vrsti meritev. V prvi smo za modele govorcev uporabili samo ženske, v drugi pa samo
moške.
Tabela 4.10: Povprečne vrednosti EER (± standardna deviacija) pri uporabi samo ženskih
ali samo moških govorcev v učni množici.
Samo moški del
učne seje
Samo ženski del
učne seje
P1 -> P2 8,72 % ± 10,78 % 10,60 % ± 12,50 %
P1 -> T1 23,01 % ± 15,33 % 38,72 % ± 20,12 %
P2 -> P1 10,92 % ± 12,11 % 10,20 % ± 11,09 %
P2 -> T1 22,10 % ± 14,07 % 33,73 % ± 19,37 %
T1 -> P1 23,54 % ± 16,03 % 31,89 % ± 15,81 %
T1 -> P2 20,35 % ± 15,50 % 28,08 % ± 16,80 %
Ob primerjavi stolpcev v tabeli 4.10. opazimo, da so v večini primerov moški govorci
uspešnejši od ženskih. Dobljeni rezultati kažejo na to, da naš algoritem deluje bolje, kadar
za model govorca uporabimo moški glas. Enako ugotovitev potrjujejo tudi grafi s krivuljami
FAR in FRR za učno množico P1 in testno P2 (grafi od 4.32 do 4.34). Množice, pri katerih
smo uporabili samo moške ali ženske, smo označili z »(M)« ali »(Ž)«, na primer P1(M).
60
Graf 4.32: P1 -> P2 testna. Graf 4.33: P1(M) -> P2.
Graf 4.34: P1(Ž) -> P2.
Na grafih od 4.35 do 4.37 so prikazane krivulje FAR in FRR za učno množico T1 in testno P1.
Razlika med uspešnostjo ženskih in moških govorcev je tukaj še bolj opazna.
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
0 10 20 30
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
61
Graf 4.35: T1 -> P1. Graf 4.36: T1(M) -> P1.
Graf 4.37: T1(Ž) -> P1.
4.7 Časovna in prostorska zahtevnost
Naš algoritem mora delovati v realnem času, da lahko našo ključavnico uporabljamo v
resničnem svetu. Za časovne meritve smo uporabili Javino metodo System.nanoTime(), ki
vrne trenutni čas v nanosekundah. Meritve smo izvedli na osebnem računalniku in na
Raspberry Pi (specifikacije obeh sistemov so navedene v tabeli 4.11).
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0,00 10,00 20,00 30,00
Meja DTW
FAR FRR
62
Tabela 4.11: Specifikacije osebnega računalnika in računalnika Raspberry Pi, na katerih smo
izvajali meritve.
Osebni računalnik Raspberry Pi
Operacijski sistem: Windows 8.1 Raspbian
Arhitektura: x64 ARMv6Z
Procesor: Intel Core i5-3570, 3.40 GHz ARM1176JZF-S, 700 MHz
RAM: 8 GB 512 MB
V tabeli 4.12 so izmerjeni časi izvajanja z naključno izbranimi učnimi in testnimi vzorci.
Meritve smo ponovili stokrat in izračunali povprečje in standardni odklon. V čas merjenja
je všteta inicializacija, ustvarjanje učnega modela s šestimi vzorci in testiranje enega vzorca.
Tabela 4.12: Čas izvajanja, ki zajema inicializacijo, ustvarjanje učnega modela in testiranje
enega vzorca.
Iz rezultatov v tabeli 4.12 je razvidna pričakovana razlika med meritvami na osebnem
računalniku in na računalniku Raspberry Pi. Naj opozorimo, da se pri sprotnem delovanju
glasovne ključavnice inicializacija zgodi samo ob vklopu naprave. Enako velja za ustvarjanje
modela govorca. Za sprotno delovanje sistema je pomemben samo čas, ki je potreben za
klasifikacijo enega vzorca (tabela 4.13).
Število koeficientov MFCC Čas (ms)
PC Rpi
10 15,93 ± 13,06 616,08 ± 209,99
20 18,48 ± 13,81 812,30 ± 208,51
30 25,50 ± 14,73 1069,79 ± 211,811
40 31,61 ± 14,61 1359,63 ± 216,01
50 39,32 ± 13,60 1658,46 ± 213,78
75 66,39 ± 14,38 2644,23 ± 220,04
100 135,62 ± 41,71 3846,48 ± 221,53
63
Tabela 4.13: Časovne meritve za prepoznavo enega vzorca.
Pri analizi števila koeficientov MFCC smo ugotovili, da je najbolje uporabiti približno med
15 in 25 koeficientov, kar pomeni, da za prepoznavo vzorca potrebujemo okoli 150–200 ms.
Takšen sistem lahko deluje v realnem času, kar se je izkazalo tudi pri praktičnem preizkusu
naprave.
S pomočjo orodja JProfile smo izmerili, koliko pomnilnika je potrebnega za delovanje
izdelane aplikacije. Iz tabele 4.14 je razvidno, da pri porabi pomnilnika prihaja do velikega
odklona. Do takšnega odklona pride zaradi različnega števila oken signala, nad katerimi se
računajo koeficienti MFCC. Število oken je v veliki meri odvisno od nastavitev detektorja
glasu in samega posnetka.
Tabela 4.14: Poraba pomnilnika pri klasifikaciji enega vzorca.
Število koeficientov MFCC Čas (ms)
PC Rpi
10 2,01 ± 1,26 116,23 ± 13,88
20 2,42 ± 1,17 177,21 ± 10,88
30 3,43 ± 1,05 248,98 ± 13,88
40 4,50 ± 1,13 318,24 ± 11,17
50 6,44 ± 2,03 409,96 ± 15,96
75 12,69 ± 3,86 638,22 ± 12,32
100 20,16 ± 4,18 914,12 ± 11,94
Število koeficientov MFCC Pomnilnik (kB)
PC Rpi
10 2009,28 ± 356,69 1490,87 ± 630,51
20 2014,29 ± 368,79 1542,39 ± 606,65
30 2012,68 ± 444,68 1600,49 ± 617,63
64
40 1966,04 ± 489,50 1689,49 ± 615,94
50 1975,82 ± 457,73 1638,5 ± 610,15
75 2002,46 ± 445,81 1726,43 ± 602,79
100 2060,59 ± 443,59 1838,58 ± 583,09
65
5 Zaključek
Cilj magistrskega dela je bil izdelati sistem za glasovno odklepanje na platformi Raspberry
Pi. S pregledom obstoječih tehnologij smo glede na omejitve platforme izbrali ustrezne
metode za glasovno odklepanje. Pri izbiri značilnic smo se odločili za koeficiente MFCC, ki
so bili navedeni v veliko strokovnih člankih in so dajali dobre rezultate. Na večjo omejitev
smo naleteli pri izbiri ustrezne metode za klasifikacijo. Trenutno priljubljene metode imajo
nekaj omejitev, na katere je treba paziti: skriti model Markova za uspešno klasifikacijo
potrebuje večje število učnih vzorcev, kar za naš izdelek ni praktično [21]. Tudi nevronske
mreže za ustrezno kalibracijo uteži potrebujejo čim več učnih vzorcev, pa tudi samo učenje
je večkrat dolgotrajno [35]. Odločili smo se uporabiti dinamično časovno prileganje, s
katerim lahko izračunamo razdaljo med dvema poljubno dolgima nizoma. Za končni izdelek
je bilo treba implementirati še nekaj dodatnih delov, kot so: zaznavanje glasu, snemanje z
mikrofonom, shranjevanje in nalaganje modela govorca, ustrezen vmesnik in upravljanje z
večnamenskimi priključki Raspberry Pi-ja.
Za analizo in preizkus izdelka smo ustvarili zbirko zvočnih posnetkov sedmih oseb.
Snemanje je potekalo v treh posameznih sejah. Z pridobljenimi posnetki smo preizkusili
uspešnost naše implementacije in analizirali vpliv različnih dejavnikov. Ugotovili smo, da
šum iz okolice in umetno dodan beli šum močno poslabšata uspešnost klasifikacije, kar je
znana slabost koeficientov MFCC [27, 39, 55]. Ker smo posneli osebe različnih spolov, smo
preizkusili tudi, ali sistem deluje bolje z moškim ali ženskim govorcem. Dobljeni rezultati
kažejo na to, da sistem laže klasificira moške govorce. Analizirali smo tudi, kakšen vpliv ima
dolžina besed in število samoglasnikov v besedi. Prišli smo do ugotovitev, da so
najuspešnejše krajše besede (4 črke) in besede z enim samoglasnikom. Za temeljitejšo
analizo vpliva različnih dejavnikov, bi potrebovali več oseb in predvsem več besed. Žal
obstoječe zbirke s posnetki slovenskih besed nismo našli, večina tujih pa je plačljivih.
Ob izdelavi magistrskega dela smo se srečali z nekaj težavami. Prva izmed njih je bila izbira
ustrezne knjižnice za obdelavo digitalnih signalov. Knjižnica je morala zaradi želje po
sprotnem delovanju podpirati obdelovanje zvočnega signala neposredno iz mikrofona.
Dodaten pogoj pri izbiri je predstavljala želja, da bi v prihodnosti algoritem uporabili tudi
66
na mobilnih napravah (predvsem na operacijskem sistemu Android). Pri implementaciji
algoritmov in fizični sestavi naprave nismo naleteli na posebne težave. Nepričakovano
težavo pri izdelavi magistrskega dela je predstavljala analiza, saj nismo uspeli najti ustrezne
zbirke posnetkov, izdelava lastne pa bi lahko potekala hitreje in bolje, če bi jo načrtovali že
v začetni fazi.
Naš končni izdelek je izpolnil zastavljene cilje magistrske naloge. Omogoča enostavno in
realno časovno ustvarjanje modela govorca in verifikacijo govorca. Potrdimo lahko tudi, da
zmogljivost izbrane platforme zadostuje potrebam naše implementacije. Uspešna je bila
tudi izdelava predala, ki ga lahko odklenemo in zaklenemo s pomočjo Raspberry Pi-ja. S tem
smo pokazali, da lahko naš izdelek vključimo v širok nabor stvari iz vsakdanjega življenja.
S prihodom zmogljivejših naprav in razvojem novih algoritmov se vedno bolj odmikamo od
klasičnih metod identifikacije in verifikacije uporabnikov računalniških sistemov, kot je
uporaba uporabniškega imena in gesla. Prihodnost leži predvsem v biometrični identifikaciji
in verifikaciji. Pri uporabi takšnih sistemov ni potrebe po ustvarjanju in pomnjenju
zapletenih gesel, saj imamo zenico, prstni odtis in glas vedno pri sebi.
67
6 VIRI
[1] ABS STUDIO. Smart Voice Lock Screen. Dostopno na:
https://play.google.com/store/apps/details?id=com.absstudio.voice.lockscreen
[14. 11. 2016].
[2] Alam, J., Kenny, P., Ouellet, P., Stafylakis, T., Dumouchel, P. Supervised/unsupervised
voice activity detectors for text-dependent speaker recognition on the rsr2015
corpus. V Proceedings of Odyssey Speaker and Langauge Recognition Workshop.
Odyssey 2014, Joensuu, 16.–19. junij 2014.
[3] Allen, J. Short-term spectral analysis, synthesis, and modification by discrete Fourier
transform. IEEE Transactions on Acoustics Speech and Signal Processing, 25, (1977),
3, str. 235–238.
[4] Ariyaeeinia, A. M., Sivakumaran, P. Analysis and comparison of score normalisation
methods for text-dependent speaker verification. Eurospeech, 97, (1997), str. 1379–
1382.
[5] Barnes, R. Raspberry Pi: The complete manual, Sixth Edition. Bournemouth: Imagine
Publishing Ltd, 2016.
[6] Bachu, R. G., Kopparthi, S., Adapa, B., Barkana, B. D. Separation of voiced and
unvoiced using zero crossing rate and energy of the speech signal. American Society
for Engineering Education Zone Conference Proceedings 2008. ASEE 2008 Annual
Conference & Exposition, Pittsburgh, 22.–25. junij 2008.
[7] Campbell, J., P. Speaker recognition: A tutorial. Proceedings of the IEEE, 85, (1997), 9,
str. 1437–1462.
[8] Cavazza, M., Ciaramella, A. 21. 6. 1988. Device for speaker's verification. U.S. Patent
and Trademark Office, U.S. Patent No. 4,752,958.
[9] Chaudhary, P. J., Vagadia, K. M. A Review Article on Speaker Recognition with Feature
Extraction. International Journal of Emerging Technology and Advance Engineering,
5, (2015), 2, str. 2250–2459.
[10] Combrinck, H. P., Botha, E. C. On the Mel-scaled Cepstrum. Pretorija: Department of
Electrical and Electronic Engineering, University of Pretoria, 1996.
[11] DC Solenoid Electromagnet. Dostopno na: http://www.uxcell.com/45v-05a-4mm-
stroke-28gf-force-pull-type-solenoid-electromagnet-p-254463.html [6. 6. 2017].
68
[12] Debian “wheezy” Release Information. Dostopno na:
https://www.debian.org/releases/wheezy/ [20. 5. 2017].
[13] Dehak, N., Kenny, P. J., Dehak, R., Dumouchel, P., Ouellet, P. Front-end factor analysis
for speaker verification. IEEE Transactions on Audio, Speech, and Language
Processing, 19, (2011), 4, str. 788–798.
[14] Desai, N., Dhameliya, K., Desai, V. Feature extraction and classification techniques for
speech recognition: A review. International Journal of Emerging Technology and
Advanced Engineering, 13, (2013), 12, str. 367–371.
[15] Dikici, E., Yılmaz, O., Saraçlar, M. Speaker Recognition. Dostopno na:
http://busim.ee.boun.edu.tr/~speech/index.php/research/9-projects/31-speaker-
recognition [12. 5. 2017].
[16] Go-Vivace Inc. Speaker Identification. Dostopno na: https://govivace.com/
[13. 11. 2016]
[17] Gosling, J., McGilton, H. The Java language environment. Mountain View,
California: Sun Microsystems Computer Company, 1996.
[18] Heinzel, G., Rudiger, A., Schilling, R. Spectrum and Spectral Density Estimation by the
Discrete Fourier Transform(DFT), Including a Comprehensive List of Window Functions
and Some New At-Top Windows. Hannover: Albert-Einstein-Institut, 2002.
[19] Hermansky, H., Morgan, N. RASTA processing of speech. IEEE transactions on speech
and audio processing, 2, (1994), 4, str. 578–589.
[20] Hermansky, H. Perceptual linear predictive (PLP) analysis of speech. The Journal of
the Acoustical Society of America, 87, (1990), 4, str. 1738–1752.
[21] Hertlein, H., Frischholz, R., Nöth, E. Pass Phrase Based Speaker Recognition for
Authentication. BIOSIG, 31, (2003), str. 71–80.
[22] IEEE 754: Standard for Binary Floating-Point Arithmetic. Dostopno na:
https://www.csee.umbc.edu/~tsimo1/CMSC455/IEEE-754-2008.pdf/ [4. 6. 2017].
[23] Institute for Infocomm Research. Dostopno na: http://www.i2r.a-star.edu.sg/
[14. 5. 2017].
[24] Kinobo "Makio" USB Mini Microphone for Raspberry Pi. Dostopno na:
https://kinobo.co.uk/products/kinobo-makio-usb-mini-microphone-for-raspberry-
pi-laptop-desktop-pc [6. 6. 2017].
69
[25] Larcher, A., Lee, K. A., Ma, B., Li, H. Phonetically-constrained PLDA modeling for text-
dependent speaker verification with multiple short utterances. Proceedings of the
International Conference on Acoustics, Speech and Signal Processing. International
Conference on Acoustics, Speech and Signal Processing (ICASSP), Vancouver, 26.–31.
maj 2013. Vancouver: IEEE, 2013, str. 7673–7677.
[26] Matsui, T., Furui, S. Concatenated phoneme models for text-variable speaker
recognition. V Acoustics, Speech, and Signal Processing. 1993 IEEE International
Conference on Acoustics, Speech, and Signal Processing, Minneapolis, 27.–30. april
1993. (neomejena kohortna)
[27] Ming, J., Hazen, T. J., Glass, J. R., Reynolds, D. A. Robust speaker recognition in noisy
conditions. IEEE Transactions on Audio, Speech, and Language Processing, 15, (2007),
5, str. 1711–1723.
[28] Mohan, B. J. Speech recognition using MFCC and DTW. International Conference
on Advances in Electrical Engineering Proceedings. International Conference
on Advances in Electrical Engineering, Velore, 9.–11. januar 2014. Velore: IEEE, 2014,
str. 1–4.
[29] Muda, L., Begam, M., Elamvazuthi, I. Voice recognition algorithms using mel
frequency cepstral coefficient (MFCC) and dynamic time warping (DTW) techniques.
arXiv preprint, arXiv:1003.4083, (2010). Dostopno na:
https://arxiv.org/abs/1003.4083 [12. 11. 2016].
[30] Müller, M. Dynamic time warping. V Information retrieval for music and motion.
Heidelberg: Springer, 2007, str. 69–84.
[31] NIST. The 2004 NIST Speaker Recognition evaluation. Dostopno na:
http://www.itl.nist.gov/iad/mig/tests/sre/2004/ [6. 6. 2017].
[32] NIST. The 2005 NIST Speaker Recognition evaluation. Dostopno na:
http://www.itl.nist.gov/iad/mig/tests/sre/2005/ [6. 6. 2017] .
[33] Nuance VocalPassword. http://www.nuance.com/for-business/customer-service-
solutions/voice-biometrics/vocalpassword/index.htm [13. 11. 2016].
[34] Raspberry Pi Foundation. Raspbian. https://www.raspbian.org/ [23. 7. 2016].
[35] Reynolds, D. A. An overview of automatic speaker recognition technology. V
International Conference on Acoustics, Speech and Signal Processing Proceedings.
70
International Conference on Acoustics, Speech and Signal Processing (ICASSP),
Orlando, 13.–17. maj 2002. Orlando: IEEE, 2002, vol. 4, str. 4072–4075.
[36] Reynolds, D. Gaussian mixture models. V Encyclopedia of biometrics. Springer
Publishing Company, 2015, str. 827–832.
[37] RSR2015 Corpus. Exploit Technologies Pte Ltd. Dostopno na:
https://www.etpl.sg/innovation-offerings/ready-to-sign-licenses/rsr2015-overview-
n-specifications [6. 6. 2017].
[38] Savage R., Sendula D. The Pi4J project. http://pi4j.com/ [23. 7. 2016].
[39] Shao, Y., Wang, D. Robust speaker identification using auditory features and
computational auditory scene analysis. V Acoustics, Speech and Signal Processing
2008 (ICASSP). 2008 IEEE International Conference on Acoustics, Speech and Signal
Processing, Las Vegas, 31. marec–4. april 2008.
[40] Six. J. TarsosDSP: a Java Library for Audio Processing.
https://0110.be/tags/TarsosDSP [6. 7. 2016]
[41] Six, J., Cornelis, O., Leman, M. TarsosDSP, a real-time audio processing framework in
Java. V Audio Engineering Society 53rd Conference Proceedings. Audio Engineering
Society: 53rd conference on semantic audio. London, 26.–29. januar 2014. London:
Engineering Society, 2014.
[42] Smartphoto Studio. Voice lock. Dostopno na:
https://play.google.com/store/apps/details?id=com.dongsoft.voicelock
[14. 11. 2016].
[43] Stafylakis, T., Kenny, P., Ouellet, P., Perez, J., Kockmann, M., Dumouchel, P. Text-
dependent speaker recognition using PLDA with uncertainty propagation. V
Interspeech Conference Proceedings. Interspeech Conference, Lyon, 25.–29. avgust
2013. Lyon: ISCA, 2013.
[44] Stepančič, L. Optimizacija parametrov v modelu sintetizacije zvoka. Doktorska
disertacija. Univerza v Ljubljani, 2013. Dostopno na: http://eprints.fri.uni-lj.si/2093/
[6. 1. 2017].
[45] The Raspberry Pi Foundation. Raspberry Pi products. Dostopno na:
https://www.raspberrypi.org/products/ [13. 11. 2016].
[46] Toporišič, J. Slovenski pravopis. Ljubljana: Slovenska akademija znanosti in umetnosti,
2001.
71
[47] United Linkers. Voicesafe-36. Dostopno na: http://automobile-
security.com/voicesafe36.htm [13. 11. 2016].
[48] Variani, E., Lei, X., McDermott, E., Lopez Moreno, I., Gonzalez-Dominguez, J. Deep
neural networks for small footprint text-dependent speaker verification. V
Proceedings of 2014 IEEE International Conference on Acoustics, Speech and Signal
Processing. 2014 IEEE International Conference on Acoustics, Speech and Signal
Processing, Florence, 4.–9. maj 2014. Florence: IEEE, 2014, str. 4052–4056.
[49] Viswanadham, Y. K., Subrahmanyam, T. V., Priya, I. L. Pass-Phrase based Speaker
Identification. International Journal of Computer Applications, 10, (2010), 8, str. 6–9.
[50] Voicekey. OpenSezMe. Dostopno na: https://itunes.apple.com/ml/app/opensezme/
id643249347?mt=8 [14. 11. 2016].
[51] Wahyudi, W. A., Syazilawati, M. Intelligent voice-based door access control system
using adaptive-network-based fuzzy inference systems (ANFIS) for building security.
Journal of Computer Science, 3, (2007), 5, str. 274–280.
[52] Westphal, M. The use of cepstral means in conversational speech recognition. V
Proceedings Eurospeech (1997). Eurospeech 1997, Rhodes, 22.–25. september 1997.
[53] You, C. H., Lee, K. A., Ma, B., Li, H. Text-Dependent Speaker Verification System in
VHF Communication Channel. V Proceedings of Odyssey Speaker and Langauge
Recognition Workshop. Odyssey 2014, Joensuu, 16.–19. junij 2014.
[54] Zazula, D. Predavanja iz računalniške obdelave signalov in slik. Maribor: Fakulteta za
elektrotehniko računalništvo in informatiko, 2015.
[55] Zhao, X., Wang, D. Analyzing noise robustness of MFCC and GFCC features in speaker
identification. V Acoustics, Speech and Signal Processing 2013 (ICASSP). 2013 IEEE
International Conference on Acoustics, Speech and Signal Processing, Vancouver,
26.–31. maj 2013.
72
73
74
75