Maak kennis met KUBI, de conversationele robotbarista
- Geschreven door
- Thor Schaeff
- Gepubliceerd
- Laatst bijgewerkt
LuisterenLuister naar dit artikel
KUBI is een conversationele robotbarista en receptionist bij Second Space, een next-gen coworkingruimte die 24/7 geopend is in Kaohsiung, Taiwan. Omdat de workspace volledig geautomatiseerd wordt beheerd, is het belangrijk dat KUBI — als eerste contactpunt voor leden — een uniek, vriendelijk tintje toevoegt. Daarom koos Second Space voor Conversational AI van ElevenLabs om leuke, gedenkwaardige interacties met leden te creëren. Laten we KUBI in actie zien.
Zo werkt KUBI
KUBI gebruikt een geavanceerde multisensorische architectuur om mensachtige interactie te simuleren. Het systeem is gebaseerd op een microservicesarchitectuur, waarin gespecialiseerde services gelijktijdig werken en communiceren via een realtime-eventstream. Deze services voeren uiteenlopende taken uit, waaronder gezichts- en objectherkenning met realtime AI-inference, detectie van bekers en plausibiliteitscontroles via camera's, het printen van bonnetjes, veilige gezichtsherkenning voor toegangscontrole en nauwkeurige bediening van melk- en bonendispenser.
Dit zijn enkele services die gelijktijdig actief zijn:
- Omgevings cameraservice: gebruikt realtime AI-inference (PyTorch in Python) om gezichten en objecten te herkennen.
- Tablet cameraservice: lijkt hier sterk op, maar detecteert bekers op tafel en vreemde objecten, en voert plausibiliteitscontroles uit — bijvoorbeeld of de KUBI-robot daadwerkelijk een beker vasthoudt.
- Bonnenprintservice: eenvoudig en betrouwbaar met Node + Typescript. Communiceert met een RS232-thermische printer.
- Betalingsservice: gebouwd met Kotlin JVM voor betrouwbare concurrency en typeveiligheid. Verwerkt rapportage van overheidsbonnen en communicatie met een creditcardterminal, gateway voor cryptobetalingen of online betaalproviders.
- Melk- en bonendispenser: afzonderlijke precisieservices — Arduino. Tijdkritisch, met lage latency.
- Gezichtsherkenning: veilige Kotlin-service met sterke typering, gebruikt voor toegangscontrole.
- Waterstraalservice: reinigt melkkannetjes na gebruik automatisch — Arduino.
- En diverse andere services, bijvoorbeeld voor de mobiele app-API, de menuweergave enzovoort…
Waarom al deze microservices? Simpel — we beheren ze onafhankelijk van elkaar, kunnen eenvoudig opschalen en gebruiken voor elke taak de beste tools.
Een centrale eventgestuurde kern die alles samenbrengt
Al deze microservices worden gecoördineerd door een centrale service die met een knipoog "BigBoy" heet. Het is in essentie een enorme, niet-blokkerende eventprocessor:
Zo werkt BigBoy:
- Luistert naar binnenkomende events van alle services.
- Controleert scenario's op geldige triggers.
- Selecteert het beste scenario.
- Plant acties in voor afspelen.
Wat zijn scenario's?
Zie scenario's als niet-blokkerende compilers voor robot action events. Een action event is doorgaans het meest downstream event: de laatste stap in een keten die leidt tot een fysiek effect, zoals beweging of spraak. Zo kan een begroetingsscenario het volgende activeren:
MotionEvent(HelloMotion)
Eventgeneratie met LLM: Sommige action events worden automatisch door een LLM gegenereerd. Zo kiest withAutoMotion op basis van de gegeven context de beste beweging uit een vooraf gedefinieerde lijst. withAutoGif gebruikt een LLM om de meest geschikte tag voor de gegeven zin te genereren. De tag wordt gebruikt om een GIF op Giphy op te halen, die later samen met de zin op het gezicht van KUBI wordt weergegeven.
Synchronisatie van action events: Deze events gaan vervolgens door een scheduler die ervoor zorgt dat spraak, gezichtsuitdrukkingen en bewegingen gesynchroniseerd blijven. Dankzij de synchronisatie sluit KUBI's spraak perfect aan op zijn gebaren.
Flexibel en uitbreidbaar
Het mooie is dat scenario's zelfs kunnen luisteren naar action events en dynamisch nieuwe action events kunnen activeren. Bijvoorbeeld:
- Als BigBoy SayEvent("Merry Christmas") detecteert, kan het automatisch feestverlichting en speciale effecten in de ruimte activeren.
- Nog een mooi voorbeeld: als de gebruiker onze Mobiele app kiest om een bestelling te plaatsen, worden alle gebruikersinteracties (op een product klikken, betalen enzovoort) omgezet in events en kan BigBoy ook realtime reageren. Als de gebruiker bijvoorbeeld langs “Oatmilk Latte” scrolt, kan KUBI zeggen: “Weet je zeker dat je die Oatmilk Latte niet wilt? Hij is echt lekker!”
BigBoy ziet en weet letterlijk alles wat er gebeurt. Best cool, toch?
DevOps en observability
De meeste services worden lokaal gehost en draaien in een Docker-container. In de container wordt hun levenscyclus beheerd door het procesbeheersysteem Supervisor. Error logs worden verzameld in Sentry en doorgegeven aan een aangepaste admin app om uitzonderingen, de realtime status van services en sensoren, en latencyrapportages te monitoren. Het mooie is dat de Flutter-app voor 90% met AI is gegenereerd.
ElevenLabs gebruiken voor gedenkwaardige interacties
Second Space had een heel specifieke persoonlijkheid voor KUBI in gedachten: een mix van Deadpool, Wheatley uit de game Portal en een beetje Pathfinder uit Apex Legends. Ze slaagden erin om de stem te ontwerpen in 15 minuten, inclusief emoties en pauzes die de stem nog menselijker maken.
ElevenLabs ondersteunt KUBI's spraakmogelijkheden met twee kern-API's:
Text-To-Speech (TTS)
- Verwerkt ongeveer 90% van onze interacties.
- Gebruikt vooraf ontworpen scenario's voor de juiste sfeer.
- Berichten die door LLM's worden gegenereerd, kunnen worden gepersonaliseerd, met audio van hoge kwaliteit en de beste uitspraak, en zijn niet tijdkritisch.
- Biedt bijzonder natuurlijke meertalige spraak in het Engels, Chinees, Spaans, Japans en zelfs Lets (Letse Deadpool, iemand?).
Conversational Mode (realtime)
Wanneer een klant zegt: "Hé KUBI!", kan Conversational AI van ElevenLabs binnen 200 ms reageren, waardoor de interactie echt menselijk aanvoelt.
- Prioriteit: lage latency.
- Ruilt een deel van de audiokwaliteit in voor reactiesnelheid.
- Gebruikt de nieuwe realtime language_detection-tool van ElevenLabs om verschillende talen direct dynamisch te verwerken.
- Een Conversational AI-sessie wordt op aanvraag gestart wanneer een lid de locatie binnenkomt of “Hé KUBI!” zegt.
Aangepaste Conversational Tools
Via een WebSocket-verbinding met Conversational AI van ElevenLabs kan KUBI function calling gebruiken, bijvoorbeeld:
- make_order: herkent bestellingen en stuurt events rechtstreeks naar BigBoy.
- make_payment: brengt onze PaymentService direct op de hoogte om de creditcardautomaat voor betalingen te activeren.
Eenvoudig schakelen tussen verschillende LLM-modellen via het admin panel van ElevenLabs helpt Second Space het begrip en de nauwkeurigheid te optimaliseren, omdat we merkten dat verschillende modellen de tool-intents beter herkennen dan andere. Momenteel gebruiken ze Gemini 2.0 Flash als kernmodel voor Conversational AI en ChatGPT 4o voor statische spraakgeneraties.
KUBI uitbreiden naar extra markten
De eerste GitHub-commits van Second Space die naar ElevenLabs verwijzen, dateren uit januari 2023 — nog voordat het meertalige model werd uitgebracht. Ze herkenden al vroeg de toewijding van ElevenLabs aan kwaliteit en bouwden vol vertrouwen een architectuur die anticipeerde op toekomstige meertalige ondersteuning. Nu is toetreden tot markten zoals Japan en Zuid-Korea zo eenvoudig als een schakelaar omzetten — zonder extra ontwikkelwerk!
Conclusie
Microservices, realtime events en de krachtige stemtechnologie van ElevenLabs laten KUBI echt tot leven komen en klaar zijn om de wereld te veroveren en te verrassen, één koffie en geestige interactie tegelijk.




