Nooit meer afgeluisterd: aan de slag met lokale stembediening
Wil je slimme apparaten in huis bedienen met je stem, zonder de cloud te gebruiken? Dit kan met Home Assistant. Er zijn een paar add-ons nodig en een apparaat om gesproken opdrachten mee te geven. In dit artikel gaan we dit opzetten en configureren.
Na het lezen van dit artikel weet je precies hoe je met Home Assistant spraakopdrachten kunt geven om je slimme huis te bedienen, en dat zonder meeluisteren van de grote partijen.
- Add-on Piper installeren voor omzetting tekst naar spraak
- Installatie add-on Whisper voor omzetting spraak naar tekst
- Wekwoord instellen
- ESPHome op Atom Echo installeren
- Atom Echo aan Home Assistant toevoegen
- Persoonlijke zinnen toevoegen
Toch liever een bekende spraakassistent? Meer dan muziek: kies jouw ideale slimme luidspreker
Sommige mensen worden enthousiast van slimme assistenten, anderen zien vooral bezwaren. Je geeft immers veel prijs aan partijen als Google, Amazon en Apple. Bijvoorbeeld via slimme luidsprekers – ‘afluisterapparaten’ zoals sceptici ze graag noemen. Gelukkig kun je prima alles lokaal houden. Home Assistant, de bekende software voor thuisautomatisering, gaf op dat vlak al vaak het goede voorbeeld.
Zonder tussenkomst van de cloud kun je je slimme huis bedienen, voor zover de fabrikant ook meewerkt natuurlijk. Het afgelopen jaar hebben de ontwikkelaars zich ingezet voor lokale stembediening. Dit is inmiddels beschikbaar, in meer dan vijftig talen. Langzaam wordt het steeds beter.
In dit artikel leggen we uit hoe je hiermee kunt starten. We beginnen met geschreven opdrachten, gevolgd door gesproken opdrachten. Voor spraakopdrachten gaan we met de Atom Echo aan de slag, een slimme luidspreker in dobbelsteenformaat.
©LukasPuchrik
Een slimme speaker van bijvoorbeeld Google is handig, maar je informatie wordt wel gedeeld met een clouddienst.
M5Stack Atom Echo Wil je knutselen met Home Assistant, dan is een microcontroller, zoals de ESP32, met de software ESPHome een ideaal uitgangspunt. ESPHome ondersteunt talloze accessoires zoals sensoren, lampjes en knopjes. In een configuratiebestand geef je aan wat je hebt aangesloten en op welke poort. Daarna komt alles tot leven. De integratie met Home Assistant zorgt dat ook daarin alles beschikbaar is.
In dit artikel werken we met de M5Stack Atom Echo (te koop voor ongeveer 15 euro). Dat is een ESP32-microcontroller voorzien van kleine luidspreker, microfoon, RGB-led en drukknop. Via een geautomatiseerd proces gaan we hierop ESPHome installeren, zodat je hem direct in Home Assistant kunt gebruiken. Het is waarschijnlijk de kleinste slimme luidspreker die je ooit hebt gezien. Je mag er geen wonderen van verwachten, maar het is een prima hulpmiddel om de stembediening uit te proberen.
Er zijn nog andere toepassingen. Daarvoor kun je de uitgebreide documentatie raadplegen.
1 Geschreven opdrachten
We beginnen met geschreven opdrachten. Hoewel niet heel spannend, is het een logische eerste stap. De assistent kun je oproepen via een icoontje rechtsboven in de beheeromgeving, onder Overzicht. Via het toetsenbord geef je opdrachten. Standaard is de taal op Engels ingesteld, maar we gaan dit veranderen naar Nederlands.
Ga hiervoor naar Instellingen / Spraakassistenten. Je kunt meerdere spraakassistenten maken, die verschillende talen spreken. Hier kiezen we ervoor om één Nederlandstalige assistent te activeren, die vanaf paragraaf 4 gaan configureren.
Klik op de assistent. Zorg dat onder het kopje Configuratie de taal op Nederlands staat. De instelling bij Gespreksagent wordt automatisch aangepast. De andere instellingen kun je nog ongemoeid laten, die komen verderop aan bod. Klik op Bijwerken om de veranderingen op te slaan.
2 Naamgeving apparaten
Je kunt nu in het Nederlands vragen om bijvoorbeeld een apparaat aan of uit te zetten. De kans bestaat dat de assistent het apparaat niet kent, je moet namelijk precies de juiste naam gebruiken. Daarom gaan we extra namen toevoegen: zoek daarvoor het te bedienen apparaat op, bijvoorbeeld een koffiemachine. Open de instellingen voor het apparaat en kies Spraakassistenten. Zorg dat er een vinkje bij Ontsluiten staat. Dat is in principe standaard het geval.
Je kunt nu een voor een zogenoemde aliassen toevoegen, zoals koffie en koffiemachine. De assistent weet dan dat je met die woorden dat specifieke apparaat bedoeld. Het streven is om gesproken opdrachten te kunnen gebruiken. De hier toegevoegde aliassen zullen ook bij spraakopdrachten worden gebruikt.
3 Pipelines
Voor stembediening zijn uiteraard een microfoon en luidspreker nodig. Hiervoor zijn diverse opties. Wij kiezen in dit artikel voor de Atom Echo. Home Assistant zal via spraak-naar-tekst de gesproken opdrachten om moeten zetten. En om een gesproken reactie terug te kunnen geven, is daarnaast tekst-naar-spraak nodig. De zogenoemde pipelines zijn verantwoordelijk voor deze omzettingen. Omdat we ons hier op lokale stembediening richten, zonder de noodzaak voor clouddiensten, moeten we hier wat software voor installeren.
Dat is eenvoudig dankzij de hiervoor beschikbare add-ons. Het gaat om Piper voor tekst-naar-spraak en Whisper voor spraak-naar-tekst. Over Whisper hebben we het in eerder gehad. Daarin gebruikten we het om transcripties te maken van audio en video. In Home Assistant wordt een snellere fork genaamd faster-whisper gebruikt. Die is tot vier keer sneller bij dezelfde nauwkeurigheid, terwijl minder geheugen nodig is.
Spraakopdrachten geven in Home Assistant Om spraakopdrachten te kunnen geven, heb je meerdere opties. Je zou op het systeem met Home Assistant een usb-microfoon (of usb-speakerphone) kunnen aansluiten. Dit vereist wel de extra add-on genaamd Assist Microphone. Gangbaarder zijn een pc, laptop, smartphone of tablet.
Home Assistant ondersteunt bovendien smartwatches met Wear OS, het besturingssysteem van Google (vroeger bekend onder de naam Android Wear). Dat besturingssysteem wordt onder meer gebruikt in de Samsung Galaxy Watch.
Een andere optie is een zelfgebouwde slimme luidspreker. Hierbij kun je een ESP32-microntroller gebruiken met de software ESPHome. Op de microcontroller moet je een kleine microfoon en eventueel een luidspreker aansluiten. De luidspreker zorgt dat je bevestigingen te horen krijgt. Wij gebruiken de M5Stack Atom Echo die dit alles standaard biedt. Hij heeft niet de hoogste kwaliteit, maar werkt prima voor ons doel.
4 Piper add-on installeren
Als eerste installeren we de add-on genaamd Piper voor de tekst-naar-spraak-omzetting. Ga hiervoor naar Instellingen / Add-ons en klik op Add-on winkel. Je vindt Piper onder het kopje Official add-ons. Klik er op, kies Installeer en open dan het tabblad Configuratie. Bij Voice kies je een taal en de gewenste kwaliteit. Voor de kwaliteit heb je de opties low, medium en high.
Het kan een uitdaging zijn om een goede optie te vinden voor de Nederlandse taal. Hier kiezen we als voorbeeld voor nl-rdh-medium. Je kunt ook altijd een van de andere modellen proberen voor een andere uitspraak. Klik op Opslaan om de wijzigingen te bewaren.
Ga dan naar het tabblad Informatie, zet een vinkje bij Watchdog en klik op Starten. Je kunt de integratie nu toevoegen aan Home Assistant. Onder Instellingen / Apparaten & diensten zie je dat de integratie voor Piper al is gevonden. Klik op Configureren en dan Verzenden om deze toe te voegen.
5 Piper uitproberen
Je kunt de integratie eenvoudig uitproberen via Ontwikkelhulpmiddelen / Services. Zoek bij Service naar Text-to-speech (TTS): Spreek. Klik achter Doelen op Entiteit kiezen en kies piper. Achter Mediaspeler entiteit kies je een mediaspeler waarop het bericht moet worden afgespeeld. Achter Bericht voer je een tekstbericht in.
Klik op Service aanroepen om de omzetting uit te proberen. Als het goed is, wordt het tekstbericht nu netjes uitgesproken op de luidspreker. Vergelijk het resultaat eventueel met Google door bij Entiteit kiezen voor Google te kiezen. Zet een vinkje bij Taal en voer nl in als taal. Zie je die optie voor Google niet? Voeg dan de integratie Google / Google Translate text-to-speech toe.
6 Tekst naar spraak instellen
We kunnen nu ook de instellingen voor onze assistent aanpassen. Ga daarvoor naar Instellingen / Spraakassistenten en selecteer je assistent. Bij Tekst-naar-spraak kun je Piper met de gewenste taal en stem kiezen. We gaan hier uit van de stem nl-rdh-medium. Selecteer in dit geval bij Taal de optie nl_BE. Bij Stem kies je vervolgens rdh (medium).
Kies Stem proberen om het resultaat te beluisteren. Bij onverstaanbaar gebrabbel is het nodig de instellingen te wijzigen of een andere stem te proberen. Klik op Bijwerken als je tevreden bent.
7 Whisper installeren
Je kunt nu de spraak-naar-tekst-add-on genaamd Whisper installeren. Ga hiervoor terug naar de add-on-winkel, klik onder Official add-ons op Whisper en kies Installeer. Ga dan naar het tabblad Configuratie. Selecteer bij Language de gewenste taal, in dit voorbeeld nl voor Nederlands. Bij Model kun je een model kiezen dat past bij de hardware die je gebruikt. De standaardoptie tiny-int8 is geoptimaliseerd voor een Raspberry Pi 4.
Een groter model is nauwkeuriger, maar vraagt ook meer van de gebruikte hardware. We raden aan hier wat mee te experimenteren. Op wat betere hardware kiezen we veelal small-int8.
Kies Opslaan als je klaar bent met het aanpassen van de configuratie. Ga dan terug naar het tabblad Informatie, klik op Watchdog / Starten. Voeg daarna ook de integratie voor Whisper toe onder Instellingen / Apparaten & diensten. Open ook weer de instellingen voor de assistent onder Instellingen / Spraakassistenten. Kies onder het kopje Spraak-naar-tekst voor faster-whisper met de taal Nederlands. Bewaar de aanpassingen met Bijwerken.
8 Wekwoord instellen
Je kunt een wekwoord (wake word in het Engels) gebruiken om de assistent op te roepen (zie ook het kader ‘Wekwoord gebruiken voor je assistent’). De herkenning van wekwoorden wordt meestal aan Home Assistant overgelaten. Hiervoor wordt de add-on open WakeWord gebruikt. Installeer deze via de add-on-winkel. Start daarna de add-on en voeg de integratie toe onder Instellingen / Apparaten & diensten.
Open daarna de instellingen van de assistent. Onder het kopje Wekwoord kies je bij Wekwoord engine de optie openwakeword met het gewenste wekwoord. We beginnen met ok nabu.
Je zou ook een eigen wekwoord kunnen maken via deze instructies. Daarnaast kun je door de community gemaakte wekwoorden downloaden.
Wekwoord gebruiken voor je assistent Bij een slimme luidspreker gebruik je een zogeheten wekwoord of wake word om de assistent op te roepen en vragen te stellen. Bijvoorbeeld ‘Hey, Google’ of ‘Alexa’. Zo’n wekwoord blijkt technisch een uitdaging: het woord moet snel worden herkend met weinig ruimte voor fouten. Vaak wordt het apparaat zelf gebruikt voor de interpretatie, geholpen door modellen die door AI zijn getraind.
In Home Assistant werkt het (meestal) anders. Om niet afhankelijk te zijn van specifieke hardware, wordt de interpretatie door Home Assistant gedaan. Bij detectie van spraak wordt een audiosample gemaakt en naar Home Assistant verstuurd voor verwerking. Wordt het wekwoord herkend, dan wordt de opdracht die erop volgde verwerkt. Een nadeel is: als je veel apparaten zoals de Atom Echo gebruikt, dan heb je relatief veel processorkracht nodig op het systeem waarop Home Assistant draait.
©Diego - stock.adobe.com
9 Verbinding maken
We gaan nu de vereiste software op de M5Stack Atom Echo installeren. In onze opstelling zal de Atom Echo gebruikmaken van ESPHome. Het installatieproces is flink vereenvoudigd. Hierbij moet je een gewone pc of laptop gebruiken, niet je smartphone of tablet. Ga in je browser naar de Atom Echo-tutorial van Home Assistant. Gebruik hierbij een Chromium-browser, zoals Google Chrome of Microsoft Edge.
Klik op die pagina op de blauwe knop Connect. Sluit de Atom Echo aan op je pc. In het pop-upvenster kun je nu Atom Echo selecteren, kies dan Verbinding maken. Zie je geen apparaat staan? Sluit dan het venster. Je ziet nu direct enkele verwijzingen naar relevante drivers, waaronder de CH342-driver die nodig is voor de Atom Echo. Download en installeer deze drivers. Klik daarna op Try Again.
10 Software installeren
Zodra er verbinding is gemaakt kun je via hetzelfde pop-upvenster de software installeren. Kies daarvoor Install Voice Assistant gevolgd door Install. Mislukt de installatie? Probeer het dan opnieuw, maar houd de resetknop ingedrukt terwijl je op Install klikt. Let op: dat is de knop aan de zijkant, niet de hoofdknop aan de bovenkant bij de luidspreker.
Is de installatie klaar, kies dan Next. Je kunt nu het wifi-netwerk kiezen dat de Atom Echo moet gaan gebruiken en het bijbehorende wachtwoord invoeren. Vul dit in en klik op Connect. Nadat je de wifi hebt ingesteld, wordt er geprobeerd om verbinding te maken. Daarna verschijnt als het goed is de melding dat de Atom Echo is verbonden met Home Assistant.
11 Toevoegen aan Home Assistant
Met de link Add to Home Assistant kun je de Atom Echo aan Home Assistant toevoegen. Of je doet dit handmatig: ga hiervoor naar Instellingen / Apparaten & diensten. Je ziet je apparaat wellicht al in het overzicht staan. Klik in dat geval op Configureren en Verzenden.
Zie je de Atom Echo niet? Kies dan Integratie toevoegen en zoek de Atom Echo op onder ESPHome. Als je daarna de integratie opzoekt, zie je wat extra opties. Zo is er een sensor die aangeeft of de Atom Echo bezig is met het verwerken van een spraakopdracht, omdat het bijvoorbeeld je wekwoord heeft opgevangen.
Je wekwoord is standaard actief. Dat zie je aan het vinkje bij Use wake word. Zet je dit uit, dan moet je de hoofdknop indrukken voordat je een opdracht inspreekt. Heb je meerdere spraakassistenten? Dan kun je bij Assistentie-pipeline kiezen welke assistent de Atom Echo moet raadplegen.
12 Persoonlijke zinnen
Wat de assistent nog een stuk krachtiger maakt, is dat je persoonlijke zinnen kunt gebruiken om een automatisering te starten. Hiervoor maak je een nieuwe automatisering. Kies dan als trigger de optie Zin. Je kunt nu de tekst invullen die als trigger moet dienen. Vervolgens kies je eventuele voorwaarden en acties.
Je kunt ook wildcards in de zin opnemen. Die wildcards kun je dan als variabele gebruiken in je automatisering. Het is raadzaam om de assistent ook een reactie te laten geven. Daarvoor kun je een actie toevoegen. Deze vind je onder Andere acties / Gespreksreactie instellen.