Final Thesis 1.14 MB
Total Page:16
File Type:pdf, Size:1020Kb
VYSOKE´ UCˇ ENI´ TECHNICKE´ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACˇ NI´CH TECHNOLOGII´ U´ STAV POCˇ ´ITACˇ OVE´ GRAFIKY A MULTIME´ DII´ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA HLASEM OVLADANA´ MAPA FIT BAKALA´ Rˇ SKA´ PRA´ CE BACHELOR’S THESIS AUTOR PRA´ CE PETR HUTA´ K AUTHOR BRNO 2012 VYSOKE´ UCˇ ENI´ TECHNICKE´ V BRNEˇ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMACˇ NI´CH TECHNOLOGII´ U´ STAV POCˇ ´ITACˇ OVE´ GRAFIKY A MULTIME´ DII´ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA HLASEM OVLADANA´ MAPA FIT VOICE CONTROLED MAP OF FIT BAKALA´ Rˇ SKA´ PRA´ CE BACHELOR’S THESIS AUTOR PRA´ CE PETR HUTA´ K AUTHOR VEDOUCI´ PRA´ CE Ing. IGOR SZOKE,˝ Ph.D. SUPERVISOR BRNO 2012 Abstrakt Tato bakaláøská práce se zabývá návrhem a tvorbou navigačního systému po areálu Fa- kulty informačních technologií Vysokého učení technického v Brně s hlasovým ovládáním. Vysvětluje metody používané pro hledání nejkratší cesty na mapě, rozpoznávání øeèi a po- pisuje existující navigační systémy s hlasovým ovládáním. Práce je zaměřena především na tvorbu uživatelského rozhraní s hlasovým ovládáním. Cílem hlasového ovládání je, aby použití tohoto navigačního systému bylo přístupné a efektivní na veøejném místě. Hlasové ovládání je realizováno pomocí knihovny BSAPI. Abstract This bachelor's thesis describes the design and developement of navigation system for the Faculty of information technology, Brno university of technology with voice control. It explains the methods used for finding the shortest path on the map, speech recognition and describes existing navigation systems with voice control. The thesis is focused on creating a user interface with voice control. The purpose of voice control is to make usage of this navigation system more accesible and effective in a public place. Speech recognizing is realized with BSAPI library. Klíčová slova Mapa, grafové algoritmy, rozpoznávání øeèi, hlasové ovládání, BSAPI, Qt, C++. Keywords Map, graph algorithms, speech recognition, voice control, BSAPI, Qt, C++. Citace Petr Huták: Hlasem ovladaná mapa FIT, bakaláøská práce, Brno, FIT VUT v Brně, 2012 Hlasem ovladaná mapa FIT Prohlášení Prohla¹uji, že jsem tuto bakaláøskou práci vypracoval samostatně pod vedením pana Ing. Igora Sz}okeho, Ph.D. Uvedl jsem v¹echny literární prameny a publikace, ze kterých jsem èerpal. ....................... Petr Huták 10. května 2012 Poděkování Rád bych poděkoval vedoucímu mé bakaláøské práce panu Ing. Igorovi Sz}okemu, Ph.D. za odborné vedení, rady a jeho èas, které mi pøi tvorbě práce poskytl. c Petr Huták, 2012. Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informa- čních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů. Obsah 1 Úvod 4 2 Grafová reprezentace mapy5 2.1 Grafová reprezentace...............................5 2.2 Algoritmus A*..................................5 2.3 Dijkstrùv algoritmus...............................7 3 Rozpoznávání øeèi9 3.1 Rozdělení rozpoznávání øeèi...........................9 3.2 Dynamické borcení èasu { DTW........................9 3.3 Skryté Markovské Modely { HMM.......................9 3.4 Použitý rozpoznávaè { knihovna BSAPI.................... 10 4 Existující řešení 11 4.1 Navigon Plus 70................................. 11 4.2 Informační dotyková tabule nákupního centra................. 12 4.3 Další systémy s hlasovým ovládáním...................... 12 5 Návrh programu 13 5.1 Požadavky na navigační systém......................... 13 5.2 Knihovna pro tvorbu GUI............................ 13 5.2.1 wxWidgets................................ 13 5.2.2 Qt..................................... 14 5.3 Knihovny pro práci s grafy........................... 15 5.3.1 Knihovna Boost............................. 15 5.3.2 Další knihovny pro práci s grafy.................... 16 5.4 Knihovny pro zpracování zvuku......................... 16 5.4.1 knihovna PortAudio ........................... 17 5.4.2 knihovna libsndfile .......................... 17 5.5 Objektový návrh aplikace............................ 17 5.6 Návrh uživatelského rozhraní.......................... 18 5.7 Návrh formátu uložení grafu........................... 19 6 Implementace 21 6.1 Pøevod mapy z informáčního systému..................... 21 6.2 Tvorba seznamù klíčových slov......................... 22 6.3 Popis implementace tříd navigačního systému................. 22 6.3.1 Třída MainWindow ............................ 22 1 6.3.2 Třída MapObjects ............................ 24 6.3.3 Třída Ui MainWindow .......................... 25 6.3.4 Třída MapSearch ............................. 25 6.3.5 Třída MapSettingsDialog a MapStartPosition ........... 26 6.3.6 Třída MapAudioRecorder ........................ 27 6.3.7 Třídy MapRecognizer,MapRecognizerTarget a SErrorCallBackI . 28 6.3.8 Třída MapWidget ............................. 29 7 Testování 31 7.1 Metodika a podmínky testování......................... 31 7.2 Zhodnocení testování............................... 31 7.3 Postøehy uživatelù................................ 31 8 Závěr 32 A Kompilace zdrojových souborù 35 A.1 Požadavky..................................... 35 A.2 Kompilace..................................... 35 B Návod k použití 36 B.1 Spuštění a ovládání................................ 36 B.1.1 Základní hlasové příkazy......................... 36 B.1.2 Zadání jména a přijmení......................... 36 B.1.3 Korekce jména a příjmení........................ 37 B.1.4 Výběr osoby............................... 37 B.1.5 Výběr poschodí.............................. 37 C Obsah CD 38 2 Seznam obrázkù 2.1 příklad budovy..................................5 2.2 budova reprezentovaná grafem.........................6 4.1 GPS navigace Navigon Plus 70......................... 11 4.2 Informační tabule v nákupním centru, autor: Pavel ©evela / Wikimedia Com- mons [19]..................................... 12 5.1 Zobrazení principu èinnosti aplikace...................... 14 5.2 wxWidgets { příklad vykonání obsluhy stisku tlačítka [13].......... 15 5.3 Qt { princip signálù a slotù [9]......................... 16 5.4 Zpracování zvukového vstupu knihovnami PortAudio a libsndfile .... 17 5.5 Objektový návrh aplikace............................ 18 5.6 Návrh rozmístění prvkù uživatelského rozhraní................ 19 6.1 Interakce mezi třídami aplikace......................... 23 6.2 Třída MainWindow ................................ 24 6.3 Pøechody mezi stavy třídy MainWindow .................... 24 6.4 Třída MapObjects ................................ 25 6.5 Grafické uživatelské rozhraní aplikace..................... 26 6.6 Třída MapSearch ................................. 26 6.7 Třída MapAudioRecorder ............................ 27 6.8 Třídy MapRecognizer,MapRecognizerTarget a SErrorCallBackI ..... 28 6.9 Mapa vykreslená třídou MapWidget ...................... 30 3 Kapitola 1 Úvod Jak jistě mnozí zažili, není jednoduché se orientovat v neznámém prostředí. Například pøi příchodu do rozlehlého, nám neznámého, areálu budov není snadné udržet správnou orientaci, následně pak pøi hledání konretní osoby na konkrétním místě, a někdy i v kon- krétním èase, èasto propadáme panice a jsme rádi za každou radu èi pomoc pøi nasměrování k vytouženému cíli. V těchto případech jsou obèas k nápomoci plánky, směrové tabule, èi kolemjdoucí lidé. Snaha ulehèit si život v¹ak doprovází lidstvo od prvopoèátku, a tak i v ob- lasti navigačních systémù jsme od směrových ukazatelù dospěli do bodu, kdy nám dostupné technologie umožňují na základě vstupních informací vybrat nejideálnější trasu k na¹emu cíli. V případě navigačních systémù budov umístěných na veøejném místě pro využití ¹iro- kou věøejností nám pak vznikají nová specifika. Èasto okolní prostředí, èi situace nedovoluje uživatelùm tohoto systému zadávat vstupní informace klasickým zpùsobem, tedy pøes klá- vesnici, a nabízejí se tak možnosti pro využití technologií dotykových obrazovek, èi pro èlověka pøirozené hlasové komunikace, která je předmětem i této práce. Cílem bakaláøské práce byla implementace navigačního systému pro areál Fakulty in- formačních technologií Vysokého učení technického v Brně, přičemž ovládání tohoto sys- tému se děje prostřednictím hlasových příkazù zadaných uživatelem. Prvním úkolem bylo navrhnout vhodný zpùsob datové reprezentace mapy a informací o osobách. To v¹e za úèe- lem pozdějšího vyhledávání osob, místoností a optimálních cest nebo efektivního zobrazení mapy v grafické podobě. Následující fáze se týkala návrhu a implementace grafického uži- vatelského rozhraní spravujícího zobrazení mapy areálu fakulty s možností vyhledání cesty na základě definovaného poèátku a cíle. Implementace systému proběhla v programovacím jazyce C++. Po dokončení této fáze a otestování dosavadních výsledků pøi¹lo na øadu pøi- pojení hlasového ovládání, kdy pro rozpoznání ovládacích příkazù bylo využito knihovny BSAPI, kterou vyvinula výzkumná skupina Speech@FIT. Na závěr byl systém podroben otestování, pøi kterém byla hodnocena především efektivita hlasového ovládání. Celá práce je rozčleněna do osmi kapitol. Druhá kapitola (2) se ve struènosti zabývá grafovou reprezentací mapy a algoritmy pro nalezení nejkratší cesty v grafu. Následující kapitola (3) je věnována rozpoznávání øeèi. Jsou zde uvedeny základní metody rozpoznávání a popis rozpoznávaèe použitého v této práci. Kapitola (4) dává náhled na aktuální navigační systémy využívající ovládání hlasem.