ID.nl logo
Zo krijg je stembesturing op de Raspberry Pi
© Reshift Digital
Huis

Zo krijg je stembesturing op de Raspberry Pi

Met slimme assistenten zoals Google Assistant, Amazon Echo en Apple geef je opdrachten met je stem. Leuk, maar je stemopnames worden wel naar de cloud gestuurd voor verwerking. Met een Raspberry Pi en de opensource-software Rhasspy kun je stembesturing volledig lokaal realiseren, zelfs zonder internet. Je stemopdrachten koppel je dan aan Node-RED of een domoticasysteem zoals Home Assistant, en dat zonder dat Google, Amazon of Apple de hele tijd meeluistert. Zelfs in het Nederlands.

1 Raspberry Pi

Rhasspy heeft minstens een Raspberry Pi 2 nodig, maar we raden toch minstens model 3 aan. Als je complexe zaken wilt gaan doen, is een Raspberry Pi 4 zelfs aan te raden. Daarnaast heb je ook een microfoon en luidspreker nodig. Deze workshop hebben we met de ReSpeaker 2 Mics pHAT van Seeed uitgeprobeerd. Deze prik je op de gpio-header van de Raspberry Pi. De HAT heeft twee microfoons ingebouwd en een luidspreker sluit je aan via de 3,5mm-audiojack of de JST2.0-stekker. Wij gebruiken die laatste, waarop we een 3inch-luidspreker van 8 ohm en 1 watt aansluiten.

2 Audiodrivers

We gaan ervan uit dat je op je Raspberry Pi al de nieuwste Raspbian hebt geïnstalleerd, en via ssh (of een toetsenbord en scherm) opdrachten kunt intypen. Als je de ReSpeaker 2 Mics pHAT of andere audiohardware van Seeed gebruikt, dien je eerst een driver te installeren. Dat doe je met deze drie opdrachten:

git clone https://github.com/respeaker/seeed-voicecardcd seeed-voicecardsudo ./install.sh

Herstart daarna je Raspberry Pi met sudo reboot. Als je daarna weer inlogt, zou je in de uitvoer van de commando’s arecord -l (de lijst van microfoons) en aplay -l (de lijst van luidsprekers) de ReSpeaker-hardware moeten zien.

©PXimport

3 Installeer Rhasspy

Rhasspy kun je installeren in een Docker-container, in een virtuele Python-omgeving of als een Hass.io-add-on voor Home Assistant. In deze workshop voeren we de installatie uit met Docker Compose. Volg onze basiscursus Docker op Raspberry Pi elders in dit nummer om Docker en Docker Compose te installeren, en maak het volgende bestand docker-compose.yml aan:

version: '3.7'services:rhasspy:image: rhasspy/rhasspy:2.5.0-precontainer_name: rhasspyrestart: alwaysvolumes:- /home/pi/containers/rhasspy/profiles:/profilesports:- 12101:12101devices:- /dev/snd:/dev/sndcommand: --user-profiles /profiles --profile nl

Bekijk op het forum van Rhasspy wat de nieuwste versie is en pas het image indien nodig aan. Op het moment van schrijven was dat rhasspy/rhasspy:2.5.0-pre.

©PXimport

4 Webinterface

Maak de Docker-container van Rhasspy met het commando docker-compose up -d. Nadat Rhasspy is opgestart, kun je de webinterface bereiken via http://IPADRES:12101 met in plaats van IPADRES het werkelijke ip-adres van je Raspberry Pi. Dat laatste kom je te weten met de opdracht ip a op je Pi. Kijk naar het ip-adres bij eth0 als je ethernet gebruikt of wlan0 als je wifi gebruikt. In de webinterface zie je rechts bovenaan in het blauw nl staan: dat is het teken dat Rhasspy het Nederlandse profiel gebruikt. Je ziet bovenaan ook een link naar de Getting Started Guide: de documentatie wordt gewoon door dezelfde webserver getoond.

©PXimport

5 Audio-instellingen

Klik links op het icoontje van de gereedschapskist. Je krijgt nu alle services van Rhasspy te zien en die zijn standaard allemaal uitgeschakeld. Rhasspy is eigenlijk een toolkit om een stemassistent mee te maken en voor elk van deze services heb je meerdere keuzes. Selecteer PyAudio bij Audio Recording, en aplay bij Audio Playing. Klik onderaan op Save Settings, waarna Rhasspy herstart. Klik op Audio Recording / Test en kies de microfoon, bijvoorbeeld seeed-2mic-voicecard. Klik op Audio Playing en Refresh en kies je luidspreker, bijvoorbeeld Direct hardware device without any conversions. Sla je wijzigingen nog eens op.

©PXimport

6 Kies een activatiewoord

In de volgende stap kies je een ‘wake word’: het woord dat je tegen Rhasspy dient te zeggen om je stemassistent te activeren. Selecteer Porcupine bij Wake Word en sla je wijzigingen op. Klik dan op Wake Word en Refresh. In de lijst voor de knop Refresh kun je nu uit een tiental activatiewoorden kiezen, zoals porcupine (de standaard) en hey pico. Als je je eigen activatiewoord wilt aanmaken, dan kan dat met de Picovoice Console. Maak een directory genaamd porcupine in je profielmap van Rhasspy en plaats het bestand daar. Daarna kun je het in de instellingen selecteren. Vergeet niet op Save Settings te klikken.

©PXimport

7 Spraak naar tekst en andersom

Stel Speech to Text in op Kaldi (als je een Raspberry Pi 4 hebt, want dit vraagt meer rekenkracht) of Pocketsphinx (voor eerdere modellen). Zet Text to Speech op Espeak en sla je wijzigingen op. Als je de pagina daarna ververst, krijg je de melding dat Rhasspy bestanden moet downloaden. De speech-to-text-engine heeft immers een akoestisch model en basiswoordenboek nodig. Klik bovenaan op Download. Als alles gedownload is, krijg je de melding Training Profile. Je krijgt ook de melding dat Rhasspy niet zeker is van enkele woorden hoe het die moet uitspreken.

©PXimport

8 Woordenboek

Klik op View bij de melding over onbekende woorden of klik in de zijbalk links op het icoontje met de twee aanhalingstekens. Rhasspy heeft al een gok gedaan over de uitspraak van de onbekende woorden, door er hun fonetische transcriptie bij te zetten. Klik op check to be sure om de beschikbare fonemen te bekijken. Klopt er iets niet, pas dit dan aan. Klik tot slot op Confirm Guesses. De woorden worden dan samen met hun uitspraak toegevoegd aan je lijst met Custom Words. Merk je later dat je een verkeerde uitspraak hebt toegevoegd, dan kun je deze altijd op deze pagina nog aanpassen.

©PXimport

9 Je bedoeling herkennen

Dan rest er nog één component die we moeten instellen: Intent Recognition. Stel die in op Fsticuffs en sla je wijzigingen op. Na de herstart zou Rhasspy je opdrachten moeten herkennen. Welke zinnen Rhasspy exact herkent, vind je op de pagina Sentences. De inhoud daarvan heeft de syntaxis van een ini-bestand, en elke sectie is een ‘intent’ of bedoeling. Bekijk bijvoorbeeld de regel [GetTime] met daarna de regel hoe laat is het. Dat betekent: als je de zin “hoe laat is het” uitspreekt, verstaat Rhasspy dit als de bedoeling GetTime. Je kunt hier ook complexere regels invullen, op de pagina staat een link naar de volledige syntaxis.

©PXimport

10 Test!

Ga nu naar de pagina Test en typ een van de zinnen uit de pagina Sentences in het tekstveld naast Recognize. Klik op de knop ernaast. Als je bijvoorbeeld “zet de woonkamerlamp aan” invoert, verschijnt er na een druk op de knop ChangeLightState onder, de waarde woonkamerlamp bij het slot name en de waarde aan bij het slot state. Als je op Show JSON klikt, krijg je gedetailleerdere informatie over wat Rhasspy herkent. Als dit werkt, is de ultieme test het daadwerkelijk uitspreken: spreek het activatiewoord uit (bijvoorbeeld “hey pico”) en daarna je zin. Als alles goed gaat, toont de testpagina nu je woorden in tekst, inclusief de herkende intent en slots.

©PXimport

Rhasspy verstaat me niet!

Het succes van Rhasspy hangt van allerlei factoren af. Allereerst van de kwaliteit van je microfoon. De hier voorgestelde ReSpeaker 2 Mics pHAT is oké, maar geen hoogvlieger en hij heeft een beperkt bereik. Vermijd ook stoorzenders zoals achtergrondgeluid. Als Rhasspy moeilijk je activatiewoord (wake word) verstaat, probeer dan een ander uit (een zelfgetraind activatiewoord werkt het best). Als Rhasspy je opdrachten na het activatiewoord moeilijk verstaat, probeer dan eens een andere speech-to-text engine. Als het daarna echt nog niet goed werkt, overweeg dan om naar het Engels over te schakelen: de spraaktechnologie voor het Engels werkt doorgaans beter dan die voor het Nederlands.

©PXimport

11 Actie!

Rhasspy herkent nu wat je zegt en achterhaalt de bedoeling daarachter, maar doet er nog niets mee. Gelukkig ondersteunt Rhasspy diverse manieren om op je ‘intents’ te reageren. Standaard stuurt Rhasspy bij het herkennen van een intent een event met JSON-code uit via een WebSocket. Je kunt dan in een ander programma naar deze WebSocket-events luisteren en daarop reageren. Een handig programma daarvoor is Node-RED, dat je ook eenvoudig op je Raspberry Pi met Docker installeert.

©PXimport

12 WebSockets

Kies in Node-RED uit het palet links onder het kopje network een node websocket in en versleep die naar de werkruimte in het midden. Dubbelklik erop, laat het type op Listen on staan en klik bij Path op het icoontje van het potlood naast Add new websocket-listener. Vul bij Path de url ws://rhasspy:12101/api/events/intent in, of vervang rhasspy in de url door de hostname of het ip-adres van je Raspberry Pi als je Node-RED op een andere computer hebt draaien. Laat Send/Receive op payload staan en klik op Add. Geef dan je node websocket in een naam en klik op Done.

13 Debug

Sleep nu een node debug (in het onderdeel common helemaal bovenaan) naar de werkruimte. Verbind het rechtse grijze vakje van je websocket-node met het linkse grijze vakje van de debug-node. Klik dan op Deploy om je flow in Node-RED uit te rollen. Klik nu op het menu helemaal rechts bovenaan en dan op View / Debug messages. Rechts krijg je nu alle boodschappen van de debug-node te zien. Als je nu tegen Rhasspy praat en die de intent herkent, krijg je in het debug-venster de JSON-code van de intent te zien.

©PXimport

14 Van string naar object

Maar eerst dienen we de JSON-string (een reeks tekens) naar een JSON-object om te zetten. Sleep een node json uit het onderdeel parser en plaats die tussen de websocket- en debug-nodes. Daarvoor dien je de bestaande verbindingen te verwijderen (selecteer en druk op Delete) en nieuwe verbindingen te maken. Als je nu weer op Deploy klikt en tegen Rhasspy praat, zie je in het debug-venster de intent in de vorm van een object in plaats van een string. Onderdelen kun je nu uitklappen, bijvoorbeeld het deelobject intent met daaronder name die de naam van de herkende intent bevat, zoals “GetTime”.

©PXimport

15 Wat zei je?

Hang nu een node switch (uit function) achter de json-node en dubbelklik erop. Vul bij Property de eigenschap msg.payload.intent.name in en vul bij de regel onderaan achter == niets in, omdat een niet herkende zin een intent zonder naam krijgt. Klik op Done. Voeg achter de switch-node een node change (uit function) toe, dubbelklik erop en zet de payload op Wat zei je?. Geef de node eventueel een naam en klik op Done. Hang achter deze node een node http request (uit network), verander de methode naar POST en vul bij de url http://rhasspy:12101/api/text-to-speech in. Klik op Done en dan Deploy.

©PXimport

16 Intents herkennen

Als je nu iets zegt dat Rhasspy niet verstaat, antwoordt hij “Wat zei je?”. Door nu aan de switch andere regels toe te voegen, kun je voor elke herkende intent een andere actie laten uitvoeren. Klik in de eigenschappen van de switch-node op het knopje +add onderaan om een regel toe te voegen en vul in het veld na het isgelijkteken GetTime in. Er verschijnt nu een extra uitgang aan de switch-node. Hang daar een node function (in het onderdeel function) achter en verbind die ook met je http request. Dubbelklik op de intent en geef die de naam GetTime.

©PXimport

17 Hoe laat is het?

In de function-node schrijf je een javascript-functie, die de tijd uitvoer als een tekst, die door de http request aan Rhasspy wordt doorgegeven om uit te spreken. In die functie maak je eerst een variabele timeString, waaraan je de uitvoer van de methode toLocaleTimeString op een nieuw Date-object toekent. Op het einde van de functie geef je de payload terug, waaraan je de string “Het is” en de tijd toekent. In die tijd vervang je de dubbele punt (:) door de string “ uur “. Als je deze node nu opslaat en de flow uitvoert via Deploy, antwoordt Rhasspy je op je vraag hoe laat het is.

©PXimport

18 Slots

GetTime is een eenvoudige intent, maar complexere intents zoals ChangeLightState bevatten ook slots. Die kun je eenvoudig uit de JSON-code halen in Node-RED. Voeg een nieuwe regel in de switch-node toe en test op ChangeLightState. Hang hieraan een node template (in het onderdeel function) en verbind die ook weer met de http request. Vul in het tekstveld template de code Ik zet de {{ payload.slots.name }} {{ payload.slots.state }} in. Hiermee antwoordt Rhasspy je “Ik zet de woonkamerlamp aan”, als je “Zet de woonkamerlamp aan” vraagt, en hetzelfde voor andere apparaten en toestanden die voor de intent zijn gedefinieerd.

©PXimport

19 Apparaten aansturen

Uiteraard kun je Rhasspy op deze manier ook acties laten uitvoeren, zoals je lampen daadwerkelijk in- en uitschakelen. Hoe dat precies gebeurt, hangt af van wat voor lampen je hebt en welke API deze aanbieden. Voor een REST API gebruik je een http request, voor apparaten die MQTT spreken gebruik je mqtt out en definieer je een mqtt-broker. Uiteraard kun je ook allerlei nodes toevoegen voor extra functionaliteit en dan kun je zo bijvoorbeeld je Philips Hue-lampen via spraak aansturen.

©PXimport

20 En verder

Rhasspy is een heel flexibel systeem voor spraakbesturing. Bijna elk onderdeel kun je wel vervangen of aanpassen. Bekijk zeker de interne documentatie van je installatie. We hebben ons in deze workshop gefocust op de integratie met Node-RED, maar ook met het domoticasysteem Home Assistant is er een uitstekende integratie. Via de http en de WebSocket API en MQTT-boodschappen die het Hermes-protocol volgen, kun je bovendien in principe elk systeem met Rhasspy koppelen. Bezoek zeker ook het Rhasspy-forum waar een behulpzame community actief is.

©PXimport

Meerdere apparaten met Rhasspy

Je kunt Rhasspy ook op meerdere Raspberry Pi’s verspreid in je huis installeren. Eén Raspberry Pi is dan de base of master, en die neemt de spraakherkenning, spraaksynthese en herkenning van de intents op zich. Op de andere Raspberry Pi’s (dat kunnen zelfs Raspberry Pi Zero’s zijn) activeer je alleen de audioverwerking van de microfoon en luidspreker en de herkenning van het wake word. Je spreekt dan tegen een van de satellieten, die herkent het activatiewoord en stuurt je audioboodschap naar de base, die er een intent in herkent. Als je Node-RED-flow dan een antwoord naar de spraaksynthese stuurt, wordt die audio op zijn beurt naar de luidspreker van de juiste satelliet gestuurd.

©PXimport

▼ Volgende artikel
Waar voor je geld: 5 e-readers met kleurenscherm voor minder dan 250 euro
© ID.nl
Huis

Waar voor je geld: 5 e-readers met kleurenscherm voor minder dan 250 euro

Bij ID.nl zijn we gek op producten met een mooie prijs of die iets extra's of bijzonders te bieden hebben. Daarom gaan we een paar keer per week voor jullie op zoek naar leuke deals. Nu de avonden weer steeds vroeger donker worden en je vaker binnen zit, is lezen bij een leuke bezigheid. En met een mooie e-reader kan dat ook in kleur. Wij bekeken vijf betaalbare e-readers met kleurenscherm.

Kleuren‑e‑readers zijn relatief nieuw; ze combineren de batterijzuinigheid van elektronische inkt met een kleurenfilter dat magazines, strips en geïllustreerde kinderboeken tot leven brengt. Voor de Nederlandse markt zijn er nog niet heel veel modellen beschikbaar. Wij hebben vijf mooie exemplaren voor minder dan 250 euro op een rijtje gezet voor je.

Kobo Libra Colour - 7 inch

De Kobo Libra Colour is een 7 inch e‑reader met een E Ink Kaleido 3‑scherm. De zwart‑wit resolutie bedraagt 1264 × 1680 pixels en 300 ppi, terwijl kleuren worden weergegeven met 150 ppi. Je beschikt over 32 GB intern geheugen en een dual‑core processor van 2,0 GHz, waardoor pagina’s vlot worden ververst. Voor draadloze audioboeken of Bluetooth‑oortjes biedt de Libra Colour wifi (2,4 en 5 GHz) en Bluetooth 5.0, en bestanden worden geladen via USB‑C. Het apparaat is waterbestendig volgens IPX8 (tot 60 minuten op 2 m diepte). De geïntegreerde ComfortLight PRO‑verlichting heeft instelbare helderheid en kleurtemperatuur.

Dankzij de fysieke bladerknoppen heb je maar één hand nodig om te lezen en met de instelbare lettertypes en paginamarges pas je het leescomfort aan. De accu van 2050 mAh levert volgens Kobo een leestijd van enkele weken per lading. Het toestel meet 144,6 × 161 × 8,3 mm en weegt 199,5 g. Dankzij het kleurenscherm is dit model aantrekkelijk voor strips, tijdschriften en kleurrijke kinderboeken, terwijl hij ook standaard ePub‑, PDF‑ en audiobookbestanden ondersteunt.

Kobo Clara Colour - 6 inch

Zoek je een compacte kleurene‑reader, dan is de Kobo Clara Colour met een 6 inch E Ink Kaleido 3‑scherm interessant. Het scherm biedt een resolutie van 1448 × 1072 pixels met 300 ppi voor zwart‑wit en 150 ppi voor kleuren. Dankzij een dual‑core processor (2,0 GHz) en 16 GB opslagruimte is er genoeg vermogen om romans of stripboeken te laden. De reader ondersteunt wifi (dual band) en Bluetooth zodat je audioboeken kunt streamen, en hij gebruikt USB‑C om op te laden. Kobo past ComfortLight PRO toe met instelbare kleurtemperatuur, en de reader is waterdicht volgens IPX8 (tot 60 minuten op 2 m).

De accu heeft een capaciteit van 1 500 mAh en levert bij gemiddeld gebruik tot zes weken leestijd. Dankzij 13 lettertypen en verschillende lettergroottes pas je het scherm volledig aan. Met afmetingen van 112 × 160 × 9,2 mm en een gewicht van 174 g past de Clara Colour in een jaszak. Het apparaat ondersteunt onder meer EPUB, PDF, MOBI en CBZ/CBR en kan via Bluetooth naar audioboeken luisteren. Het kleurenscherm maakt hem geschikt voor geïllustreerde kinderboeken, kaarten en kookboeken terwijl het compacte formaat ideaal is voor onderweg.

PocketBook Verse Pro Color - 6 inch

PocketBook positioneert de Verse Pro Color als een robuuste kleuren‑e‑reader voor veel lezers. Het 6 inch E Ink Kaleido 3‑scherm beschikt over een grijstintenresolutie van 1072 × 1448 pixels en een kleurenlaag met 536 × 724 pixels. Daardoor krijgen stripillustraties en grafieken 4 096 kleuren te zien terwijl zwart‑wittekst scherp blijft met 300 ppi. De quad‑core processor (1,8 GHz) en 1 GB RAM zorgen voor soepele bladwisselingen, en met 16 GB opslagruimte kun je duizenden e‑books bewaren. Via de USB‑C‑poort en wifi en Bluetooth laad je gemakkelijk bestanden of luister je naar audioboeken.

PocketBook levert SMARTlight, een voorgrondverlichting waarmee je zowel helderheid als kleurtemperatuur aanpast. De reader draait op Linux en ondersteunt talloze formaten zoals ACSM, EPUB, PDF, DOCX en CBR/CBZ. Dankzij text‑to‑speech kun je boeken laten voorlezen. De 2100 mAh‑batterij biedt volgens PocketBook tot een maand leesplezier. De behuizing (108 × 156 × 7,6 mm, 182 g) is waterdicht volgens IPX8, zodat je bij het zwembad kunt lezen. Een G‑sensor draait pagina’s automatisch mee als je het apparaat kantelt. Kortom, de Verse Pro Color levert kleuren‑e‑ink in een handzaam formaat met brede bestands­ondersteuning.

PocketBook Era Color - 7 inch

Met een groter kleurenscherm en ingebouwde luidspreker richt de PocketBook Era Color zich op lezers die audioboeken willen luisteren zonder externe headset. Het 7 inch E Ink Kaleido 3‑display heeft een grijstintenresolutie van 1264 × 1680 pixels en een kleurresolutie van 632 × 840 pixels met 300/150 ppi. Dit zorgt voor scherpe tekst en kleurrijke afbeeldingen. De reader gebruikt een quad‑core processor (1,8 GHz) met 1 GB RAM en biedt 32 GB interne opslag. Het besturingssysteem is gebaseerd op Linux en ondersteunt een groot aantal ebook‑ en stripformaten.

Met dual‑band wifi, Bluetooth 5.4 en USB‑C met OTG‑functie koppel je eenvoudig draadloze hoofdtelefoons, luister je naar audioboeken of speel je muziek via de ingebouwde mono‑luidspreker. De SMARTlight‑voorgrondverlichting laat je zowel helderheid als kleurtemperatuur instellen. Dankzij de 2500 mAh accu en het efficiënte E‑Ink‑scherm is volgens PocketBook een maand gebruik mogelijk. Het apparaat is IPX8‑waterbestendig en uitgerust met een g‑sensor, coversensor en speakers. Met afmetingen van 134,3 × 155 × 7,8 mm en een gewicht van 235 g is de Era Color iets groter maar nog steeds draagbaar. De fysieke bladerknoppen zorgen voor comfortabel lezen, terwijl de ingebouwde spraakfunctie tekst kan voorlezen.

Tolino Vision Color - 7 inch

De Tolino Vision Color is een Duitse die dezelfde hardware heeft als de Kobo Libra Colour maar een eigen Android‑softwarelaag gebruikt. Volgens een productaankondiging biedt het apparaat een 7 inch E Ink Kaleido 3‑scherm met een zwart‑witresolutie van 1264 × 1680 pixels (300 ppi) en 150 ppi voor kleuren. De reader heeft fysieke bladerknoppen naast het aanraakscherm en gebruikt een MediaTek MT8113T‑dual‑core processor (2,0 GHz), 1 GB RAM en 32 GB interne opslag. Een 2050 mAh batterij voorziet de Vision Color van stroom, terwijl de ComfortLight PRO‑verlichting de kleurtemperatuur aanpast.

Het toestel biedt wifi en Bluetooth 5.0 zodat je audioboeken kunt streamen, en het is IPX8‑waterbestendig. Tolino gebruikt Android, waardoor je afhankelijk bent van de Tolino‑boekwinkel maar via de Tolino‑cloud kunt synchroniseren met diverse Duitse boekhandels. Een stylus is optioneel verkrijgbaar voor handschrift en aantekeningen. De Vision Color ondersteunt ePub, PDF en andere standaard‑e‑bookformaten en biedt toegang tot de HotSpots van Deutsche Telekom. Dit apparaat is in Nederland nog beperkt verkrijgbaar; een Duitse webwinkel verkoopt het voor ongeveer € 180,68 (incl. btw). Omdat Kieskeurig nog geen productpagina heeft, is het toestel alleen via buitenlandse winkels te vinden.

▼ Volgende artikel
Kan je iPhone ook virussen krijgen?
© ID.nl
Huis

Kan je iPhone ook virussen krijgen?

Om maar meteen met de deur in huis te vallen: ja en nee. Een iPhone wordt niet snel besmet met traditionele malware, maar dat betekent niet dat hij onkwetsbaar is voor hackers en cybercriminelen. En daarbij is het grootste risico niet iOS. Nee, het grootste risico ben je zelf…

Dit artikel in het kort

Een iPhone is goed beveiligd, maar niet onkwetsbaar. Toch richten de meeste aanvallen zich niet op iOS zelf, maar op de zwakste schakel. En dat is jouw gedrag: dat ene moment dat je klikt, scant of downloadt zonder nadenken. In dit artikel lees je hoe criminelen te werk gaan, waaraan je kunt merken dat er iets mis is met je iPhone en hoe je je telefoon kunt beschermen tegen malware, phishing en andere digitale risico's.

Hoe raakt je iPhone besmet?

Een iPhone is goed beveiligd, maar niet tegen wat je zelf doet – en daar spelen kwaadwillenden op in. Het gaat vaak mis bij iets wat volkomen normaal lijkt: een link openen, een QR-code scannen of een agenda-uitnodiging accepteren kan al genoeg zijn om gegevens prijs te geven. Dit zijn de zes meest voorkomende manieren waarop je iPhone geïnfecteerd kan worden:

1: Zero-click en zero-day-aanvallen

De meest geavanceerde aanvallen gebruiken lekken in iOS die nog niet door Apple of beveiligingsonderzoekers zijn ontdekt. Via zo'n kwetsbaarheid kan spyware worden geïnstalleerd nog vóórdat er een update beschikbaar is.

Een zero-click-aanval gaat nog verder: jij hoeft niets aan te raken. Eén kwaadaardig iMessage-bericht of zelfs een gemiste FaceTime-oproep kan al genoeg zijn om toegang tot je toestel te krijgen.

De beste verdediging is simpel maar belangrijk: installeer updates direct zodra ze beschikbaar zijn (Instellingen > Algemeen > Software-update) en zet Automatische updates aan.

2: Quishing: malafide QR-codes

QR-codes worden soms vervangen door valse exemplaren die naar een nepsite met gemeentelogo of parkeerdienst leiden. Controleer altijd de link die de Camera-app toont voordat je op 'open' tikt, en laat dubieuze adressen desnoods scannen met een tool zoals Scamio.

Lees ook: Zo herken je verdachte QR-codes op parkeerautomaten en laadpalen

 3: Kwaadaardige configuratieprofielen

Een configuratieprofiel is een bestand waarmee instellingen op een iPhone of iPad in één keer kunnen worden aangepast. Zo'n profiel bepaalt bijvoorbeeld welke wifi-netwerken worden gebruikt, welke apps mogen worden geïnstalleerd of welke websites worden geblokkeerd. Bedrijven en scholen gebruiken configuratieprofielen vaak om meerdere toestellen tegelijk te beheren.

Ook kwaadwillenden kunnen zo'n profiel aanbieden, bijvoorbeeld via een link in een phishingbericht. Zodra je het installeert, krijgt de afzender toegang tot je netwerkverkeer of kan hij extra apps laten installeren. Controleer daarom altijd de herkomst voordat je een profiel accepteert, en verwijder onbekende profielen via Instellingen > Algemeen > VPN en apparaatbeheer.

4: Nagemaakte wifi-netwerken

Criminelen zetten daarnaast nepwifinetwerken op met namen als 'Airport_Free_WiFi' of 'NS_Gratis_Wifi_In_De_Trein'. Maak je daar verbinding mee, dan kan al je internetverkeer worden onderschept en kunnen je wachtwoorden of persoonlijke gegevens eenvoudig worden buitgemaakt. Gebruik op openbare wifi een VPN, bijvoorbeeld via Bitdefender Mobile Security, zodat je verbinding versleuteld blijft.

5: Malafide agenda-uitnodigingen

Krijg je een vreemde agenda-uitnodiging die je niet herkent? Verwijder die, want er zitten vaak phishinglinks in. De veiligste manier is om de hele ongewenste agenda te wissen zonder op links of knoppen in de afspraak te tikken. Druk ook niet op 'Weiger', want daarmee laat je de afzender weten dat je account actief is, wat juist tot meer spam leidt. Controleer bij twijfel onderaan in je agenda-instellingen welke kalenders zijn toegevoegd en verwijder alles wat je niet herkent.

6: AirDrop-spam

AirDrop is ideaal wanneer je snel en draadloos foto's, documenten, video's of zelfs wachtwoorden of passkeys wilt delen – of ontvangen. Voor hackers is dit ook een aantrekkelijke ingang in je iPhone. Stel, je hebt net iets gedeeld of ontvangen via AirDrop, bijvoorbeeld foto's tijdens een concert. Misschien heb je daarvoor in de instellingen Iedereen gedurende 10 minuten geselecteerd. Zet je dat na het delen of ontvangen niet uit, dan blijft je iPhone dus nog tien minuten zichtbaar voor iedereen. Beter is het om, vooral op drukke plekken, AirDrop in te stellen op Alleen contacten of zelfs te kiezen voor Ontvangen uit.

Let op met AirDrop

Als AirDrop is ingesteld op Iedereen gedurende 10 minuten, kunnen onbekenden jouw toestel zien en je iets sturen, maar er wordt niets automatisch ontvangen. Je krijgt altijd eerst een melding met een voorbeeld van wat iemand wil delen, bijvoorbeeld een foto of document. Pas wanneer je op Accepteren tikt, wordt het bestand opgeslagen.

Het gevaar zit in de verleiding om tóch te klikken. Aanvallers sturen soms misleidende of schokkende beelden met een naam die je nieuwsgierig maakt. Accepteer je zo'n bestand en open je het daarna, dan kan het een link of document bevatten dat je naar een phishingpagina leidt of schadelijke code uitvoert.

Zo merk je dat er iets mis is met je iPhone

Als je iPhone besmet of gehackt is, verschijnt er geen knipperende pop-up om je dat te vertellen. De signalen zijn subtiel – maar herkenbaar als je weet waar je op moet letten. Dit zijn de zeven meest voorkomende aanwijzingen dat je iPhone geïnfecteerd kan zijn.

1: De batterij raakt opvallend snel leeg

Malware kan continu draaien en daardoor veel stroom verbruiken. Controleer in Instellingen > Batterij welke apps dat doen. Let vooral op apps die veel actief zijn op de achtergrond, zeker als ze daar geen reden voor hebben. Een weerapp die acht uur blijft draaien terwijl je hem niet gebruikt, is bijvoorbeeld niet normaal.

2: Je dataverbruik schiet omhoog

Spyware stuurt ongemerkt gegevens door naar servers van aanvallers. Dat zie je vaak terug in Instellingen > Mobiel netwerk. Daar kun je, als je een stukje naar onder scrolt, bij Mobiele data zien of het dataverbruik ineens hoger ligt dan normaal. Let op opvallende pieken in datagebruik, onbekende apps of vreemde pictogrammen. Een simpele tool of een spel dat je zelden opent, hoort geen gigabytes aan data te verbruiken.

3: Apps crashen of lopen vast

Malware kan problemen geven met iOS of andere apps. Als apps vaak opnieuw opstarten of het toestel warm wordt, is dat verdacht.

4: Er verschijnen pop-ups of advertenties buiten Safari om

iOS hoort reclamevrij te zijn. Zie je ineens advertenties op je beginscherm of in instellingen, dan zit er waarschijnlijk adware achter.

5: Er staan onbekende apps of profielen op je toestel

Sommige aanvallers installeren via een lek of misleidende link een app die er betrouwbaar uitziet, maar in werkelijkheid data doorstuurt of instellingen wijzigt. Kijk daarom regelmatig in de Appbibliotheek of er iets tussen staat wat je niet kent. Verwijder verdachte apps meteen; op een iPhone worden daarmee ook de bijbehorende gegevens gewist. Heb je het toestel tweedehands gekocht of vertrouw je het niet helemaal, dan is een volledige fabrieksreset de veiligste keuze.

6: Je toestel is mogelijk gejailbreakt

Bij een jailbreak wordt een deel van Apple's beveiliging uitgezet om functies vrij te geven die normaal niet zijn toegestaan. Dat lijkt handig, maar maakt het systeem kwetsbaar voor apps met te veel rechten. Als je nooit bewust een jailbreak hebt uitgevoerd en toch apps als Cydia, Sileo, or Checkra1n ziet, is dat een teken dat iemand heeft geknoeid met je iPhone.

7: Je ziet vreemde uitgaande oproepen

Een gehackt toestel kan worden ingezet om spam te versturen of te bellen naar dure servicenummers. Kijk in je berichten en belgeschiedenis of er iets geks tussen staat.

Denk je dat je iPhone besmet is? Dit kun je doen

Merk je dat je iPhone zich vreemd gedraagt, begin dan met een eenvoudige reset van je browsergegevens. Open Instellingen > Apps > Safari en kies Wis geschiedenis en websitedata. Daarmee verwijder je tijdelijke bestanden en scripts die schadelijk kunnen zijn. Herstart daarna het toestel.

Blijven de problemen terugkomen, herstel dan een eerdere iCloud-reservekopie van vóór het moment waarop het misging. Helpt dat ook niet, dan is een fabrieksreset de veiligste manier om alle sporen van malware te verwijderen. Dat doe je via Instellingen > Algemeen > Stel opnieuw in > Wis alle inhoud en instellingen. Je iPhone wordt dan teruggezet naar de oorspronkelijke staat. Omdat alles gewist wordt, verdwijnt ook eventuele malware verdwijnt mee.

Zoals altijd geldt: voorkomen is beter dan genezen

De beste beveiliging blijft een combinatie van gezond verstand en actuele software. Zet automatische updates aan via Instellingen > Algemeen > Software-update > Automatische updates. Zo worden veiligheidslekken gedicht voordat ze misbruikt kunnen worden.

Gebruik op openbare netwerken altijd een VPN, en controleer verdachte links met een analyse-tool voordat je klikt. Wie extra zekerheid wil, kan een beveiligingsapp installeren die phishinglinks en onveilige wifi-verbindingen blokkeert.

Conclusie

Een iPhone is goed beveiligd, maar niet onschendbaar. De meeste risico's ontstaan niet door fouten in iOS, maar door wat jij doet: op een verkeerde link tikken, een uitnodiging openen of een netwerk gebruiken dat niet te vertrouwen is.

Wie zijn toestel up-to-date houdt, links kritisch bekijkt en een VPN gebruikt op openbare wifi, verkleint de kans op misbruik of datadiefstal aanzienlijk. iOS doet veel om je te beschermen, maar waakzaamheid blijft nodig.