47
Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova ulica 17 2000 Maribor, Slovenija Simon Furman GOVORNE TEHNOLOGIJE V RAČUNALNIŠKIH IGRAH Diplomsko delo Maribor, september 2014

Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

Fakulteta za elektrotehniko,

računalništvo in informatiko

Smetanova ulica 17

2000 Maribor, Slovenija

Simon Furman

GOVORNE TEHNOLOGIJE V

RAČUNALNIŠKIH IGRAH

Diplomsko delo

Maribor, september 2014

Page 2: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

I

Diplomsko delo visokošolskega strokovnega študijskega programa

GOVORNE TEHNOLOGIJE V RAČUNALNIŠKIH IGRAH

Študent: Simon Furman

Študijski program: Visokošolski strokovni

Računalništvo in informacijske tehnologije

Mentor: doc. dr. David Podgorelec, univ. dipl. inž. rač. in inf.

Maribor, september 2014

Page 3: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

II

Page 4: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

III

Page 5: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

IV

ZAHVALA

Za vso strokovno pomoč in vodenje pri opravljanju

diplomske naloge se zahvaljujem mentorju doc. dr.

Davidu Podgorelcu.

Iskrena zahvala tudi punci Rebeki za vso pomoč,

podporo in nasvete tekom študijskih let. Hvala, ker si mi

ves čas stala ob strani.

Posebej bi se rad zahvalil svojim staršem, ki so mi

omogočili študij in mi stali ob strani ter me z veliko mero

razumevanja spodbujali na študijski poti.

Page 6: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

V

GOVORNE TEHNOLOHIJE V RAČUNALNIŠKIH IGRAH

Ključne besede: razpoznavanje govora, računalniško generiranje govora, identifikacija

govorca, uporabniški vmesnik, računalniška igra, XNA

UDK: 004.934(043.2)

Povzetek

V diplomskem delu opisujemo načine za razpoznavanje govora, računalniško generiranje

govora in identifikacijo govorca ter ogrodje za izdelavo računalniške igre. Na podlagi teh

znanj smo razvili 3D računalniško igro, ki jo lahko med igranjem upravljamo preko

tipkovnice ali govora. Gre za namizno aplikacijo, ki je namenjena uporabnikom

operacijskega sistema Windows. Napisana je v programskem jeziku C# in v ogrodju XNA,

ki omogoča razvoj in upravljanje iger.

Page 7: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

VI

SPEECH TECHNOLOGIES IN COMPUTER GAMES

Key words: speech recognition, computer generated speech, speaker identification, user

interface, computer game, XNA

UDK: 004.934(043.2)

Abstract

In this diploma work, we describe modes of speech recognition, computer generated

speech and speaker identification. We also present a framework for the implementation of

a computer game. On the basis of these knowledges, we have develop a 3D computer

game, which can be managed through the keyboard or speech during the play. Our game is

desktop application, intended for users of the Windows operating systems. The game is

written in the C# programming language and in the XNA framework, which enables game

development and management.

Page 8: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

VII

KAZALO VSEBINE

1 UVOD ............................................................................................................................ 1

2 GOVORNE TEHNOLOGIJE ....................................................................................... 3

2.1 Razpoznavanje govora ............................................................................................ 4

2.1.1 Klasifikacija modelov razpoznavanja .............................................................. 4

2.1.2 Algoritmi razpoznavanja govora ..................................................................... 5

2.2 Računalniško generiranje govora ............................................................................ 6

2.3 Identifikacija govorca ............................................................................................. 9

3 OBSTOJEČE TEHNOLOŠKE REŠITVE ZA PODPORO GOVORNIH

TEHNOLOGIJ .................................................................................................................... 10

3.1 Razpoznavanje govora .......................................................................................... 10

3.2 Računalniško generiranje govora .......................................................................... 11

3.3 Identifikacija govorca ........................................................................................... 12

4 ZASNOVA IN IMPLEMENTACIJA RAČUNALNIŠKE IGRE, KRMILJENE Z

GOVOROM ........................................................................................................................ 13

4.1 Primeri obstoječih iger z govornim uporabniškim vmesnikom ............................ 13

4.2 Pravila in potek igre, ki jo bomo realizirali .......................................................... 14

4.2.1 Pravila igre ..................................................................................................... 14

4.2.2 Potek igre ....................................................................................................... 15

4.3 Uporabniški vmesnik ............................................................................................ 16

4.4 Razpoznavanje govora .......................................................................................... 20

4.5 Generiranje govora ............................................................................................... 21

4.6 Virtualna 3D scena ................................................................................................ 21

5 ANALIZA REŠITVE .................................................................................................. 26

5.1 Primer poteka igre ................................................................................................. 26

5.1.1 Primer 1: Karta s številko 6 ........................................................................... 26

5.1.2 Primer 2: Karta s številko 3 ........................................................................... 26

5.1.3 Primer 3: Karta s podobo kralja ..................................................................... 26

5.1.4 Primer 4: Karta s podobo kraljice .................................................................. 27

5.1.5 Primer 5: Karta s številko 10 ......................................................................... 27

5.1.6 Primer 6: Karta s številko 7 ........................................................................... 27

5.1.7 Primer 7: Karta s številko 9 ........................................................................... 28

Page 9: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

VIII

5.1.8 Primer 8: Karta As ......................................................................................... 28

5.2 Težave in prihodnje delo ....................................................................................... 28

6 ZAKLJUČEK .............................................................................................................. 30

7 LITERATURA ............................................................................................................ 31

Page 10: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

IX

KAZALO SLIK

Slika 4.1: Začetna stran aplikacije ....................................................................................... 16

Slika 4.2: Dodajanje imen želenemu igralcu ter dodajanje poti do mape z glasbo ............. 16

Slika 4.3: Izgled igre ob pričetku igranja ............................................................................ 17

Slika 4.4: Prosti pogled ........................................................................................................ 19

Slika 4.5: Prosti pogled z druge strani prostora ................................................................... 19

Slika 4.6: Primer delovanja metode ("CreateLookAt") [30] ............................................... 22

Slika 4.7: Primer delovanja metode ("CreatePerspectiveFieldOfView") [31] .................... 23

Page 11: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

X

Uporabljene kratice

2D – Two-Dimensional; dvodimenzionalen, dvorazsežen

3D – Three-Dimensional; tridimenzionalen

SR – Speech Recognition; razpoznavanje govora

ASR – Automatic Speech Recognition; samodejno razpoznavanje govora

SST – Speech-To-Text; govor v besedilo

TTS – Text-To-Speech; besedilo v govor

SLM – Statistical Language Model; statistični model jezika

C# - See Sharp; objektno orientiran programski jezik

DTW – Dynamic Time Warping; dinamično časovno krivljenje

WAV - Waveform Audio File Format; zvočni format za zajemanje in obdelavo zvoka

WMA – Windows Media Audio File; microsoftov format za zvočno datoteko

PCM – Pulse-Code Modulation; impulzno-kodna modulacija

.txt – Text file; tekstovna datoteka

.doc – Microsoft Word document; dokument v formatu Microsoft Word

.pdf – Portable Document Format; odprt standard za izmenjavo dokumentov

.htm – Hypertext Markup Language; označevalni jezik

.rtf – Rich Text Format; datoteka z obogatenim besedilom

Page 12: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

1

1 UVOD

Napredovanju tehnologije v sodobnem času skoraj ni več mogoče slediti. Vedno več

vsakodnevnih opravil se seli na računalnike, npr. nakupovanje, prodajanje, oglaševanje,

prav tako pa tudi družabne igre. V diplomskem delu smo tako v obliki računalniške igre

implementirali med mladimi priljubljeno igro s kartami. Igro s 3D grafičnim uporabniškim

vmesnikom lahko upravljamo tudi z govorom, kar prinaša igri prednost, saj pri igranju ne

potrebujemo tipkovnice ali miške.

Predmet diplomskega dela je študija računalniškega razpoznavanja govora, s katerim bomo

upravljali aplikacijo – 3D igro s kartami. Glavni problem razpoznavanja je, da imajo

različni govorci precej različne glasove, poleg tega pa ima vsak govorec lahko poleg

svojega prepoznavnega glasu tudi karakterističen naglas, ki vpliva na trajanje izgovora

posameznih delov besede. Nekateri imajo trajno ali občasno tudi težave z govorom. V delu

se bomo dodobra seznanili s principi govorne komunikacije med uporabnikom in

računalnikom. Predvidena je tudi povratna govorna komunikacija, torej bo moral biti

program sposoben na podlagi prepoznanih besed predvajati ustrezne vnaprej posnete

zvočne datoteke.

Zanimale nas bodo morebitne odprtokodne in druge prosto dostopne implementacije

razpoznavanja. Seznanili se bomo tudi z drugimi primeri obstoječih iger, upravljanih z

govorom. Ker v teh in v podpornih knjižicah absolutno prevladuje razpoznavanje govora v

angleškem jeziku, se bomo v naši aplikaciji omejili na enostavno razpoznavanje nekaterih

angleških besed. Implementirali bomo namizno aplikacijo, kar pomeni, da bodo morali biti

med igranjem igre vsi igralci v bližini istega računalnika. Glas govorca mora biti dovolj

močan in razločen, da ga bo lahko sistem za razpoznavanje govora ob vseh šumih (glasba v

ozadju, medsebojna komunikacija drugih igralcev …) pravilno razpoznal. Za uspešen

potek igre potrebujemo mikrofon in zvočnike, predpostavljamo pa tudi, da vsi igralci

dovolj dobro in razločno izgovarjajo izbrane angleške besede.

Ob govornem uporabniškem vmesniku se bomo ukvarjali tudi s pripravo 3D modelov in

vizualizacijo 3D prostora. Pričakujemo, da bo izdelana aplikacija dejansko uporabna, saj je

v današnjem času bolj verjetno, da bo v prostoru kakšen računalnik, kakor da bomo imeli

pri sebi fizične karte.

Page 13: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

2

Diplomska naloga sestoji iz šestih poglavij. Po tem uvodnem sledi poglavje 2, kjer so

opisane različne govorne tehnologije. Nadaljevali (poglavje 3) smo s pregledom rabe teh

govornih tehnologij v obstoječih aplikacijah. V poglavju 4 smo predstavili implementacijo

računalniške igre v orodju XNA, ki omogoča razvoj in upravljanje iger. XNA temelji na

ogrodju .NET, torej smo uporabili za implementacijo programski jezik C#. S poglavjem 5

in 6, smo podali končno analizo in zaključili diplomsko delo.

Page 14: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

3

2 GOVORNE TEHNOLOGIJE

Razpoznavanje govora (angl. Speech Recognition; SR) predstavlja znotraj računalništva

prevod izgovorjenih besed v besedilo. Prav tako je znano kot samodejno razpoznavanje

govora (angl. Automatic Speech Recognition; ASR), računalniško razpoznavanje govora

(angl. Computer Speech Recognition; CSR) in razpoznavanje govora v tekst (angl. Speech-

To-Text; STT) [1].

Sistemi za razpoznavanje govora so lahko govorno neodvisni (angl. speaker independent

systems) ali govorno odvisni (angl. speaker dependent systems). Govorno odvisni sistemi

potrebujejo usposabljanje, kjer posamezni govorec bere dele besedila v sistem SR. Ti

sistemi analizirajo specifičen glas osebe in ga nato uporabijo za izpolnitev razpoznavanja

govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi

tega usposabljanja ne potrebujejo.

Zahtevki za razpoznavanje govora vključujejo glasovne uporabniške vmesnike, kot so

glasovno klicanje, preusmeritev klicev, preprost vnos podatkov (npr. vnos številke osebne

izkaznice), priprava strukturiranih dokumentov, obdelava govora v tekst (npr. pisanje e-

pošte), iskanje …

Razpoznavanje govorca (angl. speaker recognition) se nanaša na ugotovitev identitete

tistega, ki govori, in ne tega, kar govori. To se lahko uporablja za potrditev ali preverjanje

identitete govorca kot del varnostnega procesa, lahko pa tudi poenostavi naloge

razpoznavanja govora v sistemih, ki so bili usposobljeni za glasove določene osebe.

Generiranje govora se uporablja za pretvorbo govora iz teksta. Sistem (angl. Text-To-

Speech; TTS) vnaprej pripravljen tekst pretvori v računalniški govor. Tehnologija je

predvsem uporabna, kadar želimo vsebino teksta slišati namesto prebrati (branje e-pošte,

sporočil sms …).

Page 15: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

4

2.1 Razpoznavanje govora

2.1.1 Klasifikacija modelov razpoznavanja

Naloga sistema za razpoznavanje govora je ugotoviti niz besed, ki so bile govorjene.

Sistem za takšno iskanje uporablja model razpoznavanja (angl. recognition model), ki

predstavlja nize vseh besed, ki jih govorec lahko izgovori, skupaj z njihovo izgovarjavo.

Rezultat tega je najbolje ujemajoč se niz besed. Da se ustvari model razpoznavanja,

potrebujemo akustični/zvočni model (angl. acoustic model), slovar (angl. dictionary) in

slovnična pravila (angl. grammar). V nadaljevanju bomo te tri komponente podrobneje

predstavili.

Akustični model predstavlja razpoznavalnikovo interno predstavitev izgovarjave

vsakega možnega fonema ali osnovnega glasu v jeziku. Akustični modeli so znotraj

trenutnih sistemov ustvarjeni s strani procesa usposabljanja. V sistem se običajno

vnese veliko primerov govorjenih stavkov in fraz z označbami izgovorjenih besed v

nizu [2].

Slovar predstavlja seznam besed in njihove izgovarjave. Nekatere besede imajo

več kot le eno možno izgovarjavo, predvsem zaradi regionalnih naglasnih

poudarkov, stilističnih variacij, hitrosti govora in drugih različnosti [2]. Slovar

lahko torej obsega raznolike vstope za besedo, ki združuje različne izgovarjave.

Slovnična pravila predstavljajo vse, kar govorec ali klicatelj sporoči sistemu in kar

je sistemu razumljivo. Vključujejo definicije možnih nizov besed, ki jih

razpoznavalnik razpozna, skupaj s pravili združevanja pomenov s temi nizi besed.

Različna slovnična pravila so lahko aktivna v različnih časovnih intervalih tekom

pogovora. Pomembno je razlikovati med dvema tipoma slovničnih pravil. Prvi tip

so temeljna slovnična pravila (angl. rule-based grammar), ustvarjena s pisanjem

zbirke eksplicitnih pravil, ki popolnoma opredeljujejo slovnična pravila. Drugi tip

predstavlja statistični model jezika (angl. Statistical Language Model; SLM),

statistična slovnična pravila, ki so oblikovana avtomatično preko primerov [2].

Za gradnjo takšnega statističnega modela je potrebno zbrati veliko govorov s strani

klicateljev ali govorcev in narediti prepis tega, kar je bilo govorjeno (zabeležiti

točni niz govorjenih besed). Potem se vsi ti podatki shranijo v sistem, ki oblikuje

slovnična pravila z izračunom verjetnosti pojava besed v nekem kontekstu.

Page 16: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

5

Prednost statističnega modela jezika je v tem, da v splošnem omogoča večjo

fleksibilnost tega, kar je lahko izrečeno.

2.1.2 Algoritmi razpoznavanja govora

Moderni sistemi za razpoznavanje govora so v glavnem zasnovani na statistični osnovi.

Predvsem skriti model Markova [3] se danes pojavlja v veliko sistemih, medtem ko so v

preteklosti odigrali svojo vlogo tudi pristopi z dinamičnim časovnim krivljenjem [4] in z

nevronskimi mrežami [5].

Skriti model Markova

Skriti model Markova (angl. Hidden Markov Model; HMM) je statistični model Markova,

pri katerem je modelirani sistem domnevno proces Markova z neopaznimi (skritimi)

navedbami. Sodobni sistemi z namenom splošnega razpoznavanja govora pogosto

temeljijo na skritem modelu Markova. Znotraj razpoznavanja govora bi skriti model

Markova kot izhod oddal zaporedje vektorjev realnih vrednosti v n dimenzijah, ki jih

sistem zajema vsakih 10 milisekund. Na koncu bi vsaka beseda ali vsak fonem imel

drugačno izhodno distribucijo. Skriti model Markova za zaporedje besed ali fonemov je

narejen s povezovanjem individualnih usposobljenih skritih modelov Markova za

ločevanje besed in fonemov.

Pristop z dinamičnim časovnim krivljenjem

Dinamično časovno krivljenje (angl. Dynamic Time Warping; DTW) je pristop, ki je bil v

preteklosti uporabljen za razpoznavanje govora, vendar ga je sedaj v veliki meri izpodrinil

pristop s skritim modelom Markova. DTW je algoritem za merjenje podobnosti med

dvema zaporedjema, ki se lahko razlikujeta v času in hitrosti. Na splošno velja, da je to

metoda, ki v računalništvu omogoča najti optimalno ujemanje dveh navedenih sekvenc

(npr. časovne serije) z nekaterimi omejitvami.

Nevronske mreže

Nevronske mreže (angl. neural networks) so se pojavile kot privlačen pristop akustičnega

modeliranja v poznih 1980-ih. Od takrat se nevronske mreže uporabljajo v številnih vidikih

razpoznavanja govora, kot so klasifikacija (angl. phoneme classification), razpoznavanje

Page 17: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

6

izoliranih besed (angl. isolated word recognition) in prilagoditev govorca (angl. speaker

adaptation).

Časovno-frekvenčne predstavitve govornih signalov

Pri prikazu časovno-frekvenčne predstavitve govornega signala (angl. time-frequency

representations of speech signals) pravzaprav rišemo graf funkcije časa in frekvence. Slika

oz. graf takšne predstavitve nam tako podaja informacijo o spremembah in velikosti

porazdelitve energije (odseka) signala v časovno-frekvenčnem prostoru. Na podlagi te

informacije lahko sklepamo o lastnostih obravnavanega signala.

Govorni signal je zelo težaven za časovno-frekvenčno analizo. Vsebuje tako izrazite

nestacionarnosti in kratke, hipne spremembe, kot tudi daljše stacionarne dele (npr. vokali).

Zaradi tega predstavlja velik izziv časovno-frekvenčnim predstavitvam [6].

2.2 Računalniško generiranje govora

Sinteza govora (angl. speech synthesis) je umetna produkcija človeškega govora.

Računalniški sistem za sintezo govora se krajše imenuje sintetizator govora in je lahko

implementiran v programski ali strojni opremi. Sistem za transformacijo teksta v govor

pretvarja vnaprej pripravljen tekst v govor [7]. V nadaljevanju bomo opisali postopek

delovanja pretvorbe besedila v govor.

Sistem TTS pretvarja besedilo v format impulzno-kodne modulacije PCM (angl. pulse-

code modulation) [8], ki je standardna oblika digitalnega zvoka v računalnikih, na

zgoščenkah, v digitalni telefoniji in drugih digitalnih avdio aplikacijah. Koraki TTS so:

Normalizacija besedila (angl. text normalization),

razločitev homografov (angl. homograph disambiguation),

izgovarjava besed (angl. word pronunciation),

prozodija (angl. prosody) in

združevanje segmentov valov (angl. concatenate wave segments) [9].

Page 18: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

7

Normalizacija besedila

Normalizacija besedila je tisti del programa TTS, ki pretvori vsako vhodno besedilo v

serijo govorjenih besed. Na osnovni ravni normalizacija besedila pretvori niz, kot je »Moje

ime je Ritesh«, v serijo besed »Moje«, »ime«, »je« in Ritesh« skupaj z označevalcem, ki

kaže, da je prišlo do nekega »obdobja«, kot je pika ali vejica [9]. Zaplete se lahko, ko pride

normalizator besedila do vezav, kot so: »Marko Novak je vozil 55.5 kmh«, kjer pika ne

predstavlja konca stavka, ampak je niz pretvorjen v »petinpetdeset cela pet kilometrov na

uro«.

Proces normalizacije besedila poteka tako, da najprej normalizotor besedila izolira besede

v besedilu, nato pa normalizacija besedila poišče števila, datume, čase in druge

predstavitvene simbole. Simboli se pretvorijo v besede (primer je bil predstavljen za

kilometre na uro). Naslednje so razne okrajšave, kot so »cm« za merske enote, »ul« za

ulice itd. Normalizacija besedila lahko opravlja tudi druge besedilne transformacije, kot so

internetni naslovi, npr. »www.google.si« je običajno govorjen kot »w w w dot google dot

si«.

Razločitev homografov

Problem v tujih jezikih je ta, da imajo ogromno besed, ki imajo isti tekst, vendar različno

izgovarjavo. V slovenščini je skupna beseda »klop«, ki se lahko izgovori kot »klòp«

(majhen zajedavec na koži človeka) ali »klóp« (podolgovata lesena, kamnita s podstavki za

sedenje) . V angleščini je takšna beseda npr. »read«, ki je lahko izgovorjena kot »ri:d« ali

»red«, odvisno od pomena uporabljene besede.

Zanimivo je, kako računalnik zazna, kako izgovoriti »read«, torej ali kot »ri:d« ali »red«.

Eden od načinov je z ugotavljanjem, o čem tekst dejansko govori. Na podlagi konteksta se

nato odloči, kateri pomen je primernejši. Ko so homografi (so besede, ki so isto napisane

vendar imajo različen pomen) razčlenjeni, so besede poslane v naslednjo fazo izgovarjave.

Izgovarjava besed

Da pri procesu TTS dobimo izgovarjavo besed, se najprej pogleda v bazo, imenovano

leksikon izgovarjave. Če besede ni v leksikonu, potem se ves sistem povrne v sistem pravil

»črka v zvok«. Pri teh pravilih gre za izgovarjavo besede iz besedila in predstavljajo

inverzijo govornih pravil, ki smo se jih učili v šoli. Obstaja vrsta tehnik za ugotavljanje

izgovarjave, ampak algoritem, ki ga povzemamo tukaj, je eden najenostavnejših za

Page 19: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

8

izvajanje. Ta algoritem je uporabljen za razčlenitev besede in ugotovitev, katero črko

izgovoriti s katerim zvokom [9].

Problem nastane pri izgovarjavi imen, ker le-ta ne izhajajo iz angleščine in imajo različna

pravila za izgovarjavo. Nekatera pravila »črka v zvok« (angl. letter-to-sound) najprej

ugotovijo, iz katerega jezika izhaja beseda, in potem uporabljajo različne vrste pravil

izgovarjave v drugih jezikih. Ko so izgovarjave ustvarjene, se prenesejo v proces

prozodije.

Prozodija

Po tem, ko imamo izgovarjavo besed, je potrebno urediti še govor v tonu, hitrosti glasu in

druge faktorje, ki so vključeni v govor. Za vse to poskrbi prozodija, ki je predstavljena kot

kvaliteta zvoka, hitrost in glasnost, s katerimi so zlogi, besede, fraze in stavki izgovorjeni.

Brez prozodije je besedilo, pretvorjeno v govor, slišano zelo robotsko.

Znotraj prozodije imamo nekaj splošnih tehnik. Sistem zazna začetek in konec stavkov. Pri

tem se glasnost in hitrost govora povečata, ko TTS začne s proizvajanjem govora, in se

zmanjšata pri zadnji besedi, preden se ustavi. Pavze so postavljene med stavki. Sistem prav

tako zazna meje med besednimi zvezami, le-te pa loči na samostalniške in glagolske

besedne zveze. Te bodo imele podobne karakteristike kot povedi, a bodo manj naglašene.

Algoritmi potem poskušajo določiti, katere besede v stavku so pomembne za pomen

celotnega stavka in te so poudarjene. Poudarjene besede so glasnejše, daljše in bodo imele

večje variacijo glasovnih vibracij.

Vse te informacije kvalitete, časa in glasnosti na ravni povedi, fraz in besed so združene,

da skupaj proizvedejo končni izhod. Ta izhod iz modula prozodije je samo seznam

fonemov z vsemi zgoraj navedenimi informacijami vsakega fonema posebej [9].

Združevanje segmentov valov

Celoten sistem TTS je pretvoril seznam fonemov in njihovo trajanje ter glasnost v digitalni

zvok. Metode izvedbe digitalnega zvoka se razlikujejo, vendar večina sistemov TTS

ustvarja zvok z združevanjem kratkih posnetkov fonemov. Posnetki pridejo od realne

osebe. V poenostavljeni obliki sistem prejme foneme za govor, povzame digitalni zvok iz

baze podatkov, dodela časovne spremembe in spremembe glasnosti ter vse to pošlje na

zvočno kartico.

Page 20: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

9

2.3 Identifikacija govorca

Identifikacija govorca (angl. speaker identification) predstavlja prvo fazo v sicer

obsežnejšem procesu razpoznavanja govorca, ki samodejno razpoznava, kdo govori. Pri

identifikaciji govorca gre za sistem za ugotavljanje identitete neznanega govorca [10].

Deluje tako, da posname govor govorca in ga primerja z več predlogami. Predloga je lahko

glasovni odtis (angl. voice print) ali glasovni model (angl. voice model). Rezultat

predstavlja vsako ujemanje, ki zadosti vnaprej postavljenim kriterijem. Ta sistem je

predvsem uporaben v npr. forenzičnih aplikacijah, kjer želimo s postopkom identifikacije

dobiti seznam najboljših ujemanj in nato s postopkom preverjanja govorca poiskati

prepričljivo ujemanje.

Preverjanje ali verifikacija govorca (angl. speaker verification) je druga faza procesa

razpoznavanja govorca in ugotavlja dejansko identiteto govorca [10]. Sistem deluje tako,

da primerja v kakšnem odstotku se glas govorca ujema s predlogo. V primeru, da je ta

odstotek višji od podanega praga (angl. threshold), se identiteta potrdi. Visok prag

preprečuje sprejetje vsiljivcev (angl. impostors), vendar je tudi večja možnost, da zavrne

veljavnega uporabnika. V nasprotnem primeru tvegamo sprejemanje vsiljivcev in

povečamo sprejetje veljavnih uporabnikov.

Razlika med identifikacijo in preverjanjem govorca je v številu ujemanj. Pri identifikaciji

je možnih toliko rezultatov, kolikor je predlog, medtem ko sta pri verifikaciji samo dve

možnosti – sprejetje ali zavrnitev. Za vse rezultate, ki jih potrdimo z verifikacijo,

smatramo, da predstavljajo enega in istega govorca.

Poznamo dva tipa razpoznavanje govorca, tekstovno odvisno in tekstovno neodvisno

razpoznavanje. Pri prvem ne preverjamo samo, ali je govorec prava oseba, ampak

preverjamo tudi vsebino povedanega. V bistvu gre za kombinacijo razpoznavanja govorca

in razpoznavanja govora. Tekstovno neodvisne tehnologije ne primerjajo, kaj je bilo

povedano [11].

Page 21: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

10

3 OBSTOJEČE TEHNOLOŠKE REŠITVE ZA PODPORO

GOVORNIH TEHNOLOGIJ

3.1 Razpoznavanje govora

Na spletu obstaja kar nekaj programov, ki nam omogočajo, da lahko igre ali aplikacije

upravljamo z govorom. Na voljo so tako za namizne kot tudi za spletne in mobilne

aplikacije. V nadaljevanju bomo opisali nekaj značilnih predstavnikov.

Tazti [12] – je program za razpoznavanje govora. Poenostavlja uporabo

računalnika, ker nam omogoča, da lahko s pomočjo govora upravljamo številne

funkcionalnosti, katere običajno upravljamo s tipkovnico. Uporabljamo ga lahko

za glasovno iskanje v internetnih iskalnikih, nadzor zaznamkov, računalniške igre

(navezovanje na tipko), itd.

Voice buddy [13] – lastnosti tega programa sovpadajo z lastnostmi z zgoraj

omenjenega programa, a Voice buddy dodatno omogoča še:

o funkcionalnost virtualnega inštruktorja,

o neposredni nivo prenosa (angl. instant level teleporter), itd.

e-Speaking – je enostaven program, ki nam omogoča, da lahko računalnik

upravljamo preko govora. Deluje na vseh operacijskih sistemih Windows (od

Windows XP dalje). Zelo zanimiva funkcionalnost je ta, da nam omogoča, da

lahko vsebino, ki jo želimo poslati preko e-pošte, narekujemo (ima opcijo, da nam

vsebino prebere). Dodatne prednosti in funkcionalnosti so [14]:

o brezplačen program,

o več kot 100 govornih ukazov je že vgrajenih (možnost spreminjanja,

dodajanja in odstranjevanja ukazov),

o temelji na tehnologijah.NET,

o enostavnost za uporabo, itd.

Voice Attack [15] – je program za razpoznavanje govora, ki nam omogoča

upravljanje aplikacij in iger. Dodamo lahko neomejeno število ukazov, kar nam

omogoča, da lahko imamo npr. za vsako igro svoj profil in ukaze.

Page 22: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

11

S Voice [16] – je integrirana mobilna aplikacija. Podpira samo operacijski sistem

Android. Aplikacija nam omogoča različne funkcionalnosti (odštevalnik časa,

nastavitev budilke, odpiranje aplikacij, iskanje z googlom …).

3.2 Računalniško generiranje govora

Na spletu je kar nekaj programov, ki nam omogoča računalniško generiranje govora iz

besedila. Nekateri programi nam omogočajo samo branje besedila, medtem, ko druge

omogočajo pretvorbo besedila v zvočni format datoteke ali oboje. Računalniško

generiranje govora iz besedila nam omogočajo namizne, spletne in mobilne aplikacije.

Navedimo nekaj tovrstnih aplikacij.

Natural reader [17] – je spletna aplikacija, ki nam omogoča računalniško

generiranje govora iz besedila v več različnih jezikih z različnimi osebami. Za vsak

jezik imamo vsaj po en glas moškega in ženskega spola. Prav tako nam omogoča

tudi, da si lahko nastavimo hitrost branja besedila. Aplikacija ima omejitev dolžine

besedila na 200 znakov.

Text-To-Speech.ImTranslator [18] – je prav tako spletna aplikacija, ki nam

omogoča branje besedila. Ima podporo več jezikov, nastavitev hitrosti branja

besedila in dodatne funkcionalnosti:

o kopiraj, prilepi, odreži in odstrani besedilo,

o povečava črk besedila in

o pisanje besedila preko zaslonske tipkovnice.

Text 2 Speech [19] – je kompleksna namizna aplikacija, ki nam omogoča

generiranje govora iz različnih tekstovnih datotek (.txt, .doc, .pdf, .htm in .rtf).

Poleg branja tekstovnih datotek nam omogoča, da lahko pretvorimo govor v zvočno

datoteko, ki jo lahko nato predvajamo.

Panopreter [20] – je namizna aplikacija, ki nam omogoča generiranje govora iz

besedila ter shranjevanje v datoteko v izbranem zvočnem formatu. Ima možnost

namestitve vtičnika za brskalnik Internet Explorer in aplikacijo Microsoft Office

Page 23: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

12

Word. Vtičnika lahko generirata govor iz besedila in ga predvajata ali shranita v

zvočno datoteko.

3.3 Identifikacija govorca

Za identifikacijo govorca je na spletu ogromno ponudnikov, ki nam omogočajo, da lahko

njihov program uporabljamo na različnih napravah z istimi govornimi ukazi, uporabimo

identifikacijo za uporabo različnih aplikacij, prijav v sistem, itd.

Kivox 360 – je strežnik za identifikacijo, ki ponuja najnaprednejše zmožnosti za

identifikacijo govorca. Le-to omogoča na mobilnih, spletnih in namiznih

aplikacijah. Program za razpoznavanje govorca je optimizirana tako, da z izbranim

geslom kreira edinstveni glasovni odtis, ki se ga lahko potem uporablja za

preverjanje pristnosti v vsakem kanalu (mobilna, spletna, namizna aplikacija) [21].

RecoMadeEasy – je sistem za razpoznavanje govorca, ki je sposoben delovati na

več načinov [22]:

o identifikacija govorca,

o preverjanje govorca itd.

Sistem deluje na način tekstovno neodvisnega (smo omenili v poglavju 2.3)

razpoznavanja govorca. Deluje na operacijskih sistemih Windows, Linux in Apple

Macintosh OS X.

SESTEK Vocal Passphrase – je biometrični sistem za razpoznavanje govorca in

odgovarja na varnostne potrebe institucij z zagotavljanjem visoke ravni varnostnih

ukrepov in zmanjšanjem stroškov klicnega centra. Program zagotavlja varno in

učinkovito metodo za preverjanje identitete govorca, medtem ko preverja zlorabe in

kraje identitete. Temelji na tehnologiji potrjevanja in identifikacije govorca. Ta

sistem je uporaben za klicne centre, kjer klicatelj varno dostopa do klicnih centrov

z uporabo glasovnega odtisa namesto uporabe konvencionalnih varnostnih ukrepov,

kot so kode PIN, gesla ali varnostna vprašanja [23].

Page 24: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

13

4 ZASNOVA IN IMPLEMENTACIJA RAČUNALNIŠKE IGRE,

KRMILJENE Z GOVOROM

Igra »The Game« je zabavna in enostavna igra s kartami. Vse kar potrebujemo za igro so

karte, pijača in najmanj dva igralca. Igra poteka v smeri urinega kazalca, prične jo poljubni

igralec. Pred začetkom igre se določi, koliko požirkov mora vsak igralec popiti v primeru,

da ga doleti kazen (število požirkov se lahko tekom igre spreminja, odvisno od karte). Igra

poteka tako, da igralec, ki je na vrsti, obrne karto (karte so na začetku zložene ena na drugi

s hrbtno stranjo navzgor) in prične z nalogo, ki velja za obrnjeno karto. Vsaka karta ima

svoj pomen (nalogo, ki bo kasneje podrobneje opisana). Med igro moramo ves čas skrbeti,

da imamo pijačo v kozarcu. Igra se zaključi, ko so vse karte obrnjene.

4.1 Primeri obstoječih iger z govornim uporabniškim vmesnikom

Glasovno ukazovanje se uporablja v veliko igrah. Ena izmed teh iger je »Tom Clancy's

EndWar« [24]. Sodi med strateške igre, saj se v njej med seboj bojujejo različne vojske.

Upravljamo jo lahko v celoti z govornimi ukazi, kjer lahko ukazujemo, kam se morajo

enote premakniti (»Unit 1 move to …«), kdaj morajo napasti (»Unit 1 attack«) itd. Pri sami

igri lahko branimo določeno mesto ali pa moramo osvajati točke.

Zanimiva je tudi igra »Odama« [25], ki se igra kot fliper. Naloga igralca je, da prenese

velik zvon skozi vrata nasprotnika, medtem pa strelja ogromno kroglo ter uničuje

nasprotnika. V pomoč so mu tudi vojaki, ki jih lahko upravlja s pomočjo govornih ukazov,

kot so napad (»press forward«), polnjenje (»charge«) itd.

Primeri iger, ki vsebujejo govorni uporabniški vmesnik, so tudi:

Hey You, Pikachu! [26],

Lifeline [27] in

Seaman [28].

Page 25: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

14

4.2 Pravila in potek igre, ki jo bomo realizirali

4.2.1 Pravila igre

Vsaka karta, ki jo igralec obrne, ima svoj pomen. V nadaljevanju bomo opisali pravila igre.

As – igra imenovana slap. Vsi igralci začnejo piti istočasno. Vsak igralec lahko

odloži kozarec šele, ko ga odloži njegov predhodnik. Prvi, ki lahko odloži kozarec,

je tisti, ki je vlekel karto, in za njim vsi ostali v smeri urinega kazalca. V primeru,

da katerikoli igralec predčasno izprazni kozarec, se igra takoj zaključi.

Številka 2 – poljubno razdelite dva požirka.

Številka 3 – poljubno razdelite tri požirke.

Številka 4 – igralec, ki se zadnji prime za nos, spije požirek.

Številka 5 – igralec, ki se zadnji prime za uho, spije požirek.

Številka 6 – igra imenovana »bum«. Igralec si izbere dve števili med 2 in vključno

9. Igra poteka v smeri urinega kazalca in se začne pri igralcu, ki je vlekel karto.

Štetje se prične s številko 1 in nato vsak naslednik pove naslednjo zaporedno

številko. Pri tem mora vsak igralec paziti, da namesto števila, ki ga je prvi igralec

izbral ter vsakega večkratnika tega števila, izgovori »bum«. Igralec, ki se zmoti,

spije požirek.

Številka 7 – igra imenovana »države«. Igralec, ki vleče karto, izgovori prvo črko

poljubne države in nato mu sledijo vsi v smeri urinega kazalca. Igralec, ki se zmoti

pri črkovanju države, spije požirek. V primeru, da igralec, ki je na vrsti, ne ve

naslednje črke države, lahko predhodnika vpraša, katero državo je imel v mislih. Če

mu ta pravilno odgovori, spije požirek igralec, ki je vprašal, v nasprotnem primeru

pa spije požirek predhodnik. Če pride igra do konca, prav tako spije požirek igralec,

ki zaključi celotno ime države. Države se v eni igri (52 kart) ne smejo ponavljati.

Številka 8 – igra imenovana »pojmi«. Igralec, ki vleče karto, izgovori prvo črko

poljubnega pojma in nato mu sledijo vsi v smeri urinega kazalca. Veljajo ista

pravila, kot so opisana pri številki 7 (»države«).

Številka 9 – »novo pravilo«. Igralec, ki je vlekel karto, si izmisli novo pravilo, ki

velja do naslednjega novega pravila.

Page 26: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

15

Številka 10 – karta, ki dovoljuje, da lahko igralec med igro gre na stranišče. Če gre

igralec na stranišče in nima te karte, mu lahko drugi igralci v tem času določijo

kazen.

Fant – igralec, ki se zadnji prime za čelo, spije požirek.

Kraljica – »skrito vprašanje«. Igralec, ki je vlekel karto kraljice, jo postavi na stran

s hrbtno stranjo navzgor ter si lahko v času igre izmisli vprašanje in ga zastavi

poljubnemu igralcu. Če mu ta igralec odgovori na vprašanje, spije požirek vprašani

igralec, v primeru, da mu vprašani igralec kot odgovor poda samo besedo »skrito

vprašanje«, spije požirek igralec, ki je vprašal.

Kralj – igralec, ki vleče karto kralja, jo postavi na stran s pravilno stranjo navzgor.

Za vsakega kralja mora igralec, ki je na vrsti, popiti toliko požirkov, kolikor je

kraljev obrnjenih. Tisti igralec, ki vleče zadnjega kralja, mora popiti celoten

kozarec.

V času igre ne sme noben igralec zapustiti igre brez, da bi imel karto, ki mu to dovoljuje.

Zgoraj opisana pravila veljajo za pravilo enega požirka, to pravilo se lahko spremeni pred

začetkom igre.

4.2.2 Potek igre

Igra, ki smo bomo realizirali, je enostavna za igranje. Potrebujemo računalnik z nameščeno

igro, mikrofon, zvočnike, igralce (največ šest igralcev) ter pijačo. Pred začetkom igre se

morajo igralci dogovoriti, ali velja pravilo enega požirka ob vsaki kazni ali več. Ob zagonu

igre vnesemo imena igralcev in nato lahko pričnemo z igro. Če želimo ob igranju poslušati

svojo glasbo, moramo pri postopku za vnos igralcev vnesti tudi pot do mape z glasbo.

Aplikacija naključno izbere, kateri igralec prične z igro, premeša igralne karte ter sproti

prikazuje, katera karta je bila obrnjena in kateri igralec je na vrsti. Vsak igralec, ki je na

vrsti, mora preko govora obrniti karto. V primeru, da se med igranjem posluša glasba, se ta

ob začetku razlage pravila prekine. Prav tako lahko z govorom v celoti upravljamo glasbo

(prestavimo na naslednjo ali predhodno skladbo, jo ustavimo, itd.).

Igra se konča, ko so vse karte obrnjene. Pravila, ki so bila uporabljena v prejšnji igri, v

novi igri ne veljajo več.

Page 27: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

16

4.3 Uporabniški vmesnik

Slika 4.1 prikazuje začetno stran aplikacije, kjer se besedilu navaja v angleškem jeziku

zato, ker imamo razpoznavanje govora v angleškem jeziku. Če kliknemo z miško na gumb

»New game« ali izgovorimo »new game«, nas aplikacija privede do naslednjega koraka,

kjer moramo vnesti imena igralcev ter pot do glasbe, če želimo med igranjem poslušati

glasbo preko aplikacije.

Slika 4.1: Začetna stran aplikacije

V tem delu menuja (Slika 4.2) imamo tri dodatne gumbe, ki jih lahko uporabljamo s

pomočjo miške ali govora. V primeru, da uporabimo gumb »Back«, nas aplikacija prestavi

nazaj v začetni menu. Z gumbom »Clear fields« nam aplikacija počisti vsa polja z imeni. Z

gumbom »Play« pa pričnemo z igro. Govorne ukaze, ki jih potrebujemo za upravljanje

menuja, bomo predstavili kasneje.

Slika 4.2: Dodajanje imen želenemu igralcu ter dodajanje poti do mape z glasbo

Page 28: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

17

Slika 4.3: Izgled igre ob pričetku igranja

Slika 4.3 prikazuje uporabniški vmesnik v času igranja. V desnem spodnjem kotu vidimo

ime igralca, ki prične z igro, ter hrbtno stran karte (prikazan je začetek igre, ko se ni

obrnila še nobena karta). Katerega risanega junaka uporablja trenutni igralec, lahko vidimo

s pomočjo puščice, ki se prikaže nad risanim junakom.

Sedaj lahko pričnemo z igranjem igre. V primeru, da smo nastavili pot do mape z glasbo,

se nam glasba predvaja v ozadju. V nadaljevanju bomo prikazali več primerov

manipulacije z glasbo.

Karto lahko obrnemo s pomočjo govora ali s pritiskom črke »Y«. Z uporabo govora lahko

karto obrnemo na tri načine:

»card«;

»a card«;

»next«.

Ko se karta obrne, se začne predvajati zvočni posnetek s pravilom (v primeru, da se v

ozadju predvaja glasba, se ta postavi na premor) za obrnjeno karto. Istočasno, ko se obrne

karta, se v spodnjem desnem delu zaslona prikaže obrnjena karta, izpiše se ime novega

igralca, puščica pa se prestavi na novega risanega junaka, ki je na vrsti.

Page 29: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

18

Med igranjem igre se lahko prostovoljno premikamo s kamero po 3D prostoru. Za

premikanje kamere moramo uporabiti tipkovnico in sicer:

»w« - kamero premikamo navzgor nad 3D modele. Premikamo jo lahko, dokler

nismo pravokotno nad mizo;

»s« - kamero premikamo navzdol. Premikamo jo lahko, dokler nismo vodoravno s

tlemi;

»a« - kamero premikamo levo okrog 3D prostora za 360 stopinj;

»d« - kamero premikamo desno okrog 3D prostora za 360 stopinj;

»e« - kamero približujemo proti notranjosti mize (v središče dogajanja);

»q« - kamero oddaljujemo od notranjosti mize (od središča dogajanja).

Predhodno smo že omenili, da lahko med samim igranjem manipuliramo z glasbo.

Manipuliramo jo lahko s pomočjo tipkovnice ali govora. V nadaljevanju bomo predstavili

načine manipuliranja z glasbo. Za vsako operacijo podajamo vrstni red (številka na

numerični tipkovnici, črka ter besede, ki jih izgovorimo).

»8«, »Z«, »play music/song« - začnemo predvajati glasbo, ki je trenutno na

seznamu oz. nadaljujemo v primeru, če je glasba na premoru;

»2«, »N«, »stop music/song« - ustavimo predvajanje glasbe;

»4«, »G«, »previous music/song« - izberemo predhodno glasbo. V primeru, da smo

trenutno pri prvi glasbi na seznamu, se prestavimo na zadnjo glasbo s seznama;

»6«, »J«, »next music/song« - izberemo naslednjo glasbo. V primeru, da smo

trenutno pri zadnji glasbi na seznamu, se prestavimo na prvo glasbo s seznama;

»5«, »H«, »pause music/song ali resume music/song« - trenutno predvajano glasbo

damo na premor. V primeru, da je trenutna predvajana glasba na premoru,

nadaljujemo z nazadnje predvajano glasbo;

»7«, »T«, »first music/song« - izberemo glasbo, ki je prva na seznamu predvajanj;

»9«, »U«, »last music/song« - izberemo glasbo, ki je zadnja na seznamu

predvajanj;

»1«, »B«, »shuffle music/song« - želimo ali ne želimo, da se glasba vrti naključno;

»3«, »M«, »repeat music/song« - želimo ali ne želimo, da se glasba ponavlja;

»+«, »O«, »volume up« - povečamo glasnost za 10%;

»-», »I«, »volume down« - zmanjšamo glasnost za 10%;

Page 30: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

19

»0«, »,«, »mute music/song ali unmute music/song« - utišamo glasbo ali pa jo

povrnemo na stanje pred utišanjem.

Slika 4.4: Prosti pogled

Slika 4.5: Prosti pogled z druge strani prostora

Page 31: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

20

Slika 4.4 in Slika 4.5 prikazujeta prosti pogled 3D prostora brez figur (risani junaki na

stolih) in pijače ter kart na mizi.

Ko se igra zaključi, se ne zgodi nič. Vse ostane tako kot je, a če želimo pa lahko odpremo

menu in ponovimo postopek, ki smo ga predhodno že opisali.

V menuju imamo poleg nove igre (angl. new game) še možnosti, kot sta prosti pogled

(angl. free view) ter izhod iz aplikacije (angl. quit). V primeru, da kliknemo prosti pogled,

se lahko prosto premikamo s kamero po 3D prostoru. Pri tem načinu so vidni vsi 3D

modeli, razen risanih junakov, kart, pijače, puščice nad risanim junakom ter okenca v

spodnjem desnem delu zaslona. Prav tako lahko ti dve funkcionalnosti upravljamo tudi

preko govora. V nadaljevanju bomo opisali, katere govorne ukaze imamo vnaprej

pripravljene za upravljanje menuja:

»main menu« - odpre glavni menu;

»hide« ali »hide main menu« - zapre glavni menu;

»new game« - odpre naslednji korak menuja, kjer lahko vnesemo podatke o igralcih

ter pot do mape s skladbami;

»back« - v primeru, da smo na koraku za vnos igralcev, se prikaže glavni menu;

»clear« ali »clear fields« - v koraku za dodajanje igralcev počisti vsa polja z imeni;

»play« ali »start« - v koraku za dodajanje igralcev ob tem ukazu pričnemo z igro;

»free« ali »free view« - če smo v glavnem menuju, preidemo v prosti pogled v 3D

prostoru;

»quit« - zapre aplikacijo.

4.4 Razpoznavanje govora

Za razpoznavanje govora smo uporabili Microsoftove knjižice »SpeechRecognizer«,

»GrammarBuilder«, »Grammar« in »Choices«. Ob zagonu igre smo najprej inicializirali

objekte.

this.speechRecognizer = new SpeechRecognizer();

this.grammarBuilder = new GrammarBuilder();

this.choices = new Choices();

Page 32: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

21

V naslednjem koraku smo morali najprej pripraviti seznam besed, ki jih bo razpoznavalnik

govora razpoznaval.

this.choices.Add(new string[] { "main menu", "new game", "card", …});

Ko smo ustvarili seznam besed za razpoznavanje, smo ta seznam dodali v objekt za

slovnična pravila in nato smo slovnična pravila naložili v razpoznavalnik govora. Ko

razpoznavalnik govora zazna, da je govorec izrekel besedo, ki je shranjena v slovničnih

pravilih, kliče metodo »speechRecognizer_SpeechRecognized«, kjer za vsako izgovorjeno

besedo izvedemo ukaz, ki smo ga vnaprej implementirali.

this.grammarBuilder.Append(this.choices);

this.grammar = new Grammar(this.grammarBuilder);

this.speechRecognizer.LoadGrammar(this.grammar);

this.speechRecognizer.SpeechRecognized +=

new EventHandler<SpeechRecognizedEventArgs>(speechRecognizer_SpeechRecognized);

4.5 Generiranje govora

V igri nismo uporabili nobenega generiranja TTS, ampak smo uporabili zvočne datoteke

formata WAV, ki smo jih vnaprej posneli. Zvok govorca smo najprej posneli z uporabo

programa snemalnik zvoka (angl. sound recorder), ki ga najdemo na operacijskem sistemu

Windows. Omenjeni program nam omogoča, da lahko shranimo govor samo v formatu

WMA. Ta format smo nato pretvorili v format WAV preko spletne aplikacije, ki nam

omogoča brezplačno pretvarjanje različnih formatov (avdio, video, dokumenti, slike itd.)

[29]. Zvočne datoteke predvajamo za razložitev pravila posamezne karte.

4.6 Virtualna 3D scena

Ko smo začeli z implementacijo igre, smo morali najprej naložiti 3D model v objekt

razreda »Model«.

Page 33: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

22

private Model table;

this.table = this.Content.Load<Model>("Models/Table/Table/Table");

V naslednjem koraku smo nastavili vrednosti za postavitev kamere ter 3D modela (prvi

model, ki smo ga prikazali na zaslonu, je bila miza). Za postavitev kamere in mize smo

uporabili 3D vektor.

this.tablePosition = new Vector3(50.0f, -50.0f, 0.0f);

this.cameraPosition = new Vector3(0.0f, -500.0f, 800.0f);

Za prikaz modela v 3D prostoru smo morali preračunati vrednosti za matriko prostora in

matriko projekcije. Za matriko pogleda smo uporabili metodo »CreateLookAt«, ki se

uporablja za postavitev in orientacijo kamere [30]. Za matriki projekcije smo uporabili

»CreatePerspectiveFieldOfView«, ki se uporablja za nastavitev vidnega kota in prednjo ter

zadnjo ravnino obrezovanja (velikost prostora) [31].

this.view = Matrix.CreateLookAt(this.cameraPosition, Vector3.Zero, Vector3.Up);

this.projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4,

this.graphics.GraphicsDevice.Viewport.AspectRatio, 1.0f, 10000.0f);

Slika 4.6: Primer delovanja metode ("CreateLookAt") [30]

Metoda »CreateLookAt« (Slika 4.6) se uporablja za postavitev kamere in določitev smeri,

kamor želimo gledati. Slika nam prikazuje oko »Eye«, od koder gledamo in kam gledamo

»Target point«, linijo pogleda »Line of sight« ter vektor, ki kaže od kamere navzgor »up

vector«.

Page 34: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

23

Slika 4.7: Primer delovanja metode ("CreatePerspectiveFieldOfView") [31]

Z uporabo metode »CreatePerspectiveFieldOfView« (Slika 4.7) nastavimo velikost

virtualnega prostora oziroma vidnega polja kamere. Velikost prostora je odvisna od

vidnega polja pod kotom »Field of view Angle«, prednje ravnine »Near Clip Plane« in

zadnje ravnine »Far Clip Plane« obrezovanja ter višine »Hight – Aspect Ratio«. Dolžino

»Width« dobimo na podlagi ostalih podatkov.

Ko smo imeli osnovne objekte pripravljene, smo 3D model prikazali na zaslonu.

this.modelMesh = this.table.Meshes[1];

foreach (BasicEffect basicEffect in this.modelMesh.Effects)

{

this.boundingSphere = this.modelMesh.BoundingSphere;

this.objectCenter = new Vector3(this.boundingSphere.Center.X,

this.boundingSphere.Center.Y, this.boundingSphere.Center.Z);

this.transformation = Matrix.CreateTranslation(-this.objectCenter) *

Matrix.CreateScale(0.3f) * Matrix.CreateTranslation(this.tablePosition) *

Matrix.CreateRotationZ(MathHelper.ToRadians(this.angleX));

basicEffect.World = this.transformation;

basicEffect.View = this.view;

basicEffect.Projection = this.projection;

}

this.modelMesh.Draw();

Najprej smo v objekt razreda »ModelMesh« shranili mrežo (angl. mesh) 3D modela. Z

zanko smo šli skozi efekte modela, ki smo jih shranili v objekt razreda »BasicEffect«. Prvi

korak, ki smo ga morali narediti, je, da smo dobili velikost sfere »BoundingSphere« 3D

modela, da smo lahko na podlagi teh podatkov izračunali, za koliko moramo premakniti

Page 35: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

24

objekt v negativno smer, da bomo dobili težišče na sredini 3D modela (potrebujemo, da

lahko rotiramo 3D model okrog njegove osi). Pri preračunavanju podatkov za postavitev

3D modela v matriko sveta smo 3D model najprej preusmerili s »CreateTranslation« v

negativno smer, nato smo ga pomanjšali s »CreateScale«, ga ponovno preusmerili v

prvotno pozicijo ter na koncu še zavrteli okrog osi z s »CreateRotationZ«. Razred

»BasicEffect« vsebuje osnovne efekte za prikaz modela na zaslon. Ko smo imeli vse to

preračunano, smo model še izrisali na zaslon z ukazom »Draw«.

Vse modele smo nato naložili na takšen način. Da smo imeli boljši nadzor nad postavitvijo

modelov na pravilna mesta, smo morali ustvariti premikanje kamere. Implementacija

spodaj prikazuje primer premikanja kamere navzgor. Kamera se premika po poti v obliki

sfere okrog mize.

this.angle = this.function.GetAngle(this.cameraPosition, this.tablePosition);

if (!this.lockCameraUp)

{

this.cameraPosition = Vector3.Transform(this.cameraPosition,

Matrix.CreateRotationX(MathHelper.ToRadians(-this.angleY)));

if (angle >= 89.0f)

{

this.lockCameraUp = true;

}

}

Najprej smo morali izračunati trenutni kot med postavitvijo kamere in mize. Ko smo

pridobili kot, smo izračunali novo postavitev kamere s »Transform«. Na koncu smo vedno

preverjali, ali smo s postavitvijo kamere pravokotno nad mizo. Če smo bili, nismo več

dovolili premika kamere v tej smeri (navzgor).

Vsi 3D modeli, ki smo jih pridobili, so že v osnovi imeli prilepljene teksture. To pomeni,

da je imel vsak model nastavljeno absolutno pot do slike, kar nas je oviralo pri mobilnosti

aplikacije. S pomočjo programa »3DS Max«, smo te teksture odstranili s 3D modelov in

smo jih nato programsko dodali nazaj.

((BasicEffect)this.table.Meshes[1].Effects[0]).TextureEnabled = true;

((BasicEffect)this.table.Meshes[1].Effects[0]).Texture = this.tableTextures;

Page 36: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

25

Nekateri modeli so imeli že v osnovi dodano osvetlitev, spet drugi pa tega niso imeli.

Modele, ki so imeli šibkejšo osvetlitev ali pa le-te niso imeli, smo programsko osvetlili.

Da smo lahko ročno nastavili osvetlitev na model, smo jo morali omogočiti.

basicEffect.LightingEnabled = true;

Za nekatere modele smo uporabili osvetlitev »EmissiveColor«. To pomeni, da smo

osvetlili barve, ki jih uporablja objekt.

basicEffect.EmissiveColor = new Vector3(1.0f, 1.0f, 1.0f);

Večinoma smo uporabljali privzeto osvetljevanje objektov, ki je zadostovalo za želeni

končni izgled.

basicEffect.EnableDefaultLighting();

Page 37: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

26

5 ANALIZA REŠITVE

5.1 Primer poteka igre

Potek igre je zelo enostaven. Ko pričnemo z igro in obrnemo prvo karto, bodisi preko

tipkovnice ali govornega ukaza, nam zvočni posnetek razloži pravilo igre.

5.1.1 Primer 1: Karta s številko 6

Karta predstavlja igro »boom«. Igralec, ki je obrnil karto, si izmisli dve števili med

številko 2 in vključno 9. Ti dve števili pove na glas (npr. izbral si je števili 3 in 5) in prične

s štetjem s številko 1. Igralec, ki je za njim, mora na glas povedati število 2, tretji igralec

mora namesto števila 3 na glas reči »bum« (ker je prvi igralec izbral števili 3 in 5), četrti

igralec pove 4, peti igralec mora ponovno reči »bum«, tudi šesti igralec mora izreči »bum«

(ker je 6 večkratnik števila 3), itd. Igra poteka tako dolgo, dokler se prvi igralec ne zmoti,

bodisi z napačno zaporedno številko ali pa, ker ni rekel »bum«.

Primer zaporedja izgovorjenih besed za kombinacijo števil 3 in 5 je:

1, 2, »bum«, 4, »bum«, »bum«, 7, 8, »bum«, »bum«, 11, itd.

5.1.2 Primer 2: Karta s številko 3

Igralec, ki je vlekel to karto, lahko poljubno razdeli 3 požirke med ostale igralec. Enemu

igralcu lahko podari vse 3 požirke, enemu 2 požirka, spet drugemu enega ali vsakemu po

enega. Ob tem lahko požirek spije tudi sam.

5.1.3 Primer 3: Karta s podobo kralja

Vsak igralec, ki vleče karto, jo mora postaviti na stran (s pravilno stranjo navzgor). Tisti, ki

vleče zadnjega, četrtega kralja, mora popiti celoten kozarec.

Page 38: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

27

5.1.4 Primer 4: Karta s podobo kraljice

Igralec, ki je vlekel karto s podobo kraljice, mora to karto pokazati vsem igralcem ter jo

nato postaviti na stran s hrbtno stranjo navzgor. To karto lahko igralec unovči v času iste

igre. Unovči jo lahko tako, da v času igranja poljubnega igralca vpraša, karkoli mu pride na

misel. Če mu vprašani igralec kakorkoli odgovori na podano vprašanje, mora vprašani

igralec popiti požirek oz. toliko, kolikor so se dogovorili pred začetkom igre. V primeru, da

mu vprašani igralec odgovori z besedo »skrito vprašanje«, pije igralec, ki je vprašal. Ko je

igralec karto unovčil, jo mora postaviti na kup, kjer so karte že obrnjene.

5.1.5 Primer 5: Karta s številko 10

V času igranja ne sme nihče od igralcev oditi na stranišče ali kamorkoli drugam. V

primeru, da igralec vleče karto s številko 10, mu je to dovoljeno. Če igralec odide od igre

brez te karte, mu lahko ostali igralci v času njegove odsotnosti pripravijo kakšno koli

kazen, ki jo mora igralec ob vrnitvi izvesti.

5.1.6 Primer 6: Karta s številko 7

Igralec, ki vleče to karto, si izmisli prvo črko poljubne države. Igralci za njim v smeri

urinega kazalca nadaljujejo s črkovanjem imena države.

Primeri igre:

Igralec si izmisli prvo črko Č (v mislih je imel Češka), drugi igralec izgovori črko I (drugi

igralec je imel v mislih državo Čile), tretji igralec izgovori L, četrti igralec izgovori E. Ker

se tukaj črkovanje za državo konča, mora požirek narediti četrti igralec, ker je povedal

zadnjo črko države. V primeru, da se kateri koli igralec, ki je na vrsti, zmoti pri črkovanju

(npr. imamo vrstni red ČI in reče tretji igralec D, mora četrti igralec povedati tretjemu, da

se je zmotil pri črkovanju in nato pije tretji igralec. Če v istem primeru z zaporedjem ČID,

četrti igralec pove naslednjo črko, je s tem rešil tretjega igralca in mora upati, da peti

igralec tega ne opazi), sicer mora četrti popiti požirek. Vsak igralec, ki ne bi vedel

naslednje zaporedne črke države, lahko vpraša predhodnika, katero državo je imel v mislih,

in če mu ta odgovori pravilno, spije požirek igralec, ki je vprašal, v nasprotnem primeru

Page 39: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

28

spije požirek predhodnik (ni vedel države). Isto pravilo velja tudi za karto s številko 8 –

»pojmi«.

5.1.7 Primer 7: Karta s številko 9

Igralec, ki vleče to karto, si lahko izmisli kakršno koli novo pravilo, ki velja do naslednjega

novega pravila.

Primer:

Igralec si izmisli, da mora vsak igralec (razen njega), preden vleče karto, izgovoriti »ta igra

je zakon« in da tisti, ki to pozabi povedati, dobi določeno kazen.

5.1.8 Primer 8: Karta As

Vsi igralci začnejo istočasno piti. Prvi, ki lahko odloži kozarec, je tisti igralec, ki je vlekel

to karto. Torej vsi igralci morajo piti tako dolgo, dokler njihov predhodnik ne preneha piti.

V primeru, da nekdo predčasno spije celoten kozarec, se igra razveljavi in lahko vsi igralci

istočasno prenehajo s pitjem.

5.2 Težave in prihodnje delo

Med implementacijo smo naleteli na kar nekaj težav, ki smo jih morali razrešiti. Prva večja

težava je bila interaktivno rotacija modela okrog njegove osi (rotacija modela na mestu,

okrog njegovega središča), katero smo rešili s sfero modela »BoundingSphere«. Ko smo

dodali mizo v prostor in nato želeli prikazati karte na mizi, smo imeli problem, da karte

niso bile na istih koordinatah kot miza. Kasneje smo to rešili z natančnejšim izračunom ter

pravilnim vrstnim redom prikazovanja modelov na zaslon. Prej ko slej se je pojavila tudi

težava s prenosljivostjo aplikacije (prenos na drugi računalnik), ker so imeli 3D modeli

prilepljene teksture znotraj modela. To smo odpravili tako, da smo z zgoraj omenjenima

programoma odstranili teksture iz modela ter jih ponovno prilepili s programsko kodo.

Zaradi vse večje razširjenosti (dodajanja več različnih objektov, kot so radiatorji, rože,

Page 40: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

29

pijače itd) in želje po več funkcionalnostih aplikacije, smo imeli težave z vrstnim redom

dogodkov. Te težave smo odpravili s sprotnim testiranjem aplikacije. Nekaj težav smo

imeli tudi pri obračanju kart, ker smo morali paziti, da se karta ne obrne prehitro. Na koncu

smo naredili kar se da realistično obračanje kart.

V prihodnje se planira to aplikacijo razširiti na podporo razpoznavanja govora v različnih

jezikih, animacijo modelov (modeli v pravi človeški obliki in ne risani junaki) ter

sodobnejši uporabniški vmesnik. Prav tako je želja tudi po tem, da bi aplikacija imela

podporo delovanja na več sistemih (mobilnih in tudi Mac OS). V mislih imamo tudi, da bi

se aplikacija razširila tako daleč, da ne bi več potrebovali tipkovnice in miške ter, da bi

lahko vsak igral igro od doma.

Page 41: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

30

6 ZAKLJUČEK

V diplomskem delu smo si ogledali, na kakšen način delujejo razpoznavanje govora,

računalniško generiranje govora, identifikacija govora ter ogrodje XNA, s pomočjo

katerega smo razvili 3D računalniško igro.

Uspešno smo izdelali 3D računalniško igro, ki jo lahko upravljamo z govorom in tako v

večini ne potrebujemo tipkovnice in miške. Med samo implementacijo smo se izpopolnili

na področjih razpoznavanja govora, prikaza in manipulacije 3D modelov v prostoru,

ogrodja XNA ter predvajanja zvočnih posnetkov. Med implementacijo smo upoštevali

pravila za razvoj iger v ogrodju XNA. Aplikacija je namizna, enostavna za uporabo za

vsakega uporabnika, poskrbljeno je tudi, da jo lahko še dodatno razširimo.

Za izdelavo aplikacije smo uporabili program Visual Studio 2010 podjetja Microsoft.

Visual Studio je zelo razširjen program, ki omogoča razvoj in upravljanje tako za namizne

kot tudi za mobilne in spletne aplikacije ter Xbox. 3D modele smo dobili z različnih

spletnih strani in jih s pomočjo programa 3DS Max in Maya malenkost prilagodili. Za

razvoj računalniške igre smo uporabili ogrodje XNA Studio 4.0.

Ko smo aplikacijo dokončali, smo nekaj časa namenili tudi testiranju govornega

uporabniškega vmesnika ter drugih funkcionalnosti, ki jih ponuja aplikacija. Ob testiranju

smo aplikacijo tudi optimizirali, s čimer smo na koncu pridobili tudi nekaj sličic prikaza na

sekundo (FPS). Optimizirali smo jo na takšen način, da smo določena preračunavanja za

upodabljanje 3D modelov prestavili v metode, ki se kličejo takrat, ko se morajo vrednosti

preračunati na novo. Prav tako smo zmanjšali tudi število na novo ustvarjenih objektov ter

zmanjšali velikosti tekstur za 3D modele.

Aplikacijo bi lahko v prihodnje razširili na razpoznavanje govora v različnih jezikih,

animiranje 3D risanih junakov, metanje senc modelov idr.

Page 42: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

31

7 LITERATURA

[1] Speech recognition. [Spletni]. http://electronics.howstuffworks.com/gadgets/high-

tech-gadgets/speech-recognition1.htm. [Navedeno 10.09.2013].

[2] Cohen, M. H. Voice User Interface Design;, Addison-Wesley, Boston, ZDA, 2004.

[3] Nature biotechnology. [Spletni].

http://www.nature.com/nbt/journal/v22/n10/full/nbt1004-1315.html. [Navedeno

01.09.2014].

[4] web.science.mq.edu.au. [Spletni].

http://web.science.mq.edu.au/~cassidy/comp449/html/ch11s02.html. [Navedeno

01.09.2014].

[5] www.doc.ic.ac.uk. [Spletni].

http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html. [Navedeno

01.09.2014].

[6] Žibert, J. [Spletni]. http://luks.fe.uni-lj.si/sl/osebje/janezz/pub/mg.pdf. [Navedeno

23.07.2014].

[7] Speech synthesis. [Spletni]. http://whatis.techtarget.com/definition/speech-synthesis.

[Navedeno 23.7.2014].

[8] Janssen, C. Techopedia. [Spletni].

http://www.techopedia.com/definition/24128/pulse-code-modulation-pcm.

[Navedeno 01.09.2014].

[9] The Windows Club. [Spletni]. http://forum.thewindowsclub.com/microsoft-

technologies-discussions/28522-how-text-speech-works.html. [Navedeno

23.07.2014].

[10] Speaker recognition. [Spletni].

http://www.scholarpedia.org/article/Speaker_recognition. [Navedeno 24.07.2014].

[11] cse.buffalo. [Spletni]. www.cse.buffalo.edu/./Speaker%20Recognition.pptx.

Page 43: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

32

[Navedeno 01.09.2014].

[12] Tazti. [Spletni]. http://www.tazti.com/speech-recognition-software.html. [Navedeno

24.07.2014].

[13] Voice Buddy. [Spletni]. http://www.bitsdujour.com/software/voice-buddy.

[Navedeno 24.07.2014].

[14] e-Speaking. e-Speaking. [Spletni]. http://www.e-speaking.com/. [Navedeno

25.07.2014].

[15] voiceattack. voiceattack. [Spletni]. http://www.voiceattack.com/. [Navedeno

24.07.2014].

[16] [Spletni]. http://www.techradar.com/news/phone-and-communications/mobile-

phones/getting-the-most-from-samsung-s-voice-1198384. [Navedeno 24.07.2014].

[17] Natural Readers. [Spletni]. http://www.naturalreaders.com/. [Navedeno 25.07.2014].

[18] text-to-speech. [Spletni]. http://text-to-speech.imtranslator.net/. [Navedeno

25.07.2014].

[19] Download. [Spletni]. http://download.cnet.com/Text-2-Speech/3000-33660_4-

75910509.html. [Navedeno 26.07.2014].

[20] Panopreter. [Spletni]. http://www.panopreter.com/. [Navedeno 25.07.2014].

[21] agnitio-corp. agnitio-corp. [Spletni]. http://www.agnitio-

corp.com/products/commercial/voice-recognition-software. [Navedeno 27.07.2014].

[22] RecoMadeEasy. [Spletni]. http://www.speakeridentification.com/. [Navedeno

24.07.2014].

[23] Sestek. [Spletni]. http://www.sestek.com/vocal-passphrase. [Navedeno 23.07.2014].

[24] ubi.com. [Spletni]. http://ewo.ubi.com/en/main/. [Navedeno 01.09.2014].

[25] giantbomb. [Spletni]. http://www.giantbomb.com/odama/3030-268/. [Navedeno

01.09.2014].

Page 44: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

33

[26] bulbagarden. [Spletni]. http://bulbapedia.bulbagarden.net/wiki/Hey_You,_Pikachu!

[Navedeno 01.09.2014].

[27] giantbomb. [Spletni]. http://www.giantbomb.com/lifeline/3030-19969/. [Navedeno

01.09.2014].

[28] gamegrin. [Spletni]. http://www.gamegrin.com/articles/oddities-seaman/. [Navedeno

01.09.2014].

[29] online-convert. [Spletni]. http://www.online-convert.com/. [Navedeno 11.05.2014].

[30] Primer delovanje metode "CreateLookAt". [Spletni]. https://encrypted-

tbn1.gstatic.com/images?q=tbn:ANd9GcRtqM8J2KCYHJHZgAE2IHbaolSPe0UpD

US-X4LriwfMte57Ndxh4Q.

[31] CreatePerspectiveFieldOfView. [Spletni].

http://packtlib.packtpub.com/graphics/9781849687089/graphics/7089_02_02.jpg.

Page 45: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

34

Page 46: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

35

Page 47: Uporabniško usmerjen razvoj mobilnih aplikacij · 2017. 11. 28. · govora s strani te osebe, ki izhaja iz bolj natančne transkripcije. Govorno neodvisni sistemi tega usposabljanja

36