Zo werkt huildetectie in een babyfoonapp
Een eenvoudige geluidsgeactiveerde babyfoon stelt maar één vraag: is het luid? Daarom gaat hij af bij een dichtslaande deur of een passerende vrachtwagen. Om huilen van al het andere te onderscheiden, zijn een paar vragen meer nodig. Zo beantwoordt Babyphone ze, en hier schiet de aanpak tekort.
Stap 1: Wat telt als luid in deze kamer?
Een vaste volumedrempel werkt niet. Een stille babykamer en een kamer met een luchtbevochtiger hebben een heel verschillend basisniveau.
Daarom schat de detector voortdurend het ruisniveau van de kamer. Dat daalt snel als de kamer stiller wordt en stijgt langzaam als de kamer luider wordt. Zet je een ventilator aan, dan verdwijnt die na een paar minuten naar de achtergrond. Geluiden die op huilen lijken, verhogen het ruisniveau nooit, dus een lange huilbui kan de detector niet leren dat huilen normaal is.
Een geluid telt als luid als het voldoende boven dit ruisniveau uitkomt. De gevoeligheidsinstelling bepaalt hoe ver erboven.
Stap 2: Heeft het geluid de toonhoogte van een baby?
Huilen is een stemhebbend geluid en heeft dus een duidelijke toonhoogte, de grondfrequentie. Het stemkanaal van baby's is klein, waardoor die toonhoogte ruim boven die van een volwassene ligt.
Onderzoek naar babyhuilen plaatst gezond huilen doorgaans rond 200 tot 600 Hz, met typische gemiddelden rond 400 tot 500 Hz. Spraak van volwassenen ligt meestal veel lager.
Voor elk kort stukje audio vergelijkt de detector het signaal met vertraagde kopieën van zichzelf. Als het signaal overeenkomt met een kopie die een bepaalde tijd is vertraagd, onthult die vertraging de toonhoogte. Is het stukje duidelijk periodiek en ligt de toonhoogte tussen 250 en 800 Hz, dan zou het huilen kunnen zijn.
Stap 3: Heeft het boventonen?
Een rookmelder of een piepende magnetron kan in hetzelfde toonbereik zitten, maar komt dicht bij een zuivere toon. Een menselijke stem bevat energie op veelvouden van de grondtoon, de zogeheten boventonen.
De detector meet de energie op twee en drie keer de toonhoogte. Zijn die boventonen te zwak, dan wordt het geluid niet als huilen beschouwd.
Stap 4: Gedraagt het zich in de tijd als huilen?
Eén stukje bewijst niets. De detector kijkt naar de laatste vier seconden en stelt twee vragen:
- Bestaat minstens 45% van dat tijdvenster uit stukjes die op huilen lijken? Spraak heeft veel pauzes en medeklinkers, terwijl huilen lang en aanhoudend is.
- Beweegt de toonhoogte? Huilen heeft een melodie van stijgingen en dalingen. Een constante elektronische toon niet.
Als beide kloppen, verandert de status naar huilen en blijft die een paar seconden zo, zodat een ademhaling tussen het gehuil hem niet heen en weer laat springen. Bij onze testsignalen duurt dit ongeveer twee seconden.
Waarom het op de telefoon draait
Dit alles draait op het apparaat bij je baby, in de browser. De analyse hoeft geen audio ergens heen te sturen, en het enige dat daardoor bij de telefoon van de ouder aankomt, is een kleine status: rustig, geluid of huilen.
Waar het misgaat
We hebben de detector getest met synthetische signalen die zijn gemodelleerd op huilen, spraak, witte ruis, tonen en dichtslaande deuren. We hebben hem niet gevalideerd met een klinische opnameset, en deze aanpak heeft bekende blinde vlekken:
- Oudere broers en zussen en hoge stemmen kunnen in hetzelfde toonbereik vallen, vooral als ze lang aanhouden.
- Zingen, sommige muziek en tv kunnen periodiek en melodieus genoeg zijn om hem te activeren.
- Huisdieren kunnen verrassend veel op huilen lijken.
- Zacht gejammer kan als geluid worden aangemerkt in plaats van huilen, of helemaal niet worden opgemerkt.
- Een microfoon ver van het bedje verzwakt de boventonen waarvan de detector afhankelijk is.
Daarom kun je kiezen voor meldingen bij elk geluid, het geluid continu aan laten staan en de gevoeligheid aanpassen. Zie huildetectie als een nuttig seintje. Het is geen garantie en vervangt geen goede plaatsing of een volwassene binnen gehoorsafstand.