E-commerce assistentie. Deel 3: Pakket van eisen

Een spraakassistentie-ontwikkelomgeving kent – naast het bezitten van kennis – enkele struikelblokken of randvoorwaarden om op een goede wijze ingezet te kunnen worden. Zo zitten er aan de spraak API’s (Speech Recognition API, Speech Synthesis API) voorwaarde verbonden om het gebruik veilig te houden.

In eerdere versies van de browser Google Chrome is gebleken dat het relatief gemakkelijk was om met de microfoon mee te luisteren. Wanneer er via een veilige verbinding (HTTPS) wordt toegestaan om de microfoon te gebruiken op een website dan onthoud Chrome dit. Op het moment dat iemand met kwaadwillige intenties een pop-under (tegenovergestelde van een pop-up) op de achtergrond opent, kan er zonder enige indicatie mee geluisterd worden. Deze pop-under wordt geladen onder de webpagina en is dus niet zichtbaar.

Google heeft inmiddels maatregelen getroffen die de veilige standaarden van het World Wide Web Consortium (W3C) respecteren. Het W3C is een organisatie die bepaalde webstandaarden voor het World Wide Web ontwerpt, zodat het internet op een veilige manier kan blijven groeien. Op het internet is het uitwisselen van informatie super belangrijk. Er werd een systeem ontwikkeld genaamd HyperText Transfer Protocol (HTTP), dat het mogelijk maakt om informatie uit te wisselen op het internet. Toen mensen in staat waren om eenvoudig informatie uit te wisselen, werd het belangrijk dat deze informatie beschermd was. Als jij en een ander persoon informatie uitwisselen, dan wil je niet dat iemand anders mee kan lezen. Vandaar werd er een procedure ontwikkeld om deze informatie te encoderen, zodat de informatie beschermd was als het onderschept werd door tussenpersonen. Deze procedure staat bekend als de HyperText Transfer Protocol Secure (HTTPS). Als er dus een persoon is naast de zender of ontvanger die het bericht onderschept, dan kan deze persoon de inhoud niet lezen. Alleen de zender en ontvangen beschikken over de juiste ‘code’, waardoor alleen zij in staat zijn om het bericht te lezen.

HTTP vs HTTPS

Nou zouden mensen hun eigen documenten helemaal om kunnen zetten in een bepaalde code, die alleen begrijpelijk is voor de zender en ontvanger. Maar waarom zou je dit niet door een computer laten doen die dit vele malen sneller en efficiënter kan? Maar hoe doet zo’n computer dit dan? De computers die met elkaar verbonden zijn maken allebei een document aan genaamd een SSL certificaat. Deze certificaten bevatten de ‘sleutels’ waarmee de geëncodeerde informatie ‘geopend’ kan worden door de gebruiker en ontvanger. Tot zover deze mini cursus over het verschil tussen HTTP en HTTPS. Het is belangrijk om dit verschil te kennen, omdat het implicaties kan hebben voor de implementatie van spraakassistentie op jouw website.

Bij een spraakassistentie-ontwikkelomgeving is het namelijk van belang dat er niet herhaaldelijk om toestemming voor het gebruik van de microfoon wordt gevraagd. Bij een HTTP verbinding is dit wel het geval, aangezien op elke nieuwe pagina het gebruik van een microfoon opnieuw moet worden geaccepteerd. Daarnaast ligt de snelheid van het verwerken van de spraakfeedback een stuk lager. Dit tezamen zorgt voor een slechte gebruikerservaring. Kort gezegd: spraakassistentie en HTTP gaan niet goed samen.

In tegenstelling tot HTTP, wordt er bij een HTTPS verbinding in Chrome een constante microfoon verbinding toegestaan. Deze instelling wordt vervolgens opgeslagen voor een volgend bezoek, waardoor een microfoon niet op iedere pagina opnieuw geaccepteerd moet worden. Een HTTPS verbinding zorgt er dus voor dat je direct via de microfoon kunt spreken, zonder dat je microfoon telkens opnieuw geaccepteerd moet worden. Voor een goede gebruikerservaring bij spaakassistentie op het web is een HTTPS verbinding daarom vereist.

Naast een constante verbinding is duidelijke feedback erg belangrijk. Inmiddels is het al gebruikelijker voor personen om tegen machines te praten. Desalniettemin zal tegen een computer praten voor velen nog vreemd aanvoelen. Het Amerikaanse ComputerWorld.com probeert dit te verklaren. Uit een interview met Rick Usher, een assistent-stadsmanager van Kansas City, blijkt:

“Voice commands are handy when you have your hands full, but I don’t see it being useful when you’re sitting in front of the computer.”

Verder voegt hij toe:

“It might be handy if we’re talking about getting rid of the keyboard or the mouse. On the desktop, adding that eye-movement tracking could also be important.”

Ook Tal Ater (Israel), de programmeur achter de Annyang bibliotheek, schrijft:

“While we’ve all grown accustomed to chatting with Siri, talking to our cars, and soon maybe even asking our glasses for directions, talking to our computers still feels weird. But now, Google is putting their full weight behind changing this. There’s no clearer evidence to this, than visiting Google.com, and seeing a speech recognition button right there inside Google’s most sacred real estate – the search box.”

luisteren, spreken en verwerken. Het voorzien van feedback is een belangrijk aspect voor een goede integratie van spraak op het web. Het zorgt voor een verbinding tussen het geluid dat uit je device komt en de webpagina.

Apple gaat nog een stap verder door het personifiëren van haar spraakassistent. Naast de naam SIRI, met haar eigen persoonlijkheid en grappen, is de spraakassistent voorzien van een geluidsgolf. Daarnaast gelden ook hier de drie stadia van spraakfeedback. Als je begint met spreken zie je (in iOS9) de puls van de spraakgolf vergroten. Vervolgens beweegt deze puls bij het verwerken beweegt heen en weer, waarna SIRI je via diezelfde puls feedback geeft. Daarnaast is er, net als bij Google Now, directe feedback op het moment van spreken. Er verschijnt van wat de assistent denkt te verstaan. De spraakherkenningssoftware verwerkt alles tot op het moment dat je stop met spreken.

KITT

Om spraakfeedback op het web eenvoudiger is KITT ontwikkeld. De ontwikkelaar van de Annyang bibliotheek, de eerdergenoemde Tal Ater, heeft deze Graphical User Interface (GUI) recentelijk geschreven. Zijn doel was om websites op een eenvoudige wijze van feedback te voorzien. KITT, vernoemd naar – u raadt het niet – de auto uit de film Nightrider, maakt het makkelijk om spraakfeedback te starten, te stoppen en de huidige informatie te bekijken. Naast KITT hebben ontwikkelaars de SIRI golf nagemaakt.

SiriWaveJS

SiriWaveJS is niet interactief. Echter, met wat programmeerwerk is wel mogelijk. Bij het ontwikkelen van de spraakassistentie-ontwikkelomgeving is deze golf gebruikt om de spraakassistent te voorzien van feedback. Hiervoor is de volgende coderegel gebruikt:

responsiveVoice.speak(item, "Dutch Female", { onstart: StartCallback, onend: EndCallback });

Voor het uitspreken van een zin wordt de responsivevoice.org API gebruikt. Bij het uitspreken van een “item” wordt de Nederlandse stem gebruikt, waarbij zogenaamde callback functies worden uitgevoerd (onstart, onend). Deze worden uitgevoerd als het spreken begint en eindigt. Hiermee kan bepaald worden wanneer de golf moet bewegen en wanneer hij moet stoppen. Er is een trucje gebruikt om spraak na te bootsen. De amplitude van de golf bouwt zich namelijk geleidelijk op tot de maxima van 1 is bereikt (wat duidelijker naar voren komt in de volgende code):

if (amp < 1) { amp += 0.1; siriWave.amplitude = amp; StartCallback(); }

Een ander groot probleem ontstaat wanneer  de browser aan het spreken is en tegelijkertijd luistert. De browser is in staat om zichzelf te verstaan, maar hierdoor zal hij de uitgesproken stem commando’s van de persoon die inspreekt niet begrijpen. Dit is een belangrijk probleem dat getackeld moest worden bij het ontwikkelen van spraak op het web. Maar ook dit probleem hebben ze op kunnen lossen: door de microfoon te stoppen wanneer er door de browser gesproken wordt, en te hervatten op het moment van de onend callback, is het mogelijk dat de browser zichzelf kan verstaan en kan luisteren op hetzelfde moment.