/docs · VoiceLab · Practical
Meet met één klap hoe lang een ruimte nagalmt
Het profiel room leest de nagalmtijd per octaafband uit één klap, een ballonknal, een impulsrespons of een sweep. Hoe je het opneemt, hoe je het antwoord leest en hoe ver de cijfers getoetst zijn.
Bijgewerkt 13 okt 2026
Uit een opname van iemand die praat kun je niet halen hoe lang de ruimte nagalmt: we bouwden een goedkope schatter uit het verval na elke frase en die bleek helemaal geen galm te meten (wat hij dan wel meet). Een klap kan het wel. Hij is kort en hard, en hoe hij uitsterft is de ruimte.
Het profiel room van POST /v1/analyze/profile leest dat verval zoals de ruimteakoestiek dat doet: de achterwaartse integraal van Schroeder, per octaafband, met T30 als het verval 45 dB bereik heeft en anders T20 (de methode van ISO 3382). Het is een betaald preset, zoals elk profiel behalve basic.
Neem het op
- Een stille ruimte, geen ventilator, geen muziek. De meting gebruikt de stilte vóór de klap om de ruis te meten, en slaat de eerste 0,3 s van het bestand over, zodat het tikken op de opnameknop niet meetelt.
- Start de opname, blijf ongeveer een seconde stil en klap dan één keer, stevig, op ongeveer een meter van de microfoon.
- Blijf stil terwijl de ruimte uitgalmt, twee tot drie seconden is genoeg voor de meeste ruimtes. Eindigt het bestand terwijl de ruimte nog galmt, dan wordt het verval afgekapt en leest de meting te laag.
- Zorg dat de microfoon niet overstuurt. Drie samples op volle schaal markeren het hele antwoord als laag vertrouwen (
room.clipped).
Een ballonknal werkt hetzelfde en wordt als een klap gelezen; zeg het met roomSource: "balloon". Heb je al een impulsrespons, stuur die dan met roomSource: "impulse": die geeft elke band vanaf 125 Hz, waar een klap 500 Hz en hoger geeft. roomSource: "sweep" is voor een opname van de sweep die de RoomLab-app afspeelt; de engine leest precies dat signaal.
Vraag het aan
curl https://audiolab.tools/v1/analyze/profile \
-H "Authorization: Bearer $AUDIOLAB_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/clap.wav", "profile": "room", "series": true}'
Zonder series: true krijg je de losse waarden. Met series: true krijg je ook room.rt60Bands, de tabel per octaafband met de vervalcurve. Een opname zonder klap, knal, impulsrespons of sweep is een 422 met de code room_not_measurable en de reden.
Wat er terugkomt
| Lens | Wat het is |
|---|---|
room.rt60Mid | Seconden die het geluid nodig heeft om 60 dB te zakken, de mediaan van de banden 500 Hz, 1 kHz en 2 kHz. Een spraakruimte zit rond 0,4 tot 0,8 s, een woonkamer rond 0,3 tot 0,6 s. |
room.rt60Bands | Per band: de tijd, de ruis in die band, T20 of T30, het vervalbereik, een confidence (high vanaf 35 dB bereik) en de curve. Een klap geeft 500 Hz tot 4 kHz; de lagere banden zeggen dat in plaats van te gokken. |
room.flutterStrength, room.flutterPeriodMs | Een snel herhalende echo tussen evenwijdige wanden. Lees 0,4 en hoger als flutter, onder 0,3 als geen; de periode is betrouwbaar vanaf 0,3. |
room.noiseFloor | De stilte vóór de klap, in dBFS (relatief aan volle schaal, geen geijkt geluidsniveau). Boven ongeveer -50 dBFS bepaalt de achtergrond de meting. |
room.clapAt, room.clapProminence, room.clipped, room.method | Waar de klap gevonden is, hoever hij boven de rest uitstak (20 dB is het minimum), of de microfoon overstuurd werd en hoe de respons is verkregen. |
Een sweep-opname voegt room.sweepRange, room.directToReverb en room.tooCloseToSpeaker toe.
Hoe ver je het kunt vertrouwen
We hebben de methode getoetst tegen echte ruimtes, en we zeggen wat de toets was.
- De meting is die van de RoomLab-app, exact. Over 385 gemeten impulsresponsies is het verschil tussen de app en de engine 0,0 s in elke band.
- Tegen dezelfde methode op de kale impulsrespons (elke respons aangeslagen met een klapspectrum en kamerruis, daarna gemeten als opname): de middenwaarde week mediaan 3,9 procent af over 155 ruimtes, 86 procent binnen 10 procent en 98 procent binnen 20 procent. Banden die zichzelf
highvertrouwen gaven (minstens 35 dB verval) weken mediaan 1,5 procent af; metlowvertrouwen mediaan 5,7 procent, lees die dus als aanwijzing. - Tegen een onafhankelijke implementatie (numpy, een andere auteur) kwam de Schroeder-curve binnen 5 procent overeen in alle 112 ruimtes met minstens 35 dB verval, mediaan 0,3 procent.
Wat niet is getoetst: een echte klap op een echte telefoon (de klap is nagebootst met een klapspectrum en kamerruis), een echte luidspreker en microfoon bij de sweep, en flutter-echo op echte ruimtes (er is geen waarheid over welke ruimtes flutter hebben). De cijfers zijn een meting, geen oordeel: de engine zegt niet wat je moet behandelen.
De volledige toets, met de tabellen, staat in de engine-repository (scripts/validatie/room-ir/RESULT.md), en de status van elke room.*-maat staat op de lenzenpagina.
Verder lezen
Volgende in VoiceLab docs
Toonhoogte en stemkwaliteit: wat het profiel geeft en wat het achterhoudt →
Het profiel pitch leest waar een stem zit, hoeveel hij beweegt, hoe stemhebbend de opname is en hoe schoon de stem is. De testcijfers, de grenzen en waarom jitter en shimmer nog niet worden aangeboden.
More in VoiceLab docs
- Intro
Waarom stopwoorddichtheid belangrijker is dan het aantal stopwoorden
Het tellen van "uhms" is de verkeerde maatstaf. Dichtheid laat zien of ze een probleem vormen.
- Practical
Een pragmatisch loudness-doel voor podcasts
Het juiste loudness-doel voor gesproken-woordpodcasts is niet hetzelfde als voor muziek. Hier zijn de getallen en het waarom.
- Deep
Wat het envelope-verval na spraak werkelijk meet
We bouwden een goedkope galmschatter uit het verval na elke frase en toetsten hem tegen 24 gemeten ruimtes. Hij meet geen galm. Hier staan de cijfers en wat we hebben veranderd.
- Practical
Verloren pakketten in een opname vinden
Het profiel chain telt de gaten van digitale stilte die een verloren pakket midden in spraak achterlaat. Hoe het beslist, de testcijfers, wat het niet ziet en waarom de echo- en slapbackmaat niet wordt aangeboden.