Weet je hoe vaak Apple in een keynote 'Siri' zegt? Best wel vaak en toch blijft de assistent op veel iPhones en Macs stil tijdens die keynotes. Dat komt door een truc van Apple met knips in de audio. Het probleem is: bij mij werkt het niet zo goed.
Ik heb de hele keynote van Apple tijdens de Worldwide Developers Conference in juni gekeken en mij viel niets op. De Nederlandse audio-engineer Luuk de Leest zag wél iets. In de audio was zichtbaar dat Apple op bepaalde frequenties delen had uitgeknipt.
Dat is in de bovenstaande afbeelding goed te zien. Je ziet een visuele weergave van de spraak met tijd op de horizontale as en frequenties op de verticale as. De schaal loopt van ongeveer 0Hz naar 16kHz. Op meerdere punten in de audio is duidelijk te zien dat de audio is weggeknipt rond 3KHz, 4KHz, 5KHz en 6KHz. Grappig genoeg is dat niet alleen rond 'Hé Siri', maar ook rond het woord 'Siri'. En de knips zijn ruim: er zit minstens een halve seconde voor en na het woord 'Siri' waarin ook is geknipt. Dit kan natuurlijk omdat Apple de keynotes vooraf opneemt.
:strip_exif()/i/2008259582.jpeg?f=imagenormal)
De knips, een notchfilter, moeten de detectie van 'Hé Siri' blokkeren. De always-onchip luistert continu en probeert met een klein neuraal netwerk te gokken of een gebruiker toevallig 'Hé Siri' zegt, of simpelweg 'Siri'. Daarvoor zet de chip de audio om in patronen en kijkt hij of die een beetje matchen met het opgeslagen patroon van de gebruiker die 'Hé Siri' zegt. Als dat overeenkomt, geeft de chip een seintje aan de hele soc, waarmee een veel groter neuraal netwerk beschikbaar komt om te checken of de gebruiker inderdaad 'Hé Siri' zegt.
Dat bestaat uit twee onderdelen: de eerste is de check of het woord 'Siri' er echt in zit en de tweede is een check of het de gebruiker is die dat zegt. Het probleem is: die detectie is niet supergoed. Integendeel: als ik 'Hé Siri' aan heb staan, kan ik woorden als 'serie', 'serieus' en 'versieren' beter vermijden, omdat de kans bestaat dat er dan een awkward 'hmmm' uit mijn iPhone komt.
Apple doet dit nu om te voorkomen dat apparaten afgaan, maar het knippen van de audio om apparaten niet af te laten gaan gebeurt al jaren, zoals Burger King die 'Hey Google' in een reclame stopte en de audio aanpaste.
Toch doen Amazon en Google dit vooral op andere manieren. Zij verwerken de audio voor het ontwaakwoord op de server en blokkeren daar actief bekende commercials en keynotes, waaronder die van henzelf. Ze hebben ook geëxperimenteerd met het meegeven van onhoorbare lage of hoge audio om te zorgen dat bijvoorbeeld slimme speakers niet wakker worden. De methode die ze nu gebruiken, lijkt echter een blacklist te zijn. Daarbij pakt de serversoftware de tijd om het ontwaakwoord heen om te kijken of het een bekende commercial is. Bij live-tv-programma's kan de server dat mogelijk ook live, als de server ziet dat er duizenden dezelfde stemcommando's tegelijk binnenkomen. Dat kan dus bij Siri niet. Daardoor ging bij sommige Vlamingen de iPhone-wekker om een uur 's nachts af na het kijken van een tv-programma.
Stap 2: klopt dit?
Het is niet dat ik De Leest niet geloof, maar ik wilde dit uiteraard zelf ook controleren, zeker omdat ik het wilde nadoen. Daarom downloadde ik de audio van de keynote, en zocht een passend fragment op. Dat bleek opvallend makkelijk te vinden. Het valt echt onmiddellijk op.
Met inzoomen is ook grofweg te zien op welke frequenties de knips zitten. Die zijn ongeveer gelijk, al zijn er verschillen. Het is een knip van ongeveer 250Hz, al is er rond de 5KHz wel wat meer geluid aanwezig dan bij de andere drie.
| Knip | Frequentie |
| 1 | 2900-3150Hz |
| 2 | 3900-4115Hz |
| 3 | 4900-5115Hz |
| 4 | 5900-6115Hz |
En het werkt: wat ik ook probeerde, Siri wilde niet activeren als ik het geluid van de keynote afspeelde. Dat geldt niet voor iedereen, want er zijn gebruikers die ook hebben laten weten dat bij hen Siri wel activeerde.
Vanwaar dat verschil? Elke Siri is net anders afgesteld en dat ligt denk ik aan de stemherkenning. Hoe meer de eigen stem volgens het neurale netwerk lijkt op die van een van de presentatoren, hoe groter de kans is dat Siri alsnog activeert.
Stap 3: zelf doen
Als Apple het kan, kan ik het ook, dacht ik. En dus heb ik geprobeerd om het notchfilter na te maken. Dat mislukte. Mijn software, Adobe Audition, geeft diverse opties voor de implementatie en geen van alle bleek de juiste. Bij 'smal' knipte Audition alle audio tussen 3kHz en 6kHz weg, bij 'extra smal' was de knip te weinig. Het spelen met de instellingen leverde weinig op.
Dan maar handmatig knippen. Daarom heb ik mijn eigen 'Hé Siri' twee keer opgenomen en in een bestand gezet vlak naast een geknipte versie uit de keynote van Apple. Vervolgens heb ik de knips nauwkeurig nagedaan.
Dan de lakmoesproef: werkt het? Ja, maar nee. Ten eerste is de Hé Siri-detectie op mijn iPhone geen 100 procent. Ik zou zeggen dat het eerder rond 50 procent van de tijd goed gaat. Dat maakt testen lastig. Aan de andere kant: bij de geknipte audio zou het nooit moeten lukken.
Ik heb dit tientallen keren achter elkaar geprobeerd. Bij de ongeknipte audio lukte het vaker om Siri te activeren, maar bij mijn geknipte versie werkte het soms ook een paar keer. Dus het werkte zeker niet foutloos.
Mijn theorie is dat dit komt doordat ik Hé Siri heb getraind op mijn stem en het daarom wel lukt, terwijl het in de Apple Keynote op mijn telefoon wel goed gaat. Dat is een redelijke veronderstelling, maar probeer het vooral zelf. Hier vind je de mp3's van Hé Siri met en zonder knip. Laat in de reacties vooral weten of je iPhone, iPad of Mac door de audio Siri activeert.
- Met knip
- Zonder knip
Als ik de knip groter maakte, bijvoorbeeld 600Hz per knip, dan herkende de iPhone mijn commando consequent niet. Dat is logisch, want op dat punt klinkt mijn S niet langer als een S in mijn oren. Ik heb simpelweg te veel weggeknipt. Ik heb geprobeerd te achterhalen waaraan dat precies ligt, maar dat is niet gelukt.
Daar eindigt voorlopig deze zoektocht. Het is interessant om te zien hoe Apple zelfs met dit kleine detail het anders aanpakt dan Google en Amazon. Apple blijft leunen op het verwerken van de audio op het apparaat zelf, terwijl de grote cloudbedrijven met minder focus op privacy de oplossing hebben gezocht in de cloud. Dat is niet bepaald een wake-upcall natuurlijk. Nu is het te hopen dat Apple bij de nieuwe Siri met generatieve AI, die voorlopig nog niet in Europa zal uitkomen, de detectie van het commando en de assistent niet ongewenst activeert.
:strip_exif()/i/2008259362.jpeg?f=imagenormal)
/i/2008259584.png?f=imagenormal)
:strip_exif()/i/2008259386.jpeg?f=imagenormal)
/i/2008016422.png?f=imagenormal)
:strip_exif()/i/2008209750.jpeg?f=imagenormal)
/u/189401/crop5a5e7beb70a42_cropped.png?f=community)
:strip_icc():strip_exif()/u/270673/8ball-blue-60x60px.jpg?f=community)
:strip_icc():strip_exif()/u/249917/jaapschaap.jpg?f=community)
/u/45865/crop62338715be02f.png?f=community)
:strip_exif()/u/2062/jannie2.gif?f=community)
:strip_icc():strip_exif()/u/408989/crop5613f0d80e7bb_cropped.jpeg?f=community)
/u/8115/tweakers.png?f=community)
/u/598129/crop5d4d7623a4b73_cropped.png?f=community)
:strip_icc():strip_exif()/u/41502/breezah.jpg?f=community)
:strip_icc():strip_exif()/u/423584/crop68bfd3f03c7d2_cropped.jpg?f=community)