Handsfree koken
met roastedbot.

Wie kent het niet: je bent net lekker aan het koken, met de Spaanse olijfolie nog aan je vingers, en je bent vergeten wat de volgende stap is. Het recept dat je volgt staat op je telefoon, die natuurlijk vergrendeld is. Wat volgt is een onhandige manoeuvre om snel je handen enigszins schoon te maken, je telefoon te ontgrendelen en op te zoeken waar je ook alweer was gebleven. Dit alles terwijl de pasta ondertussen overkookt, de saus aanbrandt, en je irritatieniveau tot ongekende hoogte stijgt.

Bij Data Science Lab zijn we gek op data en problemen oplossen voor bedrijven. Maar onder deze data-professionals zijn, gelukkig, ook een paar ‘foodies’ te vinden. Tijdens de laatste Techday, welke het onderwerp ‘text-to-speech/speech-to-tekst’ had, kwam exact het bovenstaande probleem aan de orde. Het resultaat is RoastedBot: een keuken assistent die je door het maken van een gerecht heen loodst, terwijl jij je handen vrij hebt om je op het koken te concentreren. Met commando’s zoals: “volgende stap”, en “herhaal stap” kun je makkelijk een recept volgen.

Methode

We gebruiken de speech-to-text en tekst-to-speech API van Google Cloud om spraak van de gebruiker te herkennen en deze om te zetten in tekst, en om RoastedBot tegen de gebruiker te laten spreken.

Door het gebruik van deze API’s is het mogelijk om relatief snel een spraak gestuurde app te ontwikkelen, dit omdat al het zware werk in de cloud van Google gebeurt. Ook maken deze API’s onze app lichtgewicht en bruikbaar op vrijwel elk platform met een internetverbinding.

De data voor de recepten en ingrediënten worden door een web scraper van de receptenpagina van Albert Heijn gehaald. Na het ophalen worden wat kleine dingen aan de tekst veranderd om de uitspraak zo vloeiend mogelijk te maken. Zo worden bijvoorbeeld afkortingen zoals ‘min.’ voor minuten vervangen door het volledige woord. Vervolgens wordt het recept opgedeeld in aparte stappen waar de gebruiker met stemcommando’s doorheen kan navigeren.

Om het geven van commando’s zo gebruikersvriendelijk mogelijk te maken wordt er alleen naar bepaalde keywords geluisterd. Zo maakt het niet uit of de gebruiker alleen het commando “volgende” zegt, of “ok bot, ik wil de volgende stap alsjeblieft”. In beide gevallen herkent de bot dat de gebruiker naar de volgende stap in het recept wilt, en wordt deze stap dan ook voorgelezen. Deze keywords worden geladen uit dynamische lijsten, waar op elk moment keywords uitgehaald of toegevoegd kunnen worden. Omdat de dialoog geregeld wordt door simpele logica is het erg makkelijk om nieuwe dialoog toe te voegen of huidige dialoog te veranderen.

 

User story

Als de gebruiker RoastedBot activeert zal het vragen welk recept er opgezocht moet worden, bijvoorbeeld een recept met geroosterde garnalen. Als er door de web scraper een recept gevonden is krijgt de gebruiker een bevestiging en wordt de naam van het recept en de bijbehorende ingrediënten voorgelezen. De lijst met ingrediënten kan natuurlijk elk moment herhaald worden als dat nodig is. Als de gebruiker niet tevreden is met het gevonden recept, of als er geen recept gevonden is, kan de gebruiker opnieuw zoeken met bredere zoektermen. RoastedBot kan ook zelf een relevant recept opzoeken en deze uitspreken naar de gebruiker.

Als alle ingrediënten klaar staan kan door het recept heen genavigeerd worden met commando’s zoals volgende/vorige stap. Een voorbeeld van een dialoog tijdens het koken is te zien in de graphic.

Conclusie

RoastedBot past perfect in een app van een supermarktketen zoals, bijvoorbeeld, de Albert Heijn, maar ook zien wij mogelijkheden bij andere gerelateerde organisaties zoals leveranciers van foodboxes.

RoastedBot is momenteel een MVP (Minimum Viable Product), er valt dus nog genoeg te verbeteren. Zo zou de mogelijkheid toegevoegd kunnen worden om specifieke vragen te kunnen stellen, bijvoorbeeld “wat moest ik doen met de ui” of “hoeveel gram pasta heb ik nodig”. Er is verder nog veel meer mogelijk, zoals het delen van recepten of het gemaakte gerecht. De mogelijkheden zijn erg groot.

Nooit meer onhandige manoeuvres met desastreuse gevolgen in de keuken. Relaxed koken, met het recept en de stappen altijd binnen bereik en te activeren met je stem. RoastedBot, de kookbot van Data Science Lab, brengt koken naar een hoger niveau. Als deze blog interesse heeft gewekt komen wij graag in contact om vrijblijvend de mogelijkheden van RoastedBot of de technologie erachter te bespreken.

Bron: https://www.ah.nl/allerhande

Geschreven door

Berend Dumas

Data scientist
berend.dumas@datasciencelab.nl

Sidney de Vries

Data scientist
sidney.devries@datasciencelab.nl

Vragen over deze blog?

*