Alexa meets Harmony

09 november 2017 Inzichten / Alexa meets Harmony

Over het feit of we binnenkort allemaal een personal assistant in de woonkamer hebben, kan gediscussieerd worden. Maar dat zo'n slimme speaker wel coole mogelijkheden biedt, valt niet te betwisten. Die mogelijkheden ontdekten we op onze jaarlijkse hackathon. We gingen aan het experimenteren met de Amazon Echo en leerden de slimme speaker shoppen in onze eigen Harmony-shop. Met de komst van Amazon Prime naar België blijkt dat alvast een slimme stap voor de toekomst.

De digitale butler

Amazon heeft de Echo, Google heeft Google Home en binnenkort lanceert Apple z'n HomePod op de markt. Maar wat is dat nu precies, zo'n smart speaker?

Uiteraard is het een gewone speaker die je favoriete muziek, radiostation of podcast afspeelt. Daarbovenop heeft de speaker een zekere vorm van intelligentie. Hij weet een aantal zaken over jou en je omgeving. Door je persoonlijke gegevens te koppelen wordt de gewone luidspreker een persoonlijke assistent. Maar misschien nog belangrijker: je bedient de speaker met je stem.

Wij gingen op onderzoek naar wat Amazon's Echo allemaal kan. Nog niet officiëel beschikbaar in België, maar onze CEO Bart De Waele wist er wel één op de kop te tikken voor ons. Dank je wel, Bart!

Echo's intelligentie komt naar voren in de vorm van een persoonlijke assistent die luistert naar de naam Alexa. Ze begrijpt nog maar 2 talen: Duits en Engels. Omdat we niet bepaald vlot zijn in het Duits, kozen we Engels voor dit experiment.

She’s got skills

Alexa kan van zichzelf al heel wat. Zo is ze zich bijvoorbeeld bewust van het weer, het nieuws en het verkeer. Vraag haar bijvoorbeeld of je een paraplu zal nodig hebben voor je wandeling of informeer naar de uitslag van de laatste NBA match. Daar stopt het echter niet. Wat Alexa allemaal kan, wordt verder aangevuld met skills. Speel een spelletje Waagstuk met de "Jeopardy" skill. Test je Star Wars kennis met de "Star Wars Quiz" skill. Ook zijn er skills om diverse hardware en software te besturen, zoals de Philips Hue lights. Zo kan je thuis de lichten dimmen of de kleurtoon aanpassen. Iedereen kan een skill maken en die (gratis of betalend) openbaar maken in de Alexa Skills store. Amazon biedt aan ontwikkelaars namelijk de Alexa Skills Kit (ASK) aan. Op die manier kunnen ontwikkelaars hun applicatie laten inklikken op Alexa via een API. Of eenvoudig gezegd: je leert Alexa iets nieuws.

Alexa shopt in Harmony

Je kunt Alexa gebruiken om in de Amazon store te shoppen, maar het leek ons een goede uitdaging om haar te leren shoppen in onze eigen shop. Een webshop die draait op Harmony, ons inhouse webplatform, was een logische keuze. Zowel Harmony als het achterliggende Symfony framework kennen we door en door. Zo verloren we weinig tijd met het opzetten van de webshop en konden we ons focussen op wat echt telt: interactie met Alexa.

Wat er precies moest gebeuren, kunnen we eenvoudig voorstellen met een bezoek van onze collega Elien aan een Apple store. Stel dat Elien (klant), Alexa (klantbediende) en Harmony (magazijnier) 3 personen zijn in een Apple store, dan gaat het volledige gesprek als volgt:

Elien: "Hey Alexa, I'm looking for an iPhone."
Alexa: "Ok, I'm gonna check. Hey Harmony, a customer is looking for an iPhone." Harmony: "Sure thing. I found an iPhone in the store."
Alexa: "Hey Elien, Harmony found an iPhone."

Dit is in essentie wat we willen bereiken. Tijd om onze eerste skill aan te maken.

Interaction Model

Alexa interpreteert communicatie aan de hand van een interaction model. Dat is een interface die ingesproken tekst of sample utterance koppelt aan een bepaalde actie of intent. Dat klinkt misschien complex, maar is het niet. Een voorbeeld:

searchForProduct I'm looking for {Product}

We leren Alexa een zoekopdracht begrijpen. Hierbij is searchForProduct de actie die we koppelen aan de uitgesproken tekst "I'm looking for". Verder is {Product) een slot. Dat zorgt ervoor dat we het gezochte product uit de zin kunnen filteren. That's it! De actie wordt vervolgens doorgestuurd naar Harmony.

Je zou je kunnen afvragen waarom het interaction model bestaat. Waarom luisteren we niet gewoon naar alles? In die vraag ligt eigenlijk het antwoord. Het interaction model zorgt ervoor dat Alexa (en wij als ontwikkelaar) niet stiekem alles wat je zegt kunnen afluisteren. Dat zou immers een serieuze inbreuk zijn op de privacy.

AlexaBundle

Nu Alexa met behulp van het interaction model onze vraag begrijpt, moeten we ervoor zorgen dat Harmony dat ook doet. We schreven de AlexaBundle in Harmony die een antwoord kan bieden op haar vragen. Onze AlexaBundle is als een luisterend oor voor de personal assistant. Als Alexa een vraag stelt, dan luistert Harmony.

Maar Harmony luistert niet alleen, hij begrijpt Alexa. Als de assistent vraagt om een iPhone te zoeken in de webshop, dan doet hij dat ook. Dat is te vergelijken met Alexa's interaction model, waarbij een vraag geïnterpreteerd kan worden door de ontvanger.

Als Harmony één of meerdere iPhones vindt, laat hij dat weten aan Alexa. Als hij er geen vindt, dan zal hij dat ook doorgeven. Harmony stuurt altijd een antwoord terug, of het nu gunstig is of niet.

Hoe meer, hoe beter

Om een bestelling te plaatsen, moesten Alexa en Harmony meer kunnen dan alleen maar een product zoeken. Eens we wisten hoe de interpretatie en communicatie tussen Alexa en Harmony moest, gingen we meer kennis toevoegen. We leerden Alexa en Harmony samenwerken om een volgende actie af te handelen:

"Give more info about {Product} I'm buying {Product}"
"What's in my cart"
"I would like to place an order"

Om een bestelling te kunnen plaatsen, hebben we adresgegevens nodig. Die konden we uit de Amazon account van de gebruiker halen. Zo’n account is verplicht als je Amazon Echo wil gaan gebruiken.

What’s next?

Maar wat met de betaling? Helaas, de 48 uur was over. We moeten eerlijkheidshalve toegeven dat wij hier geen definitief antwoord op hebben. Misschien kunnen we hiervoor ook gebruik maken van informatie uit de Amazon account? Of we opteren om de betaling achteraf te doen.

Verder kunnen we de shopervaring nog verbeteren met display cards. Hiermee kunnen we visuele data naar de gebruiker sturen. Stel dat je een product zoekt in de shop, dan zou je meer informatie kunnen ontvangen via je gsm. Zien wat je koopt, kan in veel gevallen ook belangrijk zijn.

Dit project leerde ons in de eerste plaats slimme speakers beter te begrijpen (no pun intended). Over wat ze al kunnen en wat ze kunnen leren. Of wij in de nabije toekomst Alexa in huis zullen halen, dat weten we nog niet. Maar we zijn wel vastberaden om haar slimmer te maken. Wat zou jij Alexa willen leren?

Ook goesting om met innovatie bezig te zijn? We zijn nog op zoek naar heel wat mensen!

Koen Vinken
Developer

Stijn Spanhove
Developer

Lees meer

Iedereen bij Wijs deelt zijn expertise, ook Jasper en Evi. Benieuwd naar de laatste nieuwtjes en blogposts? Schrijf je in voor onze nieuwsbrief!