Univerzita Karlova v Praze Matematicko-fyzikální fakulta
BAKALÁŘSKÁ PRÁCE
Patrik Černý Hlasové ovládání televize Ústav formální a aplikované lingvistiky
Vedoucí bakalářské práce: Mgr. Pavel Straňák, Ph.D. Studijní program: Informatika Studijní obor: Programování
Praha 2012
TODO: Poděkování.
Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně a výhradně s použitím citovaných pramenů, literatury a dalších odborných zdrojů. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona v platném znění, zejména skutečnost, že Univerzita Karlova v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle §60 odst. 1 autorského zákona.
V . . . . . . . . dne . . . . . . . . . . . .
Podpis autora
Název práce: Hlasové ovládání televize Autor: Patrik Černý Katedra (ústav): Ústav formální a aplikované lingvistiky Vedoucí bakalářské práce: Mgr. Pavel Straňák, Ph.D. Abstrakt: TODO: text abstraktu Klíčová slova: TODO: klíčová slova
Title: TODO: titul anglicky Author: Patrik Černý Department: Institute of Formal and Applied Linguistics Supervisor: Mgr. Pavel Straňák, Ph.D. Abstract: TODO: abstrakt Keywords: TODO: klíčová slova
Obsah Úvod
1
1 Analýza 1.1 Existující řešení . . . . . . . . . . . . . . . . . . . . 1.1.1 Hlasově ovladatelné TV . . . . . . . . . . . 1.1.2 Hlasové dálkové ovladače . . . . . . . . . . . 1.1.3 Hlasové ovládání pomocí mobilních telefonů 1.1.4 Hlasové ovládání PC . . . . . . . . . . . . . 1.2 Zhodnocení a porovnání existujících řešení . . . . . 1.3 Specifikace výsledné práce . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
2 3 3 4 5 6 7 8
2 Návrh řešení 2.1 Architektura aplikace . . . . . . . . . . . 2.1.1 Návrhový vzor . . . . . . . . . . 2.1.2 Observer Pattern . . . . . . . . . 2.1.3 Aplikace Observer Pattern . . . . 2.2 Subject . . . . . . . . . . . . . . . . . . 2.2.1 Specifikace klasifikátoru řeči . . . 2.2.2 Zpracování a reprezentace zvuku 2.2.3 Prefilter . . . . . . . . . . . . . . 2.2.4 VAD . . . . . . . . . . . . . . . . 2.2.5 Feature extractor . . . . . . . . . 2.2.6 Rozpoznávač slov . . . . . . . . . 2.3 Application - přehrávač DTV signálu . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
10 10 10 10 11 12 12 15 15 15 15 15 15
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
3 Implementace
16
4 Možnosti rozšíření
17
Závěr
18
Seznam použité literatury
19
Seznam tabulek
21
Seznam obrázků
22
Úvod Lidé s poruchou hybnosti a řeči mají znesnadněný přístup k informacím, který je pro intaktní populaci zcela běžný. Ovládání televize, rádia nebo počítače se pro ně často stává nepřekonatelným problémem. Většina zařízení je uzpůsobena pro manuální ovládání, což tato zařízení pro ně činí těžko ovladatelnými nebo přímo neovladatelnými. Tím je cílová skupina ochuzena o zdroje informací a zábavy. Jedním z řešení tohoto problému je hlasové ovládání. V dnešní době sice existují efektivní hlasové rozpoznávače, ale většina z nich není použitelná pro osoby s poruchou řeči. Jestliže takové ovládání má splňovat svůj účel, pak se musí dbát na jeho přizpůsobitelnost jednotlivým uživatelům. Cílem této práce je vytvořit hlasové ovládání televize, které bude použitelné pro jedince s porucho hybnosti a řeči. TODO: Dopsat strukturu práce - co je v jaké kapitole.
1
1. Analýza Účelem této práce je zprostředkovat výhody, které televize (dále jen TV) přináší, lidem s poruchou hybnosti a řeči. Tohoto se snažíme dosáhnout hlasovým ovládáním. Aby se TV (bez přidaného externího zařízení) dala upravit pro hlasové ovládání, musela by poskytovat možnost zvukového vstupu (přes mikrofon) a vhodné rozhraní pro přeprogramování její funkčnosti. Takovéto TV nejsou k běžnému dostání. Proto se musí využít externí zařízení, které dokáže rozpoznávat zvuky a umí ovládat TV. Je tedy potřeba zvolit, jakým způsobem se bude TV ovládat a které externí zařízení se k tomuto účelu použije. Pro ovládání TV je nutné, aby její součástí bylo vhodné rozhraní, přes které ji lze ovládat. Podle druhu rozhraní se dá komunikace s TV rozdělit do dvou základních skupin. 1. Bezdrátová komunikace Infračervený port se v TV nachází zcela běžně. Jeho největší výhodou je, že se skrze něj dá bezdrátově na vzdálenost několika metrů (záleží na síle vysílače infračerveného záření) ovládat (ve většině případech) veškerá funkčnost TV. Hlavní nevýhodou jsou omezení samotného infračerveného záření - vysílač tohoto záření musí být přímo nasměrován na přijímač a v cestě by neměli stát žádné překážky. Další nevýhodou je, že každý výrobce TV si pro tento druh komunikace vytváří svůj vlastní komunikační standart. 2. Drátová komunikace K TV se dá připojit přes různé druhy fyzických rozhraní - např. přes SCART, DVI, HDMI nebo RCA. Tato rozhraní neslouží primárně pro ovládání TV, ale pro posílání obrazu a zvuku, což je výhodou a zároveň i nevýhodou tohoto přístupu. Tímto způsobem se na TV může zobrazit jakýkoliv obraz, ale pokud zařízení, s kterým je TV propojena, neumí zpracovat televizní signál, pak ani na TV nepůjde přehrávat televizní programy. Na externí zařízení jsou kladeny požadavky, aby poskytovalo možnost naprogramovat si pro něj vlastní aplikaci, aby mělo zvukový vstup a aby bylo schopné komunikovat s TV přes některý z výše popsaných druhů komunikace. V dnešní době patří mezi nejrozšířenější zařízení, která splňují tyto požadavky, osobní počítač (dále jen PC) a některé mobilní telefony. Můžeme tedy vyhovující externí zařízení rozdělit do tří základních skupin. 1. PC Dříve byl běžnou součástí notebooků infračervený vysílač. V dnešní době tomu už tak není, nicméně stále existují externí infračervené vysílače, které se dají k PC připojit. S drátovou komunikací je na tom PC značně lépe. HDMI a DVI porty jsou běžné, kdežto ostatní - např. SCART - na PC ve většině případech nenajdeme. Dále existuje velké množství redukcí, které umožňují propojit TV S PC přes téměř libovolné porty. Největší výhoda PC je jeho rozšířenost a univerzálnost. PC propojené kabelem s TV se stává čím dál tím běžnější záležitostí. Tato kombinace zařízení umožňuje vytvořit si doma multimediální centrum pro přehrávání televizních pořadů, filmů, hudby a rádia a 2
poskytuje mnoho dalších výhod. Nicméně pro přehrávání televizních programů je potřeba, aby PC obsahovalo televizní kartu, a i přes snižující se ceny PC nemá každý možnost vyhranit si PC pouze pro tento účel. 2. Mobilní telefon Dříve mobilní telefony obsahovaly infračervené vysílače. Dnes ho už není možné najít téměř v žádném. U mnohých mobilních telefonů byl také problém s dosahem jejich infračerveného vysílače. Jejich primární účel byl přenos informací mezi mobily, případně PC, takže dosah záření byl omezen na několik desítek centimetrů. Výhodou mobilních telefonů jsou jejich malá rozměry. 3. Specializované zařízení Pro účel ovládání TV je možné vytvořit specializované zařízení, které by se k TV připojilo přes některé kabelové rozhraní nebo by mohlo TV ovládat přes infračervený port. Specializované zařízení má pouze jediný účel a tomu může být uzpůsobené, z jakých částí je složeno, jakou má velikost atd. Výsledné zařízení by mohlo mít podobu malé krabičky, kterou lze jednoduše uložit. Hlavní nevýhodou je nedostupnost takovéhoto zařízení. Pokud by nebylo k dostání již vytvořené a koncový uživatel by si ho musel sám sestrojit, pak by nejspíše nikdo o výslednou aplikaci neprojevil zájem. Pro cílovou skupinu uživatelů je většina pohybů obtížná nebo přímo nevykonatelná. Výsledné řešení hlasového ovládání TV s tímto musí počítat. Použité zařízení i výsledná aplikace musí jít velice jednoduše spustit a uvést do stavu, kdy jsou schopny začít rozeznávat jednotlivé hlasové příkazy. Dá se očekávat, že s prvním spouštěním aplikace bude cílovému uživateli pomáhat intaktní jedinec. Veškeré složitější akce tedy musí být možné provést najednou a to hned při prvním spuštění. Dále je pro cílovou skupinu charakteristická jejich porucha řeči. Slova vyřčená takto postiženými lidmi mohou znít odlišně od slov vyslovených intaktními jedinci. V některých případech je slovní zásoba těchto osob omezena pouze na pár zvuků, které jsou schopné vyprodukovat. Hlasové ovládání musí tato pozorování brát v potaz a mělo by být schopné se přizpůsobit řeči jednotlivých uživatelů. Při rozpoznávání hlasových příkazů bude zaplá TV. Výsledný produkt si s tímto musí umět poradit. Musí zaručit, aby zvuk vycházející z TV nebyl považován za příkazy uživatele.
1.1
Existující řešení
V dnešní době existuje více hotových řešení hlasového ovládání TV. Většina z nich je přizpůsobena pro intaktní jedince a nebere v potaz možné handicapy. Některá z nejznámějších řešení jsou popsána v následujících podkapitolách.
1.1.1
Hlasově ovladatelné TV
Se současným vývojem hlasového rozpoznávání začínají komerční organizace vytvářet zařízení, která jsou hlasově ovladatelná. Výjimkou nejsou ani TV. Začínají se vyrábět nové generace TV, které nabízejí připojení k internetu, hraní 3
her a mnoho dalšího. Některé z nich umožňují alternativní způsoby ovládání pomocí snímání pohybu ruky či hlasového ovládání - např. Samsung UE55ES8000. Autor internetové recenze Samsung Smart TV voice and gesture control systems review [5] hodnotí hlasové ovládání Samsungu UE55ES8000 pozitivně. Uvádí, že je schopné rozpoznávat řeč mužů, žen, dětí a to i s použitím výrazného dialektu s překvapivě malými obtížemi. Podle článku to vypadá, že by toto ovládání mohlo být vhodné i pro jedince s méně závažnou poruchou řeči (museli by být schopní vyslovovat slova, která jsou pro ovládání předpřipravena). Pro potvrzení tohoto výroku by bylo samozřejmě potřeba provést testy. Největší nevýhodou těchto TV je jejich vysoká cena - pro Samsung UE55ES8000 to činí kolem $2500. TV s hlasovým ovládáním se teprve začínají vyrábět a nejsou v Čechách k běžnému dostání. Mezi výhody jednoznačně patří jednoduchost zavedení hlasového ovládání. K TV se nemusejí připojovat žádná další zařízení a provádět mezi nimi synchronizaci. Stačí pouze zapnout TV a vše je připraveno k použití. Velikou výhodou tohoto řešení je, že se jedná pouze o jeden přístroj (výhody, které z toho vyplývají budeme dále označovat jako výhody jednoho přístroje). Díky tomu může hlasové ovládání získat přístup k veškerým datům, která TV obsahuje. Existují algoritmy, které dokáží využít znalost okolního prostředí pro zefektivnění rozpoznávání zvuků. Autoři knihy Speech and Language Processing [3] píší o funkci echo cancellation - dalo by se přeložit jako redukce ozvěny. Jedná se o proces, u kterého dochází k odstranění zvuků, o kterých se ví, že se nemají zpracovávat (v tomto případě zvukový výstup TV), ze signálu vstupního zvukového zařízení. Hlasové ovládání přímo zabudované v TV má díky podobným algoritmům veliký potenciál. Navíc TV mohou zobrazovat vizuální pomůcky, které slouží pro zpřehlednění ovládání. Toho využívá již zmíněný Samsung UE55ES8000. Ve výše uvedené recenzi [5] její autor popisuje průběh ovládání. Nejdříve se vyřkne úvodní slovo, kterým se TV převede do stavu rozpoznávání. V tomto stavu se na obrazovce zobrazí všechny možné příkazy, které lze vyslovit. Díky tomu si uživatel nemusí pamatovat všechna slova určená pro ovládání.
1.1.2
Hlasové dálkové ovladače
Dálkové ovladače využívají pro ovládání TV infračervené záření, což sebou přináší výhody i nevýhody tohoto záření (viz bezdrátová komunikace - str. 2). Vhodným představitelem této skupiny je zařízení Voice Me II (informace o tomto produktu jsou čerpány z internetových stránek projektu [6]). Jedná se o hlasem ovladatelný universální dálkový ovládač, jímž se dají ovládat zařízení v domácnosti (k těmto zařízením musí mít uživatel Voice Me II funkční infračervený dálkový ovládač). Voice Me II se ze začátku musí vhodně nastavit - to probíhá ve dvou fázích. V první fázi se pomocí dálkového ovládače nastaví akce, kterou má Voice Me II provádět. Původní ovladač se namíří na Voice Me II a zadá se akce (stisknutím odpovídajícího tlačítka na ovládači). Voice Me II tento signál příjme a zapamatuje si ho. V druhé fázi se nahraje hlasový příkaz pro provedení akce nastavené ve fázi první. Dále stačí Voice Me II uvést do stavu, v němž poslouchá, a vyřknout příkaz. Voice Me II je tedy na řečníku závislý a tím je vhodný i pro osoby se špatnou výslovností. Mohou ho používat čtyři uživatelé a každý z nich si může nastavit 4
třicet příkazů, což je pro samotné ovládání TV zcela dostatečné. Jeden hlasový povel může spustit až deset akcí. Voice Me II disponuje mikrofonem, který by měl být schopný snímat řečníka až do vzdálenosti tří metrů. Autoři internetových stránek projektu [6] uvádějí, že se pomocí Voice Me II dají ovládat i TV. Avšak již na těchto stránkách neuvádějí (alespoň ne na žádném dobře viditelném místě), jak rozeznávají zvuky z TV od příkazů řečníka. Bez mikrofonu, který bude snímat pouze řečníka, bude při takovémto akustickém pozadí obtížné klasifikovat řečníkovy příkazy - obzvláště u jedinců, kteří pro svou poruchu řeči nemohou vyslovovat příliš hlasitě. Daný nedostatek by se dal obejít umístěním mikrofonu blízko k ústům. Toto by se dalo provést pomocí externího mikrofonu, který se ale k tomuto zařízení nedá připojit . Možnost přidání externího mikrofonu je opomenuta snad u všech hlasových dálkových ovladačů. Cena Voice Me II je téměř $200. Autor internetové recenze Voice Activated Remote Control [7] popisuje zařízení Voice Me (předchůdce Voice Me II). Uvádí, že sice musí pro ovládání zvyšovat svůj hlas, ale za to efektivnost rozpoznávání je vysoká. Zmiňuje se o nedostatku, který je společný pro všechny hlasové dálkové ovládače. Uživatel si musí zapamatovat znění všech povelů nazpaměť. Jedinou pomocí mu je seznam napsaných povelů na kusu papíru.
1.1.3
Hlasové ovládání pomocí mobilních telefonů
I přes malý počet modelů mobilních telefonů, které mají dostatečně silný infračervený vysílač, existuje pro tato zařízení několik programů sloužících k ovládání TV hlasem. Mobilní telefony používají pro ovládání TV infračervené záření, což sebou přináší výhody a nevýhody tohoto záření (viz bezdrátová komunikace - str. 2). Dalšími výhodami a nevýhodami jsou specifika mobilů samotných (viz výčet externích zařízení: mobilní telefon - str. 3). K většině mobilních telefonů lze přidat externí mikrofon a tím zvýšit možnost efektivnějšího hlasového rozpoznávání. Aplikace TV remote controller (informace o tomto produktu jsou čerpány z internetových stránek výrobce [8]) je jedním z představitelů této skupiny. Jedná se o program určený pro Pocket PC, Pocket PC 2002 a Pocket PC 2003 s operačním systémem Windows Mobile 2005 a novějším. Slouží jako universální dálkový ovladač pro TV (a další zařízení). Obdobně jako u Voice Me II se umí naučit akce přímo od dálkových ovladačů zařízení, která chceme ovládat. Aplikace lze ovládat hlasem a umí rozeznat 25 hlasových příkazů (na řečníku závislých). Cena za TV remote controller se pohybuje kolem $15. Dalším použitelným produktem je BlueIR (informace o tomto produktu jsou čerpány z internetových stránek výrobce [9] a z vlastního testování). BlueIR se skládá ze dvou částí: BlueIR zařízení a BlueIR aplikace. BlueIR zařízení je malá krabička s infračerveným přijímačem a vysílačem, která se dokáže pomocí rozhraní Bluetooth spárovat s mobilním telefonem (nebo tabletem). BlueIR aplikace je program, určený pro operační systém Android, který umí skrze BlueIR zařízení ovládat TV (a další). Tento produkt se umí naučit akce od ostatních dálkových ovladačů, ale obsahuje i velikou databázi (kolem 1000 záznamů) existujících dálkových ovládačů, jejichž funkci umí emulovat. BlueIR poskytuje možnost ovládání pomocí hlasu. Nicméně výrobce se rozhodl pro hlasové ovládání, které se nedá 5
přizpůsobit na hlas jednotlivých řečníků. Cena BlueIR se pohybuje kolem částky e20. Velkou výhodou dvou výše popisovaných aplikací je již zmiňovaná možnost použití externího mikrofonu, kterým se dá omezit negativní vliv zvuků TV, a tím zefektivnit rozpoznávání příkazů.
1.1.4
Hlasové ovládání PC
Existují projekty, které se snaží ovládat TV infračerveným zářením pomocí PC. Jedním z nich je Pomůcky a aplikace pro osoby se sníženou schopností pohybu a reakce, o kterém se dá dočíst na internetových stránkách tohoto projektu [10]. Obdobných aplikací není mnoho a není jednoduše dohledatelná žádná, která by navíc poskytovala hlasové ovládání. PC se dá použít pro ovládání TV i pomocí kabelů (viz výčet externích zařízení: PC - str. 2). Existuje více aplikací, které jsou určeny pro tento druh propojení PC s TV - např. MythTV, XBMC, Windows Media Center (informace o těchto jsou čerpány z internetových stránek jednotlivých programů [11], [12], [13]). Avšak žádná z nich v základu nepodporuje hlasové ovládání. V dnešní době existuje mnoho aplikací, které slouží pro ovládání počítače hlasem. Všeobecná snaha je vytvořit je tak, aby byli schopny ovládat co nejvíce externích programů. Tento přístup má veliké výhody, ale nese sebou i značné komplikace. Většinou se pomocí těchto produktů dají ovládat jen základní funkce externích programů anebo je jejich ovládání zbytečně složité. Pro výslednou aplikaci je důležité, aby její ovládání bylo co nejjednodušší a nejintuitivnější. Je určena pro každodenní použití a bylo by nepříjemné, kdyby se TV musela (kvůli univerzálnosti) složitě ovládat (například pro spuštění jednoho určitého televizního programu by se místo pár povelů muselo vyřknout velké množství příkazů). Další snahou většiny těchto aplikací je, aby se hlasové ovládání nemuselo přizpůsobovat řeči jednotlivých řečníků - to umožňuje jednoduchý víceuživatelský přístup. Takovéto programy nejsou pro cílovou skupinu vhodné, neboť je nutně potřeba, aby se hlasové ovládání přizpůsobilo řečníkovi. VoxCommando slouží pro hlasové ovládání obzvláště multimediálních aplikací - např. XBMC, MediaMonkey, iTunes, Windows Media Center (všechny informace o VoxCommando jsou čerpány z internetových stránek tohoto projektu [14], [15]). Tím, že se tento program úzce specializuje na ovládání konkrétních aplikací, nabízí možnost jejich jednoduchého ovládání a dokáže spustit jejich téměř libovolnou funkci. Hlavní výhodou VoxCommando je jeho výroba na míru ovládaných aplikací. Nesnaží se zcela nahradit ostatní vstupní zařízení (klávesnici a myš), pouze zjednodušuje, zpříjemňuje ovládání některých programů. Jejich ovládání tedy není tolik pracné jako u univerzálních hlasových ovladačů. Mezi nedostatky VoxCommando patří jeho malý počet podporovaných jazyků: angličtina, francouzština, němčina, španělština, čínština a japonština. Uživatelé si i přesto mohou vybrat jiný jazyk, než ten kterým mluví, a přizpůsobit si rozpoznávač své řeči. Nicméně si musí slova pro ovládání volit velice opatrně - nesmí obsahovat žádné specifické znaky pro jazyk, kterým mluví uživatel, a ani se nesmí při výslovnosti používat zvuky, které neobsahuje vybraný jazyk. S tímto přístup by byl VoxCommando pro jedince s vážnou poruchou (jsou schopni vyprodukovat 6
pouze pár zvuků) hodně těžko nastavitelný nebo přímo nepoužitelný. Existuje velká řada dalších aplikací, které slouží k hlasovému ovládání PC. Ve většině případech jsou vytvářeny co nejvíce univerzálně a některé mají problém s přizpůsobováním se řeči uživatele. Windows Speech Recognition (informace jsou čerpány z internetových stránek výrobce [16]) je aplikace sloužící pro hlasové ovládání počítače s operačním systémem Microsoft Windows. Je poskytována v základě Microsoft Windows Vista a Microsoft Windows 7 (pouze ve verzích s anglickou jazykovou mutací). Umožňuje ovládání myši, spouštění aplikací, ovládání jejich menu a další. Simon (informace jsou čerpány z internetových stránek výrobce [17]) je Open-source program pro rozpoznávání řeči. Jeho autoři dokonce zmiňují, že by měl být schopný nahradit klávesnici a myš. Snaha při tvorbě této aplikace tedy byla, aby dokázala ovládat libovolný program. Simon se dá nastavit, aby se přizpůsobil uživatelovi řeči. Dragon Speech Recognition Software (informace jsou čerpány z internetových stránek výrobce [18]) je skupina programů sloužících k usnadnění používání počítače. Umožňuje pomocí hlasu vytvořit a upravovat dokumenty, zapínat aplikace, otevírat soubory, ovládat myš a další. Jedná se o komerční (placený) produkt, jehož cena se pohybuje kolem $100 $200 podle množství funkcí, které jsou obsaženy v kupovaném produktu. V rámci projektu Duhový most je vyvíjena aplikace MyVoice (informace jsou čerpány z internetových stránek výrobce [19]). Slouží pro hlasové ovládání počítače tělesně postiženými osobami. Měla by být upravena pro jejich potřeby. Funguje pod OS Microsoft Windows. Bohužel není není zdarma - základní cena je kolem 6.600 Kč. Všechny tyto produkty spojuje jejich univerzálnost, což sebou přináší i negativní stránky tohoto přístupu. Neumožňují využívat celou funkčnost ovládaných aplikací a takovéto ovládání je časově náročné a pracné. Navíc některé z nich mají problém s českým jazykem a přizpůsobování se řeči konkrétních uživatelů (Windows Speech Recognition).
1.2
Zhodnocení a porovnání existujících řešení
Žádné z výše popsaných aplikací a zařízení nejsou vyráběny se specializací pro jedince s poruchou hybnosti a řeči (kromě produktu MyVoice - viz kap. 1.1.4). Největším jejich nedostatkem je nepřizpůsobitelnost na hlas řečníka, případně na malé množství zvuků, které jsou někteří vážně hlasově postižení jedinci schopni vyprodukovat. Z aplikací na PC se pouze VoxCommando (viz kap. 1.1.4) přímo zaměřuje na hlasové ovládání vhodných programů pro přehrávání televizního signálu. U ostatních se v různé míře objevuje snaha o univerzální hlasové ovládání, kterým by se dalo ovládat co nejvíce funkcí PC. Cena za tuto univerzálnost je pracnější ovládání. Pokud se zaměříme pouze na dosažení cíle hlasového ovládání TV, pak z výše popsaných řešení považuji za uživatelsky nejpříjemnější televizi Samsung UE55ES8000 (viz kap. 1.1.1). K TV není potřeba přidávat žádné externí zařízení a tím odpadá i jejich synchronizace. Na obrazovce se zobrazují slova, která slouží k ovládání TV a díky tomu si uživatel nemusí pamatovat všechny příkazy nazpaměť. Tím, že se jedná o jediné zařízení, se může zvýšit efektivnost hlasového ovládání (viz echo cancellation - str. 3). Pokud se zaměříme na další možná využití hlasového ovládání, pak jsou na 7
tom lépe ostatní řešení. Hlasové dálkové ovládače i hlasové ovládání pomocí mobilů umožňuje ovládat i jiná zařízení s infračerveným přijímačem - např. rádio nebo DVD přehrávač. Velké využití má i hlasové ovládání PC. Pomocí tohoto přístupu se může přehrávat nejen televizní programy ale i hudbu, videa, prohlížet fotografie a mnoho dalšího. Důležité u těchto možných rozšíření je zachovat důraz na jednoduchost ovládání - mělo by se jednat pouze o pár příkazů, které je pro ovládání nutné vyslovit. Na toto dávají důraz některé hlasové dálkové ovladače (např. Voice Me II - viz kap. 1.1.2) a hlasové ovládání pomocí mobilů (např. TV remote controller - viz kap. 1.1.3). Dokáží se naučit příkazy od původních ovladačů a pouze k těm se přiřadí konkrétní slova. Z hlediska dostupnosti jsou na tom nejlépe hlasová ovládání pomocí PC (viz kap. 1.1.4) a mobilních telefonů (viz kap. 1.1.3). Většina těchto aplikací se dá stáhnout z oficiálních internetových stránek výrobců. Program Simon je zcela zdarma a Windows Speach Recognition obdržíte zdarma k některým verzím operačního systému Microsoft Windows. TV remote controller nebo BlueIR se dá pořídit za relativně nízkou cenu. Při využívání PC přibývá nutnost sehnat si vhodný kabel pro propojení s TV a prvotní nastavení komunikace mezi těmito zařízeními. Efektivnost hlasových ovládačů se může hodně lišit a u výše popsaných řešení se nedá jednoduše otestovat, porovnat. Jednak k většině z nich není volný přístup (jsou placené) a jednak vhodné otestování je příliš časově náročné a tím přesahuje rámce této práce.
1.3
Specifikace výsledné práce
Ze začátku této kapitoly (viz kap. 1) jsou popisovány čtyři druhy zařízení, pomocí kterých by se dalo zajistit hlasové ovládání TV, a to TV (bez přidaného externího zařízení), PC, mobilní telefon a specializované zařízení. Jak je popsáno výše, TV, které by měli vhodné rozhraní pro přeprogramování, nejsou běžně dostupné. U specializovaných zařízení je překážkou jejich nedostupnost. Takovéto zařízení by bylo možné v rámci této práce vyrobit, ale běžný uživatel by k němu neměl přístup. Vhodný způsob, kterým jsou mobilní telefony schopny komunikovat s TV, je přes infračervený port. Nicméně infračervený vysílač není dnes v mobilech příliš častý a dosah vysílačů je v některých případech příliš krátký. Pokud by výsledná aplikace byla vytvořena pro mobilní telefony, pak by ji mohlo využívat pouze pár jedinců. Největší nevýhodou u PC je jeho cena. Pokud by PC komunikovalo s TV přes infračervený port, pak by bylo možné používat PC i k jiným činnostem. Nicméně u tohoto přístupu se ztrácí výhody jednoho přístroje, které jsou popsány u hlasově ovladatelných TV (viz kap. 1.1.1). V případě, kdy by PC bylo propojeno s TV přes kabely, by tyto výhody mělo. PC by zpracovávalo televizní signál a TV by sloužilo pouze jako zobrazovací zařízení. PC by mělo veškeré informace o zvuku, který by z TV měl vycházet. Mohlo by tedy využívat algoritmy pro zefektivnění rozpoznávání řeči - např. echo cancellation. Dále by ovlivňovalo, co se na obrazovce zobrazí. Mohlo by obdobně jako televize Samsung UE55ES8000 (viz kap. 1.1.1) zobrazovat možné příkazy, které lze vyslovit. Nicméně v tomto případě by se PC muselo vyhradit pouze pro komunikaci s TV. Kdyby mělo provádět během ovládání TV ještě jinou činnost, nastala by tím řada problémů - např. přes obraz vysílaného pořadu by se mohla zobrazovat jiná okna atd. 8
Výsledná práce bude hlasově ovládat TV pomocí PC a to s využitím kabelového propojení. Hlavními důvody jsou dostupnost PC pro uživatele, výhody jednoho přístroje (viz kap. 1.1.1) a množství možných rozšíření výsledné aplikace (viz kap. 1.2). Mezi výhody jednoho přístroje (viz kap. 1.1.1) patří možnost využití algoritmů pro zefektivnění rozpoznávání řeči - např. echo cancellation. Nicméně, tyto algoritmy nejsou pro hlasové ovládání nutné (pouze zvyšují efektivnost). Vzhledem k omezené kapacitě zdrojů během vývoje tedy nebudou implementovány. Nicméně výsledná práce musí být zdokumentována natolik, aby se v ní dalo dobře vyznat a tyto algoritmy jednoduše doprogramovat. Výsledná práce bude splňovat následující body. 1. TV bude ovládána přes PC. 2. TV bude s PC propojena pomocí kabalu. Tato práce nijak blíže nespecifikuje konkrétní druh kabelu a to z důvodu různých portů na konkrétních TV a PC. Pro testování výsledné aplikace bude použit kabel SCART - S-video. 3. Veškeré složitější akce (nastavení) bude možné provést najednou a to hned při prvním spuštění výsledné aplikace. 4. Hlasové ovládání bude schopné přizpůsobit se řeči jednotlivých uživatelů a bude brát v úvahu jejich možnou malou slovní zásobu. 5. Vycházející zvuk z TV nebude považován za příkazy uživatele.
9
2. Návrh řešení Na konci minulé kapitoly (kap. 1.3) jsou shrnuty požadavky na výslednou práci a v následujících podkapitolách se uvádí, jakým způsobem se jendotlivé požadavky naplní a podrobnosti o návrhu výsledné aplikace.
2.1
Architektura aplikace
Výsledná aplikace je logicky rozdělena do tří hlavních částí: Subject (subjekt), Observer (pozorovatel), Application (aplikace). Subject klasifikátor řeči
Application
Observer příkazy
manažer
volání metod
přehravač TV signálu
Obrázek 2.1: SOA Účel Application je zajisti přehrávání TV signálu a ovládání TV. Subject má za úkol přijímat uživatelovu řeč a převádět ji na rozpoznaná slova, příkazy (obsahuje tedy klasifikátor řeči). Observer funguje jako manažer, který rozhoduje o tom, jak se má zachovat Application na jednotlivé příkazy uživatele zpracované v Subjectu (tj. příkazy rozeznané klasifikátorem řeči). Části Observer a Application se společně označují jako modul. Vztah mezi subjektem a pozorovatelem se řídí návrhovým vzorem Observer Observer Pattern.
2.1.1
Návrhový vzor
Návrhové vzory jsou soubor řešení častých obecných problémů, na které se může narazit při návrhu aplikace. Andrej Alexandrescu o nich ve své knize [20] napsal: Návrhové vzory jsou vydestilovanými částmi kvalitních návrhů - recepty pro korektní, znovupoužitelné řešení problémů, na které je možné narazit v mnoha kontextech. Návrhové vzory se koncentrují na poskytování slovníků pro vyjádření návrhů. Popisují problém, časem prověřené řešení včetně jeho variant a důsledky zvolení té které varianty tohoto řešení.
2.1.2
Observer Pattern1
Observer Pattern neboli návrhový vzor Observer řeší jeden konkrétní druh spolupráce mezi objekty. Umožňuje šíření události (událostí se zde chápe jakákoliv zajímavá změna), jež nastala v jednom nezávislém objektu zvaném Subject, všem podřízeným - závislým objektům označovaným jako Observer. 1 Informace o Observer Pattern byly čerpány z internetových stránek zabývajících se touto problematikou [21] [22].
10
Subject observers attach(Observer) dettach(Observer) notify()
Observer update()
Obrázek 2.2: Observer schéma Subject uchovává seznam objektů (observers), které chtějí od něho odebírat informace o jeho stavu. Obsahuje také veřejné metody, které slouží pro přihlášení (attach), odhlášení (dettach) jednotlivých Observerů k odběru událostí a pro informování o změně stavu všech přihlášených objektů (notify). V Observeru se nachází veřejná metoda pro jeho aktualizaci (update). Tu volá Subject v kýžený okamžik na všech u něho registrovaných Observerech.
2.1.3
Aplikace Observer Pattern
Spolupráce částí programu Subject a Observer probíhá jako mezi jejich jmenovci v návrhovém vzoru Observer. Pokud se klasifikátoru řeči obsaženému v Subjectu podaří rozeznat v řečníkově promluvě nějaký příkaz, pak informuje všechny registrované pozorovatele (v tomto případě pouze toho, jenž komunikuje s přehrávačem TV signálu) o jeho vyřčení. Dále už bude záležet na konkrétním nastavení Observerů. Subject
příkazy
klasifikátor řeči
Application
Observer 1. manažer
volání metod
přehravač TV signálu
registrace příkazy registrace
Application
Observer 2. manažer
volání metod
další aplikace
Obrázek 2.3: Multi SOA Tento návrh aplikace umožní, aby se dali jednoduše přidávat další podprogramy, které budou ovladatelné hlasem. Pokud by tedy v budoucnu bylo žádoucí, aby řečník ovládal řečí i další aplikace, bude stačit přidat nový modul - tj. vytvořit a vhodně nastavit nového Observera a Application.
11
2.2
Subject
Stěžejní části výsledného programu je klasifikátor řeči, zařízení schopné rozeznávat promluvu řečníka. Jeho úkolem je snímat veškerý zvuk, rozeznat v něm jednotlivá slova a ta vhodně reprezentovat a následně rozhodnout o jaké slovo se jedná. Subject (viz kap. 2.1) je jakousi obálkou, která obaluje klasifikátor řeči a rozšiřuje ho o funkčnost informování registrovaných Observerů o rozpoznaných slovech.
Prefilter
VAD Feature extractor
Rozpoznávač slov
Obrázek 2.4: Klasifikátor řeči Klasifikátor řeči se dá rozdělit na čtyři základní části: Prefilter, Voice activity detector (detektor řeči - dále jen VAD), Feature extractor a Rozpoznávač slov (viz obr. 2.4). Prefilter na svém vstupu přijímá digitalizovaný zvukový signál a provádí jeho prvotní úpravy. VAD má za úkol v přijatém zvuku detekovat a ohraničit jednotlivá slova, která posílá na svůj výstup. Feature extractor převádí vstupní digitalizovaný signál na vhodnější reprezentaci. Rozpoznávač slov dostává na svém vstupu neznámá slova a rozhodne, o která slova se jedná. Pořadí jednotlivých částí klasifikátoru řeči je znázorněno na obrázku výše (viz obr. 2.4). Pouze pořadí u VADu a u Feature extractoru není přesně dané. Některé druhy VADu využívají reprezentaci zvuku získanou od Feature extractoru a jiné pracují přímo s neupravenou digitalizovanou podobou zvuku. Ve výsledné aplikaci VAD předchází Feature extractoru (viz kap. 2.2.4). Klasifikátory řeči jsou v dnešní době na poměrně dobré úrovni. Sice prozatím nedokážou bezchybně rozpoznat promluvu libovolného řečníka, který používá jakákoliv slova z daného jazyka, ale potýkají se s většími úspěchy v menších úlohách (omezená množina slov, menší okruh řečníků atd.).
2.2.1
Specifikace klasifikátoru řeči
V publikacích Komunikace s počítačem mluvenou řečí [1] a Mluvíme s počítačem česky [2] se autoři zabývají problematikou klasifikátorů řeči a zmiňují se o aspektech, které klasifikátory ovlivňují, a o jednotlivých kritériích, podle nichž se mohou dělit do různých skupin. Složitost řešené úlohy Klasifikátory řeči můžeme rozdělit podle složitosti řešené úlohy: 1. rozpoznávání izolovaných slov - jedná se o rozpoznávání vyslovených povelů (jedno slovo odpovídá jednomu povelu) - většinou je dostatečný relativně malý slovník, kde slovníkem se rozumí množina slov rozeznatelných klasifikátorem řeči. 12
2. rozpoznávání mluveného diktátu - slova jsou vyslovována izolovaně, s krátkou mezislovní pauzou - slovník může obsahovat mnoho slov (tisíce) 3. rozpoznávání souvislé řeči - slova jsou rozpoznávaná při běžné promluvě (čtená řeč, přednes atd.) - rozsáhlé slovníky (desetitisíce slov) Pro ovládání TV stačí malá množina příkazů. Z tohoto důvodu je pro výsledný klasifikátor dostatečné rozpoznávat izolovaná slova. Odlišnosti v hlase jednotlivých řečníků Hlas jedné osoby se liší od hlasu ostatních lidí. Způsobuje to více faktorů, mezi které patří např. odlišný způsob artikulace nebo parametry hlasového ústrojí (tvar dutiny hrdelní, ústní, nosní, frekvence kmitání hlasivek aj.). Klasifikátory řeči lze tedy dělit na: 1. klasifikátory na řečníku závislé - jsou závislé na hlase jednoho řečníka nebo menší skupiny řečníků 2. klasifikátory na řečníku nezávislé - jsou trénovány na hlasy mnoha řečníků (až tisíce) Cílovou skupinou, pro kterou je tento program vyvíjen, jsou jedinci s poruchu řeči. Je tedy na místě, že výsledný klasifikátor je na řečníku závislý. V opačném případě by vůbec nemusela být jednotlivá slova ze slovníku rozpoznána. Odlišnosti v hlase řečníka Hlas jedné osoby může být odlišný v různých situacích v závislosti na okolních vlivech, náladě řečníka, jeho zdravotním stavu atd. Málokdy se stane, aby jedno slovo vyslovené v různých okamžicích bylo naprosto stejné. Hlavní příčina je v proměnlivosti časování a to jak časové délky celého slova, tak poměrné délky jeho jednotlivých částí. Výsledný klasifikátor bere tento poznatek v úvahu (viz kap. 2.2.6). Akustické pozadí Akustickým pozadím rozumíme všechny zvuky, v kterých by se klasifikátor neměl snažit rozeznávat slova ze slovníku (okolní šum - zvuk projíždějících aut, hudba atd. - a rušení přenosového kanálu). Pokud se bude řečník nacházet v oblasti, kde se značně mění akustické pozadí, pak bude těžší pro klasifikátor správně rozpoznávat mluvu řečníka. Obzvláště se bude hůře identifikovat začátek a konec slov a zpracovávat slabé frikativy. Součástí akustického pozadí bude zvuk vycházející z TV. Jedním ze způsobů jak by si s takto hlasitým pozadí mohl klasifikátor řeči poradit je algoritmus echo cancellation (viz kap. 1.1.1). Avšak jak je výše popsáno (viz kap. 1.2), není tento algoritmus vzhledem k omezené kapacitě zdrojů během vývoje implementovány. Nicméně výsledný klasifikátor zvyšuje odolnost vůči takto hlučnému akustickému pozadí výběrem jednoho konkrétního slova, nezvěme ho inicializační 13
slovo, které rozpoznávač převádí ze stavu spánku do stavu rozpoznávání a zpět. Pokud je rozpoznávač ve stavu spánku, snaží se v řečníkově promluvě rozpoznat pouze inicializační slovo. Pokud ho rozpozná, začne rozpoznávat i ostatní slova ze slovníku. Pokud řečník vyřkne inicializační slovo ve stavu rozpoznávání, pak uvede rozpoznávač do stavu spánku. Při přechodu ze stavu spánku do stavu rozpoznávání se ztlumí zvuk TV a tím se vylepší akustické pozadí. Při rozpoznávání ve stavu spánku (zvuk TV není ztlumený) jsou nastavena přísnější kritéria pro určení o jaké slovo se jedná. Pokud si řečník vhodně vybere inicializační slovo (nemělo by obsahovat slabé frikativy a mělo by mít znělý začátek a konec), pak se tímto způsobem částečně odstraní problém s hlučným akustickým pozadím. Metody rozpoznávání Podle aplikovaných metod rozpoznávání můžeme klasifikátory rozdělit do dvou základních skupin: 1. klasifikátory, které porovnávají se vzory - slovo se zpracovává jako celek - je zapotřebí funkce F , která určí vzdálenost mezi dvěma slovy - slovo je klasifikováno jako ten vzor ze slovníku, ke kterému má (podle F ) nejmenší vzdálenost - pro určení vzdálenosti se nejčastěji používá metody dynamického programování, která pracuje s nelineární časovou normalizací pomocí tzv. nelineární bortivé funkce (dynamic time warping - dále jen DTW) - podle toho je také tento algoritmus označován jako DTW (blíže viz kap. 2.2.6) - využívá se pro rozpoznávání izolovaných slov a mluveného diktátu (malé a středně velké slovníky) - klasifikátor je obvykle na řečníku závislý - výhody: jednoduché trénování klasifikátoru (při malých slovnících), kde trénováním je chápán proces, při kterém se klasifikátor učí rozpoznávat jednotlivá slova - nevýhody: nedokáže rozpoznávat souvislou řeč 2. klasifikátory, které využívají statistické metody - slovo se může zpracovávat jako celek nebo je rozděleno na menší subslovní jednotky (např. slabiky, fonémy) - slova jsou modelována pomocí tzv. skrytých Markovových modelů - slovo je klasifikováno jako ten vzor ze slovníku, jehož model ho generuje s největší pravděpodobností - využívá se pro rozpoznávání izolovaných slov, mluveného diktátu i souvislé řeči (rozsáhlé slovníky) - klasifikátor může být na řečníku závislý i nezávislý - výhody: svede rozpoznávat i souvislou řeč - nevýhody: při malých slovnících je obvykle (v případě, že slova jsou rozdělena na menší subslovním jednotky) pracné trénování klasifikátoru V dnešní době se jednoznačně nejčastěji využívají klasifikátory založené na statistických metodách a to především pro jejich schopnost rozpoznávat souvislou řeč. Výsledný program nepotřebuje umět rozpoznávat souvislou řeč, a proto jeho 14
klasifikátor využívá porovnávání se vzory - tím splňuje i výše popsané požadavky na rozpoznávání izolovaných slov a na závislosti na řečníkovi.
2.2.2
Zpracování a reprezentace zvuku
Josef Psutka ve svých publikacích o komunikaci s počítačem [1] [2] uvádí, jakým způsobem dochází ke zpracování zvukové vlny v počítači a jak se dále zvuk ve své digitální podobě zpracovává pro další účely rozpoznávání slov. V první fázi dochází k převedení zvukových kmitů řečového signálu do digitální (číslicové) podoby. Jedním ze základních algoritmů pro tuto akci je Pulsní kódové modulace (dále jen PCM). Digitalizaci provádí zvuková karta, které se zadávají parametry ovlivňující tento proces. Mezi základní z nich patří frekvence vzorkování a počet úrovní kvantování - oba dva parametry udávají přesnost digitalizace zvukových kmitů (čím vyšší hodnoty budou nabývat, tím bude docházet k menší ztrátě informací za cenu větší časové náročnosti). Pro vysoce kvalitní zvukový záznam řečového signálu se v knize Mluvíme s počítačem česky [2] doporučuje nastavit vzorkovací frekvenci na 16-22 kHz a počet úrovní kvantování na 216 . Výsledná aplikace se tohoto doporučení drží (frekvenci má nastavenou na hodnotu 16kHz). Jednotlivá čísla získaná digitalizací se označují jako vzorky (neboli sample). Zvukový signál zpracovaný PCM obsahuje velkou informační redundanci a pro rozpoznávání slov by bylo příliš časově náročné pracovat s takovouto formou zvuku. Proto se zvuk v této podobě dále zpracovává a získávají se z něho tzv. příznaky (neboli feature). Příznak je reprezentován jako posloupnost čísel (v některých případech se jedná pouze o jednoprvkové posloupnosti). Při procesu vytváření příznaků se redukuje redundance informací a zvýrazňují se zajímavé prvky zvuku. Jednotlivá slova jsou pak reprezentována jako posloupnost takovýchto příznaků.
2.2.3
Prefilter
2.2.4
VAD
2.2.5
Feature extractor
2.2.6
Rozpoznávač slov
2.3
Application - přehrávač DTV signálu
TODO: Popis aplikací které přehrávají DTV signál a které by se dali použít. Výběr XBMC + popis jeho ovládání.
15
3. Implementace TODO: Poznámky k samotné implementac: použitý programovací jazyk, Qt knnihovna, hlavní objekty a datové struktury, vlákna atd. Programátorská a uživatelská dokumentace.
16
4. Možnosti rozšíření TODO: Popsat různé možnosti rozšíření. Jakým dalším směrem by se vývoj aplikace mohl vydat. Popsat způsob přidání nově ovládaného programu.
17
Závěr
18
Seznam použité literatury [1] Psutka, Josef. Komunikace s počítačem mluvenou řečí. 1. vydání. Praha: Academia, 1995. ISBN 80-200-0203-0. [2] Psutka, Josef, et al. Mluvíme s počítačem česky. 1. vydání. Praha: Academia, 2006. ISBN 80-200-1309-1. [3] Jurafsky, Daniel, Martin, H. James. Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition. 1. vydání. USA: Prentice-Hall, 2000. ISBN 0-13095069-6. [4] Huang, Xuedong, Acero, Alex, Hon, Hsiao-Wuen. Spoken language processing: a guide to theory, algorithm, and system development. 1. vydání. USA: Prentice-Hall, 2001. ISBN 0-13-022616-5. [5] Archer, John. Samsung Smart TV voice and gesture control systems review [online]. c2003-2011, poslední úpravy 14.2.2012 [cit. 2012-04-01]. http://www.trustedreviews.com/samsung-smart-tv-voice-and-gestu re-control-systems TV review. [6] Home - Voice Me UK [online]. [cit. 2011-04-25]. TODO: použít novější den citace - momentálně je tato stránka ve výstavbě. http://www.voicemeuk.com/. [7] Techmoan. TODO: Mám tady nechat tento nick? Techmoan Techmoan - Voice Activated Remote Control [online]. poslední úpravy 4.11.2010 [cit. 2012-04-03]. http://www.techmoan.com/blog/2010/11/4/voice-activated-remote-c ontrol.html. [8] TV remote controler [online]. [cit. 2012-04-04]. http://www.pdawin.com/en/windows-mobile/tv-remote-controller. [9] BlueIR, Universal Remote Control for ANDROID [online]. [cit. 2012-04-04]. http://www.pdawin.com/en/android/blueir. [10] Pomůcky a aplikace pro osoby se sníženou schopností pohybu a reakce — Nature Inspired Technologies Group [online]. c2011, [cit. 2012-04-04]. http://nit.felk.cvut.cz/projects/pomucky. [11] MythTV, Open Source DVR [online]. c2002-2012, [cit. 2012-04-04]. http://www.mythtv.org/. [12] XBMC [online]. c2003-2012, poslední úpravy 24.3.2012 [cit. 2012-04-04]. http://xbmc.org/. [13] Windows Media Center - Microsoft Windows [online]. c2012, [cit. 2012-0404]. http://windows.microsoft.com/en-US/windows/products/windows-med ia-center. 19
[14] VoxCommando - Speech Recognition and control for Multimedia [online]. [cit. 2012-04-06]. http://voxcommando.com/. [15] Main Page - VoxCommando [online]. poslední úpravy 13.11.2011 [cit. 201204-04]. http://voxcommando.com/mediawiki/index.php?title=Main Page. [16] Windows Speech Recognition in Windows Vista [online]. c2012, [cit. 201204-06]. http://www.microsoft.com/enable/products/windowsvista/speech.asp x. [17] simon listens: Home [online]. c1998-2006,2007-2008, [cit. 2012-04-06]. http://www.simon-listens.org. [18] Nuance - Dragon - Dragon NaturallySpeaking [online]. c2002-2011, [cit. 201204-06]. http://www.nuance.com/dragon/index.htm. [19] Fugasoft - informační systémy a informační technologie - Myvoice [online]. c2005-2010, poslední úpravy 15.3.2012 [cit. 2012-04-06]. http://www.fugasoft.cz/index.php?cont=myvoice [20] Alexandrescu, Andrei. Moderní programování v C++: návrhové vzory a generické programování v praxi. 1. vydání. Brno: Computer Press, 2004. ISBN 80-251-0370-6 [21] Observer - Wikipedie [online]. poslední úpravy 16.6.2011 [cit. 2012-05-12]. http://cs.wikipedia.org/wiki/Pozorovatel (návrhový vzor). [22] Pavlíček, Luboš. Objekty - Observer Pattern [online]. poslední úpravy 16.06.2005 [cit. 2012-05-12]. http://objekty.vse.cz/Objekty/Vzory-Observer.
20
Seznam tabulek
21
Seznam obrázků 2.1 2.2 2.3 2.4
SOA . . . . . . . Observer schéma Multi SOA . . . . Klasifikátor řeči .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
22
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
10 11 11 12