Vyuºití interface agent - IBM Student Research Projects
Transkript
Vyuºití interface agent - IBM Student Research Projects
České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů Diplomová práce Využití interface agentů Bc. Petr Švestka Vedoucí práce: Mgr. Jiří Danihelka Studijní program: Elektrotechnika a informatika, strukturovaný, Navazující magisterský Obor: Výpočetní technika 20. června 2010 v Poděkování Chtěl bych především poděkovat vedoucímu této práce Mgr. Jiřímu Danihelkovi za jeho vedení a rady. Dále pak děkuji Ing. Ladislavu Kuncovi za laskavé poskytnutí toolkitu Talking Head, kterým umožnil provedení experimentu v rámci této diplomové práce. vii Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu § 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 20. června 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Abstract This thesis describes the works carried out in the user interface field focusing on interface agents (Embodied Conversational Agents). A brief summary of existing toolkits follows, which can be used for an implementation of an agent in a new application. In the second part, an agent for Twitter is implemented utilizing the experimental ECAF Talking Head toolkit. Abstrakt Práce popisuje dosavadní výsledky oblasti uživatelského rozhraní z pohledu interface agentů (Embodied Conversational Agents). Následuje stručný popis existujících toolkitů využitelných pro implementaci agenta do vlastní aplikace. Ve druhé části je pak, za využití experimentálního toolkitu ECAF Talking Head, sestrojen agent pro sociální sít’ Twitter. xi Obsah Abstrakt ix Obsah xi Seznam obrázků xiii Předmluva 1 I Interface agenti 3 1 Úvod do historie uživatelského rozhraní 1.1 Historie UI . . . . . . . . . . . . . . . . . 1.2 Současný stav a výhled do budoucna . . 5 5 9 2 Interface agenti 2.1 Agent a jeho původ . . . . . . . . . . . . 2.2 Interface agenti v UI . . . . . . . . . . . 11 11 12 3 Vztah člověka a počítače 3.1 Personifikace počítače . 3.2 Psychologie osobnosti . 3.3 Vzhled agenta . . . . . . 3.4 Neverbální komunikace 15 15 17 17 18 4 Aktuální možnosti tvorby ECA 4.1 Hlasová komunikace . . . . . . . . . . . 4.1.1 Rozpoznávání řeči a syntéza hlasu 4.1.2 Hlasové toolkity . . . . . . . . . 4.2 Toolkity pro ECA . . . . . . . . . . . . . 4.2.1 Xface . . . . . . . . . . . . . . . . 4.2.2 Expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 21 23 24 24 25 xii Obsah 4.2.3 4.2.4 4.2.5 4.2.6 II FaceGen . . . . PeoplePutty . . Talking Head . Shrnutí toolkitů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Experiment 26 26 28 29 31 5 Návrh a příprava experimentu 5.1 Záměr a volba prostředků . . . 5.2 Struktura TalkingTwitter . . . . 5.3 Schopnosti ECA . . . . . . . . . 5.4 Způsob práce s TalkingTwitter . . . . 33 33 34 35 37 6 Experiment 6.1 Průběh experimentu . . . . . . . . . . . 6.2 Získané odpovědi . . . . . . . . . . . . . 6.3 Vyhodnocení experimentu . . . . . . . . 39 39 40 41 7 Závěr 7.1 Kde použít ovládání pomocí ECA . . . 7.2 Doporučení pro vývojáře . . . . . . . . . 43 44 44 Literatura . . . . . . . . . . . . . . . . 47 Seznam použitých zkratek 57 A Class diagram TalkingTwitteru 59 B Obsah přiloženého CD 61 xiii Seznam obrázků 2.1 Princip interface agentů . . . . . . . . . 13 4.1 4.2 4.3 4.4 4.5 Implicitní hlava Xface . . . . . . . . . Implicitní hlava Expression . . . . . Obličej vytvořený pomocí FaceGenu Ukázka PeoplePutty . . . . . . . . . Ukázka Talking Head . . . . . . . . . . . . . . 25 26 27 27 28 5.1 5.2 5.3 Princip aplikace . . . . . . . . . . . . . . Deployment diagram . . . . . . . . . . . Využití Talking Head v TalkingTwitteru 34 35 37 A.1 Class diagram . . . . . . . . . . . . . . . 60 . . . . . 1 Předmluva Tato práce je kombinace rešerše a experimentu s interface agenty, proto je text odpovídajícím způsobem rozdělen do dvou částí. První část se zabývá teorií, historií a využitím interface agentů a podává tak ucelený pohled na současné poznání oblasti. Druhá část nazvaná stručně Experiment se věnuje jednoduchému experimentu a jeho vyhodnocení. Práce je psaná česky s výjimkou termínů, které nemají české ekvivalenty – potom se držím originálního anglického názvu. Přeloženy jsou také veškeré definice, i když jako zdroj je uveden text v původním znění. Důležité termíny jsou uvedeny takto: T ERMÍN : Zde je jeho vysvětlení. Klíčová slova jsou při prvním výskytu vyznačena zvýrazněným písmem. Zkratky jsou vždy nejprve vysvětleny a jejich seznam je pak také k nalezení na konci práce. Většina odstavců je doplněna stručným a výstižným shrnutím po stranách textu, které by mělo vést k lepší čitelnosti práce. Text byl vytvořen pomocí sázecího systému LATEX ve verzi MikTEX 2.8 pro Windows s využitím šablony získané od Media Computing Group, RWTH Aachen [Karrer, 2009] v kombinaci se šablonou Katedry počítačů, ČVUT v Praze [Valenta-Tvrdík, 2009]. Dále byla upraven BibTEXový styl csplainnat vycházející z [Mudrák, 2008] tak, aby splňoval požadavky pro sazbu použité literatury dané normou ČSN ISO 690. Kombinovaná práce Definice: Termín Tady je shrnutí odstavce Použité šablony LATEXu 2 Další použité programy Seznam obrázků Schémata byla vytvořena v programu Dia 0.97.1 pro Windows [Web: Dia] pro přípravu screenshots byl využit Paint.NET 3.5.5 [Web: PaintDotNet]. 3 Část I Interface agenti 5 Kapitola 1 Úvod do historie uživatelského rozhraní „If you would understand anything, observe its beginning and its development.“ —Aristotle Pro pochopení významu interface agentů je důležité znát historický vývoj uživatelského rozhraní, čemuž se věnuje tato kapitola. Anglický termín pro uživatelské rozhraní je user interface, a proto je dále v textu používaná zažitá zkratka UI, příp. GUI (Graphical UI). 1.1 Historie UI První počítače byly obrovské systémy, které zabíraly velký prostor – proto se spíše než počítač používal pojem mainframe. Tyto systémy byly velice drahé, a proto i jejich interface byl konstruován tak, aby bylo možné využívat takový systém co nejefektivněji. Uživatelé vkládali svá data na děrných štítcích, systém zařadil vložený program do fronty a uživatel musel počkat hodiny, někdy i dny, na výsledek [Reimer, 2005]. Jakmile byl zadán vstup, uživatel nemohl jakkoli ovlivnit běh programu (výpočtu). Na výpočet mainframu se muselo čekat velmi dlouho 6 Sdílení procesorového času změnilo UI Ovládání pomocí příkazové řádky je pro uživatele náročné Pomocí GUI to jde snadněji Definice: Direct Manipulation Uživatel je odkázán pouze na zadávání dílčích kroků 1 Úvod do historie uživatelského rozhraní Další generace počítačů umožnila sdílení výpočetního času systému více uživateli a to změnilo i jejich UI. Uživatelé nyní mohli spustit svůj program a výsledek získali mnohem rychleji než na mainframu. Mohli tak i efektivněji reagovat např. na chybně zadaná data, aniž by museli čekat na dokončení dlouhotrvajícího programu, který někdo spustil před nimi – procesorový čas byl sdílen. V této generaci se za UI považuje příkazová řádka (command line, CLI). Přístup CLI se někdy označuje jako tzv. verb-noun interface [uidesign.net, 1999]. Tedy nejdřív je zadán příkaz (operace) a potom data (soubor) nad kterými se má daná operace vykonat. Je tedy zřejmé, že tento přístup klade velké nároky na pamět’ uživatele, který je nucen znát příkazy zpaměti. Aktuální generace aplikací již využívá GUI a jeho menu nabídky. Tedy přístup je znám také jako noun-verb [uidesign.net, 1999] a je pro uživatele mnohem jednodušší, protože umožňuje vyvolat nabídku přípustných operací nad danými daty. Klíčovým konceptem je zde tzv. direct manipulation. D IRECT M ANIPULATION : . . . viditelnost objektů; rychlé, reversibilní a inkrementální akce; a nahrazení komplexních povelů příkazové řádky tzv. direct manipulací (DM) daného objektu . . . [Shneiderman, 1983] Při použití DM jsou uživateli okamžitě prezentovány výsledky jím vyvolaných akcí, a tím je posilován dojem, že jsou tyto akce prováděny na reálných objektech [Thomas-Calder, 1996]. Přestože přinesl noun-verb přístup značné ulehčení pro uživatele, neodstranil fundamentálnější problém – počítači se stále musí detailně zadat jednotlivé dílčí kroky vedoucí ke splnění složitějšího úkolu zatímco uživateli je nabízena pouze omezená pomoc (ohledně toho, které kroky musí vykonat) [Maes, 1997]. 1.1 Historie UI Direct manipulation byla podle [Myers, 1998] poprvé využita Ivanem E. Sutherlandem v revolučním grafickém systému Sketchpad [Sutherland, 1963]. Tento systém byl převratný v tom, že umožňoval real-time manipulaci objektů pomocí světelného pera. Do té doby byly totiž počítačové systémy ovládány pomocí příkazů na děrných štítcích či magnetických páskách. Sutherland navrhl Sketchpad jako součást své disertační práce na MIT, které se dále stalo jedním z významných center vývoje GUI. 7 Sketchpad obsahoval první direct manipulation GUI Dalším takovým centrem výzkumu byl Stanford, kde Douglas C. Engelbart navrhl počítačovou myš [Engelbart-English, 1968]. Tato myš měla tělo ze dřeva a místo kuličky snímající směr pohybu zde byly dvě kolečka detekující pohyb ve dvou osách. To způsobovalo, že při pohybu vždy jedno kolečko drhlo o stůl. Engelbart je dále zodpovědný za revoluční systém NLS (oN-Line System), kde bylo vyzkoušeno mnoho nových konceptů, mj. například hypertext, verzování, kontextová nápověda či okna; [Reimer, 2005], [Engelbart-English, 1968]. NLS měl zvláštní vektorový grafický display, který dovedl zobrazovat rovné čáry a text. Tyto koncepty byly dále rozvíjeny hlavně v Xerox Palo Alto Research Center (Xerox PARC), které se tak stalo třetím důležitým centrem vývoje GUI. NLS přinesl mnoho konceptů, které dnes používáme Dalším milníkem v historii UI byly počítače vyvinuté v PARC: Xerox Alto a jeho nástupce Xerox Star. Alto jako první roku 1973 předvedl bitmapový display (velikost a orientace papíru A4), WYSIWYG editor, práci s emaily a unifikované UI napříč všemi aplikacemi. Toto jednotné UI bylo nazváno Smalltalk [Reimer, 2005]. Smalltalk byl první objektově orientovaný programovací jazyk a byl navržený tak, aby ho mohl používat i neprogramátor. Zároveň se však jednalo také o IDE (Integrated Development Environment), ve kterém se psaly aplikace pro Alto. Smalltalk tak poskytoval jednotnou vizuální podobu všem aplikacím systému. Výsledkem bylo tedy takové WIMP (Windows, Icons, Menus, Pointers) GUI jaké známe z dnešních platforem. Smalltalk vytvářel jednotnou podobu GUI 8 Xerox Star přinesl Desktop Metaphor, ale byl příliš drahý Definice: Desktop Metaphor Apple dokázal srazit cenu a prorazil tak se svým systémem 1 Úvod do historie uživatelského rozhraní Alto ale nebyl komerční systém, Xerox se proto rozhodl uvést na trh jeho upravenou verzi v roce 1981 (tedy o 8 let později). Byl to první systém, který komerčně nabídl výše uvedené koncepty. Star byl vskutku převratný v tom, že nabídl tzv. desktop metaphor (office metaphor) – tedy pracoval s termíny kancelářského prostředí (například složka, dokument nebo plocha) a celkově byl zaměřen na počítačové neodborníky. D ESKTOP M ETAPHOR : . . . uživateli je nejprve zobrazena plocha, připomínající kancelářský stůl s příslušným vybavením. Jsou zde obrázky známých objektů – dokumentů, složek, koše atd. Uživatel by měl přemýšlet o těchto objektech jako o skutečných předmětech. Mohou je po ploše posunovat a přesouvat jak potřebují. Mohou je zde ponechat libovolně dlouho a mít tak pracovní plochu plnou a nepřehlednou nebo si mohou dokumenty řadit a zakládat do složek. [Johnson, et al., 1989] Vývoj Staru probíhal rozvíjením myšlenek Alta a designéři firmy Xerox strávili plných 30 člověkolet jen vývojem UI [Smith, et al., 1982]. V tomto zdroji je pak k nalezení i mnoho dalších převratných konceptů tohoto systému. Přes nové myšlenky a nezastupitelný přínos oblasti GUI, ale nebyl Xerox Star úspěšný. Jeho cena byla nastavena příliš vysoko – přes $ 17 000. Další iniciativu ve vývoji GUI následně převzala firma Apple. Do Applu přešlo podle [Reimer, 2005] mnoho bývalých zaměstnanců Xerox PARC. Vývoj počítače pojmenovaném Apple Lisa přinesl další koncepty GUI, které dnes považujeme za standard – mj. klávesové zkratky, zašeděné příkazy menu když jsou nedostupné nebo třeba dvojklik. Lisa byla dokončena roku 1983, ale cena $ 10 000 byla stále příliš vysoká a systém se také neujal. Apple se tedy rozhodl vyvinout ořezanou verzi Lisy (malá pamět’, žádný multitasking, 9" monitor) při zachování jejího GUI. Tento systém představili roku 1984 jako Apple Macintosh a byl nabízen za cenu 1.2 $2 500. Tím pádem se stal komerčně mnohem úspěšnějším. Microsoft byl jedním z externích dodavatelů softwaru pro Apple a měl tak přístup k betaverzím Macintoshe. Toho využil a roku 1985 představil Windows 1.0, které stavěly na GUI Macintoshe. Došlo i k (neúspěšné) žalobě Applu na Microsoft, leč faktem zůstává, že mnoho prvotních nápadů pro Windows pochází od inženýrů Applu. Trojkové verze Windows na začátku 90. let dosáhli obrovské popularity a úspěch byl korunován uvedením Windows 95, které se staly jedním z nejpopulárnějších programů vůbec a Microsoft se tak ujal vedení ve vývoji GUI. Tento systém zavedl mj. nabídku Start či taskbar (hlavní panel). Použitá literatura: [Reimer, 2005], [Myers, 1998]. 1.2 9 Současný stav a výhled do budoucna Microsoft navázal na dílo Apple Windows 95 byl komerčně velmi úspěšný systém Současný stav a výhled do budoucna Současné hlavní počítačové platformy (Windows, Macintosh a UNIX) tedy obsahují WIMP GUI, které má mnoho společného – vznikali totiž způsobem, kdy jeden vývojový team ovlivnil další. Podle [Myers, et al., 2000], má tato uniformita své výhody – uživatelé mohou vcelku jednoduše přecházet mezi jednotlivými systémovými platformami, zatímco vývojáři dovedli jednotlivé koncepty takřka k dokonalosti. U BIQUITOUS C OMPUTING : V dlouhodobém výhledu se osobní počítač stane překonaným, protože výpočetní síla bude dostupná kdekoli: ve stěně pokoje, na vašem zápěstí nebo v tzv. „odpadkových počítačích“ (podle odpadkového papíru) povalujících se všude okolo, tak aby je každý mohl využít jak potřebuje [Weiser, 1993]. WIMP přístup má své výhody i omezení Definice: Ubiquitous Computing 10 Počítače budou tak rozšířené a dostupné, jako je nyní papír a tužka Systémy jsou stále složitější, a uživatelé stále větší laici Vizionářské video s agentním UI 1 Úvod do historie uživatelského rozhraní Na druhou stranu tyto klasická WIMP GUI počítačových systémů jdou proti myšlence ubiquitous computing (pervasive computing, calm technology) tím, že podporují speciální způsob ovládání. Ubiquitous Computing totiž předpokládá, že počítače budou přirozeným způsobem splňovat naše informační potřeby, bez toho abychom museli ovládat zařízení nějakým zvláštním způsobem, tedy bez WIMP. Přestože nám DM přístup sloužil po mnoho let, je pravděpodobné, že bude nahrazen či spíše doplněn jiným typem UI. Při DM musí totiž uživatel iniciovat každou jednotlivou akci, kterou chce aby se vykonala na daném objektu [Maes, 1994]. Jak dále tvrdí Maes v [Shneiderman-Maes, 1997] stávají se počítačové systémy stále složitějšími, zatímco z jejich uživatelů jsou stále větší laici. V [Lieberman-Selker, 2003] je popsán nárůst počtu možných příkazů v typické aplikaci (Microsot Word) jako lineární, který neustále roste. Při zachování stávajícího UI tedy brzo nebude uživatel moci takové aplikace již rozumně ovládat. Microsoft se snaží tento trend odvrátit zavedením Ribbon do některých svých aplikací, nicméně se nedá mluvit o nějaké převratné změně napříč celým systémem. Jednou z možností jak zjednodušit a sjednotit UI se jeví ovládání počítačů (zařízení, systémů a programů) pomocí komunikace s něčím, co imituje chování další osoby – tedy interface agentem. Tento nový koncept byl představen veřejnosti ve vizionářském videu firmy Apple nazvaném Apple Futureshock [Apple, 1987]. Ve videu se prezentují možnosti UI v budoucnosti, kde jsou běžně využíváni interface agenti. Je zde představen agent zvaný Knowledge Navigator, který zde vystupuje v jakési elektronické imitaci osobního asistenta. Počítač ve videu má díky agentovi přímo „helpful and assistive role“ [Lieberman-Selker, 2003] – interakce s počítačem není zaměřena na jednotlivé akce směřující k cíli, ale spíše na cíl samotný. 11 Kapitola 2 Interface agenti „Dvě věci by měli děti získat od svých rodičů: kořeny a křídla.“ —Johann Wolfgang von Goethe 2.1 Agent a jeho původ Abychom se mohli věnovat tématu interface agentů, je potřeba nejprve nadefinovat si pojmy se kterými budeme pracovat. V [Maes-Wexelblat, 1996] se setkáváme s termínem agent, jako konceptem převzatým z oboru umělé inteligence. Může se jednat o nějaké zařízení, které splňuje určité vlastnosti. Podrobnější informace o historii samotného pojmu agent lze nalézt v [Nwana, 1996]. Definice pojmu agent není v oblasti UI nijak přesně vymezen ani definován, pro naše potřeby si však vystačíme s představou asistenta, či rádce. Jako klíčové vlastnosti agentů byly v [Aboulenien-Wilde, 1998] identifikovány: • autonomie: fungování bez zásahu člověka (do určité míry) • spolupráce s ostatními agenty, případně lidmi • učení: agenti vnímají okolí a vhodně reagují Agent pochází z umělé inteligence 12 Agenti by měli být inteligentní 2 Softwarového agenta definujeme jako program, který pomáhá uživatelům počítače při jejich činnosti. Tito softwaroví agenti mohou uživateli například radit, automaticky vykonávat určitou práci nebo ho mohou i zastupovat v jeho nepřítomnosti. Od agentů pak očekáváme, že budou vykazovat alespoň některé znaky lidské inteligence [Lieberman, 1997]: učení, dedukce, nezávislost, tvořivost atd. Vyčerpávající popis, historie, typologie a použití softwarových agentů je uveden v [Bradshaw, 1997] a v [Nwana, 1996]. 2.2 Člověk komunikuje s personifikovaným interface agentem v UI Definice: Interface Agent Interface agenti Interface agenti v UI Termínem interface agent (IA), označujeme agenta, který komunikuje s uživatelem skrze vstup a výstup UI [Lieberman-Selker, 2003]. Interface agent vnímá činnost uživatele a komunikuje s ním, nejčastěji pomocí grafického znázornění postavy (či jen hlavy), více či méně podobné lidským bytostem. Pokud je toto znázornění kvalitní a uvěřitelné, přispívá k budování důvěry uživatele vůči IA [Lieberman-Selker, 2003]. Interface agent by měl evokovat představu osobního asistenta – klíčovým faktem zůstává, že by měl být agent přizpůsobitelný konkrétnímu uživateli [ShneidermanMaes, 1997]. I NTERFACE A GENT: Interface agent je počítačem vyjádřená osobnost, která interaguje s uživatelem společensky přitažlivým způsobem [Lincicum, 2003]. Tento přístup ovládání systému nepřímo skrze agenta se pak nazývá indirect manipulation (IM). Definice: Indirect Manipulation I NDIRECT M ANIPULATION : . . . uživatel je součástí kooperativního procesu, ve kterém jak člověk tak IA mohou iniciovat komunikaci, sledovat události a vykonávat úkoly [Maes, 1994]. 2.2 13 Interface agenti v UI Interface agenti se hodí k řešení složitějších operací (skrývají komplexnost operace – někdy třeba ani není možné vyjádřit akci jednoduše pomocí WIMP), mohou vykonávat úkoly místo člověka, mohou ho i trénovat, a naopak sledují i jeho činnost [Maes, 1994]. Schéma viz obr. 2.1. IA uživatelské rozhraní může skrývat složitost operací Podle [Hector-Narasimhan, 2005] považujeme za jednu z klíčových vlastností agentů jejich autonomii. Každý agent by měl být schopen podat uživateli zprávu o činnostech, které provedl sám v rámci své autonomie [Kozierok-Maes, 1993]. Na filozofické rovině je pak kladena otázka, zda by měl uživatel nést odpovědnost za akce provedené svým agentem [Maes, 1994]. Autonomie je velmi důležitá Jak už bylo uvedeno dříve, terminologie v oblasti agentů je poněkud neustálená – někteří autoři považují interface agenta za druh softwarového agenta, který má nějaký interface, ne nutně však podobu postavy [Maes, 1994]. Dále se objevují pojmy jako avatar nebo Embodied Conversational Agent. Abychom předešli Terminologie je neustálená Uživatel Interaguje Komunikuje Aplikace Sleduje a imituje Uživatelův feedback Interaguje Dotazuje se Interface agent Obrázek 2.1: Princip interface agentů, obrázek adaptován z [Maes, 1994] Další interface agent 14 2 Interface agenti omylům, budeme nadále používat název Embodied Conversational Agent pro interface agenta, se kterým uživatel komunikuje jako s virtuální osobou pomocí hlasu. EMBODIED CONVERSATIONAL AGENT: Definice: embodied conversational agent Implementovat uvěřitelné ECA je velmi složité Embodied Conversational Agent (ECA) je takový interface agent, který má podobu postavy a zároveň využívá jak verbální tak i neverbální prostředky ke komunikaci s uživatelem. Cesta k využití ECA jako prvku UI však není jednoduchá; jsou například identifikovány následující vlastnosti, které očekáváme od bezproblémové komunikace s lidskou bytostí, potažmo pak s ECA [Cassell, 2000]: • rozpoznání verbální i neverbální konverzace (vstup) • tvorba verbální i neverbální odpovědi (výstup) • střídání účastníků v konverzaci • signalizování stavu konverzace a návrhy k dalšímu směřování 15 Kapitola 3 Vztah člověka a počítače „Charakter člověka se pozná až tehdy, když se stane nadřízeným.“ —Erich Maria Remarque Stávající DM uživatelská rozhraní jsou známá pocitem kontroly, který v uživatelích vyvolávají – žádná akce totiž není provedena bez toho, aby ji uživatel nejprve vyvolal. Tato důvěra, lze-li tak tento pocit kontroly nazvat, musí být obsažena i v agentním UI. 3.1 Personifikace počítače Podle [Koda-Maes, 1996] má UI obsahující interface agenta tyto účinky: • pomáhá uživateli lépe se zapojit do dané činnosti • vnímaná inteligence agenta je určována ne jeho zjevem, nýbrž jeho schopnostmi Dále autoři tvrdí, že klíčovým krokem k úspěšnému agentnímu UI je uživatelovo povědomí o schopnostech a omezení agenta. Pokud uživatel vnímá agentem provedené akce jako akce, které by on sám býval Agentovy akce musí být přirozené 16 3 Vztah člověka a počítače provedl, je uživatel spíše ochoten přijmout agenta jako svého asistenta [Lieberman, 1997]. Typickým příkladem kdy toto nefunguje je nechvalně známý pan Sponka (Clippy) v předešlých verzích Microsoft Office. Pan Sponka je asi nejznámější inkarnací interface agenta a je velmi smutné, že tak nevhodně připravenou. Byl totiž vytvořen s celou řadou špatných vlastností (nevhodně načasované rady, opakoval se, dal se vypnout pouze velmi složitě atp.), které měli za následek, že ho Microsoft v nových verzích Office raději ponechal implicitně vypnutého [Microsoft, 2001]. Počítač je nevědomky vnímán jako partner I když si to neuvědomujeme vnímáme počítač jako svého partnera při komunikaci s ním. Přestože počítač nijak svým vzezřením nepřipomíná lidskou bytost, aplikujeme na něj vzorce chování známé z mezilidského chování. Tato antropomorfizace (přiřazování lidských vlastností objektům) je, jak tvrdí [Nass-Moon, 2000], nevědomá a označujeme ji jako tzv. CASA (Computers Are Social Actors) paradigma [Nijholt, 2003]. Vědomě zacílená na city byla například hračka Tamagotchi – stačí ukázat náznaky společenské interakce a lidé naváží se zařízením vztah. Agent může být vnímán i jako přítel – musí nám být ale přizpůsoben Měli bychom mít na paměti, že pokud má být agent naším partnerem, měl by nám být také přizpůsoben. Jak dále tvrdí [Nijholt, 2003]: „. . . lidé, které máme rádi (či naši přátelé) jsou schopni nám pomoci lépe, poradit lépe a vůbec komunikace s nimi je větší legrace než s lidmi, které neznáme. Avšak toto ,mít rád‘ závisí na naší osobě. Ne každý má rád určitého člověka a určitý člověk nemůže být oblíben všemi . . . “; agent by se tedy měl adaptovat tak aby se s daným uživatelem spřátelil. Počítači přiřazujeme lidské atributy V článku [Nass-Moon, 2000] je pak dále ukázáno, že jakmile lidé začnou komunikovat s počítačem, objevují se u nich i další aspekty a stereotypy chovaní známé z oblasti sociální psychologie – zdvořilost, pocit sounáležitosti, vzájemnost atd. 3.2 3.2 Psychologie osobnosti Jak uvádí [Nass, et al., 1995] a [Dryer, 1999], může být osobnost z psychologického hlediska vyjádřena1 bodem ve dvourozměrném prostoru na osách dominance– submisivita a vřelost–nepřátelství. Tyto aspekty se přenášejí i do osobností agentů, tak jak je vnímají uživatelé. Ukazuje se, že preferují takového agenta, ve kterém identifikují osobnost podobnou té jejich. 3.3 Asistent bude lepší, pokud má podobnou osobnost jako jeho uživatel Vzhled agenta Jak je ukázáno v [Dryer, 1999], lidé preferují agenty ve formě lidské bytosti oproti karikaturám, abstraktním předmětům, či zvířecím formám. Lidé hodnotí ECA jako inteligentnější než agenty, kteří nemají viditelnou formu, bez toho aby byli skutečně lepší. Přesto podle [Sands, et al., 2007] uživatelé preferují formálně vypadajícího agenta před neformálním (oblečení, mluva příp. mimika). Experiment popisovaný v [RosenbergKima, et al., 2007] ověřil, že informace poskytované hlasem ECA se jeví jako přesvědčivější, než pokud jsou podávané hlasem samotným (bez ECA). ECA tedy zvýrazňuje efekt počítače jako společenského partnera [Zimmerman, et al., 2005]. Preference pohlaví agenta je vázána na povahu činnosti, kterou agent vykonává a jeví se v souladu se společenskými stereotypy. Velmi důležitý je tedy mentální model, který si uživatel vytvoří při představě činnosti agenta fungujícím v dané oblasti použití. Jak dále ukázal [Zimmerman, et al., 2005], mohou mít interface agenti pozitivní efekt ve výuce a přesvědčování (přitažlivá forma – věk zhruba 25 let, obě pohlaví, moderní oblečeni). Na druhou stranu [Dryer, 1999] argumentuje, že interface agent může mít i rušivé účinky. Pokud je agent vyveden dobře, může dokonce vzbudit falešná očekávání např. tím, že reaguje 1 17 Psychologie osobnosti Jedná se o zjednodušení beroucí v potaz pouze nejdůležitější osobnostní rysy, navržené již Aristotelem. ECA dále personifikuje počítač jako společenského partnera Pohlaví agenta by nemělo odporovat spol. stereotypům agentovi činnosti Interface agent má výhody i nevýhody 18 Zatím není prokázáno, že uživatelé preferují ECA oproti klasickému ovládání 3 na hlas, či rozezná mimiku uživatele, i když to není pravda. Otázka, kdy konkrétně tedy použít ECA zůstává otevřená – výzkum zatím není průkazný. Podrobný popis dosažených experimentálních výsledků je uveden ve vyčerpávajícím [Dehn-van Mulken, 2000]. Po provedení experimentu [Sands, et al., 2007] zkoumajícím jak by byl přijímán agent v bankomatu ve srovnání s klasickým ovládáním, ukázali autoři, že uživatelé nejsou nijak výrazně vymezeni v tom, který způsob je pro ně lepší. Autoři tedy navrhují provést další experimenty, aby se ověřila možnost, že dosažené výsledky jsou závislé na věku uživatelů. Je totiž možné až pravděpodobné, že se jedná o generační záležitost (mladší lidé jsou totiž více otevření novinkám). 3.4 Neverbální komunikace má velký vliv na vnímanou spolehlivost agenta Vztah člověka a počítače Neverbální komunikace V [Cowell-Stanney, 2005] je popsáno pět prvků tvořících neverbální komunikaci: 1. výraz obličeje – vhodné změny, jejich správné načasování, přirozený pohyb 2. oční kontakt – udržovaní kontaktu s uživatelem, přitom ale nezírat 3. parajazyk – přizpůsobování rychlosti, výšky, hlasitosti, pauz 4. gesta – musí být spontánní a vyhnout se známkám nervozity a tikům 5. držení těla – otevřená póza značí sebejistotu Neverbální komunikace obličeje je klíčovým prvkem důvěryhodnosti Vše by si mělo vzájemně odpovídat, tak aby se agent jevil jako důvěryhodný a spolehlivý pro uživatele. Autoři [Cowell-Stanney, 2005] provedli experiment za pomoci velmi detailně provedených agentů a potvrdili, že agent používající neverbální komunikaci je vnímán jako důvěryhodnější, než když ji nepoužívá. Zajímavé však je, že výzkum nepotvrdil rovnost mezi 3.4 19 Neverbální komunikace prvními třemi prvky (výraz obličeje, oční kontakt a parajazyk) a posledními dvěma (gesta a držení těla). Přestože se výzkumu zúčastnily pouze ženy (kvůli jejich lepší schopnosti vnímání neverbální komunikace), tak se dá usuzovat, že obličejová část neverbální komunikace je mnohem důležitější a má největší vliv na vnímanou důvěryhodnost komunikace. Proto doporučují zobrazovat interface agentům jen hlavu spíše než celou postavu. Často se tedy používá termín talking head pro takové ECA, které zobrazuje hlavu a je schopno používat hlas (at’ už syntetizovat nebo přehrávat pasáže namluvené člověkem). Několik prací se věnuje ověření kulturních rozdílů napříč národy ve vnímání emocí. Většina emocí je vnímána stejně ve všech kulturách, přesto existují určité rozdíly. Například úklon či různá gesta rukou; některé zjištěné rozdíly mezi USA a Japonskem pak uvádí [Cho, et al., 2007]. Je také důležité si uvědomit, že emoce nemusí být projevovány všude ve stejné míře. Podle [Christoph, et al., 2004] jsou emoce například v Japonsku dávány najevo pouze v extrémních situacích, naopak v západních kulturách je projevování emocí naprosto běžné. Výzkum emocí probíhá také na poli virtuální reality a počítačových her – herní avataři musejí své emoce také zobrazovat, i když jen v omezené míře. Podrobnosti o této oblasti jsou například v [Boberg, et al., 2008]. Některá gesta mohou být vnímána odlišně v jiných zemích 20 3 Vztah člověka a počítače 21 Kapitola 4 Aktuální možnosti tvorby ECA „If I had asked people what they wanted, they would have said faster horses.“ —Henry Ford Tato kapitola stručně popisuje současný stav rozpoznávání řeči a hlasové syntézy a dále pak podává popis dostupných SDKs (Software Development Kits) zaměřených na interface agenty. 4.1 Hlasová komunikace Z důvodu nejednotnosti používání slov hlas a řeč (angl. voice a speech) jsou tato slova ve smyslu hlasové komunikace vzájemně zaměnitelná. 4.1.1 Rozpoznávání řeči a syntéza hlasu Největší problém při ovládání hlasem je správné pochopení toho co je řečeno – věta v lidském jazyce totiž nabízí mnoho možností interpretace. V současné době však neexistuje forma umělé inteligence, která by byla schopna volné komunikace s člověkem (neplést však Pro rozpoznávání řeči se používají především gramatiky 22 4 Aktuální možnosti tvorby ECA s programy snažící se pomocí různých technik splnit Turingův test). Podle [Ferguson, et al., 2001] se sice lze sémanticky omezit na určité kombinace slov, které nám určí smysl nebo na oblast použití, ve které se pohybujeme, přesto se v praxi používají předdefinované scénáře komunikace – bezkontextové gramatiky. Systém pak rozumí pouze omezenému počtu předem daných příkazů a zároveň se tím i zvyšuje přesnost rozpoznání. Příkladem formátu takové gramatiky je JSGF (Java Speech Grammar Format) [Oracle, 2010b]. Některé aplikace nemohou znát všechna slova, se kterými musí pracovat – UI se musí doplnit Omezené možnosti rozpoznávání řeči (angl. speech recognition) způsobují těžkosti v aplikacích, kde se běžně pracuje se slovy, které systém nemůže znát – například se jmény. Potom se musí UI upravit tak, aby byly zobrazeny možnosti výběru. Ty mohou být doplněny číslováním, či výběrem pomocí DM. Jinak musí být tato nová slova předen vložena do systému ve formě uživatelského slovníku, nebo musí být zajištěno, aby se systém mohl učit za běhu. Pro zvýšení spolehlivosti se agent může nejprve přizpůsobit výslovnosti uživatele Odlišným problémem ve své podstatě je podle [Zue-Glass, 2000] správné zpracování různých dialektů a akcentů. Tento problém se nejčastěji řeší tím, že uživatel musí nahlas agentovi předčítat zadaný text, aby se tak mohl na konkrétního uživatele adaptovat. Což není optimální a může to narušovat již od počátku důvěru vůči agentovi. Tento způsob je použit například u operačního systému Microsoft Windows 7. Faktem ovšem zůstává, že u produktu zaměřeného na celosvětový trh není pravděpodobně možné uzpůsobit rozeznávání slov tak, aby pokrylo nejrůznější akcenty. Na druhou stranu však existují i takové implementace rozeznávání řeči, které údajně trénování nepotřebují – například Sphinx4 [Ayres-Nolan, 2005] vyvinutý Carnegie Mellon University [CMU, 2010]. Rozpoznávání hlasu pro minoritní jazyky vůbec nemusí existovat Problematické, z hlediska rozpoznávání hlasu, pak jsou jazyky, které nepatří mezi nejrozšířenější. Microsoft nabízí rozpoznávání hlasu mimo angličtinu pouze pro němčinu, francouzštinu, španělštinu, japonštinu a čínštinu [Microsoft, 2010b]. Technologie rozpoznávání hlasu pro minoritnější jazyky, mezi které čeština 4.1 23 Hlasová komunikace určitě patří, není běžně dostupná a už vůbec ne zdarma. Problém slovanských jazyků je z technologického hlediska právě jejich složitý systém ohýbání slov. Detailní popis problémů spojených se slovanskými jazyky obecně a implementace funkčního řešení pro češtinu je pak popsána v [Nouza, et al., 2010]. Hlasová syntéza (angl. speech synthesis či TTS – Text To Speech) je technologie umožňující převod textu do zvukové podoby, tak aby byl zvuk co nejpodobnější lidské řeči v určitém jazyku. Bohužel je syntéza hlasu dostupná především pro majoritní jazyky, podobně jako je tomu u technologií rozpoznávání řeči. 4.1.2 Syntéza hlasu je především pro majoritní jazyky Hlasové toolkity Microsoft Speech API (MSSAPI) je toolkit, obsahující v sobě jak rozpoznávání řeči tak i syntézu hlasu [Microsoft, 2010a]. MSSAPI je v různých verzích součástí systémů Windows a Office, ale lze stáhnout i samostatně jako SDK, které je však vázáno na platformu Windows. Hlasová komunikace je k dispozici v systémech Windows Java obsahuje vlastní na platformě nezávislé hlasové API nazvané jednoduše Java Speech API (JSAPI) [Oracle, 2010a]. Jedná se vlastně o pouhý interface; úkolem JSAPI je zpřístupnit hlasové technologie do Javy [Ayres-Nolan, 2005]. Naprosto minimální sadu funkcí implementující JSAPI pomocí toolkitu MSSAPI poskytuje open-source knihovna Quadmore [Szoghy, 2009]. Fakt, že Quadmore implementuje pouze několik nejzákladnějších funkcí má za následek to, že tato knihovna není příliš vhodná k seriozní práci. Částečnou implementaci také poskytuje Sphinx 4, nemá sice syntetizátor, ale je open-source. Java má vlastní interface, pomocí kterého lze využívat různé technologie i v Javě Mnohem lepší implementaci poskytuje knihovna TalkingJava [CloudGarden, 2010], opět pomocí MSSAPI. Tato knihovna implementuje celý interface JSAPI, včetně gramatiky JSGF. TalkingJava umí využívat i celou řadu dalších hlasových technologií – mj. například Nuance Dragon NaturallySpeaking [Nuance, 2010] nebo IBM ViaVoice [IBM, 2010]. Jedná se o živý Knihovna TalkingJava vhodně spojuje JSAPI a MSSAPI 24 4 Aktuální možnosti tvorby ECA projekt – poslední verze knihovny pochází z ledna 2010; pro nekomerční účely je zdarma. 4.2 Toolkity pro ECA Pod pojmem ECA toolkit či SDK rozumíme: Definice: ECA toolkit ECA TOOLKIT: Zdrojový kód programu či hotový program, který má definovaný způsob ovládání, a který je možné využít v nějaké další aplikaci, tak aby využívala možnosti ovládání pomocí ECA. Tedy především věrohodné grafické ztvárnění hlavy, hlasový projev a případně i rozpoznávání řeči. Přestože takových toolkitů neexistuje mnoho, následuje krátký popis těch kvalitnějších a to jak volně dostupných tak i komerčních. 4.2.1 Xface používá SMIL skripty a MSSAPI Zdrojový kód je nepřehledný Xface Jedním z volně dostupných je open-sourceový projekt Xface [Balci, 2004], který je postaven na technologii MPEG-4 Face Animation [Preda-Preteux, 2002] a umožňuje používat skripty ve formátu SMIL (Synchronized Multichannel Integration Language). SMIL má podobu XML dat a definuje scénář chování ECA ve formě mimiky, pohybů a řeči [Web: SMIL]. Xface podporuje MSSAPI jako hlasový syntetizátor; doplnění jiné technologie by však vyžadoval zásah do zdrojového kódu. Bohužel i přes propagovanou přehlednost zdrojových kódů není jednoduché Xface využít pro tvorbu vlastní aplikace. Xface je vytvořen v C++, ale zároveň je úzce svázán s platformou Windows. Už samotná příprava kompilace je vcelku složitý proces, který vyžaduje množství dalších knihoven – jak začít je uvedeno na stránkách [Web: CompilingXface]. Bez zkušeností s rozsáhlými projekty v C++ pod Windows je pak velmi obtížné se ve zdrojovém kódu vyznat. 4.2 Toolkity pro ECA 25 Obrázek 4.1: Implicitní hlava obsažená v Xface Jak vidíme na obr. 4.1, je grafická podoba ECA toolkitu Xface velmi zdařilá (viz 4.2.3 „FaceGen“). Technologii však chybí například idle režim, ve kterém by hlava konala drobné pohyby a mrkala. Vývoj Xface byl asi zastaven Existuje však také pokus portovat Xface do prostředí Javy pod názvem Xface-j [Web: Xface-j]. Aktuální možnosti Xface-j jsou ale v porovnání s originálem zatím velmi omezené. Xface se pokoušejí portovat do Javy, výsledek ale zatím není valný 4.2.2 Expression Druhým zástupcem open-source toolkitů je Expression [Pasternak, 2004]. Expression je opět naprogramován v C++, ale zdrojové kódy jsou ve dvou verzích – pro Windows a pro Linux. Expression je pro Windows i Linux Z obrázku 4.2 je patrné, že ztvárnění hlavy je vcelku dobré, není však zdaleka tak povedené jako Xface. Nicméně nenechme se zmást – Expression má totiž implementován idle režim – náhodné drobné pohyby a mrkání očí – tolik potřebný pro uvěřitelný zjev. Náhodné mrkání očí je obsaženo v Expression 26 4 Aktuální možnosti tvorby ECA Obrázek 4.2: Implicitní hlava obsažená v Expression 4.2.3 FaceGen a 3D modelovací programy zajistí fotorealističnost ECA Oba toolkity Xface i Expression pak podporují vytváření nových „obličejů“ v komerčních produktech 3D Studio Max [Autodesk, 2010] a FaceGen [Web: FaceGen]. Tato aplikace umí jednoduše vytvářet náhodné obličeje na základě zvolené rasy, věku, pohlaví, textury atp. Vlasy se však musí vytvořit jinde, například ve 3D Studiu Max. Obrázek 4.3 ukazuje, že hlava je takřka fotorealistická. Bohužel ani jeden z těchto produktů není zrovna levný. 4.2.4 PeoplePutty nabízí věrohodné emoce, technologicky je však svázaný s Windows FaceGen PeoplePutty Firma Haptek komerčně nabízí toolkit PeoplePutty, který je založen na technologii ActiveX [Web: ActiveX] a je tedy úzce svázán s platformou Windows [Web: Haptek]. Jak se však můžeme přesvědčit z obrázku 4.4 pocházející z demoverze PeoplePutty, nabízí tento toolkit vcelku věrně vypadající hlavy. Věrnost je pak ještě zdůrazněna plynulou mimikou, která bohužel nemůže být zachycena na těchto stránkách. Z dostupné demoverze je pak zřejmé, že hlava vykonává náhodné 4.2 Toolkity pro ECA Obrázek 4.3: Obličej vytvořený pomocí FaceGenu pohyby, tolik potřebné k dosažení věrohodnosti ECA. PeoplePutty si jistě může najít své využití pod Windows. Přesto je technologie ActiveX dosti svazující. Obrázek 4.4: Ukázka PeoplePutty 27 28 4 4.2.5 Talking Head je zatím experimentální a oficiálně nedostupný Aktuální možnosti tvorby ECA Talking Head Experimentální toolkit nazvaný Talking Head [Kunc, et al., 2008] je postaven na volně dostupném Expression a využívá technologii IBM ViaVoice pro syntézu hlasu. Z tohoto důvodu ovšem není volně dostupný a to v tuto chvíli bohužel ani komerčně. Na toolkitu autoři však stále pracují. Obrázek 4.5: Ukázka Talking Head Tento toolkit má jedinečné vlastnosti Talking Head využívá pro své ovládání speciální jazyk ve formátu XML pojmenovaný ECAF (ECA Façade) [Kunc-Kleindienst, 2007]. Pomocí ECAF jsme schopni nejenom kontrolovat mimiku, pozici a velikost hlavy, ale také přímo zadávat co má vyslovit. Co dělá tento toolkit unikátním je možnost ovládat i okolí hlavy – měnit pozadí, zobrazovat text, obrázky a dokonce i video. Talking Head pak poskytuje zpětnou vazbu ve formě programových událostí (konec promluvy či kliknutí myší). Talking Head zatím běží jako serverová aplikace, takže ji lze ovládat z klienta napsaného v libovolném jazyce. 4.2 29 Toolkity pro ECA 4.2.6 Shrnutí toolkitů Ukazuje se, že nejlepších výsledků dosáhneme pokud rozšíříme existující plugin tak jako se to povedlo u Talking Head. Jakmile bude tento uvolněn pro běžné použití, bude z něj ideální prostředek pro nasazení ECA do aplikací. Než se tak stane, musíme si vystačit s jinými toolkity. Z volně dostupných SDKs poskytuje asi největší možnosti Expression, přestože se programátor musí postarat o napojení do nějaké technologie syntézy hlasu. Navzdory tomu, že je Expression zdarma, při jeho využití se tvůrce nejspíše nevyhne komercializaci takové aplikace, poněvadž bude muset sám investovat do vytvoření obličeje například v nástroji FaceGen. TalkingHead rozšiřuje Expression Do té doby má Expression nejširší možnosti 30 4 Aktuální možnosti tvorby ECA 31 Část II Experiment 33 Kapitola 5 Návrh a příprava experimentu „Opportunity is missed by most people because it is dressed in overalls and looks like work.“ —Thomas Alva Edison Tato část si klade za cíl aplikovat teoretické poznatky získané v první části a pokusit se sestavit prakticky využitelného interface agenta. 5.1 Záměr a volba prostředků Pokus by měl otestovat, zda jsme aktuálně schopni zkonstruovat uvěřitelné ECA, které by se mohlo uplatnit v populární cílové aplikaci. Za takovou aplikaci byl vybrán mikroblogovací systém Twitter [Web: Twitter], kde by mohl ECA posloužit jako vhodný pomocník. Pro své vlastnosti byl zvolen Talking Head jako vhodný ECA toolkit pro tento experiment. Tento toolkit byl poskytnut svým tvůrcem pro využití pouze v této práci. Jelikož se jedná o experimentální jinak neveřejný toolkit, nebude uložen ani na CD doprovázejícím tuto práci. Rozpoznávání hlasu zajistí TalkingJava 1.7 využívající MSSAPI technologii Windows, napojení do sítě Odpověd’ na otázku: jsme schopni agenta sestrojit? Talking Head vytváří ECA pro Twitter Aplikačním jazykem je Java 34 5 Návrh a příprava experimentu Twitter pak knihovna JTwitter 1.6. [Web: JTwitter]. Platformou bude Java 6 pod Windows. Vlastní vývoj bude uskutečněn v IDE IntelliJ Idea 9.0.2 [Web: Idea], které je dostupné v rámci akademické licence pro studenty ČVUT zdarma. Název TalkingTwitter Tento projekt experimentální aplikace propojující v sobě rozpoznávání hlasu, komunikaci s Twitterem a instruování ECA byl pojménován TalkingTwitter. 5.2 Agent funguje jako mezičlánek Struktura TalkingTwitter Umístění ECA v kontextu tohoto experimentu je schematicky znázorněno na obrázku 5.1. Interface agent zde bude fungovat jako mezičlánek komunikace mezi člověkem a Twitterem. Prvek učení a dotazování se jiných agentů bude v experimentu pro zjednodušení vynechán. Twitter Uživatel Komunikuje ECA Interaguje Obrázek 5.1: Princip aplikace TalkingTwitter se skládá ze dvou celků Funkční dekompozice aplikace je pak znázorněna na obrázku 5.2 pomocí UML deployment diagramu. ECA je zde rozdělen na dva samostatné celky. První zeleně podbarvený se stará o rozeznávání hlasových pokynů uživatele (část TalkingTwitter), jejich vykonání (Executor) a propojení (TalkingHeadClient) se serverovou částí. Server TalkingHead tvoří druhý modře podbarvený celek, který reaguje na pokyny uživatele hlasem a zároveň doplňuje hlasový projev vhodnými změnami emocí. Tato část se tak výrazně podílí na vnímané uvěřitelnosti agenta. 5.3 35 Schopnosti ECA ECA Executor TalkingTwitter Twitter hlasové povely <<client>> TalkingHeadClient rozeznávání hlasu TalkingHead Uživatel vizuální a hlasové projevy agenta <<server>> TalkingHead syntéza hlasu Obrázek 5.2: Deployment diagram Obrázek A.1 uvedený v příloze pak podrobně zobrazuje class diagram prvního celku a dokumentuje propojení jednotlivých částí do větších detailů. 5.3 Schopnosti ECA Pro tento experiment byl založen účet v síti Twitter nazvaný „eca_experiment“ a zároveň byl nastaven tak, aby následoval1 několik hlavních zpravodajských serverů. Tyto servery publikují své zprávy ve formě příspěvků do Twitteru obsahující krátkou anotaci zprávy a odkaz na celý článek. Smyslem následování zpravodajských serverů je snaha, aby TalkingTwitter nacházel nové příspěvky relativně často, což je jednoduše splnitelné právě s uživateli majícími zpravodajský charakter. 1 Class diagram v příloze Následovat, angl. follow, v tomto kontextu znamená sledovat, číst příspěvky od daného uživatele. TalkingTwitter následuje zpravodajské servery 36 TalkingTwitter přijímá 6 příkazů hlasem 5 Návrh a příprava experimentu ECA rozezná celkem šest typů hlasových příkazů, které se dají shrnout takto: 1. help – vyžádá jednoduchou nápovědu 2. link – otevře odkaz na vybranou zprávu 3. exit – ukončí TalkingTwitter 4. tweet – vystaví vlastní zprávu 5. retweet – přepošle („retweetuje“) zprávu 6. follow – následuje uživatele Soubor properties Příkazy follow, retweet a link vyžadují číslo příspěvku, které plní funkci jednoduchého identifikátoru; toto číslo je vždy zobrazeno spolu s příspěvkem. Příkaz tweet zobrazí okno, do kterého uživatel napíše svoji zprávu. Z důvodu minimalizace místa v okně aplikace je vždy zobrazeno jen 5 posledních příspěvků. Uvedené příkazy, včetně několika synonymních variant, jsou definovány ve formě JSGF gramatiky uvedené v souboru twitter.gram v adresáři grammar. Frekvence stahování nových příspěvků je implicitně 3 minuty, lze ji však změnit v konfiguračním souboru twitter4j.properties. Zde je také dále uvedeno heslo k účtu včetně klíčů k novému způsobu přihlašování OAuth, který je právě zaváděn pro aplikace fungující v síti Twitter. Tyto klíče se dají znovu vygenerovat doprovodným programem nazvaným AccessTokenAcquisition.jar. 5.4 5.4 Způsob práce s TalkingTwitter 37 Způsob práce s TalkingTwitter Nejprve se musí spustit serverová část TalkingHead a poté vlastní klient TalkingTwitter, nejlépe pomocí připraveného TalkingTwitter.bat. Po spuštění obou částí se ECA nejprve představí jako Sophie a stručně vysvětlí co umí a také, že rozumí uživateli jeho hlasové pokyny. Následně zmíní, že pro nápovědu má uživatel vyslovit „help me“ a stáhne příspěvky. Ty, jakmile jsou staženy, zobrazí a čeká na příkazy od uživatele. Dále stahuje příspěvky automaticky podle zadané frekvence. Ukázku běžící aplikace můžeme vidět na obrázku 5.3. Obrázek 5.3: Ukázka využití Talking Head v TalkingTwitteru Jak ECA pracuje 38 5 Návrh a příprava experimentu 39 Kapitola 6 Experiment „All life is an experiment.“ —Ralph Waldo Emerson 6.1 Průběh experimentu TalkingTwitter bude otestován na několika uživatelích z okruhu studentů vysokých škol s dostatečnou úrovní angličtiny. Každému z nich bude vysvětleno, že se podílí na experimentu prováděném anonymně, za účelem sběru dat k vyhodnocení nového přístupu k ovládání aplikací. Testovaný uživatel bude uveden do problematiky sítě Twitter v případě, že ji sám nevyužívá. Testovaná osoba bude interagovat s TalkingTwitterem po libovolně dlouhou dobu, dokud se nerozhodne aplikaci vypnout. Poté proběhne neformální rozhovor, ve kterém budou zjišt’ovány odpovědi na následující otázky: • Líbil se Vám způsob interakce? • Vzbudila ve Vás Sophie pocit důvěry? • Jak hodnotíte kvalitu hlasové komunikace se Sophií? • Dokážete si představit ovládání i jiných aplikací tímto způsobem? Jak se bude testovat Pokládané otázky 40 6 6.2 Zaznamenané odpovědi Experiment Získané odpovědi Celkem byli osloveni tři studenti a všichni souhlasili s účastí. Jejich odpovědi jsou zaznamenány níže. Líbil se Vám způsob interakce? • „Ne, rozpoznávání řeči je velmi omezené. Nebyl to dialog, ale byl jsem nucen říkat příkazy. Viděl jsem za tím interakci se strojem, a ne s člověkem, přestože byla zobrazena lidská tvář.“ • „Líbil, bylo to jasné a srozumitelné.“ • „Je to pohodlné, nepříjemné na tom je, že musím čekat až domluví.“ Vzbudila ve Vás Sophie pocit důvěry? • „O slově důvěra nelze vůbec mluvit – často mi vůbec nerozuměla. Špatná odezva – často bylo jediným feedbackem komunikace mlčení.“ • „Měla divné vlasy, ale celkem se mi líbila – byla sympatická. Nevzbuzovala nervozitu. Neměla jsem pocit, že ji nebudu rozumět.“ • „Jo, snažila se být vlídná a jasně vysvětlovala jaké má možnosti a jak ji mám ovládat.“ Jak hodnotíte kvalitu hlasové komunikace se Sophií? • „Kvalita komunikace je slabá, rozuměla asi 30 % mých příkazů.“ • „Myslím, že je dobrá, neměla jsem problém ji rozumět. Ona mi vcelku rozuměla také.“ • „Je to řízený dialog, není to volná rozmluva. Slova, která mohu používat mi řekla na začátku, takže je to omezený. Ale zároveň si myslím, že se to lépe ovládá – mně to přišlo jako výhoda: stačí znát pár slov a s těma se dostanu k cíli.“ 6.3 41 Vyhodnocení experimentu Dokážete si představit ovládání i jiných aplikací tímto způsobem? • „Určitě dokážu, podobná interakce při vstupu do budov, objednávání lístků, i na internetu – personalizovaní poradci. Kde by si každý člověk mohl vybrat tvář, která by mu byla příjemná. Ta by s nim interagovala místo stroje.“ • „Asi si to představit dokážu, ale člověk by si na to musel zvyknout, protože to je úplně jiný způsob interakce. Bylo by to určitě rychlejší a i snazší. Mohl by být ale problém při používání mezi více lidmi.“ • „Určitě, ale je to technologicky náročný, aby to pokrylo všechny možné výjimky co mohou nastat. Pro uvedení do praxe je to rizikový – důvodem je to, že lidi jsou pohodlný, když něco nefunguje na první druhej pokus tak jdou od toho. Ale to je pouze současný stav.“ 6.3 Vyhodnocení experimentu Uživatelé si stěžují prakticky jen problémy technologie hlasové komunikace. Grafické ztvárnění a možnosti vlastní aplikace se jim, jak se zdá, vyhovují. Všichni se shodli na tom, že využití ECA pro ovládání aplikací má smysl a uvítali by ho. Problémem je hlasová komunikace V průběhu experimentu bylo zaznamenáno také několik problémů, které byly při vývoji přehlédnuty: Poznatky pro budoucí vývoj • Uživatel se snažil kliknout na číslo zobrazeného příspěvku – čekal, že se tímto způsobem dá vybrat. Sophie na to nereagovala. • Příliš dlouhé pauzy mezi popisy jednotlivých příkazů v nápovědě. Uživatelé si častokrát mysleli, že už mohou mluvit, ale Sophie ještě neposlouchala. 42 6 Experiment • Jeden problém byl implementačně závislý – spojením dvou modulů došlo k nutné duplikaci hlasových toolkitů. Tato duplikace měla za následek to, že agentovi nelze „skákat do řeči“. Uživatel musí vždy počkat až agent domluví. V případě reálného nasazení by byla aplikace vyvíjena jako jediný celek a tomuto nešvaru by šlo zabránit. 43 Kapitola 7 Závěr „Řečník má vyčerpat téma, nikoliv posluchače.“ —Winston Churchill Tato práce shrnuje teoretické poznatky interface agentů nejenom z pohledu informatiky, ale krátce načrtává tuto problematiku i z pohledu jiných odvětví. Kapitola 4 „Aktuální možnosti tvorby ECA“ pak popisuje možnosti hlasové komunikace a problémy s ní spojené včetně stručného hodnocení několika volně dostupných řešení. Dále jsou zde popsány ECA toolkity využitelné pro implementaci v nových aplikacích. Teoretické i praktické poznatky týkající se ECA Z experimentální části vyplývá, že nejslabším článkem ECA je hlasové rozpoznávání. A to především kvůli nemožnosti uplatnit volnou komunikaci s ECA tak, jak jsme zvyklí z běžné denní komunikace. Experiment byl sice proveden na malém vzorku lidí, přesto si všichni stěžují pouze na problémy spojené s rozpoznáváním hlasu. Proto je tento způsob ovládání aplikací zatím omezen spíše jen na jednodušší systémy, kde můžeme vhodnou volbou a dostatečným počtem synonym vytvořit gramatiku jazyka, která bude pro běžného uživatele blízká formě volného jazyka. Většímu rozvoji ECA ovládání brání možnosti hlasového rozpoznávání Před širším nasazením podobného typu aplikace by však mělo být provedeno testování na řádově mnohem více lidech. 44 7 7.1 Na PC zatím nebude ECA masově nasazováno ECA je vhodné pro embedded zařízení Závěr Kde použít ovládání pomocí ECA Svým charakterem je ECA ovládání naprosto odlišné od direct manipulation, kterou využívá, a je na ni zvyklá, drtivá většina populace používající počítače. Tento fakt s ohledem na relativně slabší možnosti hlasové komunikace ukazuje na to, že ECA zřejmě nebude v nejbližší době nasazován na počítačové systémy typu PC. Snad jen okrajově do jednotlivých aplikací – jako zajímavost. Na druhou stranu velmi pravděpodobně najde ECA využití v embedded systémech. Taková zařízení svou „jednoúčelovostí“ umožní kvalitně využít i stávající hlasovou komunikaci. Zároveň jsou však jejich stávající ovládání často těžkopádná a omezující. Možnosti aktuálního využití jsou tak široké, například: • zařízení GPS navigace v autech • informační systém domácnosti (nastavení teploty, alarmu, zavlažování zahrady atp.) • videorekordéry a domácí kina • samoobslužné poklady v obchodech Dá se uvažovat i o bankomatech, konkrétně tedy o těch, které jsou odděleny dveřmi a zákazníci k nim vstupují po jednom. Důvodem jsou bezpečnostní nároky kladené na taková zařízení. 7.2 Několik rad pro vývoj aplikací s ECA Doporučení pro vývojáře Pokud budeme vyvíjet reálnou aplikaci, měli by tvůrci věnovat zvláštní pozornost přípravě gramatiky přijímaného jazyka. Hlasové příkazy by měly být navrženy vždy s několika synonymy, zároveň však musí být vybrány šikovně tak, aby nedocházelo k „přeslechům“ mezi různými příkazy. 7.2 Doporučení pro vývojáře Stejně by měl ECA dávat dostatečně najevo kdy skončil a očekává, že uživatel něco řekne. Dále by uživatel měl mít možnost „skákat ECA do řeči.“ V běžné mluvě se jedná o přirozený jev, který zdaleka ne ve všech případech je projevem neslušnosti. Pokud typ aplikace umožňuje uživateli používat i jiný způsob ovládání (např. DM pomocí kurzoru), měl by ECA toto bud’ zohlednit a brát takový vstup jako platný nebo uživatele upozornit. Nemělo by docházet k tomu, že takový pokus o interakci bude ignorován. 45 46 7 Závěr 47 Literatura ABOULENIEN, H. A. – WILDE, P. D. A Simple Interface Agent. In Joint conference on Information Sciences (JCIS) ’98 Proceedings, s. 190–193, 1998. DOI URL: <http://citeseerx.ist.psu.edu/ viewdoc/summary?doi=10.1.1.44.5032>. APPLE. Apple Futureshock [online]. 1987. [cit. 11. 3. 2010]. URL: <http://www.youtube. com/watch?v=3WdS4TscWH8>. AUTODESK. Autodesk 3ds Max Products [online]. 2010. [cit. 9. 5. 2010]. URL: <http: //usa.autodesk.com/adsk/servlet/pc/ index?id=13567410&siteID=123112>. AYRES, T. – NOLAN, B. JSAPI speech recognition with Sphinx4 and SAPI5. In WISICT ’05: Proceedings of the 4th international symposium on Information and communication technologies, s. 179–184. Trinity College Dublin, 2005. URL: <http://portal.acm.org/ citation.cfm?id=1071752.1071787>. ISBN 1-59593-169-4. BALCI, K. Xface: MPEG-4 based open source toolkit for 3D Facial Animation. In AVI ’04: Proceedings of the working conference on Advanced visual interfaces, s. 399–402, New York, NY, USA, 2004. ACM. DOI URL: <http://dx.doi.org/10. 1145/989863.989935>. ISBN 1-58113-867-9. BOBERG, M. – PIIPPO, P. – OLLILA, E. Designing avatars. In DIMEA ’08: Proceedings of the 3rd international conference on Digital Interactive Media in 48 Literatura Entertainment and Arts, s. 232–239, New York, NY, USA, 2008. ACM. DOI URL: <http://dx.doi. org/10.1145/1413634.1413679>. ISBN 978-160558-248-1. BRADSHAW, J. M. An Introduction to Software Agents. 1997. DOI URL: <http: //citeseerx.ist.psu.edu/viewdoc/ summary?doi=10.1.1.39.640>. CASSELL, J. Embodied conversational interface agents. Commun. ACM. 2000, 43, 4, s. 70–78. ISSN 00010782. DOI URL: <http://dx.doi.org/10. 1145/332051.332075>. CHO, H., et al. Culturally-Situated Pictogram Retrieval. In Intercultural Collaboration, 4568 / Lecture Notes in Computer Science, s. 221–235. Springer Berlin / Heidelberg, 2007. DOI URL: <http://dx.doi.org/ 10.1007/978-3-540-74000-1_17>. ISBN 9783-540-73999-9. CHRISTOPH, C. B. – TAKAHASHI, T. – KATAGIRI, Y. Cross-Cultural Study of Expressive Avatars [online]. 2004. [cit. 24. 3. 2010]. URL: <http://www. bartneck.de/work/bartneckSID2004.pdf>. CLOUDGARDEN. TalkingJava SDK with Java Speech API implementation [online]. 2010. [cit. 5. 5. 2010]. URL: <http://cloudgarden.com/JSAPI/ index.html>. CMU. Open Source Toolkit For Speech Recognition [online]. 2010. [cit. 8. 5. 2010]. URL: <http:// cmusphinx.sourceforge.net/>. COWELL, A. J. – STANNEY, K. M. Manipulation of non-verbal interaction style and demographic embodiment to increase anthropomorphic computer character credibility. International Journal of Human-Computer Studies. 2005, 62, 2, s. 281–306. ISSN 1071-5819. DOI URL: <http://dx.doi.org/10.1016/j. 49 Literatura ijhcs.2004.11.008>. characters and robots. Subtle expressivity for DEHN, D. M. – MULKEN, S. The impact of animated interface agents: a review of empirical research. International Journal of Human-Computer Studies. 2000, 52, 1, s. 1–22. ISSN 1071-5819. DOI URL: <http: //dx.doi.org/10.1006/ijhc.1999.0325>. DRYER, D. C. Getting Personal with Computers: How to Design Personalities for Agents [online]. 1999. [cit. 20. 3. 2010]. URL: <http://web.me. com/karnstein/karnstein/Papers_files/ Dryer%20Getting%20Personal%20With% 20Computers.pdf>. ENGELBART, D. C. – ENGLISH, W. K. A research center for augmenting human intellect. In AFIPS ’68 (Fall, part I): Proceedings of the December 9-11, 1968, fall joint computer conference, part I, s. 395–410, New York, NY, USA, 1968. ACM. DOI URL: <http: //dx.doi.org/10.1145/1476589.1476645>. FERGUSON, G. – GALESCU, L. – STENT, A. Towards Conversational Human-Computer Interaction. AI Magazine. 2001, 22, s. 27–37. DOI URL: <http://citeseerx.ist.psu.edu/ viewdoc/summary?doi=10.1.1.139.296>. HECTOR, A. – NARASIMHAN, V. A new classification scheme for software agents. 1, s. 191–196, July 2005. DOI URL: <http://dx.doi.org/10. 1109/ICITA.2005.31>. IBM. Embedded ViaVoice [online]. 2010. [cit. 8. 5. 2010]. URL: <http://www-01.ibm.com/software/ pervasive/embedded_viavoice/>. JOHNSON, J., et al. The Xerox Star: A Retrospective. Computer. 1989, 22, 9, s. 11–26, 28–29. ISSN 0018-9162. DOI URL: <http://dx.doi.org/10. 1109/2.35211>. 50 Literatura KARRER, T. The Media Computing Group: i10 Master/Diploma Thesis LaTeX Template [online]. 2009. [cit. 26. 2. 2010]. URL: <http://hci. rwth-aachen.de/karrer_thesistemplate>. KODA, T. – MAES, P. Agents with faces: the effect of personification. s. 189–194, nov 1996. DOI URL: <http://dx.doi.org/10.1109/ROMAN. 1996.568812>. KOZIEROK, R. – MAES, P. A learning interface agent for scheduling meetings. In IUI ’93: Proceedings of the 1st international conference on Intelligent user interfaces, s. 81–88, New York, NY, USA, 1993. ACM. DOI URL: <http://dx.doi.org/10. 1145/169891.169908>. ISBN 0-89791-556-9. KUNC, L. – KLEINDIENST, J. ECAF: Authoring Language for Embodied Conversational Agents. In Text, Speech and Dialogue, 4629 / Lecture Notes in Computer Science, s. 206–213. Springer Berlin / Heidelberg, 2007. DOI URL: <http://dx.doi.org/ 10.1007/978-3-540-74628-7_28>. URL: <http://www.springerlink.com/content/ a4m94g2671857621/>. ISBN 978-3-540-74627-0. KUNC, L. – KLEINDIENST, J. – SLAVÍK, P. Talking Head as Life Blog. In TSD ’08: Proceedings of the 11th international conference on Text, Speech and Dialogue, s. 365–372, Berlin, Heidelberg, 2008. SpringerVerlag. DOI URL: <http://dx.doi.org/10. 1007/978-3-540-87391-4_47>. ISBN 978-3540-87390-7. LIEBERMAN, H. Autonomous Interface Agents. s. 67–74, 1997. DOI URL: <http://citeseerx. ist.psu.edu/viewdoc/summary?doi=10.1. 1.30.8904>. LIEBERMAN, H. – SELKER, T. Agents for the User Interface [online]. 2003. [cit. 9. 3. 2010]. URL: <http://web.media.mit.edu/~lieber/ Publications/Agents_for_UI.pdf>. Literatura LINCICUM, S. J. Developing an Interface Agent for a Library Website. Master’s thesis, Western Oregon University, 6 2003. http://www.wou.edu/ ~lincics/FinalPaper.pdf, [cit. 27. 2. 2010]. MAES, P. Agents that reduce work and information overload. Commun. ACM. 1994, 37, 7, s. 30–40. ISSN 0001-0782. DOI URL: <http://dx.doi.org/10. 1145/176789.176792>. MAES, P. Intelligent software. In IUI ’97: Proceedings of the 2nd international conference on Intelligent user interfaces, s. 41–43, New York, NY, USA, 1997. ACM. DOI URL: <http://dx.doi.org/10. 1145/238218.238283>. ISBN 0-89791-839-8. MAES, P. – WEXELBLAT, A. Interface agents. In CHI ’96: Conference companion on Human factors in computing systems, s. 369–370, New York, NY, USA, 1996. ACM. DOI URL: <http://dx.doi.org/ 10.1145/257089.257377>. ISBN 0-89791-832-0. MICROSOFT. Farewell Clippy: What’s Happening to the Infamous Office Assistant in Office XP [online]. 2001. [cit. 3. 4. 2010]. URL: <http://www.microsoft.com/presspass/ features/2001/apr01/04-11clippy.mspx>. MICROSOFT. Microsoft Speech API (SAPI) 5.4 [online]. 2010a. [cit. 5. 5. 2010]. URL: <http://msdn.microsoft.com/en-us/ library/ee125663(VS.85).aspx>. MICROSOFT. What can I do with Speech Recognition? [online]. 2010b. [cit. 5. 5. 2010]. URL: <http:// windows.microsoft.com/en-US/Windows7/ What-can-I-do-with-Speech-Recognition>. MUDRÁK, D. BiBTeX style for the Czech references style [online]. 2008. [cit. 28. 2. 2010]. URL: <http: //repo.or.cz/w/csplainnat.git>. MYERS, B. – HUDSON, S. E. – PAUSCH, R. Past, present, and future of user interface software tools. ACM 51 52 Literatura Trans. Comput.-Hum. Interact. 2000, 7, 1, s. 3–28. ISSN 1073-0516. DOI URL: <http://dx.doi.org/10. 1145/344949.344959>. MYERS, B. A. A brief history of human-computer interaction technology. interactions. 1998, 5, 2, s. 44–54. ISSN 1072-5520. DOI URL: <http://dx.doi.org/10. 1145/274430.274436>. NASS, C. – MOON, Y. Machines and mindlessness: Social responses to computers. Journal of Social Issues. 2000, 56, s. 81–103. DOI URL: <http://citeseerx.ist.psu.edu/ viewdoc/summary?doi=10.1.1.87.2456>. NASS, C., et al. Can computer personalities be human personalities? In CHI ’95: Conference companion on Human factors in computing systems, s. 228–229, New York, NY, USA, 1995. ACM. DOI URL: <http://doi.acm.org/10.1145/ 223355.223538>. ISBN 0-89791-755-3. NIJHOLT, A. Disappearing computers, social actors and embodied agents. s. 128–134, dec. 2003. DOI URL: <http://dx.doi.org/10.1109/CYBER. 2003.1253445>. NOUZA, J., et al. Challenges in Speech Processing of Slavic Languages (Case Studies in Speech Recognition of Czech and Slovak). In Development of Multimodal Interfaces: Active Listening and Synchrony, 5967 / Lecture Notes in Computer Science, s. 225–241. Springer Berlin / Heidelberg, 2010. DOI URL: <http://dx.doi.org/10. 1007/978-3-642-12397-9_19>. ISBN 978-3642-12396-2. NUANCE. Dragon NaturallySpeaking Solutions [online]. 2010. [cit. 8. 5. 2010]. URL: <http://www. scansoft.com/naturallyspeaking/>. NWANA, H. S. Software agents: An overview. Knowledge Engineering Review. 1996, 11, s. 205–244. Literatura DOI URL: <http://citeseerx.ist.psu.edu/ viewdoc/summary?doi=10.1.1.100.7162>. ORACLE. Java Speech API [online]. 2010a. [cit. 8. 5. 2010]. URL: <http://java.sun. com/products/java-media/speech/>. ORACLE. Grammar Format Specification [online]. 2010b. [cit. 5. 5. 2010]. URL: <http: //java.sun.com/products/java-media/ speech/forDevelopers/JSGF/JSGF.html>. PASTERNAK, G. THE EXPRESSION TOOLKIT – An Open-Source Procedural Facial Animation System [online]. 2004. [cit. 9. 5. 2010]. URL: <http:// expression.sourceforge.net/>. PREDA, M. – PRETEUX, F. Critic review on MPEG4 face and body animation. In Image Processing. 2002. Proceedings. 2002 International Conference on, 3, s. 505 - 508 vol.3, 24-28 2002. DOI URL: <http://dx. doi.org/10.1109/ICIP.2002.1039018>. REIMER, J. User Interface Analysis [online]. 2005. [cit. 3. 3. 2010]. URL: <http://arstechnica. com/old/content/2005/05/gui.ars>. ROSENBERG-KIMA, R. B., et al. The Importance of Interface Agent Visual Presence: Voice Alone Is Less Effective in Impacting Young Women’s Attitudes Toward Engineering. In PERSUASIVE, s. 214–222, 2007. DOI URL: <http://dx.doi.org/10. 1007/978-3-540-77006-0_27>. SANDS, J., et al. Meaningful personalization at a selfservice kiosk. In BCS-HCI ’07: Proceedings of the 21st British HCI Group Annual Conference on HCI 2008, s. 95–98, Swinton, UK, UK, 2007. British Computer Society. ISBN 978-1-902505-95-4. SHNEIDERMAN, B. Direct Manipulation: A Step Beyond Programming Languages. Computer. aug. 1983, 16, 8, s. 57–69. ISSN 0018-9162. DOI URL: <http: //dx.doi.org/10.1109/MC.1983.1654471>. 53 54 Literatura SHNEIDERMAN, B. – MAES, P. Direct manipulation vs. interface agents. interactions. 1997, 4, 6, s. 42–61. ISSN 1072-5520. DOI URL: <http://dx.doi.org/10. 1145/267505.267514>. SMITH, D. C., et al. The star user interface: an overview. In AFIPS ’82: Proceedings of the June 7-10, 1982, national computer conference, s. 515–528, New York, NY, USA, 1982. ACM. DOI URL: <http://dx. doi.org/10.1145/1500774.1500840>. ISBN 0-88283-035-X. SUTHERLAND, I. E. Sketchpad: a man-machine graphical communication system. In AFIPS ’63 (Spring): Proceedings of the May 21-23, 1963, spring joint computer conference, s. 329–346, New York, NY, USA, 1963. ACM. DOI URL: <http://dx.doi.org/ 10.1145/1461551.1461591>. SZOGHY, B. Quadmore Java to Microsoft SAPI bridge for Windows version 2.5 [online]. 2009. [cit. 5. 5. 2010]. URL: <http://www.quadmore.com/JAVA_to_ SAPI/>. THOMAS, B. – CALDER, P. Animating indirect manipulation in direct-manipulation editors. s. 184–188, nov 1996. DOI URL: <http://dx.doi.org/10. 1109/OZCHI.1996.560009>. UIDESIGN.NET. User Interface Analysis [online]. 1999. [cit. 3. 3. 2010]. URL: <http://www.uidesign. net/1999/papers/UIA3.html>. VALENTA, M. – TVRDÍK, P. K336 Info — pokyny pro psaní diplomových prací [online]. 2009. [cit. 26. 2. 2010]. URL: <https://info336.felk. cvut.cz/clanek.php?id=400&cele=1>. What is an ActiveX control? [online]. 2010. [cit. 15. 5. 2010]. URL: <http://www.microsoft. com/protect/terms/activex.aspx>. 55 Literatura Compiling Xface [online]. 2005. [cit. 9. 5. 2010]. URL: <http://xface.itc.it/documentation/ compiling.htm>. Dia: The GNOME Project [online]. 2009. [cit. 11. 3. 2010]. URL: <http://live.gnome. org/Dia/Download>. FaceGen - 3D [cit. 9. 5. 2010]. com/>. Human Faces [online]. 2010. URL: <http://www.facegen. PeoplePutty [online]. 2010. [cit. 11. 5. 2010]. <http://www.haptek.com/products/ peopleputty/>. URL: Best Java IDE :: Do more high-quality code in less time with IntelliJ IDEA [online]. 2010. [cit. 14. 5. 2010]. URL: <http://www.jetbrains.com/idea/>. JTwitter - the Java library for the Twitter API [online]. 2010. [cit. 14. 5. 2010]. URL: <http://www. winterwell.com/software/jtwitter.php>. Paint.NET - Free Software for Digital Photo Editing [online]. 2010. [cit. 9. 5. 2010]. URL: <http://www. getpaint.net/>. SMIL-AGENT Quick Reference [online]. 2005. [cit. 9. 5. 2010]. URL: <http://tcc. itc.it/people/not/SMIL-AGENT/ SMIL-AGENT-quick-reference.html>. Twitter [online]. 2010. [cit. 14. 5. 2010]. URL: <http: //www.twitter.com>. Xface-j [online]. 2010. [cit. 9. 5. 2010]. URL: <http: //www.ntsim.com/index.php?option=com_ content&view=article&id=46&lang=en>. WEISER, M. Hot topics-ubiquitous computing. Computer. oct 1993, 26, 10, s. 71–72. ISSN 0018-9162. DOI URL: <http://dx.doi.org/10.1109/2.237456>. 56 Literatura ZIMMERMAN, J., et al. Putting a Face on Embodied Interface Agents. 2005. DOI URL: <http://citeseerx.ist.psu.edu/ viewdoc/summary?doi=10.1.1.86.330>. ZUE, V. – GLASS, J. Conversational interfaces: advances and challenges. Proceedings of the IEEE. aug 2000, 88, 8, s. 1166–1180. ISSN 0018-9219. DOI URL: <http: //dx.doi.org/10.1109/5.880078>. 57 Seznam použitých zkratek CLI Command-Line Interface DM Direct Manipulation ECA Embodied Conversational Agent ECAF ECA Façade GUI Graphical User Interface IA Interface Agent IDE Integrated Development Environment IM Indirect Manipulation JSAPI Java Speech API JSGF Java Speech Grammar Format MSSAPI Microsoft Speech API PARC Palo Alto Research Center SDK Software Development Kit UI User Interface WIMP Windows, Icons, Menus, Pointers XML eXtensible Markup Language 58 Seznam použitých zkratek 59 Příloha A Class diagram TalkingTwitteru Na další stránce je vyobrazen podrobný class diagram TalkingTwitteru. <<interface>> <<interface>> JFrame CommandListener <<interface>> IOActivity +exitRequired(): void +helpRequired(): void +enterText(prompt:String): String +userSaid(wasSaid:String): void +operationSuccessful(textToSay:String): void +operationException(): void -commandListener SpeechActivity +keyboardEvent(s:String): void +mouseEvent(s:String): void +utteranceFinished(i:int): void TalkingHeadClient -control: Control -statusesShown: int -rec: Recognizer -freqMin: int TalkingTwitter Executor -rec: Recognizer -oldStatuses: List<Status> -statuses: List<Status> -statusesShown: int = 5 #statusesShown: int +Executor(commandListener:CommandListener, statusesShown:int) +setTwitter(twitter:Twitter): void +doCommand(e:ResultEvent,statuses:List<Status>): void +main(args:String[]): void +TalkingTwitter(title:String) -deallocate(): void -doTwitter(): void -twitter +TalkingHead(statusesShown:int,freqMin:int) +speak(text:String): void +act(cmd:String): void +connect(serverAddress:String): void -client +addRecognizer(rec:Recognizer): void +focusRelease(): void +focusRequest(): void +sleep(milis:long): void +initHead(): void +sayTwitterError(): void +sayHelp(): void +showStatuses(): void +doSadFace(): void +backToNormal(): void +operationSuccessful(): void +operationException(): void <<singleton>> Twitter #twitter <<interface>> <<interface>> RecognizerListener SynthesizesListener CommandFactory +createCommand(tag:String,twitter:Twitter, commandListener:CommandListener): void TTSEngineListener <<create>> AbstractCommand #commandListener: CommandListener #AbstractCommand(twitter:Twitter,commandListener:CommandListener) +execute(status:Status): void ClickURLCommand ExitCommand FollowCommand HelpCommand -getFirstURL(text:String): String Obrázek A.1: Class diagram ReTweetCommand TweetCommand 61 Příloha B Obsah přiloženého CD Přiložené CD obsahuje 4 adresáře a soubor readme.txt s požadavky a postupem spuštění. Adresáře mají následující obsah: Obsah CD • TalkingTwitter-bin zkompilovaná forma TalkingTwitter • TalkingTwitter-src zdrojové soubory TalkingTwitter • text tato diplomová práce ve formátu PDF • text-src zdrojové soubory této diplomové pro LATEX včetně obrázků Požadavky na spuštění jsou Java JRE verze alespoň verze 6 a novější osobní počítač s Windows. Podrobněji pak v readme.txt. Požadavky na spuštění