Skill-pro­gram­mie­rung für Ama­zon Echo

Mit Fo­no­box hat Ken­neth We­ber ei­ne So­ci­al-me­dia-platt­form ent­wi­ckelt, die aus­schließ­lich über Spra­che funk­tio­niert. Wie er den Skill für Ama­zon Echo er­stellt hat, er­klärt er hier Schritt für Schritt

PAGE - - Inhalt - Ken­neth We­ber/lle

Ken­neth We­ber zeigt Step by Step, wie er die So­ci­alMe­dia-platt­form Fo­no­box als Skill um­ge­setzt hat

● Mit dem Vor­marsch von Si­ri, Ale­xa und Co ste­hen vi­su­el­le De­si­gner vor ganz neu­en Her­aus­for­de­run­gen: Wie ge­stal­tet man ein In­ter­face für et­was, das man nicht sieht? Die­ser Auf­ga­be hat sich Ken­neth We­ber in sei­ner Mas­ter­ar­beit im Stu­di­en­gang Kom­mu­ni­ka­ti­ons­de­sign an der HAW Ham­burg ge­stellt – und das ers­te so­zia­le Netz­werk ent­wi­ckelt, das al­lein über Spra­che funk­tio­niert. Wie Twit­ter al­so, nur oh­ne Text: User pos­ten über ei­ne Smart­pho­ne-app kur­ze Sprach­mit­tei­lun­gen, die an­de­re dann über Ama­zon Echo ab­ru­fen kön­nen. Das Über­ra­schen­de ist, dass nicht die ge­wohn­te Stim­me von Ale­xa, son­dern die des Ver­fas­sers der Kurz­nach­richt er­tönt.

Noch ist Fo­no­box, wie die An­wen­dung heißt, ein Pro­to­typ, doch der De­si­gner ist auf der Su­che nach ei­nem Part­ner, der die Platt­form mit ihm zur Markt­rei­fe bringt. Bei der Ent­wick­lung hat Ken­neth We­ber die Pro­gram­mie­rung der Sprach­steue­rung und das vi­su­el­le De­sign ge­trennt und erst am En­de zu­sam­men­ge­führt. War­um er so vor­ge­gan­gen ist und wie der Um­set­zungs­pro­zess kon­kret aus­sah, er­klärt er im Fol­gen­den selbst. lle [6641]

Von der Re­cher­che zum ei­ge­nen Skill-kon­zept

Con­ver­sa­tio­nal In­ter­faces als The­ma für mei­ne Mas­ter­ar­beit zu wäh­len, war für mich schnell klar – und auch, dass ich als prak­ti­sche Kom­po­nen­te ei­nen voll funk­ti­ons­fä­hi­gen Pro­to­typ bau­en woll­te. Denn ich bin über­zeugt, dass Con­ver­sa­tio­nal In­ter­faces schon bald nicht mehr aus un­se­rem All­tag weg­zu­den­ken sein wer­den. Und da ich auch ei­nen Ama­zon Echo als Smart Spea­ker be­sit­ze, ha­be ich mich ent­schie­den, ei­ne App für die­se Platt­form, al­so ei­nen so­ge­nann­ten Skill, zu er­stel­len.

Der Markt für Skills ist hier­zu­lan­de noch we­nig ent­wi­ckelt, ent­spre­chend über­schau­bar war das An­ge­bot, als ich im Früh­jahr 2018 mit der Re­cher­che für mein Pro­jekt be­gann. Zu­nächst ha­be ich die vor­han­de­nen Skills in un­ter­schied­li­che Ka­te­go­ri­en wie Spie­le oder Ge­sund­heit und Fit­ness un­ter­teilt. 1

Mit die­sem Gr­und­ver­ständ­nis da­für, was es gibt, ha­be ich mir ein­zel­ne Skills her­aus­ge­sucht und die­se ge­nau­er ana­ly­siert, in­dem ich sie selbst aus­pro­biert ha­be. Dar­über hin­aus ha­be ich mir die Re­zen­sio­nen zu ih­nen an­ge­schaut, um ein Ge­fühl da­für zu be­kom­men, was den An­wen­dern bei der Nut­zung die­ser Apps wich­tig ist.

Da­bei stell­te ich un­ter an­de­rem fest, dass die Skills ins­ge­samt noch sehr ein­fach sind und das Po­ten­zi­al die­ser Tech­no­lo­gie – als smar­ter per­sön­li­cher As­sis­tent – nicht mal an­satz­wei­se aus­rei­zen: Statt dem User be­stimm­te Auf­ga­ben zu er­leich­tern, ist es bis­her so, dass die­ser sich auf den Skill ein­stel­len und ler­nen muss, wie er funk­tio­niert und was man sa­gen kann. Au­ßer­dem zeig­te sich, dass ein gro­ßer An­wen­dungs­be­reich schlicht fehlt: Blogs. So kam ich dar­auf, ei­nen Skill zu pro­gram­mie­ren, der die In­hal­te von Blogs vor­liest. Und nicht nur das: Man soll­te auch Bei­trä­ge via Sprach­ein­ga­be pro­du­zie­ren kön­nen. Dar­aus ent­wi­ckel­te sich dann die Mi­cro­blog­ging-idee. Kon­kret: Der User soll kur­ze Sprach­mit­tei­lun­gen über sein Smart­pho­ne auf­neh­men kön­nen, die sich dann in ei­nem so­zia­len Netz­werk tei­len und über Ama­zon Echo ab­spie­len las­sen. Wich­tig war mir, dass da­bei nicht die Stim­me von Ale­xa er­klingt, son­dern die des Sen­ders – denn da­durch wer­den Emo­tio­nen trans­por­tiert. Zu der Zeit gab es so et­was noch nicht.

Bei der Um­set­zung die­ses Kon­zepts woll­te ich schon früh ei­nen ers­ten klei­nen Pro­to­typ er­stel­len, um mit die­sem User­tests durch­füh­ren zu kön­nen. Das Feed­back der po­ten­zi­el­len An­wen­der soll­te in je­den Ent­wick­lungs­schritt mit ein­flie­ßen, denn ich bin über­zeugt von der De­sign-thin­king-me­tho­de.

Hin­ein ins kal­te Was­ser: Wie er­stellt man ei­gent­lich ei­nen Skill?

Ich hat­te noch kei­ne Er­fah­rung mit Skill­pro­gram­mie­rung, aber mir kam zu­gu­te, dass ich mich ne­ben dem Stu­di­um mit Web- und In­ter­ac­tion De­sign be­schäf­tigt hat­te. Wäh­rend man klei­ne­re Skills re­la­tiv leicht bau­en kann, kommt man bei kom­ple­xe­ren An­wen­dun­gen wie Fo­no­box um Co­ding­kennt­nis­se nicht her­um. Als Pro­gram­mier­spra­che ha­be ich mich für Ja­va­script ent­schie­den, denn die­se konn­te ich be­reits. Mit­hil­fe von Youtube-tu­to­ri­als und ei­nem Kurs auf Co­de­ca­de­my ha­be ich mir al­les Nö­ti­ge bei­ge­bracht. Ei­nen Skill an­zu­le­gen ist im Grun­de ganz ein­fach, denn Ama­zon un­ter­stützt ei­nen da­bei – schließ­lich will das Un­ter­neh­men, dass vie­le An­wen­dun­gen her­aus­ge­bracht wer­den.

Zu­nächst be­nö­tigt man ei­nen Ama­zon De­ve­l­oper Ac­count, um an das er­for­der­li­che Ale­xa Skills Kit zu kom­men – ei­ne Web­site, auf der man den Skill er­stel­len kann. In der Mas­ke muss man die­sem als Ers­tes ei­nen Ruf­na­men ge­ben, denn mit dem Be­fehl »Ale­xa, öff­ne X« ak­ti­viert man ihn. Ich hat­te zu­nächst die Be­zeich­nung Splog­ging (aus speach und blog­ging) ge­wählt. Lei­der kei­ne all­zu gu­te Idee, wie ich spä­ter merk­te, denn das Wort ist für Ale­xa schwer zu ver­ste­hen – und das ist es­sen­zi­ell, um den Skill über­haupt auf­ru­fen zu kön­nen. Des­we­gen ent­schied ich mich spä­ter für Fo­no­box.

Au­ßer­dem legt man in dem Tem­pla­te so­ge­nann­te Ut­ter­an­ces fest – das sind die Phra­sen, die Nut­zer ver­wen­den könn­ten, um ei­ne In­ter­ak­ti­on – In­tent ge­nannt – aus­zu­lö­sen. 2 Um zu er­fah­ren, wie das Wet­ter wird, kann man zum Bei­spiel fra­gen: »Wie viel Grad hat es heu­te?«, »Wie warm wird es heu­te?« oder »Wird es heu­te reg­nen?«. All dies muss man im Vor­feld for­mu­lie­ren, da­mit Ale­xa »weiß«, was man mit der je­wei­li­gen Fra­ge von ihr will. Ich hat­te zum Bei­spiel vor­ge­se­hen, dass die Nut­zer Nach­rich­ten zu ei­nem be­stimm­ten Ort auf­ru­fen kön­nen – da­für ha­be ich die Ut­ter­an­ces »bei«, »in«, »in der Nä­he von«, »in der Um­ge­bung von« et ce­te­ra fest­ge­legt. Das Gan­ze wird dann ge­spei­chert, und die ent­stan­de­ne Da­tei nennt man Skill Mo­del.

Da­ten­bank und Pro­to­typ der Auf­nah­me-app pro­gram­mie­ren

Wenn man die In­tents des Skills de­fi­niert hat, be­nö­tigt man noch ei­ne Art ver­ar­bei­ten­de Funk­ti­on – das ist der Co­de, den man selbst schrei­ben muss, un­ab­hän­gig von dem Tem­pla­te, das Ama­zon be­reit­stellt. Die­sen Co­de ha­be ich mit Ja­va­script ge­schrie­ben und auf mei­nem No­de.js-ser­ver ge­spei­chert. Auf die­sem lie­gen die kon­kre­ten Da­ten, mit de­nen Ale­xa die je­wei­li­ge Nut­zer­an­fra­ge be­ant­wor­ten kann. Man kann sich das wie zwei Per­so­nen vor­stel­len: Ale­xa

weiß, was ich von ihr will, die Da­ten für die Ant­wort muss sie sich aber selbst erst von dem Ser­ver er­fra­gen. Die Ver­knüp­fung die­ser Da­ten­bank mit Ama­zon nimmt man eben­falls über die Mas­ke im Ale­xa Skills Kit vor: Un­ter »End­point« 3 ha­be ich mei­nen No­de.js-ser­ver an­ge­ge­ben.

Ne­ben ei­ner No­de.js-da­ten­bank, die die Sprach­mit­tei­lun­gen spei­chern kann, ha­be ich im nächs­ten Schritt mit HTML und Ja­va­script ei­ne ers­te Ver­si­on der spä­te­ren Auf­nah­me-app ge­baut. Statt ei­ner App war dies zu­nächst ei­ne Web­site, über die man mit­hil­fe ei­nes Html-me­di­a­re­cor­ders ei­nen Sound­fi­le auf­zeich­nen konn­te. Auch das war noch ganz ba­sic: Es ließ sich nur ei­ne ein­zi­ge Da­tei spei­chern und ab­spie­len. 4 Aber das war aus­rei­chend, schließ­lich war die An­wen­dung für ei­nen ers­ten Test ge­dacht.

Da­mit die Fo­no­box-user die Ton­auf­nah­men über das Smart­pho­ne auf­neh­men kön­nen, ha­be ich spä­ter ei­ne Web-app – eben­falls mit HTML und Ja­va­Script – pro­gram­miert. Auf ei­ne na­ti­ve App ha­be ich ver­zich­tet, um un­ab­hän­gig vom App Sto­re zu sein. An­dern­falls hät­te ich den lang­wie­ri­gen Zu­las­sungs­pro­zess durch­lau­fen und zu­dem ei­ne neue Pro­gram­mier­spra­che ler­nen müs­sen. Die Web-app ge­nüg­te mei­nen An­for­de­run­gen. 5

Das User In­ter­face der Auf­nah­meApp gestal­ten

Par­al­lel ha­be ich be­gon­nen, das In­ter­face De­sign zu ent­wer­fen – erst mit ein­fa­chen Scribbles in mei­nem No­tiz­buch, spä­ter als Mock­up in Sketch. Bis zu die­sem Zeit­punkt war al­les nur zweck­mä­ßig ge­stal­tet und noch nicht vi­su­ell an­spre­chend. Als we­sent­li­ches De­si­gnele­ment ha­be ich den Re­kor­der skiz­ziert 6 , da­mit der Nut­zer weiß, wann die Auf­nah­me star­tet und en­det und wie viel Zeit er noch zur Ver­fü­gung hat. Aus die­sem Grund ha­be ich auch die Stimm­auf­nah­me in Form von Schall­wel­len vi­sua­li­siert. Ins­ge­samt ha­be ich das De­sign so mi­ni­ma­lis­tisch und in­tui­tiv wie mög­lich ge­hal­ten, da­mit

sich der User ganz auf den Mo­ment der Auf­nah­me kon­zen­trie­ren kann.

Das wa­ren die ers­ten Ent­wür­fe fürs User In­ter­face, die Um­set­zung stell­te ich aber be­wusst ganz ans En­de, denn ich woll­te zu­nächst Feed­back von po­ten­zi­el­len An­wen­dern ein­ho­len und im De­sign­pro­zess be­rück­sich­ti­gen. Da­durch bin ich da­zu ge­kom­men, die Be­die­nung der Auf­nah­me-app aus­schließ­lich über ei­nem gro­ßen But­ton zu steu­ern. 7 Be­tä­tigt man die­sen, star­tet die Auf­zeich­nung, klickt man er­neut, wird sie be­en­det.

De­tail­lier­tes In­ter­ak­ti­ons­mo­dell für Fo­no­box ent­wi­ckeln

In ei­ner klei­nen Grup­pe von rund zehn Leu­ten ha­be ich den Pro­to­typ der Web-app und des Skills ge­tes­tet. Das Feed­back war im Gro­ßen und Gan­zen sehr gut. So kam es super an, dass die Nut­zer die ei­ge­ne Stim­me hö­ren kön­nen. Ver­bes­se­rungs­vor­schlä­ge be­zo­gen sich zum Bei­spiel dar­auf, dass man Nach­rich­ten zu ei­nem be­stimm­ten Er­eig­nis oder von ei­nem ganz be­stimm­ten Nut­zer hö­ren kön­nen soll­te. Das brach­te mich auf die Idee, Hash­tags zu den Funk­tio­nen hin­zu­fü­gen, so­dass sich die Nach­rich­ten klas­si­fi­zie­ren las­sen.

Auf Ba­sis der Er­geb­nis­se aus dem User­test er­wei­ter­te ich nun das ur­sprüng­lich an­ge­leg­te Skill Mo­del 2 um die ge­wünsch­ten Aspek­te. Da es in die End­pha­se ging, war es zu­dem wich­tig, zu über­le­gen, wie die Nut­zer mit dem Skill um­ge­hen soll­ten. Da­für ha­be ich ein In­ter­ak­ti­ons­mo­dell 8 er­stellt. In mei­nem User­test hat­te ich nicht nur ge­schaut, wie die An­wen­der mit dem Skill um­ge­hen, son­dern ich hat­te auch ganz kon­kret wis­sen wol­len, was sie Ale­xa

ger­ne fra­gen wür­den. Nun konn­te ich auf Ba­sis der Ant­wor­ten die ein­zel­nen Funk­tio­nen fest­le­gen.

Grund­sätz­lich kann der User bei Fo­no­box nach ei­ner Lo­ca­ti­on, ei­nem Hash­tag oder ei­ner Person fra­gen. Die In­tents und Ut­ter­an­ces ha­be ich dann wie­der in das Skill Mo­del ein­ge­tra­gen und den da­zu­ge­hö­ri­gen Ja­va­script- Co­de ge­schrie­ben. Für Fäl­le, in de­nen der Skill die Ein­ga­be des Nut­zers nicht ver­steht, ha­be ich ei­ne Funk­ti­on pro­gram­miert, in der Ale­xa sagt: »Das ha­be ich nicht ganz ver­stan­den, du kannst nach Or­ten, Per­so­nen oder Hash­tags su­chen.« Und wenn zu ei­nem be­stimm­ten In­tent noch nichts ver­füg­bar ist, sagt sie: »Zum Ort XY wurde noch nichts ge­pos­tet.«

Tes­ten des fer­ti­gen Pro­to­typs

Hat man im Skill Mo­del al­les fer­tig an­ge­legt, kann man in der Ale­xa De­ve­l­oper Con­so­le tes­ten, ob das Gan­ze funk­tio­niert wie ge­wünscht. 9 Auch der je­wei­li­ge Text kann hier aus­ge­le­sen wer­den – das spart Zeit, denn man muss nicht ex­tra Ama­zon Echo nut­zen. Nun konn­te ich auch die Funk­tio­nen und das De­sign zu­sam­men­brin­gen. Was ich be­reits als Mock­up er­stellt hat­te, ha­be ich für die Gestal­tung der We­bApp ver­wen­det. Da­mit stand die al­ler­ers­te Ver­si­on von Fo­no­box, die ich als Mas­ter­ar­beit ein­ge­reicht und auf der Som­mer­aus­stel­lung der HAW Ham­burg prä­sen­tiert ha­be. Auch dort wa­ren die Menschen

10 da­von be­geis­tert, ih­re ei­ge­nen Stim­men aus ei­nem Ama­zon Echo zu hö­ren.

Ken­neth We­ber ar­bei­tet am liebs­ten agil. User­tests ha­ben für ihn obers­te Prio­ri­tät – die fan­den für Fo­no­box auch mal in ge­müt­li­cher Run­de am Früh­stücks­tisch mit Freun­den statt. Gu­te Ide­en kom­men schließ­lich nicht sel­ten beim Es­sen!

Newspapers in German

Newspapers from Germany

© PressReader. All rights reserved.