Decibel Meter
Online sound level meter, measure ambient noise in real time
Decibel Level Reference
What is a Decibel Meter?
A decibel meter estimates ambient sound level through the microphone and displays the result in dB. In a browser, this should be treated as a practical reference rather than a calibrated scientific measurement, because built-in microphones, automatic gain control, operating-system filters, browser behavior, and device placement all affect accuracy. The reading can still compare quiet and noisy situations, check fan or street noise, test an audio setup, or show whether a change reduced sound level. For workplace safety, legal evidence, construction acceptance, or professional acoustics, calibrated sound level meters and defined measurement procedures are required. Audio processing stays local in the browser.
How to Use
How to use
- Click "Start Detection" and allow the browser to access your microphone
- Wait for device initialization - the gauge will display real-time dB values
- Observe the level bar to understand the current noise level
- The stats panel records minimum, maximum, and average dB values
- Click "Reset Stats" to clear history and start fresh
Measurement Tips
- Browser decibel readings depend on microphone sensitivity, system gain, and device placement, so treat them as approximate comparisons rather than certified measurements.
- For steadier results, keep the microphone in the same position and avoid touching the device while recording.
Use Cases
Technical Principle
Sound level estimation in the browser starts with the MediaDevices.getUserMedia({audio: true}) API, which exposes the selected input device as a MediaStream. The stream is routed into an AudioContext, then through a MediaStreamAudioSourceNode and an AnalyserNode. Calling AnalyserNode.getFloatTimeDomainData(buffer) every animation frame fills a Float32Array of normalized samples in the range [-1, 1]; from these samples the page computes the root-mean-square amplitude rms = sqrt(sum(x_i^2) / N), and converts it to a relative level in decibels full scale as dBFS = 20 * log10(rms). Because dBFS is a digital reference (0 dBFS = full-scale square wave), it is not an absolute physical pressure level. Converting dBFS to dB SPL (the physical pressure scale used by Class 1 and Class 2 IEC 61672 sound level meters) requires a calibration offset measured with a reference source such as a 94 dB SPL pistonphone, which uncalibrated laptop and phone microphones do not provide. A getFloatFrequencyData() spectrum can be derived from the same AnalyserNode for FFT-based octave-band analysis, but A-weighting and slow/fast time integration (125 ms / 1 s) defined in IEC 61672 are not part of the Web Audio default. Readings drift with automatic gain control, OS-level noise suppression in echoCancellation/noiseSuppression constraints, microphone directivity (omnidirectional MEMS vs cardioid USB), and distance attenuation that follows the inverse square law (-6 dB per doubling of distance in free field). Public health thresholds the gauge labels against include the WHO recommendation of 85 dBA for 8 h and the OSHA 1910.95 permissible exposure of 90 dBA for 8 h with a 5 dB exchange rate.
- MediaDevices.getUserMedia({audio: true}) requires a secure context (HTTPS or localhost) and a per-origin user gesture; denial cannot be reversed without a site-permission reset.
- AnalyserNode.fftSize must be a power of two between 32 and 32768; getFloatTimeDomainData() runs in O(fftSize) per frame at the audio context sample rate (commonly 44100 or 48000 Hz).
- RMS-to-dBFS uses 20*log10(rms); guard against log10(0) by clamping rms to a small epsilon (e.g. 1e-10) to avoid -Infinity at silence.
- Browser AGC and noiseSuppression constraints are enabled by default in Chrome and Edge; pass {echoCancellation: false, noiseSuppression: false, autoGainControl: false} to keep the level meter from chasing its own gain.
- dBFS is not dB SPL: a published 94 dB SPL pistonphone or sound calibrator is required to convert browser readings into physical pressure for OSHA, ISO 9612, or NIOSH workplace use.
- WHO recommends 85 dBA / 8 h exposure with a 3 dB exchange rate; OSHA 1910.95 uses 90 dBA / 8 h with a 5 dB exchange rate, so the same dBA reading maps to different allowable durations under each standard.
- Inverse square law gives roughly -6 dB per doubling of distance in free field, so microphone placement repeatability of a few centimeters is usually the dominant measurement error.
Examples
Everyday sound reference table
0 dB - Threshold of hearing
30 dB - Whisper, quiet bedroom at night
40 dB - Library, refrigerator hum
60 dB - Normal conversation, office chatter
70 dB - Vacuum cleaner, busy restaurant
85 dB - Heavy city traffic (WHO hearing-damage threshold)
90 dB - Subway train, motorcycle 8 m away
110 dB - Live rock concert, chainsaw
120 dB - Jet engine at 30 m (pain threshold)
140 dB - Firework, gunshot (immediate hearing damage)WHO / OSHA exposure guidelines
Recommended maximum daily exposure before risk of hearing loss:
85 dB -> 8 hours
88 dB -> 4 hours
91 dB -> 2 hours
94 dB -> 1 hour
97 dB -> 30 minutes
100 dB -> 15 minutes
110 dB -> under 2 minutes
Source: WHO Make Listening Safe, OSHA 1910.95Sample 60-second living-room measurement
Microphone : Built-in MacBook Air
Location : 1 m from window, mid-afternoon
Current : 38 dB
Min : 32 dB (quiet stretch)
Max : 71 dB (car horn outside)
Average : 44 dB -> classified as Quiet -> NormalHeadset noise-cancellation A/B test
Test: HVAC fan running, fixed mic placement
Without ANC : avg 58 dB, max 64 dB
With ANC on : avg 41 dB, max 47 dB
Delta : -17 dB average, -17 dB peak
Conclusion : Roughly a 6x perceived loudness reduction (every 10 dB ~ 2x loudness).FAQ
How accurate is the dB reading?
Web microphones are not calibrated for absolute SPL (sound pressure level). The reading is a relative dBFS (digital full-scale) value the page maps to an approximate dB SPL using a calibration constant. Real noise measurement needs a calibrated SPL meter; treat the web reading as relative trend, not legal-grade noise data.
What weighting does it use?
Most builds report unweighted (linear) values. A real SPL meter offers A-weighting (matches human ear response, used for environmental noise) or C-weighting (used for peak machinery noise). For human-perceived loudness, the unweighted browser reading is roughly indicative but not formally A-weighted.
What's a reasonable dB range?
Whisper ~30 dB; normal conversation ~60 dB; busy traffic ~80 dB; lawn mower ~90 dB; rock concert ~110 dB; gunshot ~140 dB. Sustained exposure above 85 dB damages hearing over time. A web reading is not for occupational compliance - use it for a rough sense, not for OSHA-style measurements.
Is the audio uploaded?
No. The microphone signal is processed locally - the page reads the audio waveform via Web Audio API and computes dB locally. Nothing is recorded or transmitted.
Why does my reading vary so much?
Microphone position, room acoustics, automatic gain control (AGC), and background noise all change the input level. Real SPL meters use omnidirectional microphones and disable AGC; consumer device mics are directional and gain-adjusted, which makes consistent readings hard.
Can I use it to test if a room is quiet enough for recording?
Yes for ballpark - aim for sub-30 dB (very quiet) for podcast or music recording. The exact reading isn't trustworthy, but a dramatic difference between the same mic in two rooms is meaningful.
Does it work without microphone permission?
No. The page needs explicit microphone permission to read the audio stream. Allow it in the browser prompt to use the meter. Revoke afterwards via the address-bar permission icon.