• Rezultati Niso Bili Najdeni

Mentor:izr.prof.dr.MatijaMaroltLjubljana,2021 Poravnavabesedilinzvočnihposnetkovslovenskegagovorainpetja MarkŽakelj

N/A
N/A
Protected

Academic year: 2022

Share "Mentor:izr.prof.dr.MatijaMaroltLjubljana,2021 Poravnavabesedilinzvočnihposnetkovslovenskegagovorainpetja MarkŽakelj"

Copied!
53
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za računalništvo in informatiko Fakulteta za matematiko in fiziko

Mark Žakelj

Poravnava besedil in zvočnih posnetkov

slovenskega govora in petja

DIPLOMSKO DELO

INTERDISCIPLINARNI UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE

RAČUNALNIŠTVO IN MATEMATIKA

Mentor: izr. prof. dr. Matija Marolt

(2)
(3)

Copyright. Rezultati diplomske naloge so intelektualna lastnina avtorja in Fakul- tete za računalništvo in informatiko Univerze v Ljubljani. Za objavo in koriščenje rezultatov diplomske naloge je potrebno pisno privoljenje avtorja, Fakultete za raču- nalništvo in informatiko ter mentorja.

(4)
(5)

Zahvala

Na tem mestu se bi zahvalil mentorju prof. dr. Matiji Maroltu za potrpežlji- vost in pomoč pri izdelavi diplomske naloge. Zahvaljujem se tudi staršem za podporo tekom celotnega študija.

(6)
(7)

Kazalo

Povzetek 1

Abstract 2

1 Uvod 3

1.1 Motivacija . . . 3

1.2 Cilji naloge . . . 4

2 Pregled sorodnih del 5 2.1 Poravnava govora . . . 5

2.2 Poravnava petja . . . 6

3 Uporabljene metode 7 3.1 Segmentacija posnetka . . . 7

3.1.1 Klasifikacija okvirjev . . . 7

3.1.2 Robustna segmentacija . . . 9

3.2 Razpoznavanje govora . . . 10

3.2.1 Akustične značilke . . . 11

3.2.2 Akustični model . . . 12

3.2.3 Konvolucijska nevronska mreža (CNN) . . . 13

3.2.4 Časovna klasifikacija omrežja (CTC) . . . 14

3.2.5 Iskanje v snopu . . . 18

3.2.6 Končni avtomati . . . 20

3.2.7 Jezikovni modeli . . . 21

3.3 Poravnava . . . 23

3.3.1 Izbira Smith–Waterman kandidatov . . . 24

3.3.2 Smith–Waterman poravnava . . . 24

(8)

4 Implementacija 27

4.1 Segmentacija posnetka . . . 27

4.2 Razpoznavanje govora . . . 27

4.2.1 Učni podatki . . . 28

4.2.2 Akustični model . . . 28

4.2.3 Dekodiranje CTC . . . 29

4.2.4 Jezikovni model . . . 30

4.2.5 Končni avtomat . . . 30

4.3 Poravnava . . . 31

5 Rezultati in evalvacija 33 5.1 Testna množica . . . 33

5.2 Primerjava modelov in metod dekodiranja . . . 34

5.2.1 Nenarečni govor . . . 35

5.2.2 Narečni govor . . . 35

5.2.3 Narečno petje . . . 35

5.3 Sklepne ugotovitve . . . 36

5.3.1 Kvaliteta poravnave govora . . . 36

5.3.2 Kvaliteta poravnave petja . . . 36

5.3.3 Primerjava akustičnih modelov . . . 36

5.3.4 Primerjava metod dekodiranja . . . 37

6 Zaključek 39

Literatura 41

(9)

Seznam uporabljenih kratic

CNN convolutional neural network konvolucijska nevronska mreža CTC connectionist temporal classifi-

cation časovna klasifikacija omrežja

HMM hidden markov model skrit model markova

ASR automatic speech recognition avtomatsko razpoznavanje go- vora

LSTM long short term memory nevronske mreže z dolgim krat- koročnim spominom

VAD voice activity detection zaznavanje aktivnosti govora GMM gaussian mixture model mešanica Gaussovih porazdeli-

tev

DFT discrete Fourier transform diskretna Fourierjeva transfor- macija

STFT short–time Fourier transform kratkočasovna Fourierjeva transformacija

(10)
(11)

Povzetek

Naslov: Poravnava besedil in zvočnih posnetkov slovenskega govora in petja Avtor: Mark Žakelj

V diplomski nalogi podamo splošno uporabno rešitev za problem poravnave zvočnega posnetka in pripadajoče transkripcije. Rešitev je sestavljena iz treh komponent: segmentacija posnetka, razpoznavanje govora in poravnava be- sedil. V nalogi se osredotočimo na uporabo različnih akustičnih modelov za razpoznavanje govora in uporabo različnih metod dekodiranja izhodov modela.

Predlagamo tudi razširitev obstoječega algoritma za poravnavo besedil, s čimer zagotovimo poravnavo za vsako besedo v originalnem besedilu.

Sistem ovrednotimo na nenarečnem in narečnem govoru ter na narečnem petju brez spremljave, pri čemer uporabimo tri metrike bazirane na absolutni napaki poravnav. Poravnava govora se izkaže za kvalitetno in je primerljiva s kvaliteto podobnih sistemov v tujih jezikih.

Ključne besede:

poravnava besedil, razpoznavanje govora, CTC,

jezikovni model, narečni govor, konvolucijska nevronska mreža

(12)

Abstract

Title: Text to audio alignment of Slovenian speech and singing Author: Mark Žakelj

In this thesis, we build a general–purpose solution for the alignment of the voice recording and the associated transcription. The solution consists of three components: sound segmentation, speech recognition, and text ali- gnment. This thesis focuses on the use of different acoustic models for speech recognition and the use of different methods of decoding model outputs. We also propose a new extension of the existing text alignment algorithm to pro- vide alignment of each word in the original text.

The system is evaluated on non–dialectal and dialectal speech and unaccom- panied dialectal singing, using three metrics based on absolute alignment error.

Speech alignment proves to be of good quality and is comparable to the quality of similar systems in foreign languages.

Key words:

text alignment, speech recognition, CTC,

language model, dialectal speech, convolutional neural network

2

(13)

Poglavje 1 Uvod

1.1 Motivacija

Govor je del našega vsakdana. Od vsakdanjih prijateljskih pogovorov, do ve- čurnih predavanj, političnih debat, govor predstavlja temeljno obliko komuni- kacije v družbi. Življenje v digitalni dobi prinaša dnevno shranjevanje ogro- mnih količin različnih oblik podatkov, za kar govor ni izjema. Shranjujemo ga v obliki zvočnih posnetkov ali ortografskih transkripcij. Obe obliki zapisa se med sabo dopolnjujeta; govor v posnetku je časovno določen in vsebuje akustične informacije, tekst pa prinaša hitrejši način sprejemanja informacij (beremo hitreje, kot govorimo), lažje iskanje besed, pa tudi računalniki ga lažje razumejo. Od tod izvira želja po združevanju obeh oblik zapisa v povezano celoto, kar lahko dosežemo s poravnavo besedila in posnetka. Vsaki besedi (ali drugi lingvistični enoti) v transkribiranem besedilu želimo določiti čas pojavi- tve v posnetku.

Slika 1.1: Primer poravnave zvočnega posnetka in besedila na nivoju besed

(14)

4 Poglavje 1: Uvod

Problem poravnave se pojavi v raznih realnih primerih: sinhronizacija ustnic v animiranih ali sinhroniziranih filmih, anonimizacija občutljivih podat- kov v posnetkih, predobdelava učnih primerov za učenje akustičnih modelov, indeksiranje posnetkov za potrebe brskanja in poizvedovanja, prepoznavanje vzorcev izgovorjave za sintezo govora, prikaz podnapisov v filmih, ...

Da dosežemo pravilno poravnavo, lahko ročno (naprimer v programu Praat [3]) za vsako enoto (črka, beseda, ..) določimo čas pojavitve in trajanje. To delo je v primerjavi s transkribiranjem (stenografi dosegajo hitrosti več kot 300 besed na minuto) zelo zamudno in v primeru, ko je potrebna poravnava ogromne količine podatkov, tako rekoč nemogoča. Naravno se poraja vpraša- nje, kako bi lahko časovno potraten postopek pohitrili ali celo avtomatizirali.

Seveda pa ni treba, da se problem poravnave omejuje zgolj na govor. Petje, čeprav podobno govoru, predstavlja še toliko težji izziv.

1.2 Cilji naloge

Glavni cilj naloge je vzpostaviti delujoč sistem za poravnavo zvočnega posnetka in pripadajoče transkripcije na nivoju besed. Ker je slovenščina narečno zelo bogat jezik, primerjamo kvaliteto poravnave nenarečnih in narečnih govorcev.

Narečni govor se namreč lahko bistveno razlikuje od nenarečnega (v nekaterih primerih je celo splošno nerazumljiv), kar lahko predstavlja potencialno oviro v delovanju sistema. Zanima nas tudi prenos kvalitete poravnave na narečno petje, z uporabo sistema, ki je učen zgolj na govoru. Ker se petje lahko zelo razlikuje od govora (dodatna spremljava, večglasno petje, dolgi toni, ...), se v nalogi osredotočimo zgolj na enoglasno petje brez spremljave, ki je še najbolj podobno govoru.

Ključna težava pri reševanju problemov, povezanih z jezikom, je prenos rešitve v druge jezike. Sistemi za poravnavo običajo temeljijo na modelih, ki so grajeni z učnimi primeri v nekem jeziku. Predvsem v primeru globokih nevronskih mrež, ki so v zadnjih letih odgovor na marsikateri problem, je potrebna zadostna količina učnih podatkov, da je model lahko dovolj splošen.

Slovenščina, jezik z relativno malo govorci, se velikokrat sooča s problemom količine podatkov. Eden od ciljev naloge je ugotoviti, ali je možno izboljšati osnovno rešitev s prenosom znanja iz angleščine.

(15)

Poglavje 2

Pregled sorodnih del

2.1 Poravnava govora

Osnovne tehnike poravnave besedila in govora so se razvijale hkrati z razvojem tehnik razpoznavanja govora. V klasičnih sistemih, ki bazirajo na skritih mo- delih markova (HMM), se pogosto uporablja Viterbijev algoritem za poravnavo fonemov na učni množici [15]. Algoritem iterativno izboljšuje poravnavo, do konvergence. Problem tega algoritma je, da slabo deluje na daljših posnetkih, poleg tega pa zahteva popolno transkripcijo.

Za primerjavo z Viterbijevim algoritmom, je bila razvita tudi tehnika po- ravnave, ki bazira na sintezi govora s sestavljanjem fonemov ter dinamičnim prilagajanjem časa (Dynamic time warping) [15]. Dobra stran tega pristopa je, da učna množica ni potrebna, je pa potreben sintetizator govora. Kvaliteta poravnave tega načina je sicer primerljiva z Viterbijevim algoritmom, a vseeno slabša.

Za reševanje problema dolgih posnetkov je bila razvita tehnika zasidranih besed [19]. Ta tehnika najprej poišče kvalitetno poravnane besede, nato pa po principu deli in vladaj razdeli besedilo na dele med zasidranimi besedami ter celoten proces ponovi na manjšem problemu z manjšim vokabularjem ter z manjšim jezikovnim modelom, dokler segmenti niso dovolj kratki.

Problem poravnave nepopolnih besedil se lahko rešuje z prepoznavanjem omejenega števila fonemov, zgolj enoglasnikov in pripornikov, ki so bolj robu- stni na šum, kot ostali fonemi [9].

Z razvojem nevronskih mrež so se izboljševali tudi akustični modeli za razpoznavanje govora. Mreže LSTM trenirane s cenilko CTC in uporaba di- namičnega programiranja za iskanje poravnave se izkaže kot boljši pristop od klasičnih pristopov, če so posnetki daljši in transkripcije niso popolne [14].

(16)

6 Poglavje 2: Pregled sorodnih del

Eden najnovejših pristopov uporablja dva različna transformer modela:

prednji transformer in vzvratni transformer. Za razliko od prejšnjih metod, ta metoda deluje na nivoju stavkov in ne na nivoju fonemov ali grafemov [12].

2.2 Poravnava petja

Petje se od govora bistveno razlikuje. Lahko je večglasno, lahko ima glasbeno spremljavo, poleg tega pa ima melodijo. Posebej za namen poravnave petja so bile razviti raznorazne tehnike.

Eden prvih poskusov poravnave petja uporablja HMM in Viterbijev algo- ritem, kar je pravzaprav klasičen pristop za poravnavo govora. Najprej se iz posnetka, s pomočjo transkribiranja melodije, izlušči zgolj petje, nato pa se izvede poravnava [17].

Ker imajo pesmi lahko zapisane pozicije akordov, se lahko ta informacija uporabi za izboljšavo HMM/Viterbi poravnave [16].

Petje se razlikuje od govora tudi po trajanju glasov, večinoma samoglasni- kov, ki lahko trajajo več kot sekundo. Z raširitvijo Viterbijevega algoritma na način, ki upošteva trajanje stanj v HMM, se lahko izboljša rezultat na petju brez spremljave [7].

Nova tehnika, ki za razliko od prejšnjih metod ne uporablja akustičnega modela, temelji na nenadzorovanem učenju ponavljajočih vzorcev v akustiki samoglasnikov. Ta način se izkaže za obetavnega, saj v določenih primerih iz- boljša natančnost na nivoju besed, v primerjavi s klasičnimi načini poravnave, osnovanimi na ASR [5].

Za iskanje začetkov zlogov in s tem poravnave, se lahko uporabi konvolu- cijsko nevronsko mrežo (CNN), s čimer se poiščejo meje zlogov v posnetku, kar vodi do grajenja modela trajanja zlogov oblikovanega z normalnimi poraz- delitvami. Ta model vodi Viterbijev algoritem, s katerim se dekodira končne pozicije zlogov [20]

Najnovejši in tudi najboljši pristop temelji na pristopu end–to–end konvo- lucijskih nevronskih mrež učenih s cenilko CTC. Natančneje, uporabljena je modificirana mreža Wave–U–net, ki se v osnovi uporablja za ločitev posnetka na vokal in spremljavo. Tak pristop omogoča poravnavo tudi v primeru petja s spremljavo. Za dekodiranje CTC se uporablja iskanje v snopu s pomočjo jezikovnega modela treniranega zgolj na besedilu posamezne pesmi [23].

(17)

Poglavje 3

Uporabljene metode

Celoten sistem za poravnavo posnetkov in besedil, bazira na treh glavnih me- todah, ki se v splošnem lahko uporabljajo kot samostojne enote.

• Segmentacija posnetka, s čimer razdelimo celoten posnetek na več krajših posnetkov, hkrati pa odstranimo šum in tišino.

• Razpoznavanje govora, s čimer iz avdio signala pridobimo tekstovno tran- skripcijo ter čas pojavitve za vsako črko v transkripciji.

• Poravnava, s čimer vsaki besedi v originalnem besedilu določimo mesto v pridobljeni transkripciji in s tem tudi čas pojavitve.

3.1 Segmentacija posnetka

Zvočni posnetki ne vsebujejo zgolj govora, temveč tudi tišino ali pa drug zvok, ki ni govor (’šum’). Da skrajšamo čas kasnejšega procesiranja, je smiselno čimveč šuma odstraniti, hkrati pa celoten posnetek razdeliti na več segmentov, s čimer lahko določene procese računamo vzporedno.

3.1.1 Klasifikacija okvirjev

Tehnika, ki omogoča klasifikacijo, je zaznavanje aktivnosti govora (Voice Acti- vity Detection–VAD), za kar obstaja cela družina algoritmov. Večini algorit- mov sta skupni dve fazi:

• Ekstrakcija značilk iz signala

• Klasifikacija signala na podlagi izluščenih značilk

(18)

8 Poglavje 3: Uporabljene metode

Slika 3.1: Porazdelitev logaritmirane energije signala Značilko se običajno računa na kratkih delih avdia (okvirji):

xi(l) = [x(l−N + 1), x(l−N + 2), ..., x(l−1), x(l)]

kjer vsak okvir vsebuje N samplov. Cilj VAD je določiti, ali okvirx(l)vsebuje govor ali ne, zato se tvorita dve hipotezi:

H1 :x(l) =b(l) +s(l) H0 :x(l) =b(l)

kjer je b(l) čisti šum, s(l) pa čisti govor. Odločitev za eno izmed hipotez je odvisna od izračunane značilkeftr ter odločitvenega parametraη.

V ADf tr(η, l) =

(1, ko je sprejeta H1 0, ko je sprejeta H0 Mešanica Gaussovih porazdelitev (GMM)

Da se nek okvir klasificira bodisi kot govor, bodisi kot šum, je potrebna neka odločitvena procedura, za kar se lahko uporabi GMM. Ker je celoten zvok sestavljen iz šuma in govora, torej dveh ločenih razredov, bi ena sama gaussova porazdelitev težko opisala tak signal. Ker je šum bolj statičen od govora, sta njegova povprečje in varianca logaritmirane energije manjša, kot pri govoru. V

(19)

3.1 Segmentacija posnetka 9

sliki 3.1 sta razvidna dva vrhova v porazdelitvi logaritmirane energije. Oster vrh z manjšim povprečjem predstavlja šum, širši vrh z večjim povprečjem pa govor. Tako porazdelitev lahko opišemo z dvo–komponentnim GMM, ki ga podamo kot:

p(xkz) = X

z

p(xk, z|λz) =X

z

p(xk|z, λz)p(z)

Kjerxk predstavlja logaritmirano energijo frekvenčnega pasu pri času k (k–ti okvir), z ∈ {0, 1}, kjer 1 predstavlja govor, 0 pa šum. λz :={ωz, µz, κz} je množica parametrov GMM, ωz je utež, tako da ω01 = 1, kar predstavlja apriorno verjetnost P(z). µz ke povprečje, κz pa varianca. p(xk|z, λz) pa je verjetjexk podano z:

p(xk|z, λz) = 1

√2πκz exp−(xk−µz)2z

Množica parametrov λz je ocenjena z maksimiziranjem gostote. Če je xzapo- redje logaritmiranih energij,x= [x1, x2, ...xM], je gostota definirana kot

p(x|λz) =

M

Y

k=0

p(xkz)

Če je p(xk|z = 1, λz)p(z = 1) gostota logaritmične energije govora,

p(xk|z = 0, λz)p(z = 0) pa gostota logaritmične energije šuma,θ pa optimalen odločitveni prag, ki minimizira napako, se lahko optimalenθ poišče s pomočjo enačbe z eno neznanko:

p(θ|z = 1, λz)p(z = 1) =p(θ|z = 0, λz)p(z = 0)

Ko ima nek okvir logaritmirano energijo manj kotθ, je klasificiran kot šum, v nasprotnem primeru pa kot govor.

3.1.2 Robustna segmentacija

Čeprav osnovna klasifikacija okvirjev dobro klasificira posamezne okvirje, so dobljeni segmenti, ki jih dobimo z združevanjem sosednjih pozitivno klasifici- ranih okvirjev, lahko preveč razdrobljeni. En sam negativno klasificiran okvir

(20)

10 Poglavje 3: Uporabljene metode

Naj bo [z1, z2, ...zn] zaporedje odločitev dobljenih z GMM. Nova odločitev za vsak okvir je definirana kot:

lk=





dk > θ: 1, dk = m1

k

X

i=k−m+1

zi

dk ≤θ: 0

Kjerm predstavlja velikost konteksta (okna),θ pa prag odločitve. Prvihm−1 okvirjev je pri tem avtomatsko klasificiranih kot šum. Sedaj z združevanjem sosednjih pozitivno klasificiranih okvirjev dobimo segmente, ki niso po nepo- trebnem razdrobljeni.

3.2 Razpoznavanje govora

Cilj tehnik prepoznavanja govora je, da iz avdio signala pridobijo zaporedje pripadajočih besed (transkripcija). Če označimo zaporedje besed z W, za- poredje vektorjev akustičnih značilk pridobljenih iz signala pa kot X, potem lahko cilj podamo kot maksimiziranje verjetnosti zaporedja besed pri danem zaporedju vektorjev značilk.

W =argmaxWP(W|X)

Z uporabo Bayesovega obrazca, lahko zapišemo

W =argmaxWP(X|W)P(W) P(X)

Če predpostavimo, da sta W in X neodvisna, lahko zgornjo enačbo poenosta- vimo.

W =argmaxWP(X|W)P(W)

Ta enačba je poznana kotfundamentalna enačba razpoznavanja govora. Na to enačbo lahko gledamo tudi kot maksimiziran produkt dveh faktorjev:

• apriorna verjetnost P(W), ki predstavlja jezikovni model in je odvisna zgolj od W. Tak model je zgrajen na tekstu nekega jezika ter določa verjetnosti zaporedjem besed.

• verjetje P(X|W), ki predstavlja akustični model in opisuje distribucijo X pri danem zaporedju besed W.

(21)

3.2 Razpoznavanje govora 11

Razpoznavalnik v nalogi je sestavljen iz večih procesov: računanje akustič- nih značilk iz signala, uporaba značilk v akustičnem modelu in dekodiranje izhodov akustičnega modela s pomočjo jezikovnega modela. Akustični model je realiziran s konvolucijsko nevronsko mrežo, ki je učena s cenilko CTC. Pri uporabi cenilke CTC je izhod modela podan kot zaporedje verjetnostnih po- razdelitev znakov. Zaporedje porazdelitev je potrebno dekodirati v zaporedje znakov, kar lahko storimo z iskanjem v snopu in jezikovnim modelom. Če jezi- kovni model deluje na nivoju besed, je potrebno zagotoviti, da bo dekodirano zaporedje znakov vključevalo samo besede iz besedišča jezikovnega modela. To dosežemo z uporabo končnega avtomata, ki sprejema uporabljeno besedišče.

3.2.1 Akustične značilke

Govor je 1D signal in različni posnetki so različno dolgi. Ker bi bilo zelo nepraktično, če bi se signal procesiral direktno, se celoten signal razdeli na krajše dele dolge približno 10 - 30 ms (okvir). Za vsak tak okvir se nato izračuna akustične značilke, s katerimi se odstrani nepotrebne informacije iz signala, hkrati pa dobimo gostejšo reprezentacijo signala z manj dimenzijami.

Digitalni avdio signal je zapisan z vzorci, ki predstavljajo valovanje zvoka v odvisnosti od časa. Taka oblika zapisa ne ponuja direktne informacije po- sameznih frekvenc. Da preidemo iz časovne domene v frekvenčno domeno, uporabimo diskretno Fourierjevo transformacijo (DFT) za končne signale:

Xk =

N−1

X

n=0

x(n)·e−i2πnNk ,0≤k≤N −1

kjer je N število vzorcev v končnem signalu x(n). Z računanje DFT čez celo- ten signal pa izgubimo direktno informacijo o časovni odvisnosti. Da ohranimo značilnosti iz obeh domen, računamo spektrogram - dvodimenzionalna vizuali- zacija, ki prikazuje moč signala v odvisnosti od časa in frekvence. Spektrogram lahko računamo s kratko–časovno Fourierjevo transformacijo (STFT), katere intuicija je naslednja: najprej razdelimo signal v časovni domeni na kratke dele (okvirji), nato pa za vsak okvir izračunamo DFT. Izračun STFT je odvisen od velikosti okvirja, velikosti koraka (ta je običajno manjši od velikosti okvirja, da se okvirji med sabo deloma prekrivajo) in okenske funkcije, ki se aplicira na signal. Tako lahko enačbo za izračun STFT zam–ti okvir ink–ti koeficient napišemo kot:

N−1

(22)

12 Poglavje 3: Uporabljene metode

kjer jeN velikost okvirja (število vzorcev), Hvelikost koraka, w(n)pa okenska funkcija. Z izračunom STFT dobimo kompleksna števila, ki jih preslikamo v realna s kvadriranjem magnitude:

Y(m, k) = |S(m, k)|2 Ob tem upoštevamo simetrijo DFT za končne signale:

Xk=XN−k =⇒ Y(m, k) =Y(m, N −k)

Da se znebimo podvojenih vrednosti, lahko omejimo k: 0 ≤ k ≤ N2. Tako lahko zgradimo matriko Y velikosti N2 + 1 ×K, kjer je K število okvirjev.

Frekvenca, ki jo predstavlja k-ta vrstica v matriki Y je odvisna od frekvence vzorčenja signalasr: Fk = Nksr Običajno se te vrednosti matrike Y pretvori v decibele: Ydb= 10 log(Y), da dobimo končni spektrogram.

Glede na psihofizične študije, človeška percepcija frekvenc sledi subjektivno definirani nelinearni mel-frekvenčni lestvici, ki je definirana kot:

fmel= 2595log10(1 + f 700)

kjer je f realna frekvenca v Hz. To vodi do definicije mel-spektrograma, ki je splošno uporabljena reprezentacija (poleg mel–frekvenčnih kepstralnih ko- eficientov) v sistemih za prepoznavanje govora. Mel–spektrogram se pridobi iz navadnega spektrograma z uporabo L pasovno prepustnih trikotnih filtrov, ki so linearno razporejeni po mel–lestvici (slika 3.2). Vsak filter lahko pred- stavimo kot vektor fk dolžine N2 + 1. Če take vektorje zložimo v matriko M = [f1, f2, ...fL]T, lahko mel spektrogram preprosto izračunamo z matričnim množenjem:

Ymel =M Y Primer mel spektrograma je viden na sliki 3.3

3.2.2 Akustični model

Akustični model je ključen korak v razpoznavanju govora, saj vzpostavi raz- merje med akustičnimi informacijami ter lingvističnimi enotami (npr. fonemi, črke)

Z uporabo akustičnega modela se iz posnetka pridobi verjetnosti posameznega znaka za vsak okvir. Obstaja več različnih implementacij akustičnega modela.

Klasičen pristop uporablja Gaussov mešani model ter skrite modele Markova, skozi leta pa so se razvijale nove arhitekture na podlagi globokih nevronskih mrež, ki so bolj natančne. V nalogi je uporabljena konvolucijska nevronska mreža.

(23)

3.2 Razpoznavanje govora 13

Slika 3.2: pasovno prepustni trikotni filtri, ki so linearno razporejeni po mel - lestvici. Vir: [18]

Slika 3.3: Primer mel spektrograma

3.2.3 Konvolucijska nevronska mreža (CNN)

Konvolucijska nevronska mreža je vrsta globokih nevronskih mrež. Glavna razlika med CNN in klasičnimi globokimi mrežami (večplastni perceptron), so posebne konvolucijske plasti, ki lahko iz signala izločijo visokonivojske značilke in jih nato uporabijo v klasičnem polnopovezanem omrežju.

(24)

14 Poglavje 3: Uporabljene metode

Slika 3.4: Primer tehnike združevanja vrednosti kot:

fg(x) = g(x)∗f(x) =

X

t=−∞

g(t)f(x−t)dt

S pomočjo pravih jeder in konvolucije, lahko na slikah določimo kje so ostri robovi, ali pa kje v signalu se pojavljajo nenadne spremembe amplitude. Med učenjem konvolucijskih nevronskih mrež se pravzaprav išče primerno jedro g(x), ki bo iz signala (slika, avdio,..) razbrala najbolj uporabne značilke. Ker so nevronske mreže po svoji naravi zelo kompleksne, se takih značilk večinoma ne da intuitivno razložiti.

Da se zmanjša število parametrov v modelu ter da se naredi model bolj robusten na prostorske ali časovne premike vhoda, se uporabi tehniko združe- vanja maksimalnih vrednosti (max pooling), ki deluje tako, da s fiksno velikim oknom drsimo čez signal, in vedno ohranimo le največjo vrednost znotraj okna.

Te vrednosti združimo v vidno polje in jih uporabimo bodisi kot vhod v na- slednjo konvolucijo ali pa kot vhod v polno povezano omrežje (2D signal se v takem primeru splošči v 1D).

Nevronske mreže se učijo z minimiziranjem cenilne funkcije. Za akustične modele se pogosto uporablja cenilna funkcija CTC, s katero model med uče- njem poravna besedilo in zvok.

3.2.4 Časovna klasifikacija omrežja (CTC)

CTC je probabilistični model p(Y |X), kjer jeX =x1x2x3...xn vhodno zapo- redje vektorjev xi (npr. mel spektrogram), Y = y1y2y3...ym pa pripadajoče izhodno zaporedje sestavljeno iz elementovyi (npr. transkripcija), v splošnem velja (n ≥ m). Želimo poiskati preslikavo iz X v Y. Določeni problemi pre- prečujejo uporabo preprostejših tehnik nadzorovanega učenja:

• Različni X in Y so različnih dolžin,

(25)

3.2 Razpoznavanje govora 15

Slika 3.5: Primer naivne poravnava CTC vhoda in izhoda

• razmerje dolžin X in Y je različno,

• ne obstaja natančna poravnava elementov X in Y

CTC algoritem lahko reši take probleme; za dani X poda distribucijo čez vse možneY. S pomočjo te distribucije lahko poiščemo nek verjeten Y.

Cenilna funkcija: Za podan vhod X bi radi trenirali akustični model tako, da maksimiziramo verjetnost pravilnega izhoda. Da lahko to naredimo, potre- bujemo računsko nezahteven izračun pogojne verjetnostip(Y|X). Ko je model natreniran, želimo poiskati verjetenY pri danem X, kar pomeni reševanje

Y = argmax

Y

p(Y|X)

Algoritem CTC med učenjem pridobi pogojno verjetnost s seštevanjem vseh možnih poravnav med vhodom in izhodom. Obstaja naiven način take porav- nave, če vsakemu delu vhoda določimo izhodni znak ter združimo ponovitve.

Če za primer vzamemo vhod z dolžino 6, izhod pa je beseda ’miš’, potem je ena od možnih poravnav ’miiššš’ in ko združimo ponovitve črk, dobimo ’miš’

(vidno na sliki 3.5). Tak način ima dva problema:

• nima smisla vsakemu elementu vhoda določiti izhodni znak, saj lahko vhod predstavlja tišino,

• na tak način se ne da dobiti besed, kjer se ena črka zaporedoma ponovi (beseda ’hello’ v angleškem jeziku)

Da se takim problemom algoritem izogne, se vpelje nov prazen znak(blank) v množico dovoljenih izhodnih znakov. Prazen znak ne predstavlja nekega konč- nega znaka, zato se ga na koncu odstrani. Če za primer (slika 3.6) vzamemo

(26)

16 Poglavje 3: Uporabljene metode

Slika 3.6: Primer pravilne poravnave CTC vhoda in izhoda za besedo s pono- vljeno črko. Vir: [8]

Sedaj lahko določimo pravilne poravnave za vsak vhod in izhod:

• poravnava mora biti enako dolga kot vhod,

• po procesu združevanja sosednjih enakih znakov ter nato odstranitvi pra- znega znaka, mora ostati ciljni izhod (Y)

Tako lahko definiramo izračun pogojne verjetnosti:

p(Y|X) = X

A∈AX,Y T

Y

t=1

pt(at|X)

Kjer je A = a1a2...aT pravilna CTC poravnava iz X v Y, T = |X|, pt pa pogojna porazdelitev možnih znakov pri časovnem koraku t za dani X.

Za dejansko računanje pogojne verjetnosti, se uporablja dinamično progra- miranje, tako da se poravnave združujejo. Če sta dve poravnavi dosegli isti izhod pri nekem časovnem koraku, ju lahko združimo. Ker se prazen znak lahko pojavi pred ali po katerem koli izhodnem znaku, algoritem deluje na modificiranem izhodnem zaporedju, ki ga dobimo, če na začetek, konec in med vsako črko vrinemo prazen znak.

Z = [, y1, , y2, , y3, ... yU, ] = [z1, z2, z3, ...z2U+1]

Na tak način dobimo graf vseh možnih poravnav, kjer vsaka možna pot pred- stavlja eno poravnavo (slika 3.7). Naj bo α rezultat združenih poravnav v

(27)

3.2 Razpoznavanje govora 17

Slika 3.7: Primer grafa možnih poravnav CTC. Vir: [8]

nekem vozlišču. Natančneje, αs,t je CTC rezultat podzaporedja Z1:s pri ča- sovnem koraku t. Dokler poznamo α pri prejšnjem časovnem koraku, lahko izračunamoα za trenutni časovni korak. Obstajata dva primera:

• zs = zs−2 : V takem primere ne smemo izpustiti znaka zs−1, ker bodisi ni prazen znak, bodisi je pomemben prazen znak med dvema enakima črkama izhoda. V takem primeru se lahko v trenutno vozlišče prema- knemo zgolj iz dveh prejšnjih: (s−1, t−1) in (s, t−1). Trenutni α se računa kot

αs,t = (αs−1,t−1s,t−1)·pt(zs|X)

• zs6=zs−2: V takem primeru je zs−1 prazen znak med dvema neenakima izhodnima znakoma, zato ga lahko tudi izpustimo. V trenutno vozlišče se lahko premaknemo iz treh prejšnjih: (s, t−1),(s−1, t−1)in(s−2, t−1). Trenutni α se računa kot

αs,t = (αs,t−1s−1,t−1s−2,t−1)·pt(zs|X)

Obstajata dva možna začetna vozlišča ter dva možna končna vozlišča. Končni

(28)

18 Poglavje 3: Uporabljene metode

Za neko učno množicoD se parametri modela spreminjajo tako, da minimizi- rajo negativen logaritem verjetja, namesto da maksimizirajo samo verjetje:

X

(X,Y)∈D

−log[p(Y|X)]

Ko je model naučen, lahko z njim poiščemo verjeten izhod za dan vhod.

Natančneje, potrebno je rešiti

Y = argmax

Y

p(Y|X)

Enostavna in požrešna metoda je, če na vsakem koraku vzamemo najbolj ver- jeten znak. Tako dobimo poravnavo z največjo verjetnosto:

A = argmax

A T

Y

t=1

pt(at|X)

Za izhod zgolj združimo enako sosednje znake ter odstranimo prazen znak.

Taka hevristika včasih ni dovolj dobra, ker lahko zgreši izhode z večjo verje- tnostjo. En izhod ima namreč lahko več pravilnih poravnav. Ta problem lahko rešujemo z modificiranim iskanjem v snopu.

3.2.5 Iskanje v snopu

Iskanje v snopu je hevristični iskalni algoritem, kjer na vsakem koraku izberemo k (širina snopa) najboljših poti, po katerih iščemo naprej. Na vsakem koraku je najprej izračunana nova množica hipotez, ki se generira iz prejšne množice izbranih poti tako, da vsak list razširimo z vsakim možnim znakom izhodne abecede, ohranimo pa le k najboljših. Standardno iskanje v širino se lahko modificira na tak način, da se več različnih razširitev združi v isto hipotezo.

V takem primeru se med potekom algoritma shranjujejo zaporedja znakov, kjer so ponovitve združene ter odstranjen (predpone). Na vsakem koraku se sproten rezultat hipoteze računa na podlagi vseh razširitev, ki se združijo v dano hipotezo. Možna razširitev se lahko preslika v dve različni hipotezi, če je znak ponovljen. To se vidi na sliki 3.9 pri T = 3, kjer je a možna razširitev predpone [a]. Tako [a], kot [a, a] sta možna izhoda za predlagano razširitev. Ko razširimo [a] v [a, a], želimo upoštevati le tisti del prejšnjega rezultata, ki izhaja iz poravnav, ki se končajo v, saj je prazen znak zahtevan, če se znaki v končnem izhodu ponovijo. Podobno, če [a] razširimo v [a], je potrebno upoštevati le tisti del prejšnjega rezultata, ki izhaja iz poravnav, ki se ne končajo v .

(29)

3.2 Razpoznavanje govora 19

Slika 3.8: Standardno iskanje v širino z abecedo {, a, b} in širino snopa 3 Da lahko to dosežemo delitev rezultata na dva dela, je potrebno sproti shra- njevati dve verjetnosti za vsako predpono v snopu. Verjetnost vseh poravnav, ki se končajo v ter verjetnost vseh poravnav, ki se ne končajo v .

Pri iskanju v snopu smiselno vključiti jezikovni model, ki lahko izboljša končen rezultat tako, da sproti ocenjuje hipoteze. Jezikovni model lahko bazira na podlagi črk ali pa na podlagi besed. Tako lahko modificiramo enačbo, ki jo rešujemo ob napovedi:

Y = argmax

Y

p(Y|X)·p(Y)α·L(Y)β

Kjer p(Y) predstavlja apriorno verjetnost zaporedja besed (ali črk), ki jo do- bimo s pomočjo jezikovnega modela, L(Y) predstavlja dolžino zaporedja, kar na besednem nivoju šteje besede, na nivoju črk pa znake. Med potekom al- goritma, se rezultat jezikovnega modela upošteva le, če je predpona razširjena za celoten lingistični element (črka ali beseda) in ne na vsakem koraku. α in β sta zgolj faktorja upoštevanja in se jih običajno določi z določi z iskanje v mreži (grid search).

V primeru, da jezikovni model temelji na besedah, je potrebno zagotoviti, da so prepoznane besede del vokabularja, sicer jezikovni model ne more pra-

(30)

20 Poglavje 3: Uporabljene metode

Slika 3.9: CTC iskanje v širino z abecedo {, a, b} in širino snopa 3

Slika 3.10: CTC iskanje v širino z abecedo{, a, b}in širino snopa 3, ena možna pot z združitvami in cepitvijo

od začetka ter preverja možne naslednje znake. Ko sprejmemo možno razši- ritev za predpono in jo s tem podaljšamo, hkrati posodobimo tudi stanje v avtomatu. Tako za vsako predpono hranimo še trenutno stanje v končnem avomatu.

3.2.6 Končni avtomati

Končni avtomat je peterica

M ={Q,Σ, δ, s, F} Kjer je:

(31)

3.2 Razpoznavanje govora 21

• Q - množica stanj,

• Σ - abeceda

• s ∈Q- začetno stanje

• F ⊆Q - neprazna množica končnih stanj

• δ :Q×Σ→Q - funkcija prehodov med stanji

Jezik avtomata so vse možne besede, ki jih dobimo pri potovanju od začetnega do končnega stanja. Pravimo, da avtomat razpoznava besede, ki se del nje- govega jezika. Tako lahko definiramo avtomat, ki razpoznava zgolj določene besede, ki tvorijo naš vokabular. Isti vokabular se uporabi tudi za grajenje jezikovnega modela. Na sliki 3.11 lahko vidimo primer preprostega končnega avtomata, ki razpoznava besede miš, mit in mak. Končni avtomat je potrebno pred uporabo minimizirati, kar pomeni, da ima minimalno število stanj. S tem zagotovimo, da imajo besede z istim začetkom tudi isto začetno pot v avtomatu (npr. ’miš’ in ’mit’ v sliki 3.11)

Slika 3.11: Primer končnega avtomata, ki sprejme besede miš, mit, mak

3.2.7 Jezikovni modeli

(32)

22 Poglavje 3: Uporabljene metode

prepoznavanje govora se uporablja dva tipa jezikovnih modelov; statistični (N–grami) ter modeli bazirani na nevronskih mrežah.

N–gram jezikovni model

N–grami so v takih modelih osnova za računanje verjetnosti danega zaporedja besed P(W). Ta verjetnost je direktno izračunana iz podatkov. P(W) se s pomočjo bayesovega obrazca lahko zapiše:

P(W) = P(w1)·P(w2|w1)·P(w3|w1w2)·...·P(wm|w1..wm−1)

S predpostavko lastnosti Markova se dolžino zgodovine za vsako besedo omeji.

Naprimer če uporabimo 2–grame, se bodo upoštevale zgolj verjetnosti dveh sosednjih besed. P(W) se lahko v takem primeru napiše kot:

P(W) = P(w1|< s >)·P(W2|w1)·P(w3|w2)·P(w4|w3)·...·P(< /s >|wm) kjer < s >in < /s > predstavljata začetek in konec zaporedja besed.

V splošnem, vsaka beseda je pogojena z N −1 prejšnimi besedami. Večji, kot je N, večji je tudi kontekst, vendar v praksi N > 5 ne prinese velikih izboljšav. Pogojne verjetnosti bazirane na n–gramih se lahko naivno ocenijo s frekvenco pojavitev podzaporedij besed v celotnem korpusu:

P(wn|w1w2..wn−1) = c(w1..wn) c(w1..wn−1) Kjerc(W)predstavlja število pojavitev podzaporedja W.

Taka naivna ocena ima ključno pomankljivost: vsak n–gram, ki se ne po- javi v korpusu, ima verjetnost nič. To načeloma ni dobro, saj na tak način izključimo potencialno dobre kombinacije besed, zgolj zaradi pomankanja po- datkov. Da se nepojavljenim podzaporedjem določe neničelno verjetnost, se vpeljeglajenje jezikovnega modela. Ena izmed bolj popularnih tehnik gla- jenja je Kneser–Ney glajenje, ki se računa na naslednji način:

Naj boc(w, w0) število pojavitev besedew, ki ji sledi beseda w0. Če računamo verjetnost za bigrame, vzamemo naslednjo enačbo:

PKN(wi|wi−1) = max(c(wi−1, wi)−δ,0) P

w0c(wi−1, w0) +λwi−1PKN(wi) (KN) Kjer je verjetnost za unigram PKN(wi) odvisna od možnosti pojavitve besede wiv neznanem kontekstu, kar se oceni kot število pojavitev besede za katerokoli drugo besedo, ulomljeno z številom različnih parov besed v korpusu:

PKN(wi) = |{w0 : 0< c(w0, wi)}|

|{(w0, w00: 0< c(w0, w00))}|

(33)

3.3 Poravnava 23

Parameter δ predstavlja konstantno vrednost izpuščanja. Običajno leži v in- tervalu [0, 1], večja kot je δ, hitreje se izpusti nek n–gram z nizko frekvenco.

Vrednost λωi−1 se uporablja za normalizacijo in se izračuna tako, da je vsota pogojnih verjetnosti pKN(wi|wωi−1) čez vse wi enaka 1. Enačbo KN lahko posplošimo na n–grame višjega reda:

Naj bo wi−n+1i−1 zaporedje n−1besed pred wi:

pKN(wi|wi−1i−n+1) = max(c(wi−1i−n+1, wi)−δ,0) P

w0c(wi−1i−n+1, w0) +δ|{w0 : 0< c(wi−1i−n+1, w0)}|

P

w0c(wi−1i−n+1, w0) pKN(wi|wi−1i−n+2) Na ta način se hkrati upošteva jezikovne modele višjih in nižjih redov.

3.3 Poravnava

Cilj poravnave besedila je, da se za vsako besedo v prvotnem besedilu poišče čas v posnetku, kjer se ta beseda pojavi. Poravnavo dobimo na tak način, da besede najprej poravnamo glede na transkripcijo pridobljeno z razpoznava- njem govora. Tako za vsako originalno besedo dobimo indeks pozicije začetka v dobljeni transkripciji. Za vsak znak v dobljeni transkripciji pa poznamo tudi indeks okvirja, kjer se pojavi. Tako tudi za vsako originalno besedo po- znamo indeks okvirja, kjer se beseda začne. Če poznamo še dolžino okvirja v milisekundah, lahko določimo časovno pozicijo originalne besede.

Dejanska poravnava bazira na rekurzivnem algoritmu [24] po princupudeli in vladaj.

1. Najprej se konstruira urejen seznam vseh besed v trenutnem intervalu (na začetku je to seznam vseh besed, ki se bodo poravnale), kjer se daljše besede v sredini intervala pojavijo na začetku seznama.

2. Potem se iterira po seznamu, za vsako besedo se izračuna najboljšo Smith–Waterman poravnavo z dobljeno transkripcijo.

3. Iteracija poteka dokler Smith–Waterman rezultat neke besede ne preseže praga, ki je odvisen od števila besed v trenutnem intervalu. Prag se računa po naslednji formuli:

thr = n−1 2n

(34)

24 Poglavje 3: Uporabljene metode

4. Rekurzivno nadaljevanje v korak 1 z subintervali levo in desno od po- ravnane besede (tudi tekst dobljene transkripcije se vzame zgolj levo in desno od poravnave)

5. Kot rezultat vrnemo vse besede, ki so presegle minimalen Smith–Waterman rezultat na svoji globini rekurzije.

Tak pristop predpostavlja, da so bile vse besede na posnetku govorjene v istem vrstnem redu, kot v originalnem besedilu. To prinese določene lastnosti:

• Daljši deli dobljene transkripcije, ki se ne pojavijo v originalnem besedilu bodo ignorirani.

• Kratke besede, ki se lahko pojavijo večkrat v besedilu, se bolj verjetno poravnajo na pravilne lokacije, ker jih daljše besede ’stisnejo’ na pravilno mesto.

• Prag Smith–Waterman rezultata je lahko nižji, s čimer lahko dobimo boljšo poravnavo pri manj kvalitetnih transkripcijah. V takem primeru je manjša možnost, da se daljše besede poravnajo na napačnem mestu in s tem posledično tudi krajše besede zaradi prekratkih intervalov.

3.3.1 Izbira Smith–Waterman kandidatov

Iskanje najboljše poravnave dane besede v dolgih transkripcijah se izkaže za časovno prezahteven problem. Zato algoritem deluje v dveh fazah. V prvi fazi se generira seznam kandidato poravnave. Dobljena transkripcija se razdeli na okna enake dolžine, kot ciljna beseda. Ta okna se uredijo padajoče glede na število črkovnih 3–gramov skupnih z besedo. Najboljše kandidate se vzame iz začetka seznama glede na željeno maksimalno število kandidatov.

3.3.2 Smith–Waterman poravnava

V drugi fazi se za vsakega kandidata izračuna najboljša možna poravnava z Smith–Waterman algoritmom [22], ki deluje na sledeč način:

Naj bosta A = a1a2...an in B = b1b2...bm zaporedji znakov, ki jih je po- trebno poravnati.

1. Določi se rezultat podobnosti za elemente obeh zaporedij - s(a, b) ter utež za praznino dolžine k,Wk.

(35)

3.3 Poravnava 25

2. Inicializacija matrike H velikosti (n+ 1)∗(m+ 1). Prva (ničta) vrstica in stolpec se zapolneta z ničlami:

Hk0 =H0l = 0 : 0≤k≤n, 0≤l ≤m 3. Matrika H se dinamično napolni z vrednostmi:

Hij = max









Hi−1,j−1+s(ai, bj), (1≤i≤n,1≤j ≤m) maxk≥1{Hi−k,j−Wk},

maxl≥1{Hi,j−l−Wl}, 0

Kjer:

Hi−1,j−1+s(ai, bj)predstavlja rezultat poravnave ai in bj,

Hi−k,j−Wk predstavlja rezultat, če je ai na koncu praznine dolžine k, Hi,j−l−Wl predstavlja rezultat, če je bj na koncu praznine dolžine l 4. Sledenje nazaj od največje vrednosti v matriki, dokler ne pridemo do 0.

Od vsake celice nadaljujemo bodisi levo, bodisi navzgor, bodisi poševno levo, glede na to iz katere smeri je prišel rezultat v trenutno celico. Tako dobimo najboljšo poravnavo.

V algoritmu se beseda (ali fraza) iz originalnega besedila poravna znotraj raz- širjenega okna, ki ga dobimo tako, da osnovno okno kandidata levo in desno razširimo za eno dolžino osnovnega okna.

Končni rezultat se računa po naslednji formuli:

S = max(Hij) s0max(|P|,|A|)

Kjer s0 predstavlja rezultat ujemanja dveh znakov (s(a, a)), |P| pa dolžino končne poravnave.

3.3.3 Zapolnitev neporavnanega teksta

Po rekurzivni poravnavi besed, lahko v dobljeni transkripciji ostanejo deli be- sedila, ki niso del nobene poravnave. Smiselno je ugotoviti, če lahko dobimo boljši rezultat, če neko poravnavo razširimo v levo in/ali v desno. Ker so bile trenuntne poravnave dobljene s Smith–Waterman algoritmom, je za določanje

(36)

26 Poglavje 3: Uporabljene metode

• Jaro–Winkler razdalja,

• Levenshteinova razdalja,

• Ujemanje n–gramov,

• Editex

Izbira funkcije je odvisna od problema in podatkov. Maksimalna razširitev v vsako smer je določena s faktorjem razširitve, ki predstavlja delež nerazširjene poravnave. Med vsemi potencialnimi razširitvami se vzame tisto, ki je najbolj podobna originalni besedi (ali frazi) glede na funkcijo razdalje. V primeru, da se razširitve prekrivajo, se vzame take neprekrivajoče razširitve, ki podajo najboljši seštevek rezultatov.

3.3.4 Iterativno združevanje besed

Iskanje poravnave na prej opisan način ne poravna vedno vseh besed v origi- nalnem besedilu. Lahko se zgodi, da neka krajša beseda ni presegla praga med rekurzijo. Za reševanje tega problema predlagamo izboljšavo, ki temelji na združevanju besed originalnega besedila v fraze. Ena možna izboljšava je, da namesto posameznih besed, za algoritem uporabimo sosednje n–terice besed (npr dvojice ali trojice) kot fraze. V takem primeru ima fraza večjo možnost, da se pravilno poravna, saj ima večji kontekst. Če želimo na tak način dobiti indeks začetkov za vsako besedo, glede na poravnavo, je začetek prve besede določen z začetkom poravnave, začetki ostalih besed v frazi pa so določeni z interpolacijo:

idx0wi =

idxwi

|W| |W0|

Kjer idxwi predstavlja indeks začetka i–te besede v frazi, |W| dolžino fraze,

|W0| pa dolžino poravnave.

Čeprav na tak način izboljšamo robustnost algoritma, pa po nepotrebnem poslabšamo kvaliteto poravnave za besede, ki so prej imele dobro poravnavo.

Zato je smiselno besede združevati le tam, kjer je to potrebno. To dosežemo, če po osnovni poravnavi vsako neporavnano frazo družimo z naslednjo sosednjo frazo (v primeru zadnje fraze, pa jo združimo s prejšnjo frazo). Po združitvi fraz, osnovni algoritem poženemo še enkrat. To ponavljamo, dokler niso vse fraze poravnave, nato pa v primeru večbesednih fraz z interpolacijo pridobimo čas začetka za vsako besedo v frazi.

(37)

Poglavje 4

Implementacija

Celoten sistem je implementiran v programskem jeziku Python. Kar ni del lastne implementacije, je vključeno v projekt preko python knjižnic, ali pa je uporabljena druga prostodostopna koda. Projekt je prostodostopen na portalu Github: https://github.com/MarkZakelj/text_to_audio_alignment

4.1 Segmentacija posnetka

Segmentacija je osnovana na Googlovem WebRTC–VAD algoritmu [2], ki je hiter, robusten in v praksi pogosto uporabljen. S tem algoritmom lahko kla- sificiramo okvir kot govor ali kot šum. Algoritem robustne segmentacije pa je vzet iz izvorne kode DSAlign [24]. WebRTC–vad ima nastavljiv parame- ter aggresiveness, ki lahko zasede vrednosti [0, 1, 2, 3]. Pri manjših vrednostih je bolj verjetno, da bo okvir pozitivno (kot govor) klasificiran, če sledi pozitivno klasificiranim okvirjem. Parameter smo nastavili na vrednost 2; aggresiveness = 2. Za robustno segmentacijo smo nastavili parametre num_padding_frames = 8 in threshold = 0.5, dolžino okvirja pa na 20ms.

Pri taki nastavitvi parametrov smo dobili dovolj kratke segmente, da proces dekodiranja CTC ni trajal predolgo.

4.2 Razpoznavanje govora

Razpoznavanje govora je implementirano v dveh delih:

1. Uporaba akustičnega modela za pridobitev verjetnosti posameznih zna- kov za vsak okvir.

(38)

28 Poglavje 4: Implementacija

2. Dekodiranje izhoda modela za pridobitev končne transkripcije.

4.2.1 Učni podatki

Podatki za učenje akustičnega modela so bili podani v obliki krajših posnetkov in pripadajočih transkripcij slovenskega govora. Pridobljeni so bili iz različnih virov: Gos [26], Gos VideoLectures [25], CommonVoice [1], SiTEDx [27], Sofes [6], narečni govor s portala narecja.si.

4.2.2 Akustični model

Akustični model je implementiran z Nvidia–NeMo modelom namenjenim raz- poznavanju govora, natančneje QuartzNet_BxR [13].

Motivacija za uporavo ravno te arhitekture je majhno število parametrov (18,9 milijona za Quartznet_15x5) in kljub temu dobra natančnost, primerljiva z ve- čjimi modeli, ki imajo tudi več kot 100 milijonov parametrov.

Modeli QuartzNet_BxR imajo naslednjo strukturo (vidno na sliki 4.1): zač- nejo se s konvolucijsko plastjoC1, kateri sledi zaporedje blokov dolžineB. Med vsakim blokom je še preskočna povezava. Vsak blok Bi vsebuje isti osnovni modul ponovljen R–krat. Ta modul je sestavljen iz štirih plasti:

1. globinska konvolucija, 2. točkovna konvolucija, 3. normalizacija,

4. ReLU.

Zadnji del modela vsebuje še tri dodatne konvolucijske plasti (C2, C3, C4).

V nalogi sta bila uporabljena dva modela:

• QuartzNet_15x5, treniran zgolj na slovenskih podatkih,

• QuartzNet_15x5, treniran na angleških podatkih, nato pa dodatno tre- niran še na slovenskih podatkih. S tem modelom smo preverili kvaliteto prenosa znanja iz tujega jezika v slovenščino.

Za vhod v model smo uporabili mel spektrogram z 20ms okvirji, za izhodno abecedo je bila uporabljena angleška abeceda z dodatkom slovenskih šumnikov, presledka in praznega znaka (skupaj 31 znakov). Izhod modela je torej matrika velikosti31ךtevilo_okvirjev, ki se uporabi za nadaljno dekodiranje.

(39)

4.2 Razpoznavanje govora 29

Slika 4.1: Shema arhitekture QuartzNet_BxR modela. Vir: [13]

4.2.3 Dekodiranje CTC

Večino kode za dekodiranje CTC je vzete iz prostodostopnega repozitorija [21]. Implementirali smo vzporedno računanje čez segmente posnetka, kar je bistveno pohitrilo proces dekodiranja. Primerjali smo tri različne metode dekodiranja:

• Požrešna metoda največjih verjetnosti (greedy). Za vsak časovni korak v CTC izberemo najbolj verjeten znak, nato združimo sosednje ponovitve ter odstranimo .

(40)

30 Poglavje 4: Implementacija

• Iskanje v snopu z znakovnim jezikovnim modelom (char).

V primeru iskanja v snopu z jezikovnim modelom je potrebno nastaviti še utež modela α in utež dolžine predpone v snopu β. Obe vrednosti smo poiskali z iskanjem po mreži (grid search) za vrednosti α ∈ [0,0.1,0.2,0.3,0.4,0.5] in β ∈ [−0.4,−0.3,−0.2,−0.1,0,0.1,0.2,0.3,0.4] v primeru besednega jezikov- nega modela in vrednosti α∈[0,0.02,0.04,0.06,0.08,0.1]in

β ∈ [−0.08,−0.06,−0.04,−0.02,0.0,0.02,0.04,0.06,0.08,0.1] v primeru zna- kovnega jezikovnega modela. Vrednosti v mrežah smo določili na podlagi pred- hodnega iskanja po večji in redkejši mreži. Parametra smo določili tako, da mi- nimizirata napako poravnave na testni množici. Končne vrednosti smo nasta- vili naα= 0.1, β =−0.1pri besednem modelu inα = 0.04, β= 0.08pri zna- kovnem modelu. Pri iskanju po mreži smo uporabili širino snopa beam_width

= 50, za končno primerjavo pabeam_width = 300. Pri teh dveh vrednostih ni velike razlike v rezultatu, vendar pri manjši vrednosti algoritem hitreje deluje, kar je bistveno za iskanje po mreži.

4.2.4 Jezikovni model

Za jezikovni model je bila uporabljena N–gram arhitektura, specifično jezikovni model KenLM [10], ki omogoča hitro grajenje, glajenje ter uporabo modelov.

Ker se model uporablja zgolj med dekodiranjem CTC za posamezen primer, se za grajenje uporabi originalno besedilo posameznega primera. Tako dobimo model, ki ni posplošen za slovenski jezik, temveč na posamezen primer, kar je tudi naš cilj. Preden se besedilo uporabi, je potrebna predobdelava: odstraniti je treba vse znake, ki niso del končnih znakov (končni znaki so črke slovenske in angleške abecede ter presledek), hkrati pa je potrebno vse črke spremeniti v male. V primeru modela na nivoju znakov, je potrebno besedilo še dodatno spremeniti: vse presledke je potrebno zamenjati s pomišljajem (-), nato pa med vsak sosednji par znakov vriniti presledek. Tako jezikovni model prepozna vsak znak kot samostojno besedo, tudi presledek. Red jezikovnega modela ne vpliva bistveno na rezultat. Parameter smo nastavili naarpa_order = 4, ki da rahlo boljši rezultat, kot manjše vrednosti.

4.2.5 Končni avtomat

Končni avtomat se v nalogi uporabljaj zgolj pri iskanju v snopu z besednim jezikovnim modelom. Implementiran je s pomočjo knjižnice OpenFst, ki se uporablja za grajenje, optimizacijo in iskanje pouteženih končnih pretvornikih. Končni avtomat lahko implementiramo kot končni pretvornik, ki ima na vsaki

(41)

4.3 Poravnava 31

povezavi isti vhodni in izhodni znak ter utež 0. Originalno besedilo je treba pripraviti na enak način, kot pri jezikovnem modelu. Nato se izlušči posamezne besede, ki se jim na konec doda še presledek. Avtomat se zgradi tako, da prepozna natanko besede z dodanim presledkom.

4.3 Poravnava

Večino kode za poravnavo je vzete iz prostodostopnega repozitorija DSAlign [24]. V osnovi ta koda predvideva poravnavo besed (ali fraz) iz dobljene tran- skripcije na originalno besedilo. V nalogi pa je vloga ravno obratna, saj besede iz originalnega besedila poravnamo na dobljeno transkripcijo. Najprej tvorimo seznam besed originalnega besedila, nato z osnovnim algoritmomAlignprido- bimo njihove poravnave glede na transkripcijo pridobljeno z razpoznavalnikom govora. Z uporabo osnovnega algoritma ne zagotovimo poravnavo vseh besed iz originalnega besedila. Krajše besede nimajo nujno dovolj konteksta ali pa so slabo transkribirane. Da zagotovimo poravnavo za vsako besedo, smo razvili algoritem iterativnega združevanja besed.

Glavna ideja algoritma je naslednja: besede iz začetnega seznama, ki niso poravnane, združimo s sosednjo besedo v seznamu (ločimo jih s presledkom in tvorimo enoten niz znakov). Osnovni algoritem ponovno poženemo, tokrat z modificiranim seznamom besed. Ta dva koraka ponavljamo, dokler niso vse besede (oziroma skupki besed) poravnane. Da združimo vedno samo dve so- sednji besedi naenkrat, tvorimo množico indeksov neporavnanih besed. Nato iteriramo čez vse indekse od manjšega proti največjemu. V primeru, da je in- deks element množice indeksov neporavnanih besed, označimo trenutni indeks in naslednji indeks kot par zružitve. Če je trenutni indeks zadnji, označimo prejšnji indeks in trenutni indeks kot par zružitve. Nato vsak indeks v paru odstranimo iz množice indeksov neporavnanih besed (če je element množice, sicer ne). Algoritem je natančneje opisan s psevdokodo 1.

Na tak način dobimo poravnano besed oziroma skupkov besed. Da do- ločimo poravnano za vsako besedo, interpoliramo indekse začetkov besed na poravnan del transkripcije: če je i indeks začetka besede znotraj skupka, je

(42)

32 Poglavje 4: Implementacija

Algoritem 1Algoritem iterativnega združevanja besed

1: procedure merge_align(original_text,asr_transcription)

2: n_dropped1 . wordifromoriginal_text

3: origin_fragments[(word0,0),(word1,1), ...,(wordN, N)]

4: whilen_dropped>0do

5: n_fragmentslength of:origin_fragments 6: if n_fragments == 1then

7: returnLinearInterpolation(original_text,asr_transcription) 8: end if

9: alignmentalign(origin_f ragments, asr_transcription) 10: non_matched_idsset of ids for non - aligned phrases 11: n_droppedsize ofnon_matched_ids

12: if n_dropped>0 then 13: merges[]

14: fori=0; i < n_fragments; i=i+1do

15: if i not in non_matched_idsthencontinue

16: end if

17: if i==n_fragments - 1then

18: targeti1

19: else

20: targeti+ 1

21: end if

22: merges.append(SORTED([i, target])) 23: non_matched_ids.remove_element(i) 24: non_matched_ids.remove_element(target)

25: end for

26: fragments_to_mergedictionary[e[1]:e[0] for e in origin_fragments]

27: for(i, i_next) in mergesdo

28: text_ifragments_to_merge.get_value_at_key(i)

29: text_i_nextfragments_to_merge.get_value_at_key(i_next) 30: fragments_to_merge.remove_key(i)

31: merged_texttext_i + ’ ’ + text_i_next

32: fragments_to_merge.set_key_value(i_next, merged_text)

33: end for

34: origin_fragments[(value, key) for (key, value) in

SORTED_BY_KEY(fragments_to_merge.key_value_pairs())]

35: end if 36: end while

37: returnalignment 38: end procedure

(43)

Poglavje 5

Rezultati in evalvacija

Rezultate pridobimo z uporabo sistema na testni množici in primerjavo prido- bljenih poravnav s pravilnimi poravnavami. Za ocenitev kvalitete poravnave uporabljamo tri parametre: povprečje (MAE) in standardni odklon (STD) absolutnih napak začetkov besed ter delež absolutnih napak manjših od 0.5 sekunde (<0.5s).

5.1 Testna množica

Testno množico sestavlja 26 primerov: 7 primerov nenarečnega govora, 13 pri- merov narečnega in 6 primerov narečnega enoglasnega petja brez spremljave.

Najkrajši posnetek je dolg 21 sekund, najdaljši 219, povprečna dolžina posnet- kov je 89 sekund. Primeri so pridobljeni iz naslednjih virov: Slovenske ljudske tip posnetka skupno število besed skupna dolžina posnetkov v minutah

narečni govor 2428 18.7

nenarečni govor 1394 11.0

narečno petje 508 8.7

skupaj 4330 38.4

Tabela 5.1: Podatki o testni množici pesmi [11], portalnarecja.si, GNI ZRC SAZU.

Pravilne poravnave so bile narejene ročno z orodjem Praat.

(44)

34 Poglavje 5: Rezultati in evalvacija

5.2 Primerjava modelov in metod dekodiranja

Primerjali smo osnovni model (base), ki je grajen zgolj na slovenskih podatkih, ter model, ki je grajen na angleških podatkih nato pa še dodatno na slovenskih (transfer). Ob tem smo primerjali vse tri metode dekodiranja: požrešna me- toda (greedy), iskanje v snopu z jezikovnim modelom na nivoju znakov (char), iskanje v snopu z jezikovnim modelom na nivoju besed (word). Primerjavo smo opravili za vsak tip testnih podatkov posebej.

tip testnih podatkov metoda model MAE STD < 0.5s

Nenarečni govor

greedy base 0.20 0.13 99.1%

transfer 0.14 0.15 98.5%

char base 0.21 0.09 99.0%

transfer 0.14 0.10 98.9%

word base 0.19 0.10 98.6%

transfer 0.12 0.11 99.4%

Narečni govor

greedy base 0.22 0.39 94.9%

transfer 0.15 0.27 97.7%

char base 0.21 0.32 95.7%

transfer 0.15 0.28 97.1%

word base 0.18 0.28 97.2%

transfer 0.14 0.24 97.3%

Narečno petje

greedy base 0.59 0.82 70.2%

transfer 1.28 2.49 63.9%

char base 0.82 1.66 66.7%

transfer 0.44 0.41 73.4%

word base 0.48 0.58 73.4%

transfer 0.37 0.30 79.9%

Tabela 5.2: Primerjava metod in modelov za različne tipe testnih podatkov.

(45)

5.2 Primerjava modelov in metod dekodiranja 35

5.2.1 Nenarečni govor

Iz tabele (5.2) je razvidno, da ne glede na metodo, uporaba modela trans- fer prinese manjšo povprečno napako. Razlika je sicer majhna (0.06 do 0.07 sekunde), vendar je približno enaka za različne metode. Pri uporabi požre- šne metode ima transfer sicer večji standardni odklon in manjši delež napak pod 0.5s, vendar je razlika minimalna. Različne metode dajejo zelo podobne rezultate za isti model.

Kombinacija modela transfer in metode word da najboljši rezultat s pov- prečno napako0.12s, standardnim odkonom0.10s in99.4%deležem napak pod 0.5s.

5.2.2 Narečni govor

Iz tabele (5.2) je razvidno, da ne glede na metodo, uporaba modela transfer prinese boljši rezultat. Razlika v povprečnih napakah je majhna (0.04 do 0.09 sekunde), vendar je med modeloma opazna razlika tudi v standardnem odklonu in deležu napak manjših od 0.5s.

Z uporabo modelatransfer so rezultati za različne metode zelo podobni, pri čemer se metodaword izkaže za najbolj robustno, saj ima najmanšo napako in standardni odklon pri obeh modelih. Pri modelu transfer ima metodagreedy sicer nekoliko večji delež napak pod 0.5s, vendar je razlika majhna (0.4%).

Kombinacija modela transfer in metode word da najboljši rezultat s pov- prečno napako0.14s, standardnim odkonom0.24s in97.3%deležem napak pod 0.5s.

V primerjavi z najboljšim rezultatom nenarečnega govora, se povprečna napaka poveča za 0.02s, standardna deviacija za 0.13s in delež napak pod 0.5s se zmanjša za 2.1%. Razlika ni velika in je približno podobna za ostale kombinacije metod in modelov.

5.2.3 Narečno petje

Iz tabele (5.2) je razvidno, da pri metodahword inchar, modeltransfer deluje bolje. Z metodochar je povprečna napaka prepolovljena, standardni odklon je štirikrat manjši, delež napak pod 0.5s se izboljša za 6.7%. Z metodo transfer je povprečna napaka za 0.11s manjša, standardni odklon za 0.28s, delež napake pod 0.5s se izboljša za 6.5%. Pri metodi greedy je boljši model base, kar je edini tak primer v rezultatih.

(46)

36 Poglavje 5: Rezultati in evalvacija

Kombinacija modela transfer in metode word da najboljši rezultat s pov- prečno napako0.37s, standardnim odkonom0.30s in79.9%deležem napak pod 0.5s.

V primerjavi z najboljšim rezultatom nenarečnega govora, se povprečna absolutna napaka poveča za 0.25s, standardna deviacija za 0.19s in delež napak pod 0.5s se zmanjša za 19.5%. Razlika je velika in je vidna tudi pri ostalih kombinacijah metod in modelov. Povprečna absolutna napaka se poveča za faktor vsaj 2.5, standardni odklon za faktor vsaj 2.7 in delež napak pod 0.5s se zmanjša za vsaj 19.5%.

5.3 Sklepne ugotovitve

5.3.1 Kvaliteta poravnave govora

Kvaliteta poravnav na nenarečnem govoru se izkaže za dobro in je primerljiva s podobno delujočim sistemom [14]. Opazimo dobro kvaliteto poravnav na narečnem govoru. Napaka je nekoliko večja, kot pri nenarečnem govoru, kar je pričakovano, saj je večina učnih podatkov za akustični model nenarečnih.

V splošnem ocenjujemo, da sistem dobro deluje na slovenskem govoru in je zato uporaben za večino aplikacij. Vredno je omeniti, da v primeru kratkih posnetkov in popolnih transkripcij, za učenje akustičnih modelov obstajajo potencialno boljše tehnike poravnave [4].

5.3.2 Kvaliteta poravnave petja

Kvaliteta poravnav na enoglasnem petju brez spremljave je v primerjavi z govo- rom opazno slabša, kar smo tudi pričakovali, saj je v splošnem poravnava petja in besedila težji problem. V primerjavi z nenarečnim govorom je povprečna napaka približno trikrat večja in veliko več je napak večjih od pol sekunde.

Povprečna napaka je sicer primerljiva s podobno delujočim sistemom za po- ravnavo petja [23], vendar naši testni podatki ne vključujejo večglasnega petja ali petja s spremljavo, zato ta primerjava ne pove veliko. Domnevamo, da bi se kvaliteta poravnav bistveno izboljšala, če bi učna množica akustičnega modela vsebovala petje.

5.3.3 Primerjava akustičnih modelov

V veliki večini primerov se modeltransfer izkaže bolje od modela base. Edini obraten primer je v primeru petja in metode greedy, kjer model base doseže

(47)

5.3 Sklepne ugotovitve 37

boljši rezultat. Ker ta kombinacija metode in modela ne da najboljšega re- zultata v primeru petja, ni bistvena za oceno kakovosti modela. Na podlagi rezultatov potrjujemo domnevo, da model transfer pozitivno vpliva na kvali- teto poravnave tako pri govoru, kot pri petju.

5.3.4 Primerjava metod dekodiranja

Čeprav je v primeru govora najboljša metoda word, ostali dve metodi nimata bistveno večjih napak. V primeru nenarečnega govora z modelom transfer je povprečna napaka z metodo word manjša za 0.02s, v primeru narečnega go- vora pa za 0.01s. V aplikacijah, ko natančna poravnava govora ni ključna, je pa pomemben čas računanja, se favorizira metoda greedy. Ta metoda namreč ne zahteva iskanja v snopu ter uporabe jezikovnega modela in je zato bistveno hi- trejša. V primeru petja metodagreedy da bistveno slabše rezultate od metode word, zato v okviru našega sistema ni primerna za poravnavo petja.

(48)

38 Poglavje 5: Rezultati in evalvacija

Reference

POVEZANI DOKUMENTI

Uporaba računalnika Raspberry Pi se nadaljuje še v višješolskem izobraževanju, saj veliko različnih univerz na različne načine vključuje uporabo raču nalnika

Razstavo bosta otvorila vodja galerije Andrej Brumen Čop, doc. in mentor Mirko

Vetrna energija, vetrne elektrarne, učni načrt, induktivne metode, raziskovalno učenje, izdelava vetrnice... Introducing topisc on wind energy

Predstavljen je okviren načrt za samoizgradnjo preprostega oddaljenega laboratorija s cenovno dostopno opremo, ki preko kratkih sporočil (SMS) uporabnika obvešča

V tem podpoglavju bomo pregledali vsa dosedanja preverjanja, objavljena na spletni strani državnega izpitnega centra. Naloga je I taksonomske stopnje po Bloomu,

V teoretičnih izhodiščih smo se osredotočili na uporabo lutk pri predšolski vzgoji. Podrobneje smo obravnavali uporabo lutk v različnih starostnih obdobjih, izpostavili

Hrapavost površine lahko pridobivamo tudi s kemijskimi postopki s tehniko akvatinte in uporabo različnih struktur odtisnjenih v mehko prevleko (vernis-mou), vendar se je pri delu

Zoran Sušić, Mehmed Batilović, Toša Ninkov, Ivan Aleksić, Vladimir Bulatović | IDENTIFIKACIJA PREMIKOV Z UPORABO RAZLIČNIH GEODETSKIH METOD DEFORMACIJSKE ANALIZE | IDENTIFICATION