Door Olaf Weijers

Redacteur

Spraakassistentie zonder cloud

Bescherm je privacy met zelfbouw

16-10-2023 • 06:00

79

Multipage-opmaak

Introductie

Zoals we in de jongste review op smarthomegebied al constateerden, zijn spraakassistenten alom aanwezig. Ze hebben de potentie om een hoop gemak toe te voegen aan ons leven en dat soms ook veiliger te maken, bijvoorbeeld tijdens het autorijden. Voor je smarthome is een spraakassistent ook een ideale oplossing. Een spraakopdracht is immers makkelijk uitgesproken en, als je assistent je goed heeft verstaan, meestal sneller dan je apparatuur bedienen via een app op je smartphone die nog uit je broekzak moet komen.

Google Nest MiniDe rappe opkomst van spraakassistenten heeft wel een keerzijde. De techniek kost aardig wat processorkracht om goed en vlot te functioneren en die kracht wordt door de commercieel verkrijgbare spraakassistenten vrijwel altijd uit de cloud gehaald. De ‘computer van een ander’ krijgt daarmee best veel toegang tot je leven en dat is niet afhankelijk van hoe vaak je de spraakassistent inzet. Het achterliggende platform is verbonden met je apparatuur om deze te kunnen bedienen en daardoor continu op de hoogte van de status van die apparaten.

Wil je liever je data privé houden, maar toch gebruikmaken van spraakassistentie, dan zul je dat lokaal moeten opzetten. De laatste paar maanden zien we mede door de inspanningen van Nabu Casa, het bedrijf achter Home Assistant, een grote verschuiving naar hoe haalbaar het bouwen van lokale spraakassistentie is. Home Assistant is de afgelopen maanden uitgebreid met extra functies om spraakassistentie goed te ondersteunen. Ook het opensourcepakket Rhasspy zet (weer) grote stappen vooruit in de ontwikkeling. Dat is interessant voor gebruikers van andere platforms, zoals OpenHAB, Domoticz en platforms die Node-RED integreren.

Spraakassistentie vereist een combinatie van software en hardware. Op dat laatste gebied zijn er steeds meer kant-en-klare modules te koop waarmee je relatief eenvoudig een microcontroller of singleboardcomputer kunt uitrusten met de juiste componenten, zoals een microfoonarray en een speaker.

Hoog tijd om de wereld van lokale spraakherkenning te betreden om te zien wat de stand van zaken is. We kijken naar enkele hardwaremogelijkheden om zelf een satellietspraakassistent mee te bouwen. Daarnaast bekijken we in deze review twee eerdergenoemde spraakassistentieplatforms, Home Assistant en Rhasspy, die je lokaal kunt draaien zonder cloud. Hoe makkelijk zijn deze op te zetten en zijn de resultaten acceptabel genoeg om de investering in tijd en hardware te verantwoorden?

De lagen van een spraakassistent

Spraak-naar-tekstherkenning is geen nieuwe techniek. Sommigen zullen zich misschien nog de Dragon NaturallySpeaking-software herinneren, die het jaren geleden al mogelijk maakte om tekst te dicteren naar de tekstverwerker op je computer.

Voor spraakherkenning zijn diverse opensourcesystemen te verkrijgen. Enkele bekende zijn Kaldi, Whisper en DeepSpeech. Om een van deze systemen te gebruiken, zul je het eerst moeten trainen. Gelukkig hoef je dit in veel gevallen niet (helemaal) zelf te doen, maar zijn er kant-en-klaar getrainde spraakmodellen beschikbaar in verschillende talen.

Spraak die wordt aangeboden aan een spraakmodel, wordt door het model opgebroken in losse klanken of fonemen. Deze fonemen worden vergeleken met de getrainde klanken die het systeem bevat, waarbij elk herkend foneem gepaard gaat met een waarschijnlijkheidsscore. Alle fonemen worden vervolgens ‘aan elkaar gelijmd’ en op dit resultaat voert het model een statistische analyse uit om de fonemen om te zetten in woorden en vervolgens de woorden in zinnen.

Intentieherkenning

Om je smarthome te bedienen, is boven op spraak-naar-tekst nog een extra laag nodig. In deze laag wordt de herkende tekst geanalyseerd en bekeken of er om actie of informatie wordt gevraagd. Dit heet intentieherkenning en vormt het verschil tussen horen en begrijpen voor een spraakassistent.

Een model voor intentieherkenning kan heel star zijn.Een model voor intentieherkenning kan heel star zijn. Er zijn modellen die alleen reageren op zinnen die je vooraf hebt gedefinieerd, in feite een vast menu aan keuzes waarvan je niet al te ver kunt afwijken. Het commando 'Zet de lichten in X aan' kan zo herkend worden als een actie voor lichten die ingeschakeld moeten worden. Op de plek van X kun je het model een optielijst aanbieden van alle ruimtes in je huis.

Andere intentieherkenningsmodellen werken in de breedte en zoeken steekwoorden in de aangeboden tekst om zo de intentie te bepalen. Als je zo’n model de tekst 'Wat is de weersvoorspelling voor Haarlem voor morgenochtend?' aanbiedt, zal deze veelgebruikte lidwoorden, voorzetsels en dergelijke overslaan, en zichzelf richten op 'voorspelling', 'Haarlem' en 'morgenochtend'. Met die woorden kan het intentiemodel de zin aanduiden als een vraag om een weersvoorspelling. Het model kan hierbij ook de context van de tekst die al herkend is, gebruiken om preciezer te analyseren.

In het voorgaande voorbeeld herkende het model het woord 'voorspelling', terwijl de aangeboden tekst 'weersvoorspelling' bevatte. Het woord 'weer’ is normaal niet zo interessant voor het model. In een zin als 'Zet het licht weer aan' is het beter om dat woord niet mee te nemen. Bij de herkenning van het woord 'voorspelling' kan een algoritme ervoor kiezen om opnieuw de overgeslagen woorden te analyseren en te kijken of ze de herkende context extra kracht bijzetten. Een model dat deze techniek inzet, kan hierdoor met veel meer zekerheid aangeven dat de vraag in het geval van ons voorbeeld een weersvoorspelling betreft.

Tekst naar spraak

Spraakassistentie in onderdelen
Spraakassistentie in onderdelen

Als je om het weer vraagt, is het fijn als je spraakassistent zelf een stem heeft om te kunnen antwoorden op die vraag. Hiervoor heb je een tekst-naar-spraaksysteem nodig dat gebruikmaakt van een spraaksynthesizer die de gewenste spreektaal ondersteunt. Net als bij spraakherkenningsmodellen kun je verschillende talen en stemmen toevoegen als losse dataset, waardoor een systeem verschillende talen kan spreken met verschillende stemmen. Vaak kun je die spraak afstellen, bijvoorbeeld het tempo waarin gesproken wordt of de toonhoogte van de stem. Uitgebreidere modellen maken de stem natuurlijker door kleine willekeurige variaties aan te brengen in de snelheid of toonhoogte waarmee sommige klanken worden uitgesproken.

Dialoogmanagement

Nu je dingen aan je spraakassistent kunt vragen en je spraakassistent kan antwoorden, is er dialoogmanagement nodig. Heel ingewikkeld is de werking niet; dialoogmanagement voegt een sessienummer toe aan elke spraakopdracht. Bij een tekst-naar-spraakopdracht die voortkomt uit een eerdere vraag, kan het smarthomeplatform die sessie-id bijvoegen. Daarmee kan het spraakassistentieplatform het antwoord op de juiste satelliet afspelen.

Hardware

Als je zelf een spraakassistent gaat bouwen, zijn de mogelijkheden slechts beperkt door je eigen kunnen. De open opzet van de hardware en software die we vandaag bekijken, biedt je de mogelijkheid om helemaal zelf te verzinnen hoe je je huis wil uitrusten met microfoons en speakers in elke ruimte. Er zijn talloze microcontrollers en singleboardcomputers te koop met ruim voldoende kracht om lokaal de taken af te handelen die spraakassistentie vereist.

De eisen die spraakassistentie aan hardware stelt, zijn niet mals. Als je niet elke keer seconden wil wachten totdat een spraakopdracht is verwerkt, zul je ervoor moeten zorgen dat de hardware waar dat proces op wordt afgehandeld, krachtig genoeg is. De pakketten waar we vandaag naar kijken, doen het redelijk op een Raspberry Pi 4. Voor meer reactiesnelheid is het echter fijn als er wat meer power beschikbaar is, zoals een NUC of andere mini-pc op basis van een i3- of i5-processor.

Satellieten

De software die we in dit artikel bekijken, ondersteunt het server-satellietmodel waarbij de zware taken centraal worden uitgevoerd. Zo wordt de hardware van de satellieten ontlast en kunnen deze lichter worden uitgevoerd. Spraakherkenningshardware die met Home Assistant moet samenwerken, moet het Wyoming-protocol ondersteunen.

MAX98357 i2s DAC met 3W versterker
MAX98357 i2s-dac met 3W-versterker

Als je je spraakassistent zelf bouwt, hoeft de hardware niet duur te zijn, maar word je wel afhankelijk van Home Assistant. De vooruitgang die dit platform heeft geboekt, heeft erin geresulteerd dat je al een ESP32-microcontroller met ESPHome-firmware als satelliet kunt gebruiken. Met die microcontroller kun je een microfoon verbinden die Inter-IC sound (i2s) ondersteunt. Daarnaast kun je bijvoorbeeld een max98357-dac/versterkerchip met een luidspreker aansluiten voor gesproken feedback.

Een ESP32 heeft relatief niet zoveel verwerkingskracht. Het is daarom nog lastig om wakewords te ondersteunen. Een wakeword is een woord of korte zin die de spraakassistent laat ontwaken. Voor wakeworddetectie is een satelliet op basis van deze microcontroller nog afhankelijk van de server. Dat betekent dat de satelliet continu audio over je wifinetwerk zendt, wat nadelig is voor de beschikbare radiotijd en verscheidene apparaten voortdurend aan het werk houdt, wat ook niet gunstig is voor het energiegebruik.

Eenvoudige spraakassistentiehardware

M5STACK ATOM echo
M5Stack ATOM Echo

Bovenstaand pakket is kant-en-klaar te koop in de vorm van de M5Stack ATOM Echo. Een ESP32 met microfoon, luidspreker, led en drukknop verpakt in een kleine kubus. Ik heb dit apparaat zelf geprobeerd en kwam tot de conclusie dat het een prima proof-of-conceptapparaatje is, maar niet meer dan dat. Het vermogen van de luidspreker is niet groot, waardoor spraak van het platform al gauw verdrinkt in omgevingsruis. De microfoon is vrij ongevoelig, waardoor je luid en duidelijk moet spreken, en van ruisonderdrukking is geen sprake. Daardoor moet het achterliggende platform harder aan de bak om de spraak te ontcijferen en is de succesfactor vrij laag als je een andere taal dan Engels gebruikt. Het kan beperkt zijn tot mijn exemplaar, maar de ATOM Echo verspreidde na enkele minuten gebruik een brandlucht, al bleef alles functioneren. Bovenstaande minpunten werden ondanks dat brandluchtje ook opgemerkt door andere gebruikers. Om deze redenen kunnen we deze revisie van de ATOM Echo niet aanraden voor meer dan een experimentje.

ESP32-S3 Box-3
ESP32-S3 Box-3

Een alternatief voor de relatief simpele ESP32 is Espressifs ESP32-S3 Box-3. Dit is een iot-developmentkit die in combinatie met project Willow gekoppeld kan worden aan Home Assistant, dat zelf nog geen ondersteuning heeft voor deze hardware. Hier wordt aan gewerkt, omdat het apparaat onder andere beschikt over twee microfoons en Espressif een audiotoolkit meelevert. Met de functies in die toolkit kan de ontvangen audio worden opgepoetst, waardoor de spraakherkenning een stuk nauwkeuriger kan functioneren. De S3 Box-3 heeft zelf ook al ondersteuning voor wakewords, al is dit beperkt tot ‘Alexa’ of het fijn van de tong rollende ‘Hi ESP’. Op dit moment is de S3 Box-3 overal uitverkocht, maar volgens Espressif is er nieuwe voorraad in aantocht. Het is dus nog even wachten, maar er is kans dat er in de nabije toekomst een grote rol is weggelegd voor deze developmentkit.

Singleboardcomputers

Met name detectie van wakewords is nog lastig op simpele microcontrollers. Om de keten achter je satelliet te ontlasten, kun je iets krachtigere hardware inzetten. Zowel Home Assistant als Rhasspy biedt ondersteuning voor krachtigere satellieten. De voornaamste eis is dat de satelliet een dockercontainer kan draaien die toegang heeft tot een microfoon en eventuele audio-uitvoermogelijkheden. Een populaire keus is een Raspberry Pi als basis van je satelliet, maar een andere singleboardcomputer is natuurlijk ook prima, zolang deze maar bovenstaande eisen inwilligt.

Wil je een compacte, zoveel mogelijk geïntegreerde spraakassistent bouwen, dan heeft Seeed Studio verschillende uitvoeringen van de ReSpeaker voor de Raspberry Pi. Dit zijn opsteekmodules of hats waarmee je de Pi kunt uitbreiden met microfoonarrays in verschillende uitvoeringen.

Microfoonarray

ReSpeaker Pi Hat
ReSpeaker 4-mic-array op Raspberry Pi

Een microfoonarray heeft potentieel voordelen boven een enkele microfoon. Door gebruik te maken van verschillende microfoons in een circulaire of vierkante opstelling is het mogelijk om de richting te bepalen vanwaaruit een commando wordt gegeven. Misschien nog belangrijker is dat omgevingsruis met zo’n microfoonopstelling kan worden weggefilterd. Dit gaat met name goed als de ruis uit een andere richting komt dan de spraak. Doordat in zo’n geval omgevingsgeluid op een ander moment bij sommige microfoons aankomt dan het stemgeluid, kan een algoritme de geluidsbronnen van elkaar scheiden en zo het stemgeluid isoleren.

Helaas is de ondersteuning voor meer dan één microfoon bij Rhasspy en Home Assistant nog niet goed uitgewerkt en doen de modules van Seeed Studio dit ook niet 'aan boord'. Ondanks dat heb ik prima resultaten met de ReSpeaker 4-mic-array in mijn eigen testopstelling voor dit artikel. Zowel de wakewordherkenning als de spraakherkenning werkt goed, ook van enkele meters afstand. Dit model is uitgerust met een aantal leds in een cirkelopstelling waarmee de satelliet duidelijk de status kan aangeven, wat erg fijn is in het gebruik. Een beetje vreemd is echter dat de ReSpeaker geen luidspreker bevat en zelfs geen uitgang voor een luidspreker. Voor audio-uitvoer ben je aangewezen op de lijnuitgang van de Pi.

Conferentiemicrofoon

Anker PowerConf S330
Anker PowerConf S330

De ReSpeaker-modules laten zich mooi integreren met een Raspberry Pi en bieden veel mogelijkheden in een compact pakketje, maar er zijn meer mogelijkheden. Een losse USB-microfoon of conferentiemicrofoon met speaker kun je ook combineren met Rhasspy. Daarbij is het natuurlijk een eis dat de microfoon ondersteund wordt door het onderliggende OS waar Rhasspy op draait. Een conferentiemicrofoon waar veel goede ervaringen mee zijn, is de Anker Powerconf S330. Conferentiemicrofoons zijn duurder dan een hat of i2s-microfoon, maar een handige, kant-en-klare oplossing waar je weinig meer aan hoeft te doen dan de USB-kabel inpluggen. Een bijkomend voordeel is dat de beter uitgevoerde conferentiemicrofoon, zoals de anker, de audio nabewerkt.

Als je gebruikmaakt van een krachtige, centrale server en daarmee je satelliet ontlast, kunnen Rhasspy en HomeAssistant al functioneren op een Raspberry Pi 2. Een prima manier om oudere Pi’s een nieuw leven te geven, al zul je heel oude Pi’s van een wifiadapter moeten voorzien om te voorkomen dat je een UTP-kabel naar je satelliet moet trekken.

Software: Rhasspy

We bekijken in deze review twee oplossingen die je kunt gebruiken voor spraakherkenning. De ene is een zelfstandig spraakherkenningsplatform: Rhasspy. Dit pakket biedt alle functies die je nodig hebt voor een spraakassistent en kan gekoppeld worden aan verschillende smarthomeplatforms, zoals Home Assistant, maar ook OpenHAB en Node-RED worden ondersteund.

Rhasspy is ontwikkeld om op een Raspberry Pi te draaien. Heel krachtige hardware heeft het dus niet nodig om zijn werk te doen, maar het kan krachtigere hardware wel benutten. Doordat het wordt geleverd met verschillende pakketten voor elke laag van de spraakassistentie, kun je zelf een keuze maken of je een lichter of zwaarder model wil draaien voor spraakherkenning.

Rhasspy als Home Assistant Add-on
Rhasspy als Home Assistant Add-on

Je bent bij Rhasspy vrij om de spraakherkenning plaats te laten vinden op de hardware die de spraak ontvangt of op een andere computer in je netwerk. Je kunt hierdoor verschillende goedkope satellieten bouwen, die vervolgens allemaal gebruikmaken van je krachtige homeserver die de spraak-naar-tekstanalyse voor zijn rekening neemt met een module die veel te zwaar zou zijn om op de satellieten te draaien. De installatie van Rhasspy is vrij eenvoudig. Doordat het pakket in een dockercontainer draait, is het een fluitje van een cent om de container te downloaden en te starten. De configuratie vindt allemaal plaats binnen het pakket, via de webinterface. Ook Home Assistant biedt de mogelijkheid om Rhasspy als add-on te installeren en ook bij dit pakket is de installatie een kwestie van een paar muisklikken.

Leercurve

De leercurve gaat steil omhoog als je het pakket eenmaal hebt draaien. Omdat het pakket voor elke functie verschillende pakketopties biedt, kan het voor een beginner snel gaan duizelen. Gelukkig is er uitgebreide documentatie beschikbaar en zijn er, bijvoorbeeld op YouTube, voorbeeldvideo's met uitleg te vinden die je wegwijs maken.

Rhasspy's interface
Rhasspy's interface

Ik ben zelf aan de slag gegaan met Rhasspy om twee opstellingen te proberen. De eerste bestond uit een losstaande installatie van Rhasspy op een Raspberry Pi 3B, voorzien van een Seeed Studio ReSpeaker. Daarna heb ik deze opstelling geconfigureerd als satelliet om samen te werken met mijn thuisserver, waarop een aparte Rhasspy-instantie draait met stevigere modellen. Daarbij werd duidelijk dat er in de praktijk nog best wat obstakels zijn waar je tegenaan loopt om het pakket goed te configureren, zeker als je gebruikmaakt van de Nederlandse taal.

Na de installatie van Rhasspy moet je in de instellingen aangeven welke opties je wilt gebruiken voor alle lagen van de spraakassistent. Daarbij moeten we complimenten geven aan de gebruikersinterface; hoewel het niet de meest flashy interface is die we zijn tegengekomen, is vanaf het begin duidelijk welke stappen Rhasspy doorloopt van opname tot afhandeling. Bij het configureren ga je deze allemaal in een logische volgorde af.

Je geeft aan op welke basis Rhasspy communiceert (intern of extern). In de volgende stap kies je de microfoon voor opname. De stap daarna neemt je mee in de selectie van het wakeword, waarmee het apparaat ontwaakt. Daarna kies je een spraak-naar-tekstmodule die je taal en hardware ondersteunt enzovoort. Op die manier krijg je een goed idee van de verschillende componenten van Rhasspy en in welke fase van het proces deze in actie komen.

Rhasspy's instellingenRhasspy's instellingenRhasspy's instellingenRhasspy's instellingen

Wakeworddetectie

Een van de fijne dingen die een lokale spraakassistent beter kan dan de commerciële varianten, is de keuze van een eigen wakeword. Rhasspy biedt de keuze voor verschillende modules. Porcupine, de aangeraden module, biedt keuze uit een lijst vooraf getrainde wakewords, zoals 'terminator', 'computer', 'americano' of gewoon 'hey Google'. Nog mooier is de module Rhasspy-Raven die je zelf wakewords kunt leren. Hiermee kun je de spraakassistent aanspreken met een naam die je zelf handig vindt.

Als je spraakassistent over een speaker beschikt, is het mogelijk om de detectie van een wakeword te laten bevestigen met een korte piep of ander geluid. Zo weet je dat het apparaat je heeft gehoord en naar de rest van je verzoek luistert.

Spraak naar tekst

Nadat je een spraak-naar-tekstmodel hebt geselecteerd, downloadt Rhasspy automatisch een dataset waarmee de taal kan worden herkend. Deze datasets zijn niet erg uitgebreid. Getallen en simpele woorden worden herkend, maar het is een uitdaging voor deze modellen om woorden te herkennen als

Eigen woordenlijst in Rhasspy
Eigen woordenlijst in Rhasspy

‘toiletverlichting’ of ‘bewegingssensor’. Voor een goede herkenning moet je het model deze woorden laten trainen.

Hoewel Rhasspy na de training basis-Nederlands verstaat, inclusief de woorden die uniek zijn voor je huis, kan het nog steeds niet goed interpreteren wat er met deze woorden moet gebeuren. Daarvoor is intentieherkenning nodig. Rhasspy biedt hiervoor de Fsticuffs-module, maar deze heeft niet veel eigen intelligentie en moet je daarom zelf nog compleet inrichten. Dit doe je door aan de module aan te geven welke woordvolgorde bij een commando hoort, welke woorden daarin bijvoorbeeld de doelapparaten zijn en welk woord een actie aanduidt. Dat is een lange zin. Het wordt misschien duidelijker door de syntaxis waarmee je dit doet, erbij te pakken.


[GetTime]
hoe laat is het

[GetTemperature]
wat is de temperatuur
hoe (warm | koud) is het

[ChangeLightState]
zet de (studiospots | studioverlichting |woonkamerverlichting 
| woonkamerlamp | garageverlichting){name} (aan | uit){state}

Bovenin zie je de simpelste vorm. Enkel het exacte commando ‘Hoe laat is het?’ wordt hiermee herkend als de intentie [GetTime]. De GetTime-intentie wordt door Rhasspy doorgegeven aan het achterliggende smarthomeplatform, dat met die intentie aan de slag gaat en bijvoorbeeld een tekst-naar-spraakcommando met de huidige tijd kan terugsturen.

In het middelste en onderste voorbeeld is meer logica toegevoegd. De temperatuur kun je op twee manieren opvragen. Een 'starre' zin en een zin waarbij het niet uitmaakt of je het woord 'warm' of 'koud' gebruikt; beide werken.

Het onderste voorbeeld is een uitgebreide intentie. Hier wordt een aantal alternatieven opgesomd die in de zin kunnen worden opgenomen, dit woord wordt gekoppeld aan de {name}-variabele. De vraag of de lamp aan of uit mag, wordt gekoppeld aan de {state}-variabele. De intentie die in zo’n geval naar het achterliggende smarthomeplatform gaat, is de [Changelightstate]-intentie met daarbij de naam en de gewenste staat.

Je ziet wellicht al dat dit erg bewerkelijk is. Voor elke vraag die je in de toekomst wil stellen, zul je moeten bedenken hoe je deze ongeveer gaat verwoorden en welke variabelen je wil opnemen. Daarbij moet je in al die vragen alle mogelijke apparaten opnemen, dus al je lichten, schakelaars, sensors enzovoort.

Automatiseren met een script

Gelukkig is er een optie om een groot deel van dit werk te automatiseren. Je kunt een script toevoegen aan Rhasspy waarmee het automatisch alle apparaatnamen opvraagt bij Home Assistant. Het script verdeelt deze vervolgens per apparaattype en biedt de lijst namen dan aan de spraak-naar-tekstmodule om op te trainen. Elke keer als je het model traint, is dit zo op de hoogte van de nieuwste toevoegingen aan je smarthome.

De verschillende apparaatcategorieën worden ook gekoppeld aan een variabele die je in de zinnen kunt gebruiken om ze een stuk eenvoudiger te houden. Tenminste, de syntax wordt niet eenvoudiger, maar het bouwen van een uitgebreide spraakondersteuning wordt een stuk efficiënter. Een voorbeeld van hoe dit eruitziet, is als volgt:


[HassTurnOn]
lights = $hass/entities,light
switches = $hass/entities,switch
entities =  | 
zet [de] (){name} aan

[HassTurnOff]
zet [de] (){name} uit

Voordat bovenstaand voorbeeld wordt uitgevoerd, haalt het script bij Home Assistant een lijst op van entiteiten en hun bijbehorende apparaatgroep. Met deze lijst filtert Fsticuffs de categorieën op lights en switches.

De zin ‘Zet X aan/uit’ wordt vervolgens gekoppeld aan deze entiteiten en de intentie HassTurnOn en HassTurnOff. Home Assistant herkent die intenties en past de bijbehorende status toe op de gevraagde apparaten.

Met deze componenten ingesteld heb je een basisspraakassistent opgetuigd. De hardware waarop Rhasspy draait, zal nu beginnen met luisteren naar het wakeword en de opgenomen spraak interpreteren, er intenties van maken en deze naar het achterliggende platform verzenden. Nadat het achterliggende platform de intentie heeft verwerkt, kan het zijn dat er informatie of een extra vraag moet worden gepresenteerd. Hiervoor heeft Rhasspy een tekst-naar-spraakmodule nodig.

Tekst-naar-spraakmodule

De tekst-naar-spraakmodule zet tekst die door het achterliggende platform wordt aangeboden, om in spraak. Zoals bij de andere onderdelen van Rhasspy kun je kiezen uit verschillende achterliggende systemen om dat voor je te verzorgen. De keuze is wel afhankelijk van de taal die je de assistent wil laten spreken. Voor Nederlands kun je kiezen uit eSpeak, OpenTTS, Google WaveNet en Larynx. Google Wavenet draait niet lokaal, maar in de cloud. ESpeak klinkt nogal robotisch, dus eigenlijk kun je voor een lokale assistent voornamelijk bij OpenTTS of Larynx terecht. Beide zijn te configureren om goed te functioneren op minder krachtige hardware, zoals een Raspberry Pi.

Nog meer Rhasspy-instellingen
Nog meer Rhasspy-instellingenNog meer Rhasspy-instellingen

Mqtt-communicatie

Het is fijn als je spraakassistent feedback geeft zodra je het wakeword gebruikt, zodat je weet dat je verzoek wordt verstaan. Rhasspy kan dit doen door een geluid af te spelen zodra het wakeword verstaan is. Doordat Rhasspy gebruik kan maken van een externe mqtt-server, kunnen andere programma’s en services ‘meekijken’ met de status van de software. Ik maak gebruik van de ReSpeaker die op het pcb een ring rgb-leds gemonteerd heeft. Vanuit Rhasspy is hier geen ondersteuning voor, maar een extern programma kan via mqtt de status van Rhasspy in de gaten houden en zo de leds aan laten springen na detectie van het wakeword. Door het open karakter van het mqtt-protocol kun je ook je smarthomeplatform het juiste mqtt-topic in de gaten laten houden en feedback op het wakeword laten verzorgen. In een goed ingericht smarthome waar alles lokaal wordt bediend, is mijn ervaring dat het even laten dimmen van de lampen die aan staan, vrijwel gelijk gebeurt met het reageren van de leds op de ReSpeaker.

Satellieten

Satellieten worden al snel interessant als je beschikt over een krachtige(re) thuisserver of verscheidene spraakassistenten in je huis wil opstellen. Je Rhasspy-opstelling omzetten naar een opstelling met satellieten is vrij eenvoudig. Zodra Rhasspy draait op de satelliet, zal deze enkel de wakeworddetectie zelf afhandelen, audio opnemen en via mqtt naar de Rhasspy-instantie op je server sturen. Die behandelt vervolgens de spraak-naar-tekst, intentieherkenning en eventuele spraakfeedback. Mocht er wat te melden zijn, dan fungeert de satelliet als speaker en wordt de audio met spraak die op de server is gegenereerd, via mqtt naar de satelliet verzonden. Om dit in te stellen, is er niet meer nodig dan de mqtt-servergegevens correct instellen en op de server aangeven welke satellieten gebruik mogen maken van de spraakservices.

Onduidelijke foutmeldingen

Het duurde in mijn opstelling even voordat ik Rhasspy goed aan de praat kreeg en een deel daarvan was te wijten aan de wens om Nederlands te spreken met het platform. De handleidingen zijn internationaal en voornamelijk Engelstalig georiënteerd. Dat betekent dat het script om apparaatnamen te importeren, vanuit Home Assistant moet worden aangepast. Daarnaast bleek dat de apparaatnamen die het script uitvoert, geen speciale tekens mogen bevatten, zoals verbindingsstreepjes. Dit stopte de training van het model met een onduidelijke foutmelding. Achteraf bleek ook het trainingsmodel corrupt geraakt, waardoor de training ook met de juist aangeleverde naamgeving bleef afbreken met een niet erg behulpzame foutmelding.

Nadat de training uiteindelijk slaagde, bleek Rhasspy uitstekend te reageren op mijn spraakcommando’s. De verwerkingsketen is in mijn ervaring ook sneller dan Google Home. Iets wat ik niet heb kunnen testen, maar wat me een extra uitdaging lijkt, is het gebruik in een huishouden met huisgenoten. Als je gebruikmaakt van een uniek wakeword, werkt dit beter als dit is getraind op elke stem in huis. Bij het gebruik van satellieten die deze herkenning zelf afhandelen, moet dit op elke satelliet gebeuren. Tenzij je een heel uitgebreid intentieherkenningsmodel weet te bouwen, zul je de huisgenoten ook opnieuw moeten aanleren in welke syntax bepaalde commando’s moeten worden uitgesproken. Iemand die gewend is aan de veelzijdigheid van Google Home, Siri of Alexa, zal een Rhasspy-assistent als uiterst star ervaren als je een configuratie gebruikt zoals in bovenstaand voorbeeld.

Software: spraakassistentie van Home Assistant

Home Assistant heeft 2023 uitgeroepen tot ‘the year of the voice’. In januari werd de intentie uitgesproken om Home Assistant dit jaar geschikt te maken voor spraakassistentie. De community heeft samen met de ontwikkelaars de schouders eronder gezet en dat heeft het platform inmiddels aardig wat extra functionaliteit opgeleverd. Zo kun je, weliswaar nog wat beperkt, stappen zetten om zelf een spraakassistent te bouwen en deze aan het platform te koppelen. Een opmerkelijk feitje is daarbij dat de ontwikkeling van de spraakassistent wordt geleid door Michael Hansen, de oorspronkelijke ontwikkelaar

Home Assistant logo (nieuw 2023)

van Rhasspy. Voorheen heeft Hansen gewerkt aan MyCroft.ai. Een privacyvriendelijke spraakassistent die net buiten het bereik van dit artikel is gevallen, omdat de tekst-naar-spraakfunctionaliteit gebruikmaakt van cloudservices en het pakket daarmee niet compleet lokaal te gebruiken is.

Het afgelopen jaar zijn intentieherkenning, spraak-naar-tekstherkenning, een tekst-naar-spraakmodule en ondersteuning voor wakewords toegevoegd. Het pakket ondersteunt inmiddels zo'n vijftig talen. Nabu Casa gaat daarvoor best ver. Zo is voor de ondersteuning van het Hongaars een studio gehuurd met een Hongaarse spreker om de juiste spraakdata te verkrijgen voor de training van het model.

De componenten die het platform nodig heeft voor spraakherkenningsondersteuning, installeer je als add-ons. De lokale spraak-naar-tekstmodule is gebaseerd op Whisper van OpenAI. Van deze module gebruikt Home Assistant een variant, faster-whisper, die geschikt is voor minder krachtige hardware. Op een Raspberry Pi 4 heeft het platform over het algemeen enkele seconden nodig om de aangeboden spraak te herkennen. Met een krachtigere processor, zoals een i5, kunnen prompts vaak binnen een seconde afgehandeld worden. Als je hardware voldoende krachtig is, kan faster-whisper uitgebreidere stemmodellen gebruiken en daarmee nauwkeuriger werken.

Piper en Whisper add-onsPiper en Whisper add-onsPiper en Whisper add-onsPiper en Whisper add-ons

De add-on Piper is een lokale tekst-naar-spraakmodule, waarmee het platform een stem heeft gekregen en daarmee mededelingen en informatie kan communiceren. De stemmen die Piper levert zijn, afhankelijk van de taal, uitgevoerd in diverse varianten. Afhankelijk van je hardware kun je een low of high variant gebruiken. Hoe uitgebreider het model dat je kiest, hoe beter de stem klinkt; de low varianten hebben een lage resolutie en daarmee een telefoonachtige klank. Op het moment van schrijven van dit artikel zijn voor de Nederlandse taal enkel stemvarianten met die lage bitrate beschikbaar, wat wellicht in de loop der tijd verandert.

Beide add-ons zijn dusdanig ‘slank’ te configureren dat je in principe met een Raspberry Pi (4+) al over genoeg kracht beschikt om de spraakassistent te laten functioneren, hoewel je bij langere prompts even geduld moet hebben voordat de spraak is verwerkt. De assistent op krachtigere hardware draaien levert opmerkelijk veel winst op in de verwerkingssnelheid. Het platform reageert dan merkbaar rapper op je commando's dan de commerciële, cloudgekoppelde varianten.

Wakewords

Een van de laatste toevoegingen aan het platform is de ondersteuning voor wakewords. Je kunt kiezen uit twee add-ons: openWakeWord en porcupine1. Porcupine kwam eerder al langs als onderdeel van Rhasspy en levert aan Home Assistant dezelfde functionaliteit: een uitgebreide verzameling wakewords die zo getraind zijn dat ze met veel verschillende stemmen werken. Ook openWakeWord levert een paar vooraf getrainde wakewords, maar geeft je ook de optie zelf een korte zin of woord in te stellen. Dit doe je niet door een aantal spraakopnames aan te bieden, maar je zult zelf een model moeten trainen. Dat kun je op je eigen hardware uitvoeren, maar daarvoor moet je een omgeving opzetten.

Porcupine1 en openWakeWordPorcupine1 en openWakeWordPorcupine1 en openWakeWordPorcupine1 en openWakeWord

Het kan eenvoudiger door gebruik te maken van Googles Colab. In Colab laad je het openWakeWord-trainingsprogramma. Hier geef je je wakeword in een tekstveld in en zet je het model aan de slag. De basis van de training bestaat uit een spraakmodel van Google dat een enorme variatie aan stemmen en klanken bevat. Op basis van dit model wordt Whisper ingezet, de tekst-naar-spraakengine. Whisper genereert tienduizenden verschillende varianten van je wakeword die verschillen in tempo en toonhoogte. De volgende stap is om ruis en storing toe te voegen aan sommige van de varianten om het uiteindelijke spraakmodel beter bestand te maken tegen moeilijke omstandigheden. Dit resulteert uiteindelijk in meer dan 20.000 uur aan wakewords, waarmee een slank model wordt getraind. Na ongeveer een uur ontvang je het getrainde model en kun je dit toevoegen aan openWakeWord. Via Colab trainen is eenvoudig, maar niet gratis. Je ontvangt bij het eerste gebruik een starttegoed dat toereikend is voor de eerste training, voor aanvullende trainingen moet je tegoed bijstorten.

Assist pipeline

Al deze losse componenten combineer je in Home Assistant door een assist pipeline in te stellen. Die pipeline is aardig te vergelijken met de componenten die we eerder al in Rhasspy tegenkwamen. Voor elke stap die de assistent afloopt, stel je hier in welke dienst je wil gebruiken. Dit begint met de gepreksagent.

Home Assistant Assist pipeline
Home Assistant Assist pipeline

De gespreksagent staat aan het hoofd van de assistentie en behandelt de ingekomen tekst. De standaardinstelling is om dit af te laten handelen door de interne assistentiemodule van Home Assistant: het eerdergenoemde Hassil. Het is ook mogelijk om dit te vervangen door alternatieven. Zo kun je bijvoorbeeld de OpenAI conversation-integratie installeren en zo OpenAI aan het hoofd van je spraakassistentie plaatsen. Helaas biedt deze integratie (nog?) geen mogelijkheid tot apparaatbediening vanuit de OpenAI-omgeving.

De volgende stap is het selecteren van een spraak-naar-tekstmodule. Als je een abonnement op Nabu Casa hebt, kun je hier kiezen voor de cloudgebaseerde dienst die bij dit abonnement wordt meegeleverd. Wil je je data echt lokaal houden, dan is faster-whisper op dit moment de enige keuze. Bij Whisper worden verschillende spraakmodellen per taal meegeleverd. Het onderlinge verschil is de foutratio in de woordherkenning. Zo kan de spraak-naar-tekstherkenning op een acceptabele snelheid worden uitgevoerd als je minder krachtige hardware gebruikt of juist veel betere herkenning realiseren, ook bij een lagere audiokwaliteit, als de hardware wel toereikend is.

Satellieten

Met die instellingen ben je grotendeels klaar aan de softwarezijde. Als Piper en Whisper eenmaal aan een assist pipeline zijn gekoppeld, kun je met spraak je vragen stellen via je smartphoneapp of webinterface op de computer.

Atom Echo entiteitsinstellingen
Atom Echo entiteitsinstellingen

Een externe spraakassistent koppelen kan ook als deze het Wyoming-protocol ondersteunt. Op dit moment is dat ingebakken in ESPHome, waarmee je ESP32-microcontrollers makkelijk kunt programmeren om zelf hardwareoplossingen voor je smarthome te bouwen. De ATOM Echo die we in het hoofdstuk hardware hebben besproken, zou hiervoor als (slecht) voorbeeld kunnen dienen. De installatie van de software op de microcontroller is zeer eenvoudig opgezet. Het proces wordt beschreven op deze pagina en stelt niet meer voor dan de controller aan de computer verbinden, de juiste poort selecteren en na het flashen je wifigegevens invullen. De satelliet wordt direct herkend door Home Assistant en verschijnt in de integratiepagina onder de ESPHome-integratie.

Een andere optie is gebruikmaken van een singleboardcomputer zoals we in het hoofdstuk over hardware beschreven. Om een satelliet aan Home Assistant te koppelen, zijn ondersteuning voor Python en een microfoon nodig. Op het moment van schrijven is deze integratie net een dag oud en kreeg ik deze nog niet stabiel aan de gang; de installatiemethode is nog niet gestroomlijnd. Op de GitHub-pagina van het pakket vind je de instructies om Home Assistant Satellite te installeren. Op dit moment is dat nog een verzameling commando's om een virtuele Python-omgeving aan te maken waarin het pakket draait. Dit zal in de toekomst ongetwijfeld gebruiksvriendelijker worden, maar voor nu vereist het ervaring met de terminal.

Beperkingen

Aangepast commando in automatisering
Aangepast commando in automatisering

De spraakassistentie van Home Assistant is nog niet af. De commandoset die herkend wordt, is nog klein, maar je kunt er handmatig zinnen aan toevoegen. Ook de afhandeling van wakewords is op dit moment nog niet ideaal doordat er continu audio wordt verzonden van de satelliet naar de server. Deze punten zijn de volgende stappen die de ontwikkelaars willen aanpakken. Er moet ondersteuning komen voor boodschappenlijstjes, timers en weersvoorspelling. Er wordt ook opnieuw bekeken of ESPHome ondersteuning kan bieden om lokale wakeworddetectie te bieden op ESP-microcontrollers. Naast verbetering op deze punten is ondersteuning voor de Espressif ESP32 S3-Box 3 aangekondigd, die misschien de ideale middenweg is tussen een overbemeten singleboardcomputer en een onaangepaste microcontroller waar je zelf nog alles aan vast moet knopen.

Conclusie

Het is mogelijk om zelf een functionele spraakassistent te bouwen. Bij elkaar opgeteld is de hardware die je daarvoor moet aanschaffen, vaak wel een stuk duurder dan de spraakassistenten die je kant-en-klaar in de winkel aanschaft. Daarvoor koop je een hoop privacy terug, want zodra je een commerciële spraakassistent in je huis plaatst, deel je ook de status van alle gekoppelde apparaten constant met een externe partij. In ruil voor privacy verlies je wel functionaliteit, want hoe je ook je best doet, een lokaal platform beschikt niet over allerlei actuele weetjes en feiten, dus daar hoef je een lokale spraakassistent niet naar te vragen. Op dit moment ben je beperkt tot apparaatbediening en statusupdates.

Platforms

Hoewel de twee platforms die we in dit artikel hebben bekeken, onderliggend veel van dezelfde componenten gebruiken, verschillen ze nogal in functionaliteit en installatiegemak. Home Assistant timmert hard aan de weg met spraakassistentie en het jaar waarin er extra aandacht wordt besteed aan de ontwikkeling, is nog niet voorbij. De ontwikkeling van Rhasspy staat evenmin stil. Sterker nog, er zit meer vaart in dan voorheen het geval was. Doordat de ontwikkelaar kan sleutelen aan componenten die gebruikt worden in zowel Home Assistant als Rhasspy, profiteren beide pakketten van nieuwe mogelijkheden en optimalisaties, en werken ze ook steeds beter samen.

Als je op dit moment zelf een spraakassistent gaat bouwen, is de software met name afhankelijk van je platformkeuze. Gebruik je Home Assistant, dan heeft het in de meeste gevallen weinig zin om daar nog Rhasspy bovenop te installeren. Met de introductie van wakewords in Home Assistant doet de spraakassistent in functionaliteit weinig meer onder voor Rhasspy. De spraakherkenning van het platform is nog wel matig als je de Nederlandse taal gebruikt. Een woord als 'zet' wordt vaak herkend als 'set', al laat de intentieherkenning zich hier gelukkig niet zo makkelijk door van de wijs brengen. Lastige zelfverzonnen apparaatnamen zijn een groter probleem. Die werden bij mij vaak slecht herkend, ongeacht de complexiteit van het onderliggende spraak-naar-tekstmodel. Het ondersteunde aantal spraakcommando’s is ook nog beperkt, maar je kunt handmatig extra zinnen toevoegen. Op dit moment moet je een zin dan wel exact zo uitspreken als hij is ingesteld.

Rhasspy is relatief makkelijk te installeren, maar de configuratie vereist dat je de handen uit de mouwen steekt, goed nadenkt en de documentatie leest. Dat maakt het pakket veelzijdig, maar ook dat een goede Rhasspy-set-up niet op één zondagmiddag gebouwd is. Daarna zal je smarthomeset-up telkens onderhoud nodig hebben als je hem verandert en uitbreidt. Als je het pakket met Home Assistant gebruikt, is dat onderhoud iets minder intensief, doordat het pakket nieuwe apparaatnamen zelf kan ophalen en enkel opnieuw getraind hoeft te worden. Voor de combinatie met andere platforms zul je zelf een gestroomlijnde oplossing moeten vinden om nieuwe apparaatnamen te trainen. De intentieherkenning kan uitgebreid werken, maar je moet de syntax aanleren om dat te doen. Door de vrije en uitgebreide keuze van pakketten voor elke laag is het pakket heel slank of heel zwaar uit te voeren. In combinatie met satellieten kun je vrij kiezen welke taak op welk apparaat wordt uitgevoerd. Kortom, een bewerkelijk pakket met mogelijkheden waarvoor je even moet gaan zitten, maar het is de multitool onder de spraakplatforms.

Hardware

Goed verkrijgbare kant-en-klare hardware laat ook nog even op zich wachten. Espressifs ESP32-S3 Box-3 komt wat specificaties betreft in de buurt van de ideale assistent, maar moet zichzelf nog in de praktijk bewijzen. Het apparaat is op het moment van schrijven overal uitverkocht, maar nieuwe voorraad is aangekondigd. Het beste alternatief is op dit moment om zelf iets te bouwen, want de M5Stack ATOM Echo is een leuke gadget om mee te spelen, maar niet geschikt voor grotere ruimtes. Als je handig bent met elektronica en een 3d-printer, kun je wel al tot enorm gave resultaten komen.

Met een singleboardcomputer heb je al een stevige basis die zelf ook wat taken kan afhandelen, maar daarvoor moet je een goede microfoonarray en speaker vinden. Een conferentiemicrofoon is ideaal voor het doel. Dat hele pakket inclusief Raspberry Pi zul je echter een plekje uit het zicht moeten geven, want naast de ruimte die het in beslag neemt, zijn conferentiemicrofoons vormgegeven voor een strak kantoor en minder fraai in je interieur.

Toekomstvast knutselproject

De werking van een lokale spraakassistent is nog lang niet te vergelijken met de functionaliteit van de commercieel verkrijgbare varianten. Natuurlijk heeft dat deels te maken met de kracht van de achterliggende cloudservice van die producten. Uitzonderingen daargelaten zijn er weinig tweakers die een thuisserver hebben met de kracht om de large-languagemodels te kunnen faciliteren die die uitgebreide functionaliteit mogelijk maken. Wie cloudloos wil leven, moet in dit geval dus nog even wat pijn lijden en voornamelijk flink wat tijd investeren in de fijnafstelling van zijn installatie.

Als je daaraan begint, is de kans groot dat je eindigt met meer functionaliteit dan mogelijk was op het moment dat je startte, want de ontwikkelingen gaan razendsnel. Zeg nou zelf, er is weinig mooier dan dit soort projecten voor je neus beter te zien worden en daar deel van uit te maken. Heb je dus nog een Raspberry Pi en microfoon liggen, dan is beginnen met bouwen van een satelliet een leuke klus, hoewel daar de nodige tijd in gaat zitten. Het is wellicht (en hopelijk) het begin van een zelfbouwproject dat op termijn alle commerciële, datahongerige spraakassistenten uit huis verdrijft.

Reacties (79)

79
79
47
0
0
28
Wijzig sortering

Sorteer op:

Weergave:

Praten tegen een apparaat blijft ik toch maar vreemd vinden. Een smart home moet voor mij automatisch werken of ik vind het weinig smart.

"Hey Google zet eettafel op 70%" hoe moet iemand die op onze katten past dat allemaal weten? Zet je gewoon de lampen aan 1 uur voor schemering met een extra offset voor verwachte bewolking?
Ik vindt het praten niet vreemd. Het zich voordoen als 'mens' wel. Doe gewoon wat ik zeg.
Geen formaliteiten. Geen herhaling van wat ik zei. Niets van dat alles.

3 + 3 = ZES
Niet; Je wilt de som van 3+3 weten. De som van 3+3 heeft als antwoord 6.
AI verspilt 30% van mijn tijd met herhalen van mijn vraag en te lang antwoord.
</rant>

AI doet zwaar aan Humansplaining. O-)

Of AI die sorry zeggen... dan ga ik spontaan over mijn nek.

[Reactie gewijzigd door MrMonkE op 23 juli 2024 10:13]

Het herhalen van de vraag bevestigend of de assistent je goed heeft begrepen. Als jij zegt wat is 3 + 3 maar het verstaat 3 + 4 dus zegt alleen 7 als antwoord en jij weet niet beter dan krijg je dus foute informatie zonder het door te hebben.
Point taken!
Maar daar kan ik mee leven. Ik erger me echt kapot aan al die overhead.
Maak maar optioneel dan. :P
Compleet met je eens.

Ik heb zowel een Google Home Mini en een Amazon Echo Dot, en bij de Dot kun je gewoon "verbose" kiezen.

Die Dot doet dan gewoon wat je zegt, en valt je niet lastig met allerlei onzin.

Ja ik weet ik zei, dat hoef ik een computer stem niet nog een keer anders verwoord te horen herhalen.
Desalniettemin blijft die Google Home Mini mij tergen met woorden die ik niet hoef en wil horen. |:(
Doet mijn denken aan de Perrot car kit.
Wie wilt u bellen?
Ik zeg de naam.

Car kit herhaalt de naam en zegt "oproep bezig".

Ik had dat ie soms iemand anders wilde bellen, dan is die herhaling fijn. Snel escape knop drukken.

En ik spreek anders tegen de card kit dan tegen een mens, meer pauses tussen de woorden en een duidelijker nadruk op het begin van een woord.en zo min mogelijk intonatie (stem monotoon laten klinken).
Dat geeft bij mij het beste resultaat.
En dat doe je alleen maar omdat de techniek nog niet ver genoeg is om er op een normale manier tegen te spreken. Je past je aan aan de technische beperkingen terwijl techniek juist bedoelt is om het de mens makkelijker te maken. Er gaat een tijd komen dat je gewoon zegt "zeg auto, bel even naar Kees" en dat de auto zelf al zegt "sorry, was het nou Kees of Mees?" als het ding je niet goed verstaat. Verstond die je wel goed dan belt het ding gewoon Kees. Net als dat je nu iemand een vraag of bevel geeft en die enkel bevestiging vraagt als die persoon niet zeker is. Maar zover zijn we technisch blijkbaar nog niet :).
De Perrot is al een jaar of 13.en werkt nog steeds goed met alle telefoons. Vroeger met de Nokia (bar telefoon met toetsen, niet smart), tegenwoordig met de nieuwste smartphones nog steeds.

Toch gaaf dat zo'n "oude" standaard voor het opvragen van contactgegevens aan je telefoon via bluetooth gewoon nog steeds werkt!

Toch echt een knap staaltje werk van die Nederlandse uitvinder. .geek: Nederlandse bluetooth-uitvinder wordt opgenomen in Hall of Fame
Het zorgt voor veel gemak. Wat mij betreft verdient ie een koninklijke onderscheiding.

[Reactie gewijzigd door djwice op 23 juli 2024 10:13]

Dat vraag ik me af. Met de toon die je gebruikt markeer je wat je zegt, je geeft het context. Die context kan belangrijk zijn voor degene of hetgeen waar je tegen praat, maar misschien ook voor degene waar je juist niet tegen praat. Als ik ineens “licht aan” door de kamer roep verwacht ik niet dat mijn vrouw van de bank opspringt om het licht aan te doen. Ik heb het natuurlijk niet tegen haar, ondanks dat zij de enige andere persoon in de kamer is, en dat moet blijken uit de toon en de woordkeuze. Een “ik praat tegen een apparaat”-stemmetje heeft dus meer functie dan rekening houden met technische beperkingen. Overigens zijn er talloze contexten die we met ander toon en taalgebruik markeren. Tegen kinderen praten is misschien een mooi voorbeeld, maar de presentatie van de laatste kwartaalcijfers zal anders klinken dan de verkooppraat van een nieuw innovatief product.
Bovendien gok ik dat de speech-to-text engine wel een nauwkeurigheid meegeeft (moet wel, anders kan hij nooit zeggen: bedoelde je bla-bla-bla). In dat geval is de herhaling nuttig, in andere gevallen kan het idd lekker wegblijven.
Die herhaling vind ik ook irritant maar is wel nodig. Je wilt wel zeker weten dat de vraag goed verstaan is.

Niet bij lampen aanzetten, houd je mond (dat is gelukkig bij Google ook veranderd een paar jaar geleden) maar bij wat is 3+3 eigenlijk wel. Antwoord zal maar 7 zijn omdat de vraag niet goed verstaan was, jij doet de dus 7 shotjes rum door je cola en je bent al dronken voor het feestje begonnen is.

Zolang verstaanbaarheid nog een ding is wel handig dat je vraag gecheckt wordt.

Verder echt eens. Ik hoef je niet horen, doe gewoon wat ik je beveel.
Ik denk dat je met 7 shotjes rum in je cola wellicht minder goed verstaanbaar wordt :+
Ik acht het onwaarschijnlijk dat die assistent dan de morgen haalt. ;)
Die assistenten hebben inderdaad vaak geen IP67 of IP68 rating. En ik vermoed dat de coating en opdruk ook liever alcoholvrije en koolzuurloze drank heeft :Y)

[Reactie gewijzigd door djwice op 23 juli 2024 10:13]

Ooit met een portofoon gewerkt? Het zou een hoop ellende schelen als mensen ook de vraag zouden herhalen voordat ze het antwoord gillen.
Ik wil het eigenlijk anders. Als ik merk dat ik iets nodig heb van een assistent, moet de assistent het eigenlijk al weten en mij vragen of ik lichten aan wil of wat dan ook. Dan hoef ik alleen maar ja of nee te zeggen of een keuze te maken
Lijkt me heerlijk, een echte James die vooruit denkt
Dit is dus ook precies wat ik wil.

Ik wil thuis komen, zodra je de woonkamer inloopt, het systeem vraagt:
Wil je dat ik de PC/TV aanzet?
Ja/Nee. En hopla.

Had gehoopt dat HA hier toch wel iets mee zou moeten kunnen. Moet toch prima te doen zijn.
Aangezien het ook al mogelijk is via telegram om iets te doen met een input knop.
Kan een assist pipeline opgestart worden vanuit HA, en dat de assist de eerste actie onderneemt? Of werkt assist alleen als reactie op (al dan niet gesproken) tekst?

In mijn hoofd zou dit zo simpel moeten zijn als

- Sensor ziet dat je een kamer binnenloopt en triggert een automation (misschien op basis van een boolean die bijhoudt of een apparaat aan staat/of het de eerste keer is vandaag/...)
- Automation trapt de Assist Pipeline af en luistert naar een antwoord.
zoiets kan toch ook prima.
Dit is dus ook precies wat ik wil.

Ik wil thuis komen, zodra je de woonkamer inloopt, het systeem vraagt:
Wil je dat ik de PC/TV aanzet?
Ja/Nee. En hopla.

Had gehoopt dat HA hier toch wel iets mee zou moeten kunnen. Moet toch prima te doen zijn.
Aangezien het ook al mogelijk is via telegram om iets te doen met een input knop.
had gehoopt dat..... klinkt meer als, ik heb geen zin om de tijd en moeite te steken om dit werkend te krijgen, het kan namelijk prima.

wat al bestaat:
detectie van personen,
herkenning van personen,
berichten en/of vragen sturen via google, (via google smart API)
het antwoord afwachten van google (via google smarte API)
een actie uitvoeren aan de hand van google smarthome API.

met iets als nodeRED moet je al prima een presense detectie kunnen doen, en vermoedelijk ook al wel kunnen detecteren WIE er de kamer binnenkomt. maar of je dat nu kunt of niet Hoi Likabaws of gewoon Hallooooo! maakt eigenlijk al weinig uit.

de volgende stap is op in de asistant een nieuwe custom intent te bouwen die dus een vraag kan stellen een antwoord kan verwerven https://clearbridgemobile...-app-handling-user-input/ lijkt (snelle google search) daar een redelijk beginpunt.

als laaste geef je die var terug aan nodered en kun je daar de rest van je routine op baseren.

maar ik denk dat je zoiets met raspi ook prima zult kunnen doen!

[Reactie gewijzigd door i-chat op 23 juli 2024 10:13]

10:00:01 "jAImes, zet koff.." BEEEP BEEEPBEEEPBEEEPBEEEPBEEEP
10:00:02 Versie koffie staat reeds klaar.
ik vraag me oprecht af of ik wel zou willen leven met de mate van privacy-invasion die nodig is om zo goed op mijn leven in te spelen.

computer: Ola la la - de scharrel die je vannacht hebt opgepikt heet x ik heb via google cloud contact gezocht met haar persoonlijke AI deze geeft aan dat ze altijd y en z eet als ontbijt wil je dat ik voor haar een ontbijtje bestel bij: ubereats?
Kan soms wel handig zijn: de scharrel die je vannacht hebt opgepikt heeft eergisteren een medicijn tegen chlamidia besteld, wilt u dat ik hetzelfde medicijn voor u bestel?
hoe oud ben je ?
Het is namelijk maar net in welk "normaal" je bent opgegroeid. Mijn kinderen (12 en 15) weten niet anders dat de verlichting automatisch gaat en dat je eventueel dingen kunt regelen met je stem. Zij sturen ook spraakberichtjes via whatsapp ipv teksten. Dit is hun "normaal"
Zelf vind ik het moeilijker om hier aan te wennen, al spreek ik wel tegen een apparaat inmiddels.
Des te ouder je wordt, des te moeilijker je je kan aanpassen aan de "normaal" waarin je bent opgegroeid.
Ik zie niet hoe leeftijd hierin relevant is?
Jouw kinderen zijn gewend dat lampen automatisch aan- en uitgaan, omdat je dat ter beschikking hebt gesteld, dan wel opgedrongen hebt aan je kinderen (even gechargeerd verwoord natuurlijk). Veel van hun klasgenootjes zullen dat niet hebben.
Voor jouw kinderen is het dan mogelijk 'normaal', maar dat staat los van de leeftijd. Dat is eerder het huishouden.

Die spraakberichtjes via WA ipv tekstberichten zie ik persoonlijk niet veel gebeuren in mijn omgeving en ook niet met kinderen. Ik zie wel dat kinderen die vaker doen dan volwassenen. Dat wel, maar ik zou het zeker niet als 'het normaal van kinderen' beschouwen.

Voor mij persoonlijk:
De lampen in de gang/overloop/voorzolder gaan inderdaad automatisch. De rest van het huis heeft draadloze wandschakelaars. De bewegingssensoren in de andere 'leef-kamers' van het huis zorgen alleen voor een pushbericht dat het licht nog aan staat (of tv nog aan staat, enz, enz, enz) en er al een tijdje niemand in de kamer aanwezig is. (en je kan dan via het pushbericht in één keer het licht aan laten of uitzetten (Actionable Notifications op iOS. Android heeft vast ook zoiets)). Dit systeem werkt uiteraard niet feilloos, want die bewegingssensoren detecteren je niet als je echt heel stil zit een tijdje lang). Aldoende het push-bericht ipv de lichten automatisch uitzetten :D
punt is dat je het altijd bekijkt van wat je zelf "normaal" vindt.
van 0 tot 20j is jouw normaal
van 20-35j je kan je aanpassen aan wijzigingen aan jouw normaal
boven 35j alles wat afwijkt van jouw normaal begrijp je niet.

de leeftijden hierboven kunnen natuurlijk per persoon afwijken, maar mijn punt gaat dus dat je altijd redeneert vanaf je eigen normaal.
Hetgeen jij onder "smart" verstaat is een koud kunstje dat ik vijftien jaar geleden als student in mijn anti-kraak apartment al volledig met domotica had ingericht. Dan kom je er overigens al snel achter dat slechts een handjevol smart-functies daadwerkelijk praktisch zijn, en de rest gewoon neerkomt op spielerei. Ik heb zowel met HA als Homey geëxperimenteerd, maar op een gegeven moment ben je er klaar mee en wil je gewoon een systeem dat 24/7 operationeel is en zichzelf voortdurend verbetert zonder dat je er naar om hoeft te kijken.

Sterker nog, het automatiseren van lichten, rolluiken, vijverpompen, etc. kon dertig jaar geleden ook al; dat is niets nieuws. De komst van software heeft het slechts eenvoudiger/praktischer gemaakt. Hetgeen een smart home écht definieert is de spaakimplementatie, iets wat heel lang toekomstmuziek is geweest.

Ik ben inmiddels volledig over gestapt op Google Home/Assistant. Het is super eenvoudig te configureren en het doet wat het moet doen. Als mijn dochter van zes gaat slapen, zegt ze: "Hey Google. Welterusten!". Vervolgens vraagt Google of en hoe laat er een wekker moet worden gezet, dimmen de lichten langzaam tot ze volledig uit zijn, gaat het rolluik dicht, de airco met luchtreiniger op de nachtstand en worden er er rustgevende natuurgeluiden afgespeeld, zonder dat ze hiervoor uit haar hoogslaper hoeft te komen. 's Ochtends gaat een kwartier voor haar wekker afloopt (het tijdstip is afhankelijk van de door haarzelf ingestelde tijd) het rolluik 25% open en de lichten (10min later) op 20%.

Als spraakbesturing niet mogelijk was, had ik niet eens de moeite genomen om dit alles te automatiseren. Een buitenlampje kun je prima automatisch bij zonsondergang aan laten gaan (en bij zonsopgang weer uit), maar je wilt niet dat je domotica systeem bepaalt wanneer jij naar bed gaat of ontwaakt.

Als ik 's nachts uit bed ga, zorgen de vier Nest Protect rookmelders ervoor dat de overloop/zolder/woonkamer/hal (afhankelijk van waar je je bevindt) voldoende wordt verlicht zodat je nergens tegen omhoog loopt, maar ook niet klaarwakker wordt van de standaardverlichting. Mocht ik toch meer licht nodig hebben roep ik: "Hey Google. Licht aan!" of "Hey Google. Licht op 80%".

Als ik beneden in de woonkamer op de bank zit en zeg: "Hey Google. Speel Oppenheimer op TV", dan starten de LG G3, Denon AVR en Nvidia SHIELD TV Pro automatisch op en wordt de film afgespeeld op Plex vanaf mijn PMS. Na afloop van de film roep ik "Hey Google. TV uit" en alle apparatuur wordt (middels CEC) automatisch uitgeschakeld.

Het enige waarvoor ik een vooraf ingesteld schedule gebruik, zijn twee buitenlampen (voor- en achterdeur); die gaan 8min vóór zonsondergang aan en 6min ná zonsopgang weer uit. De overige tuinverlichting (twintig lampen) bedien ik fysiek met de dimmer-knoppen of met spraak. Als we op vakantie zijn laat ik een algoritme dit alles bepalen, om zo aanwezigheid te simuleren.

Als ik vraag "Hey Google. Wat is de temperatuur?" zonder het verder te specificeren, krijg ik de buitentemperatuur, de daadwerkelijke én ingestelde temperatuur van de airco's in de verschillende kamers en de woonkamer temperatuur afkomstig van de Toon thermostaat. Als ik de temperatuur wil verhogen of verlagen kan dat uiteraard ook met spraak. Wanneer ik alleen de temperatuur van onze slaapkamer wil weten terwijl ik elders in het huis ben, vraag ik "Hey Google. Hoe warm is het op de hoofdslaapkamer?".

TL;DR: Automatisering zonder spraakbesturing heeft slechts beperkt nut en is zijn charme lang geleden al verloren. Wil je optimaal van domotica genieten, dan mag spraakbediening niet ontbreken. Het is goed dat spraakassistentie ook zonder cloud implementatie mogelijk wordt gemaakt, want ik besef mij maar al te goed dat ik met mijn huidige implementatie privacy inlever.

[Reactie gewijzigd door boolean op 23 juli 2024 10:13]

Naja...
Her en der voegt spraak uiteraard iets toe (input is dan makkelijker dan met een toetsenbord o.i.d.), maar het meeste dat je beschrijft zijn acties welke door een trigger gestart worden, en kan net zo goed met een knop. Dat heeft weinig met de spraakherkenning an sich te maken.
Dat is júíst de hele gedachte achter spraakbediening. In plaats van dat je driehonderd knoppen hebt (of ingewikkelde druk-combinaties), kun je uiteenlopende events met spraak triggeren. Als je in de bank zit en je wilt de verlichting inschakelen of van intensiteit wijzigen, dan wil je niet eerst een zoektocht naar je telefoon of tablet moeten ondernemen, want dan had je net zo goed op kunnen staan om naar de fysieke lichtschakelaar(s) te lopen.

[Reactie gewijzigd door boolean op 23 juli 2024 10:13]

Uiteraard, maar dan heb je gewoon veel knoppen nodig om alle scenarios aan te kunnen.

Voor temperatuur instellen heb je daar ook weer wat extra's nodig.

Eerlijk gezegd lijkt de opstelling van boolean me netter dan met een half mengpaneel op de salontafel te hebben staan.
"Hey Google zet eettafel op 70%" hoe moet iemand die op onze katten past dat allemaal weten? Zet je gewoon de lampen aan 1 uur voor schemering met een extra offset voor verwachte bewolking?
Mijn oppas heeft geen flauw benul van domotica. Die gebruikt gewoon de schakelaar. Mijn partner ook. Ze zijn zich nauwelijks bewust dat er dingen op de achtergrond automatisch gebeuren. Met name mijn partner wil dat het gewoon werkt, wat betekend op het oog een ouderwetse interface. (Dat is het niet, maar het lijkt en werkt wel zo).

Die regel hanteer ik voor alles aan domotica. Leuk dat het allemaal met apps en commando’s kan. Maar het moet ook werken als het systeem plat ligt of internet stuk is. Daar ontwerp en bouw ik het op.
dat je het wilt laten werken onafhankelijk van de aanwezige internetverbinding snap ik wel want als je ooit overstapt storing hebt weet ik wat wil je natuurlijk wel gewoon je lampen aan kunnen zetten.

maar dat verhaal over die oppas daarin ga ik echt niet mee, iedereen die in mijn huis is mag zich conformeren aan mijn huis en niet andersom. jij wilt immers ook niet dat ik met mijn modderpoten je woonkamer in loop omdat ik dat thuis ook doe.

dus als ik morgen een nieuwbouw huis zo hebben en de aannemer vraagt waar de lichknoppen moeten dan is mijn antwoord vermoedelijk in de meterkast.
Ik deel mijn huis met onder andere een partner, die niets met domotica heeft, ze legt me geen beperkingen op, en verwacht derhalve ook dat ik niet mijn onzin aan haar opdring.

Zij wil gewoon aan en uit knoppen. En ik heb geen enkele behoefte mijn oppas te gaan opleggen een app te gebruiken voor ons huis. Dat is simpelweg onredelijk. Voor iedereen werkt alles zoals het hoort te werken. Al heb ik wat meer leuke features onder mijn vingertoppen.
Ik ben het deels met je eens. Je wil zoveel mogelijk automatisch op basis van omgeving maar sommige dingen zijn nou eenmaal momentopnames en gevoelskwesties. De ene keer doe je als mens of wil je iets anders dan standaard en in zulke gevallen moet je toch echt een lamp aan of uitzetten of iets dergelijks. Voor dat stuk moet je tegenwoordig nog die acties helemaal fysiek uitvoeren. Met digitale bediening is dat al niet meer nodig en met slimme voice assistant kan dat mogelijk zelfs zonder je telefoon echt aan te raken. Dat is waar volgens mij het streven ligt.
Het is een aanvulling, niet een vervanging
Zo heb ik een automatisering dat als iedereen de deur uit is alles uit gaat omdat mijn lieftallige vrouw nog wel eens vergeet ergens iets uit te zetten, nu paste mijn moeder vandeweek bij ons thuis op onze dochter kreeg ik toch een appje uuh ik zit hier in het donker wat gebeurde er?
Wellicht een lux sensor gebruiken? Zit vaak op een weerstation. De informatie over bewolking die je via weather.com (IBM US) haalt is vaak zeer onnauwkeurig.
Maak eens een foto met lange sluitertijd van een blauwe lucht, en er komen wolken op die met het blote oog niet ziet.

Zelf gebruik ik gewoon zonnepanelen met batterijen, de lampen gaan aan als de batterijen niet meer geladen worden.

Op marktplaats zie een uitgebreide versie al voor €100,- https://www.marktplaats.n...carkits/q/parrot+mki9200/

[Reactie gewijzigd door djwice op 23 juli 2024 10:13]

Lamp aan 1 uur voor schemering is mooi, maar niet heel smart. Ben je wel thuis? Zit je wel in de kamer? Heb je de behoefte wel?

Alles is af te vangen ook voor je kattenoppas maar is uiteindelijk nooit ideaal.

Ik heb thuis nu al 3 jaar een bijna volledig slim huis maar fysieke (zigbee) schakelaars blijven uiteindelijk een must niet alleen voor visite.

Met je stem is gewoon niet snel genoeg en zelfs de slimme speakers van de bekende bedrijven verwarren nog al eens aan met uit of zelfs ‘specifieke kamer’ voor ‘mijn hele huis’… leuk als je kids slapen en google roept: ok ik zet 34 lampen aan

Een app is praktisch maat je hebt (hopelijk) niet 24/7 je telefoon op zak.

Wat ik vooral een slim huis slim vind maken zijn oplossingen zoals de lampen in de babykamer na schemering op slecht 10% velheid aan te zetten zodat de retina’s van mijn dochtertje niet uit d’r schedel branden (maar wel na een tweede keer klikken hoger als de speen niet gevonden kan worden) Of het afstemmen van helderheid boven de eettafel op die van de vide.


Natuurlijk wel een aantal zaken zoals tuinverlichting bij ‘aantal nits’ etc of licht aan in de woonkamer als ik s’nachts thuiskom zodat ik niet struikel over de katten opweg naar de schakelaar. Of thuis de robotstofzuigers aan het werkzetten als we uit huis zijn (na confirmatie) etc
In de keuken best handig; 'Hey Google, zet een timer voor 45 minuten met de naam spruitjessmurrie.' scheelt gedoe met telefoon of een stapel kookwekkers als je verschillende bereidingstijden hebt voor een diner.

Trouwens vaak minder handig als je in goed <vul andere taal dan Nederlands in> een bepaald nummer/band vraagt af te spelen via b.v. Spotify. Die AI is gruwelijk discriminerend naar mensen die geen vloeiend Denglish of andere mix spreken. Gewoon weigeren in de juiste taal voor een deel van de zin te luisteren of spreken. En dat geldt zo een beetje voor alle gemixte zinnen; je moet gewoon maar je hele conversatie in de juiste taal doen die de A *kuch, kuch, kuch* I blieft. Pfft.
Zo zie je dat iedereen andere wensen heeft.
Ik zou zelf niet willen dat lampen in 'leefruimtes' automatisch gaan. Wat ik wel wil, is dat wanneer ik ze aan zet dat ze automatisch de juiste helderheid/kleurtemperatuur aannemen op basis van de zonnestand en/of eventueel bewolking (dan wel omgevingslicht buiten)

Als ik nu tegen mijn spraakassistent zeg dat de lampen aan moeten (of dat ik op de knop op de muur klik), dan zet hij de lampen op basis van de huidige zonnestand (en/of tijd waar dat relevant is (slaapkamers van kinderen) en zo) aan en met de bijbehorende instelling.
'hoe moet iemand die op onze katten past dat allemaal weten?'
Het een sluit het ander niet uit. Die oppas zou inderdaad nooit iets met spraak of met een app moeten hoeven doen.

Als ik mijn huis in de 'vakantiemodus' of 'oppas aanwezig' modus zet, dan werkt alles zo simpel mogelijk.
Dus een single, dubbel of triple klik op een Zigbee-knop bij een slaapkamer, bedient simpelweg die lamp middels aan/uit, met een gemiddelde felheid. Precies zoals men (als smarthome-leek) verwacht.

Echter, normaal gesproken zorgt een single-klik dat de lamp aangaat met een felheid die past bij het tijdstip op de dag, een dubbelklik als ik het veel feller wil (bijv. om een mug te zoeken...) en met een triple-click bedien ik de screens (ja die gaan normaal automatisch, maar ik wil alles kunnen overrulen met fysieke knoppen zonder een app nodig te hebben).

Stembesturing hier bovenop kan een verrijking zijn, om voor speciale situaties die je niet geautomatiseerd wil hebben, geen app te hoeven gebruiken.

[Reactie gewijzigd door DeadMetal op 23 juli 2024 10:13]

Automatisering is bij mij ook absoluut het uitgangspunt maar je blijft toch altijd wel iets van handmatige interactie houden.

Dat hoeft van mij niet zo nodig via spraak, maar sommige mensen worden daar blij van.
De lamp 1 uur voor schemering aanzetten is toch ook niet heel erg smart? In dat geval gaat je lamp altijd aan, ook als je niet thuis bent of in een andere ruimte.

Nou ben ik het met je eens dat spraak ook niet heel erg smart is. Iets is pas echt smart als het "vanzelf" gaat. Maar het is wel een fijne toevoeging, om bijvoorbeeld een radiozender naar keuze of een film op te zetten. Ook in situaties waar keuzes mogelijk zijn, kan je de vraag laten stellen en beantwoorden via spraak.
Het werkt bij ons prima. Ook oma kan ermee overweg maar ik heb ook voor alles ook nog gewoon fysieke knoppen. Zodra oma door had dat ze niet hoefde op te staan om de lampen te regelen had ze het zo onder de knie.
En ook veel volgens schema en met sensoren. Dat scheelt ook een hoop inderdaad

[Reactie gewijzigd door gaskabouter op 23 juli 2024 10:13]

Eens. Echter hebben wij best wel eens behoefte om die 70 procent wat te dimmen en dan is het soms handig dat je met een voice commando dit kan realiseren. Je hoeft dan niet naar de fysieke lichtknop (die wij nog hebben Shelly spul)
Kun je dit vanaf je telefoon inspreken op de HA app? (IPhone)
Ja, op Android kun je hem ook als standaard-assistent instellen. Ik weet niet of dat op iOS kan.
Hmm.. ik heb nog wel een oude android liggen.
Misschien daarop aan de slag gaan.
Zoals MarnickS aangeeft, kan op Android Home Assistant als de standaard assistent worden ingesteld. Op iOS kan dat niet.
Je kunt wel opdrachten typen in de HA app op iOS, en je kunt de microfoon gebruiken om die opdrachten in te spreken. Dat was in elk geval de meest genoemde oplossing toen ik er een paar maanden geleden naar zocht.

Of het ondertussen mogelijk is om Apples spraakherkenning te omzeilen en volledig je eigen in-home spraakherkenning te gebruiken in iOS weet ik niet.
Ik ben benieuwd of dit niet middels shortcuts kan? Ik ben daarin een leek, maar ik las op LinkedIn iemand die een shortcut had gemaakt om met ChatGPT te praten. Ik geloof dat hij tegen Siri iets kon zeggen als; 'Hey Siri, ik wil met ChatGPT praten.' Verder weet ik er ook niets van, want ik heb het niet getest en ben een leek.

Maar kan zoiets dan niet met een koppeling met de Home Assistant app?
Mooi artikel over een doe het zelf spraakassistent.
Echter vergeet niet een goede backup zodra ingeregeld, je wilt het niet kwijt raken na al het harde werk om het in te regelen.
Backups kun je inregelen. En bij elke update van HA worden er backups gemaakt.
Dit is echt iets dat ze in HA wel goed gedaan hebben vind ik.
Let wel op dat je niet je data per ongeluk backupped :) (Tenzij je die wilt backuppen)
Dit stukje is toch wel te ondervangen?
"In ruil voor privacy verliest je wel functionaliteit, want hoe je ook je best doet, een lokaal platform beschikt niet over allerlei actuele weetjes en feiten, dus daar hoef je een lokale spraakassistent niet naar te vragen. "

Als je de assistent de mogelijkheid geeft om zaken op internet op te zoeken, alleen wanneer dat nodig is, maar voor de rest geen andere zaken doorgeeft.
O zo makkelijk, ik zie de pull-aanvragen te gemoed.
Zijn het dan geen trek-aanvragen?
Klopt, het is al te ondervangen! Ik draai lokaal een 7B LLM (Mistral) dat gewoon doodleuk weetjes en feitjes kan beantwoorden, zonder internet toegang.
Volgens mij kun je een lokaal spraakassistent actueel houden door te koppelen met LangChain, zag daar iets voorbij van komen op YouTube. Maar dat maakt dan wel weer gebruik van OpenAI en daarmee geef je wel weer privacy weg.
Volgens mij is LangChain juist bedoeld om meerdere modellen te kunnen gebruiken en hoef je dus niet specifiek OpenAI te gebruiken, maar kun je ook je eigen AI gebruiken.
In veel gevallen wordt OpenAI (als voorbeeld) gebruikt, omdat het een goed en bruikbaar model is. Voor een soortgelijk model zelf te draaien heb je een goede computer nodig. Of je gebruikt een simpeler model, wat minder herkenning heeft.
Gewoon Mistral lokaal draaien. Dat is op dit moment de beste en kleinste (7B) open source LLM die zonder internet gewoon vragen kan beantwoorden
Gebruik al ruim een jaar lang de Seeed ReSpeaker in combinatie met Rhasspy in Home Assistant.

Zie video voorbeeld ff uit de losse pols op yt:
Spraak assistent zonder internet, huh?

Het off the grid zoals in de kop van het het artikel dat sprak mij wel aan. Wilde het wel eens uitproberen of dit bespreek ehh werkbaar is/was. En het werkt imho verbazend goed. En in het Nederlands. Nou ja Vlaams.
Je moet wel beginnen met het wake woord. En dat wordt nog wel eens vergeten ;-P

Het is een ander "interactie(f) concept" naast oa touch display's. En het automatiseren.
Off topic: zie hackaday artikel over gesture based remote control. Of we dat allemaal gaan doen. Dan kun je het uiteindelijk schudden met rsi.

Terzijde:
In de Zorg werkend als Social Worker heeft iemand de ziekte van Parkinson. De handen schokken, trillen.
Het bedienen van een touch device is geen sinecure. Ook met een pennetje lastig.
Spraak bediening biedt uitkomst. In het kader van totale communicatie. /terzijde

Lokale spraak besturing heeft anno nu nog een hoog knutsel gehalte. Voor mij niet in negatieve zin. Elk jaar rond hacktober verzin ik weer wat nieuws. Om te bouwen met programmeerbare elektronica. Als het weer zo lelijk doet.
En je moet onder andere aan de slag met de rhasspy config files. Maar dat heeft ook zo zijn charme.
Maar is niet voor iedereen weggelegd.

Helaas wordt door Seed the repository op github niet meer bijgehouden. Rhasspy heeft een community forum.
Jammer dat de M5Stack Atom Echo toch niet ideaal blijkt. Het heet worden van het apparaat (en bijbehorende brandlucht) is volgens mij een bekend probleem, wanneer de microfoon aan staat. En dat wil je natuurlijk wel, als je wilt reageren op wake words.

Alternatieven van de Atom Echo worden al snel een stuk groter (en ik gok minder energie zuinig).
Interessant! Het draait ook op Docker, dus dan wordt experimenteren toegankelijker. Ga kijken of mn Synology NAS dit trekt...
Ik ben zo klaar met de steeds slechter wordende werking van Google Nest. Simpele commando's in totale stilte van dichtbij gewoon pas na de 3e keer snappen...

Ik heb al wat geprobeerd met de Home Assistent integraties, maar krijg dat niet goed werkend. Cpu verbruik van mijn pi4 flipt hem helemaal, dus dat heb ik er weer afgegooid.

Wat ik voor ogen heb is een NUC (voor rekenkracht) in te richten met Rhassy, een oude conference unit (USB of RJ45) aansluiten en een koppeling maken met Home Assistant op mijn Pi. Kan dit werken denken jullie?
Buiten privacy stoort mij nog het meest dat alle slimme apparaten niet meer werken wanneer internet uit valt en je dus zo afhankelijk bent van internet. Alleen om die rede zou ik dus graag willen dat alles lokaal werkt of in elk geval lokaal kan blijven werken. Maar punt blijft dat de hardware ervoor nu eenmaal niet goedkoop is zeker als je op meerdere plaatsen een assistent wilt gebruiken.

Ik hoop dat er eens een fabrikant op het slimme plan komt iets te ontwikkelen zoals b.v. een Google Nest maar dan dus met lokale bediening. Dit dan voor concurrerende prijzen en als kant en klaar pakket voor de mensen die dan niet zo handig zijn met elektronica. Denk ook wel dat dit er zal gaan komen als de ontwikkelingen zoals deze in dit artikel zich voortzetten.

Op dit item kan niet meer gereageerd worden.