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í