Artikel top billede

(Foto: Computerworld)

Guide: Sådan får du et smart stemmestyret hjem uden Google

Det er flere veje til at smart hjem hvor lys, radiatorer og meget andet kan styres med din stemme. Vi viser hvordan du går udenom de store kommercielle løsninger og gør dit hjem smart med open source teknologi.

Af Rasmus Elm Rasmussen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Indrømmet: vi er ret skeptiske, når det gælder stemmeassistenter. Andre magasiner er oppe i skyerne over de seneste Alexa-tilføjelser og over, at de gør det så meget nemmere at bestille sager fra Amazon. De tilgiver det kaos, der bryder løs, når Siris navn bliver nævnt på tv, og alle iPhones inden for hørevidde med hæsblæsende iver begynder at tilbyde hjælp.

Teknologiskribenter svømmer hen over det vigtige i at dynge en netværksstak dybt ned i enhver anordning i ens hus, således at den kan være “smart”. Så kan de “smarte” enheder snakke sammen om deres dumme mennesker.

Sandsynligheden taler for, at du har smarte målere i huset, som holder øje med dit strømforbrug. Forsyningsselskaberne fortæller dig, at de smarte målere hjælper dig med at styre dit forbrug og spare penge, så du undgår vildt varierende estimater.

Det kan være rigtigt i enkelte tilfælde, men vi tør vædde på, at mange mennesker konstaterer, at deres regninger stiger efter installation af smarte målere. Hovedårsagen er nok, at selskaberne kan få større profit ved ikke at skulle have folk til at køre rundt og aflæse målere. De skal i stedet betale ansatte for at køre rundt og reparere dem.

Imidlertid er stemmeassistenter og netværksgadgets kommet for at blive, og hvis man ikke kan slippe for dem, kan man i hvert fald bruge en open source-udgave, der styrer ens hjem. Her er vores guide til det smarte hjem inklusive stemmeassistenten Mycroft, openHAB, Home Assistant og mere. Lad os komme i gang.

Velkommen til Mycroft

Der en Pi-drevet hjemmehjælper på scenen. Der er faktisk to, og man må gerne bruge deres kode.

Mycroft Mark blev lanceret i 2016, og den er blevet drevet af en Pi 2, men tingene udvikler sig, og nu bliver den leveret med en Pi 3. Det er en fiks enhed, og på grund af dens ET-agtige ansigt tilgiver man næsten, at den lytter til alle samtaler i dagligstuen.

Faktisk er den venlige facon en del af Mycrofts design – hvis man finder en funktion påtrængende eller unødvendig, kan man slå den fra takket være Mycrofts open source-natur. Mozillas Privacy Not Included-site har en positiv omtale på http://bit.ly/lxf249mycroft.

Mark I-enheden kan stadig fås, men den har altid været beregnet til hackere og hobbyfolk. En afløser er på vej, og Mark II bliver langt mere forbrugervenlig (men desværre ligner den ikke længere ET – se billedet nederst til højre) med seks mikrofoner, touchskærm og stereohøjttalere.

Prototypen Mycroft Mark II Home Assistant (øverst) bevarer noget af forgængerens charme (nederst), men den minder lidt mere om sine proprietære konkurrenter.

Hackerne behøver ikke at bekymre sig, for de kan stadig bruge den. Mycroft tager i øjeblikket imod forhåndsbestillinger på Mark II – hvis du er fristet, kan du læse om den på https://mycroft.ai. En anden mulighed er at køre den samme software, som kører på Mark I, på din egen Raspberry Pi eller Linux-maskine. Men lad os først se på noget Mycroft-etymologi og terminologi.

Du ved formentlig, at Sherlock Holmes havde en storebror ved navn Mycroft. Du er måske endda klar over, at i Heinleins klassiker The Moon Is a Harsh Mistress hedder den HOLMES FOUR-computer, som ved et uheld udvikler selvbevidsthed, Mycroft – forkortet til Mike. Og hvis du ikke vidste det, er det herfra, Mycroft Home Assistant har fået sit navn.

Du skal dog ikke blive bange – til trods for ihærdige anstrengelser er det ikke lykkedes os at få apparatet til at vise følelser, og vi har på intet tidspunkt følt os truet af Mycroft. Men det er måske netop det, den vil have os til at tro ...

Det er en god ide at gøre sig bekendt med Mycroft-nomenklaturen, før du begynder at gøre hjemmet smart, fordi noget af den kan umiddelbart virke lidt forvirrende.


  • Enclosure: Enhver enhed, der kører Mycroft – det kan være Mark I, en Pi eller din Linux-maskine.

  • Wake word: Det ord, der får Mycroft til at spidse de virtuelle ører. Den prøver at hjælpe dig med alt det, du siger efter dette ord.

  • Utterance: En kommando eller et spørgsmål, der bliver stillet til Mycroft.

  • Intent: En opgave, som brugeren ønsker at udføre; forskellige utterances kan have den samme mening. Mycroft bruger en letvægts-intentparser ved navn Adapt. Der findes også en mere kompleks parser, som bygger på neurale netærk. Den hedder Padatious.

  • Skill: En funktion, som Mycroft udfører som reaktion på en utterance; formålet kan være at videregive information, justere temperaturen på din smart-termostat eller aktivere dit hjems selvdestruktions-mekanisme. Intentparseren beslutter, hvilken skill der skal bruges til et givet spørgsmål.

  • Fallback skill: Hvis intentparseren ikke kan matche en skill med en given utterance, bruger den en generel fallback. Fallback skills til DuckDuckGo og Wolfram Alpha-viden-enginen er inkluderet, og de kan besvare de fleste generelle spørgsmål.


Mycroft har for nylig indledt arbejdet på frameworket CommonIoT. Vi henviser til forskellige frameworks i denne artikel, og du spørger måske dig selv, hvad vi skal med endnu et? Godt spørgsmål. Grunden er, at der nu findes så mange delvis samarbejdende økosystemer, at det sommetider er nødvendigt at bygge bro mellem lagene.

Det vigtigste er, at CommonIoT er tilgængelig som en Mycroft-skill, der gør det muligt stabilt at kontrollere forskellige platforme, og det fritager skill-forfattere fra at skulle slås med kode i naturligt sprog.

Hardwarekrav

Talegenkendelse er relativt belastende for cpu’en, og man skal derfor bruge mindst en Pi 2 for at køre Picroft. Selv den får problemer, og den officielle anbefaling (se https://mycroft.ai/documentation/picroft) er, at man bruger en Pi 3. Med den løsning behøver man heller ikke at bekymre sig over, om Wi-Fi fungerer.

Eftersom Pis indbyggede audio ikke har nogen form for analogt input, skal man bruge en USB-mikrofon. Vi opsøgte vores venner hos ModMyPi og anskaffede den ret avancerede Seeed ReSpeaker-mikrofonenhed, der har fire mikrofoner, og som derfor kan bestemme en lydkildes retning.

Man skal også bruge en form for højttaler; den kan man slutte til det analoge 3,5 mm-output eller via USB – eller via HFMI, hvis ens skærm har højttalere. Bluetooth-audio kan fungere, men flere brugere har rapporteret om problemer, og derfor er det nok bedst at styre uden om denne løsning. Man skal også have et SD-kort på mindst 8 GB.

Mycroft kan også køre helt fint på en Linux-desktopmaskine, så længe den har højttalere, mikrofon og en relativt stærk cpu. Enheden kan faktisk også køre på Android, hvis du har lyst til at prøve noget nyt.

Sådan installerer du Picroft eller mycroft

Installation af Picroft begynder ligesom installation af Raspbian: Man skal skrive et SD-kortimage. Der findes stabile og ustabile versioner på https://github.com/MycroftAI/enclosure-picroft. I denne guide arbejder vi med det stabile image, men giv det ustabile en chance senere, for her kan du finde nye funktioner (og muligvis programfejl).

Download imaget til din maskine – enhver maskine og ethvert styresystem – men husk blot, at det fylder 2,2 GB i zippet tilstand og 4,9 GB i udpakket tilstand. Sørg for, at du har plads nok. Du kan brænde dette image med et grafikprogram såsom Etcher (https://etcher.io) eller på den gammeldags facon med dd hvis du bruger Linux:

$ sudo dd if=raspbian-stretch_Picroft_2018-09-12.img
of=/dev/sdX status=progress bs=4K
Erstat /dev/sdX med den relevante enhed (kommandoen lsblk kan hjælpe dig med at finde ud af det, hvis du ikke er sikker). Skrivningen tager et stykke tid, og det er derfor nu, du går ud og laver en kop kaffe.

Når det er overstået, sætter du SD-kortet ind i din PI og tænder for maskinen. Du skal bruge en skærm og et tastatur, når du kører den indledende opsætning, men sidenhen er de ikke nødvendige, medmindre noget går galt.

Under den første boot gendanner Picroft sin partition med henblik på at bruge al den tilgængelige plads på SD-kortet. Når enheden er færdig med at boote for anden gang, spørger den, om man ønsker hjælp til at arrangere systemet. Denne hjælp omfatter desværre ikke trådløst netværk, og derfor skal man sige nej her, medmindre man bruger en kabelforbundet forbindelse til sin Pi.

Hvis der ikke bliver fundet nogen netværksforbindelse, bliver man ført til et andet script, der prøver at løse problemet. Med elementær Wi-Fi (WPA eller WPA2 med et kodeord) skal man tage den første valgmulighed og skrive sit netværks SSID og kodeord. Med mere komplicerede løsninger skal man bruge den tredje valgmulighed til at redigere filen “/etc/wpa_supplicant/wpa_supplicant.conf”.

Mycrofts kommandolinje-interface bør nu begynde, og du kan nu parre din Pi med Mycroft Home, som vi kommer ind på om et øjeblik. Først skal vi dog arrangere mikrofonen og højttalerne ved hjælp af guiden. Gå ud af interfacet ved at skrive :quit , og genstart så guiden med

$ mycroft-setup-wizard

Vælg først det lyd-output, der passer bedst til din hardware: Analogt, HDMI eller USB. Vælg dernæst det ønskede lydniveau. Hvis du har tilsluttet en USB-højttaler og ikke får noget output, er du måske nødt til at genstarte (ved at trykke R) for at få den til at virke.

Så kommer vi til mikrofontesten. Det er kun et par USB-mikrofoner og Googles AIY Kit der umiddelbart er understøttet, men anden hardware (såsom den Seeed ReSpeaker, vi brugte) kan gøres anvendelig, når de relevante drivere er blevet installeret. Brug den fjerde valgmulighed til at udsætte denne handling, hvis din hardware kræver yderligere opmuntring.

PS3 Eye virker umiddelbart sammen med Mycroft, selv om vi kun bruger dens PS3-øre.

Dernæst bliver du spurgt, om du vil auto-opdatere din master branch, og det er klogt at sige ja til det. Så skal du svare på, om du vil tillade kodeordsfri sudo – det er standardadfærden, som kan være usikker, afhængig af hvem der har adgang til din Pi. Endelig får du mulighed for at ændre standardkodeordet (“mycroft”) for Pi-brugeren, og det bør du formentlig gøre. Nu fortsætter opsætningen, og du kan springe sektionen “Creating a Mycroft Account” over.

Ikke på dansk

Forstår Mycroft dansk? Desværre ikke. På mycroft.ai kan man læse, at ”I øjeblikket er engelsk det eneste officielt understøttede sprog.” Men Mycroft-projektet er jo open source, og der er strengt taget ikke noget, som forhindrer andre i at gå i gang med nye sprogversioner.

Det bliver dog ikke nemt. I dokumentationsafsnittet på mycroft.ai understreger man, at det at tilføje support til et nyt sprog kræver en anselig arbejdsindsats. Det er komplekst, det kræver udvikling, og man skal have erfaring med Linux-systemadministration. Og til al overflod understøtter mycroft-cores Lingua Franca-bibliotek (endnu) ikke dansk. Men som der står på mycroft.ai: ”Bidrag til denne funktion bliver modtaget med tak”.

Det lyder ikke som noget, man lige ordner på køkkenbordet på en formiddag. Men de fleste af os har vel også efterhånden et ret fortroligt forhold til engelsk, righto?

Mycroft på din desktop

Til Linux-desktopmaskiner leverer Mycroft et setup-script på GitHub, og det virker på Debian, Ubuntu, Fedora og Arch. Man kan også få det til at virke på andre distroer, men det kræver en vis manuel opsætning – scriptet fortæller, hvilke biblioteker der mangler, og det er din opgave at finde den container, der indeholder dem. Uanset hvilken distro du kører, skal du bruge Git til at få det. Hent det med:

$ cd ~
$ git clone https://github.com/MycroftAI/mycroft-core.
git
$ cd mycroft-core/

Se nu på scriptet “dev_setup.sh”, fordi det er uklogt at køre vilkårlige sager fra internettet, der beder om rod-privilegier, også selv om folkene hos Mycroft er flinke og troværdige folk. Nu vil du se, at scriptet opretter et virtuelt miljø for ikke at blande sig i din Python-installation. Når du er sikker på, at scriptet er i orden, kører du det med:

$ ./dev_setup.sh

Nu bliver du bedt om at vælge den branch, du vil undersøge. Standarden bliver betragtet som den mest stabile, og derfor skal du vælge den. Hvis du senere får blod på tanden, kan du prøve development-branchen.

Dernæst skal du tillade, at scriptet automatisk opdaterer repo’et, medmindre du har en god grund til ikke at gøre det. Det næste spørgsmål går på, om du vil opbygge Mimic TTS’en (text-to-speech) lokalt. Det tager lang tid på en ældre maskine, men det er umagen værd, hvis du vil have Mycroft til at tale til dig, mens internettet er nede.

Mycrofts overdådige ASCI-skærmbillede. Endnu en anledning til, at Cool Retro Term kan komme med i billedet.

Til sidst bliver du spurgt, om du vil føje Mycroft Helper-kommandostien til din profil. Den gør livet lettere, og derfor skal du sige ja. Alle Mycroft-kommandoer begynder med mycroft , og hvis du skriver det og derefter trykker Tab, er det nemmere at manipulere.

Du bliver afkrævet et sudo-kodeord, hvorefter en anselig mængde af pakker bliver downloadet og installeret. Du får måske en advarsel om en forældet version of Pip (det kom vi ud for på Ubuntu 18.04.2), men den kan man tilsyneladende roligt ignorere. Nu er vi klar til at køre Mycroft for første gang, og det gør man fra mappen “mycroft-core/” med:

$ ./start-mycroft.sh debug

Funktionen debug åbner et kommandlinje-interface og viser omfattende start-logs. Når det hele er indlæst, får du en kode på seks tegn; den skal du bruge, når du vil parre denne enhed med Mycroft Home-tjenesten. Skriv den ned, fordi vi skal bruge den om et øjeblik. Der er ikke meget, som Mycroft kan gøre, før denne parring er fuldendt.

Opret en Mycroft-konto

Besøg https://home.mycroft.ai – fordi de lydlige meddelelser vil fortælle dig, om dine højttalere fungerer – til at oprette en konto, hvorfra du kan styre dine Mycroft-enheder. Skriv parringskoden, og giv din enhed et navn og en beskrivelse. Det interface, du startede tidligere, bør anerkende den nye enhed, og du kan skrive almindelige spørgsmål og kommandoer (der begynder med : – skriv :help for at få en liste), eller du kan tale direkte til Mycroft via din mikrofon, hvis din audioopsætning tillader det. Den prøver at svare på alt, hvad du indleder med “Hey Mycroft.”

På dette stade kan du fortsætte med tastatur og skærm sluttet til, og det er sandsynligvis en god ide i øjeblikket. Hvis du imidertid planlægger at lave en headless Mycroft Pi-opsætning, skal du tilslutte den over SSH, og det kan du lige så godt øve dig på nu. Du skal bruge din Pis adresse. Du kan enten bede om den direkte eller skrive det følgende ind i interfacet – Mycroft er i øvrigt ligeglad med apostroffer:

whats my ip address
Mycroft bør svare lydligt og leverer noget i retning af:
>> My network I.P. address is 192 dot 168 dot 0 dot 23

Det betyder, at du kan SSH’e ind fra en anden maskine med det følgende:

$ ssh username@192.168.0.23
Hvis du taler til Picroft, er brugernavnet pi , og kode-ordet er ikke længere mycroft , fordi du naturligvis beredvilligt har fulgt vores råd om at ændre det så hurtigt som muligt.
Hvis mikrofonniveauet i interfacet ikke svarer, forlader du interfacet med Ctrl-C og tjekker outputtet fra:

$ arecord -L

Hvis din mikrofon ikke bliver genkendt, skal du døje med at gennemgå din hardware – den ret antikke PlayStation 3 Eye-kamera/mikrofonen bliver varmt anbefalet af Mycroft-teamet, og den virker umiddelbart. Hvis den imidlertid bliver genkendt, kan du være nødt til at installere og justere Pulseaudio.

Det er et problem, der næsten udelukkende knytter sig til Pi, fordi alle de større distroer allerede har dette program. Det var nødvendigt på vores ReSpeaker HAT, og det kan du læse mere om i boksen herunder. Du kan altid vende tilbage til interfacet med:

$ mycroft-cli-client

Arranger respeaker

Seeed ReSpeaker Array Pi HAT er i sandhed et fikst stykke udstyr. Foruden fire mikrofoner har den 12 LED’er, som kan bruges til at indikere audioretning eller blot blinke vilkårligt og irriterende. Den har GPIO- og I2C-forbindelser, således at man kan daisychain-forbinde andre enheder til den.

Man kan også sætte den direkte på Seeeds GrovePi-hub og give mulighed for tilslutning af endnu flere sensorer. Den bruger AC108-codec, som i øjeblikket ikke er understøttet af Raspbian-kernen, og derfor skal vi installere en skræddersyet udgave. Opret forbindelse til Pi, enten med SSH eller tastatur, og forlad Mycroft-interfacet. Kør de følgende kommandoer:

git clone https://github.com/respeaker/seeed-voicecard.git
cd seeed-voicecard
sudo ./install.sh

Installationsscriptet tøffer afsted en stund, og til sidst kan du genstarte og aktivere den nye kerne med sudo reboot . Opret igen forbindelse, hvis du brugte SSH, og kør så sudo raspi-config for at arrangere audiodelen. Vælg “7. Advanced Options” efterfulgt af “A4. Audio” og “1. Force 3.5mm jack”. Og så skal du genstarte og nyde synet.

Hvis du kommer ud for problemer, skal du måske installere Pulseaudio og genstarte Mycrofts daemons med:

$ sudo apt install pulseaudio
$ ./start-mycroft.sh all restart

Hvis det stadig ikke virker (og husk: Hvis du er i tvivl, skader en genstart aldrig), skal Pulseaudio-inputenheden måske udskiftes. Opregn enhederne med pactl list sources , og udskift så standardværdien, så den matcher den linje, der begynder med Name i outputtet, med:

pactl set-default-source “alsa_input.platform-soc_sound.multichannel-input”

Mycrofts overdådige ASCI-skærmbillede. Endnu en anledning til, at Cool Retro Term kan komme med i billedet.

Gør dit hjem smart

Vi prøvede at forbinde Mycroft med forlagets centralvarmeanlæg, men ejendomsinspektøren kunne ikke se komikken ...

Foruden evnen til at fortælle dig din ip-adresse omfatter Mycroft en række egenskaber, der sætter den i stand til at besvare spørgsmål som “What time is it?”, “What’s my location?”, “What’s the weather like?” og “What is the capital of Assyria?”

På trods af, at det assyriske kongerige ikke længere eksisterer, var dette spørgsmål ejendommeligt nok det eneste, som Mycroft klarede korrekt ved vores første forsøg. Disse svagheder hang sammen med, at systemets Wolfram Alpha-fallback skill gættede vores lokation og tidszone ud fra vores ip-adresse og placerede os i en tidszone, der var tre timer forud for os.

Man kan ændre sin lokation ved at indstille den i ens Mycroft Home-profil. Man kan også vælge et brugernavn herfra – på den måde bliver det nemmere at logge ind på webportalen.

Mycrofts kerne-skills omfatter også et grundlæggende “Hello World”-eksempel, der reagerer på dens titel, “How are you?” og såmænd også “Thank you.” Prøv for sjovs skyld at bede den om at synge en sang eller fortælle en vittighed. Man kan også spørge den, hvordan bestemte ord skal staves, og man kan bede den oplyse om aktiekurser.

En af de mest populære skills til Mycroft er openHAB (Home Automation Bus), der er en platform til samtaler med alle mulige former for apparater i hjemmet. Den er samlet under et webinterface. Den kan kommunikere med en række forskellige enheder, herunder andre smarthome-platforme såsom Nest. Man kan også tilføje tredeparts-addons via Eclipse Marketplace, som gør det muligt for os at kontrollere den populære Hive-smarttermostat, og der er andre muligheder.

I gang med openHAB

Du kan installere openHAB-serveren på din Picroft-server eller på en anden maskine. Der findes et færdiglavet image ved navn openHABian, som du kan køre på en anden Pi – find det på http://bit.ly/lxf249hab. På Ubuntu eller på enhver anden Debian-agtig Linux begynder du med at tilføje den nødvendige GPG-nøgle og -repo. Du kan gøre sagerne nemmere ved at kopiere og indsætte denne tekst fra http://bit.ly/lxf249hab2:

$ wget -qO - ‘https://bintray.com/user/downloadSubjec
tPublicKey?username=openhab’ | sudo apt-key add -
$ echo ‘deb https://dl.bintray.com/openhab/apt-repo2
stable main’ | sudo tee /etc/apt/sources.list.d/
openhab2.list

Dernæst opdaterer du pakkelisterne og installerer openHAB:

$ sudo apt update
$ sudo apt install openhab2

Du vil måske også installere openhab2-addons-pakken. men man kan altid installere addons individuelt efter behov fra openHAB-webinterfacet. Du kan finde anvisninger til andre distroer og ustabile versioner på http://bit.ly/lxf249hab2. Begynd med openHAB, og tjek, at den er levende, med:

$ sudo systemctl start openhab2
$ systemctl status openhab2

Mycroft kender naturligvis navnene på hovedstæder i forne kongedømmer.

Java er ikke til at spøge med

Hvis det ikke virkede, kan problemet være, at dit system mangler en Java-runtime. Det var netop det, der skete for os på vores overbebyrdede Picroft-host, og vi løste problemet med:

$ sudo apt install oracle-java8-jdk
$ sudo systemctl start openhab2

Derefter var vi i stand til at få forbindelse med webinterfacet ved at pege vores browser mod http://192.168.0.23:8080 (vi må indrømme, at det tog et par minutter). Du skal huske at ændre delen før 8080 til din openHAB-hosts ip-adresse.

Det kræver nogen indledende konfiguration, men guiden fører dig igennem det hele. Før du for alvor går i gang med sagerne, bør du opsøge den udførlige dokumentation på www.openhab.org for at løse eventuelle småproblemer eller blive klogere på projektet. Det er afgjort umagen værd.

Flere evner

Vi dykker dybere ned i Mycroft-verdenen og kaster nogle blik ind i fremtiden.

Man kan finde flere skills (evner) på Mycroft Marketplace: https://market.mycroft.ai/skills (de er gratis). Herfra kan du installere dem verbalt med noget i retning af “Hey Mycroft install coinflip” eller manuelt på Mycrofts kommandolinjeinterface. Du kan også installere skills fra mycroft-skills-repoet GitHub. Her kan du tilmed finde fremragende dokumentation om selv at skrive dem.

Hvis du har en Spotify Premium-konto, kan du finde en skill til den. Du kan enten afspille tracks med andre enheder via Spotify Connect eller afspille dem fra den enhed, Mycroft kører på. Når du tilføjer denne Spotify-skill fra Marketplace, bør du se en meddelelse som denne:

INFO - Will install [‘mycroft-spotify’] from the marketplace

Før du kan bruge denne Spotify-skill, skal du indskrive nogle oplysninger. Med linkene til venstre for Marketplace begiver du dig til “My Account > Profile”. Herfra følger du linket “Skills” foroven. Blad ned til “Spotify Skill”, og skriv dine Spotify-oplysninger. Du bliver bedt om at tildele rettigheder til denne Mycroft-skill, og forhåbentlig bliver du budt velkommen af en meddelelse om, at du har forbindelse.

Glem ikke at klikke “Save” foroven og dermed endnu en gang bekræfte din hensigt. Den anden bekræftelse er nødvendig – bortset fra API-forbindelsen til Spotify, der finder sted med en OAuth, kræves der endnu en enheds-autentificering, som instruerer denne skill i at bevare dine Spotify-oplysninger. Læs dokumentationen på http://bit.ly/lxf249spotify, hvis du vil logge ind via Facebook, eller hvis du blot vil vide mere om projektet.

Nu kan du indtale (eller skrive) spørgsmål som “What Spotify devices are available?”, “Show my playlists” eller “What song is this?” Du kan også fremsætte krav som “Play discover weekly”, “Play Get Free by Major Lazer” og “Stop playing.” I “Skills”-konfigurationssiden i din Mycroft Profile kan du under “Remote Control Device” også ændre standard-afspilningsenheden og lade Spotify streame til din Mycroft-enhed.

Interessant nok har Mozilla for nylig under en Creative Commons-licens lanceret version 2.0 af datasættet Common Voice. Det omfatter tusinder af timer af sammenholdt audio og transskription på 18 forskellige sprog. Det giver mindre projekter adgang til et åbent dataset af en art, som hidtil kun var tilgængelig for store firmaer.

OpenHAB og andre platforme

Mycrofts addon-side har nogle få IoT-sager, og der er adskillige platforme uden for Mycroft.

Vi har kun kradset i overfladen af det, som openHAB er i stand til, men det er kun én ud af en række platforme, der i større eller mindre grad kan samarbejde med hinanden og ikke mindst med Mycroft.

For eksempel er der en Minecraft-plugin til openHAB, således at man kan kontrollere enheder i hjemmet fra spillets verden. Den bruger den populære SpigotMC-plugin – slå den op. Man kan også bruge openHAB til at kommunikere med Nest-enheder og Amazon Echo.

Der findes også en Mycroft-skill, som styrer enheder, der er forbundne via den populære open source Home Assistant-platform (www.home-assistant.io), som kan tale med alle mulige ting såsom Sonos audiosystemer, Alexa, Google Assistent og Z-Wave devices. Ligesom openHAB har Home Assistant en smartphone-app og omfatter også et webinterface. Endelig har Google Assistent sit eget Python-bibliotek. Du kan finde samplekoden på http://bit.ly/lxf249python.

Mycroft har sin egen anonyme funktion til indsamling af stemmedata, og den kan man gå ind i nederst i “Basic Settings” på siden “Mycroft Account”. I fremtiden vil firmaet formentlig indrage Common Voice-data i den samling, det allerede har med Mozilla DeepSpeech-teamet (https://research.mozilla.org/machine-learning).

Målet er, at DeepSpeech en dag bliver standarden for speech-to-text (STT) i Mycroft, men i øjeblikket kræver systemet en anselig mængde gpu-kraft for at køre ved gennemsnitlige hastigheder. I fremtiden kan man lægge det ud på cloudtjenester, og Mycroft har da også allerede en pulje af gpu-tunge maskiner, som kan tage sig af det hårde arbejde for ML-kyndige Mycroft-brugere. I mellemtiden kan de, der virkelig er gjort af et særligt stof, køre deres egen omgang DeepSpeech.

Vi har tidligere nævnt intentparseren Adapt. En ny intentparser, Padatious – der bygger på neurale netværk, maskinlæring og så videre – bliver udviklet af Mycroft. Hvor Adapt fokuserer på små grupper af ord og prøver at uddrage deres indhold og forholdet imellem dem, analyserer Padatious hele sætninger. Ifølge Mycroft er det sandsynligt, at Padatious vil erstatte Adapt på nogle platforme, sandsynligvis især dem med tilstrækkelige algoritmiske hestekræfter.

I modsætning til closed source-assistenter kan vi være temmelig sikre på, at Mycroft ikke lytter til os hele tiden. Eller for at være helt nøjagtig: Den lytter til os hele tiden, men enhver lyd, som den opfatter før et wake word, bliver kasseret.

Fuldt blus på respeaker

1. Aktiver SPI-bus

De 12 LED’er på ReSpeaker er forbundet over Pis SPI-bus. Den skal aktiveres, før vi kan kommunikere ved hjælp af den. Kør:
$ sudo raspi-config
Vælg så “Interfacing Options > SPI”, og vælg “Enable SPI”.

2. Blinkende lygter

Nu tager du ReSpeaker-koden og installerer nogle lowlevel-Python-dependencies:
$ git clone https://github.com/respeaker/4mics_hat.git
$ pip install spidev gpiozero
Kør demoen “blinkenlights” med:
$ cd ~/4mics_hat/
$ python pixels_demo.py

3. Hjælp os!

Vi kunne ikke få Direction of Arrival-koden (DoA) fra mic_array-repoet til at virke. Vi begyndte med at ændre Queue til queue i linje 4 og 25 mic_array.py. Det var godt nok. Så viste denne kode retningen i interfacet, men den tændte ikke vores LED’er:
$ cd ~/mic_array/
$ python vad_doa.py
Det virker måske, når du læser dette.

En naturlig følge af dette er, at uden dette wake word bliver alt kasseret. Den standard-engine, der lytter til dette wake word, hedder PocketSphinx, men der findes et alternative, Precise (se http://bit.ly/lxf249precise). Precise er langt mere nøjagtig og bygger på data, der er indsamlet fra Mycroft-brugere, som medvirker i den dataindsamling, vi nævnte ovenfor.

I øjeblikket bliver Precise kun brugt som wake word-detektor. Det er derfor, man kan blive mistroisk over, at Mycroft er så hurtig til at reagere på “Hey Mycroft”, men alt for ofte kan man hverken finde hoved eller hale i de lyde, der kommer bagefter. Det skal dog nævnes, at Precise allerede bliver brugt andetsteds. En særlig interessant anvendelse er Sickweather (www.sickweather.com).

Dette site har brugt den til at spore host og nys på offentlige steder, navnlig i forbindelse med transport. Med pålidelige data og nok af dem er det meningen at kortlægge og forudsige udbrud af influenza og andre sygdomme – en veritabel sygdomsudsigt, hvilket forklarer navnet. Vi finder det ret bizart, at et værktøj, der udtrykkeligt fokuserer så stærkt på det talte ord, finder anvendelse i forbindelse med harken og hosten.

Jo mere vi kigger på den, jo mere ligner smilet lidt hedengangne Clippy - den hjælpsomme papirklips i Windows.

Vi stoler på Mycroft og Mozilla og alle andre, der arbejder for at fremme open source, men det er svært ikke at blive en anelse utryg ved tanken om indsamling af stemmedata. Vi deler i forvejen langt mere, end vi burde, med internettet gennem Facebook, Google og venner.

Stemmen bliver et stadig mere populært valg til interaktion med internettet og de ting, der er knyttet til det i vores hjem, og det følger heraf, at vi vil dele mere og mere følsom information med de pågældende tjenester.

Det er problematisk, hvis data viser sig ikke at være tilstrækkeligt anonymiserede. Og med denne lettere modløse betragtning siger vi tak for denne gang, før den lille hær af Picroft-maskiner, vi har arrangeret i kælderen under Alt om DATA, ryger ud i en hårrejsende feedback-løkke og river tæppet væk under os alle.