UiB Mixmaster

Alarmbot - ei intuitiv vekkarklokke

Av Gøran André Slettemark

 

Kan daglegdagse hjelpemiddel forbetrast med bruk av kunstig intelligens? Med Alarmbot undersøkte eg om det kan vere mulig å utvikle ei vekkarklokke som kan vekke brukaren på ein smartare måte. Alarmbot kan lære korleis brukarane reagerer på alarmen, og kan tilpasse den på fleire måtar.

Er du våken?

Utgangspunktet er at brukaren velger kortid dei vil stå opp. Med hjelp av maskinlæring tilpasser Alarmbot når alarmen går av, ut i frå om dei vanlegvis står opp før eller etter alarmen går av. Målet er å få brukaren til å stå opp så nær den gitte tida som mulig.

szKLrx_jQ0K1fJFOM4h_0TA.png

Når alarmen settast i gang, vil eit kamera med ansiktsgjenkjenning aktivere. Dette brukast for å sanse om brukaren er våken eller ikkje. Når systemet oppfattar brukaren som våken vil det avslutte alarmen og loggføre tidspunktet brukaren gav og tida det tok til brukaren blei oppfatta som våken. Denne informasjonen blir då brukt til å oppdatere modellen til neste gong systemet blir brukt.
 

Ein ny dag truer

For å vekke brukaren bruker systemet musikk, bakgrunnslydar, og syntetisk tale. Dette kan likne på ein klokkeradio, men som spelar musikk tilpassa brukaren. For å unngå ein "Groundhog Day"-situasjon kan det vere aktuelt at systemer ikkje foreslår ein enkelt sang, men heller ein sjanger av songar for å skape variasjon. Det vil kanskje virke naturlig for brukeren om det er ein viss grad av tilfeldighet innebygd i systemet for å skape variasjon.
 

Syntetisk tale

Syntetisk tale er endå eit element som kan gjere innholdet meir dynamisk. Det kan hende at brukarar foretrekker forskjellige stemmer og typer av innhold. Systemet kan forsøke forskjellige typar responsar. Noen av desse kan vere med på å skape ein personligheit, mens andre kan vere meir informative. Alarmbot kan for eksempel fortelle brukeren om vêret, eller komme med ein nyhetsoppdatering. Den kan kommentere om brukeren har vore flink i det siste, eller skjelle dei ut. Smarthøgtalarar i dag må aktivt brukast for at dei skal gi ein respons. Alarmbot snakker av seg sjølv, og vil kanskje derfor virke meir som ein kunstig personligheit.
 

Grenselause mogelegheiter

Prosjektet tok inspirasjon frå smarthøgtalarar som Amazon Echo og Google Home. Desse høgtalarane har innebygd stemmestyring og er kobla til internett. Noen av dei har òg skjermar. Dei kan sjølvsagt spele av musikk, podcastar og lydbøker, men stemmestyringa og internettilgangen opnar opp for fleire muligheiter. Ein kan styre såkalla internet of things-dingsar via desse høgtalarane, for eksempel styrbare lyspærer, trådlause Hi-Fi-system, og låsesystem.


Den smarte heimen

Alarmbot kan utnytte dette nye "smart-home"-økosystemet på fleire måtar. Ein kan samle informasjon om brukaren og bruke desse til å forbedre algoritma. Ein kan òg utnytte dei forskjellige dingsane som desse høgtalarane kan styre. Det er mulig å bruke styrbare lyspærer til å simulere ein soloppgang, men kanskje Alarmbot finner ut at det mest effektive er å skru opp termostaten, eller spele musikk som brukaren ikkje likar. Naturen til dette økosystemet gjer det mulig å styre dingsar som ikkje er på same stad. Kanskje kan ein tenke seg at systemet kan koplast til ein kaffitraktar som kan freiste brukaren med nytrakta kaffe? Kan det sende signal til ein sjølvkøyrande bil om at dei kan trenge transport til jobben? Det er mange mogeligheiter, og det blir trulig fleire smarte system å finne i framtida.


Utviklinga

Prototypen vart utvikla som ein web-applikasjon i Javascript gjennom Node.js. Eg brukte React om utgangspunkt, og kombinerte fleire rammeverk for å få til den ønska funksjonaliteten. React lar ein dele opp applikasjonen i mindre bitar, eller komponentar, som kan lastast inn når dei trengs. Ofte kan ein finne ferdige komponentar som gjer det ein er ute etter. For å spele av lydfiler kan ein for eksempel bruke "react-sound". Dette gjer det ofte enklare å inkludere funksjonalitet, noe som er nyttig når ein utvikler ein prototype. Utfordringa låg i å få dei forskjellige bitane til å virke saman.

Andre rammeverk som vart brukt i prototypen inkluderar:

  • Tracking.js: ansiktsgjenkjenning i nettleseren
  • Web Speech: eit eksperimentelt rammeverk for syntetisk tale i nettlesaren
  • ml.js: eit sett av maskinlæringsverktøy som kjører i nettlesaren
  • OpenWeatherMap: for informasjon om været

Med stadig fleire moglegheiter for sansing og tolking av data er det ikkje vanskelig å se for seg fleire applikasjoner som Alarmbot i framtida.