What the numbers mean
- dBFS is decibels relative to full scale: 0 dBFS is the loudest sample the microphone channel can carry, and everything real is below it, so levels are negative. The meter shows the RMS (average power) of each 43 ms block of sound, from -60 dBFS at the left edge to 0 at the right. A full-scale sine wave reads -3.0 dBFS on it. The bar rises at once and falls back 20 dB a second, so a short word stays visible; the thin mark is the highest single sample of the last 1.5 seconds.
- dBFS is not loudness in the room. It says how close the signal is to the top of the channel, after the microphone’s own sensitivity, the system input volume and the browser’s processing. The same voice can read -40 dBFS on one microphone and -15 on another. A sound-level meter in dB SPL is a different thing, and a web page cannot be one without a calibrated microphone.
- Clipping light. It turns red when any sample in the last 2 seconds reached -0.1 dBFS or above, the top of the channel. A clipped wave has its tips cut flat, which sounds harsh and crackly, and nothing afterwards can restore it.
How the verdict is decided
Every 50 ms the page reads one block of sound. Over the last 3 seconds it takes the loudest level (the 95th percentile of the blocks, so the gaps between words do not pull it down and one click does not push it up) and the highest peak:
| Verdict | When | What to do |
|---|---|---|
| Clipping | a peak at or above -0.1 dBFS | Lower the input volume in the system’s sound settings, or move back from the microphone. |
| Good | loudest at -30 dBFS or above, no clipping | Nothing. Between -20 and -10 dBFS while you talk is a comfortable range. |
| Too quiet | loudest from -60 up to -30 dBFS | Get closer (a hand-width from a headset or USB microphone), or raise the input volume. |
| Silent | loudest below -60 dBFS | Nothing is getting through: a mute switch, the wrong microphone, or an input volume at zero. |
Worked example: you say a sentence and the blocks while you speak read around -22 dBFS, with the highest sample at -8 dBFS. The loudest level is about -22, above -30, and the peak is far from -0.1, so the verdict is Good. Move the microphone from 10 cm to 1 m away and speech drops by roughly 20 dB (sound falls about 6 dB per doubling of distance), to around -42 dBFS: Too quiet.
Background noise in plain words
“Measure background noise” listens for 2 seconds while you stay quiet and takes the median block level, so a single cough in those 2 seconds does not decide it. The words it uses:
| Floor | Says | Typically |
|---|---|---|
| -90 dBFS or lower | Digital silence | Pure zeros between sounds: noise suppression or a noise gate removed everything, a muted input, or a virtual microphone. A real microphone always has some hiss. |
| -90 to -70 | Very quiet | A quiet room and a good microphone. |
| -70 to -60 | Quiet | A calm room. Fine for anything. |
| -60 to -50 | Some background noise | A computer fan, a fridge, distant traffic. Audible in the pauses of a voice recording. |
| -50 to -40 | Noisy | A loud fan, air conditioning, a busy room. |
| above -40 | Very noisy | The background is about as loud as quiet speech. |
What counts is the gap between your voice and that floor. When both have been measured, the page says how many dB your voice sits above the background. As a rule of thumb, 30 dB or more sounds clean, and under 15 dB sounds noisy. Automatic gain control raises the level in a quiet room, which lifts the floor as well, so for a fair reading of the room itself, switch it off first.
Echo cancellation, noise suppression, automatic gain
Browsers clean up microphone sound for calls before a page ever sees it, and most switch all three on by default. The page shows what the track reports in track.getSettings(), and each switch re-opens the microphone asking for the new value.
- Echo cancellation removes the sound of your own speakers from the microphone, so people on a call do not hear themselves. With headphones on it has nothing to do.
- Noise suppression removes steady background sound between and under words: fans, hum, hiss, often keyboard clatter. Strong suppression can also make a voice sound thin or clip the ends of quiet words.
- Automatic gain control turns the level up when you are quiet and down when you are loud. It helps on calls, but it lifts room noise in pauses and fights you when you set the input volume by hand.
For singing, an instrument or a podcast recorded with a good microphone, switch all three off: they are tuned for speech on calls and colour everything else. Sample rate and channel count are what the browser delivers to the page, and it may resample: a Bluetooth headset in call mode records narrow-band sound however the number reads, and while its microphone is open its playback sound drops to call quality too.
Why the A/B is two takes, not one
A true A/B would process the same 5 seconds both ways at once. Browsers do not allow that: while we built this page, Chrome, asked for a second track from the same microphone with noise suppression off while the first had it on, gave the second track the first one’s setting (both reported on). So the page records take A with suppression on, closes the microphone, reopens it with suppression off, and records take B. Say the same sentence both times, then listen for the fan or hum in the pauses of B, and for a thin or cut-off voice in A. Under the players, the page gives each take’s loudest level and its background between words, and the difference between them.
When it fails: the error name tells you why
Web pages reach the microphone through one browser call, getUserMedia(). When it fails, the browser gives a named error, and each name means a different fix. This page shows the error it got, with steps for the system and browser it detects. Following MDN’s list of exceptions:
| Error name | What it means | Where the fix is |
|---|---|---|
NotAllowedError | Access was refused: by you, by a remembered choice for this site, by the operating system, or by a policy. | The site permission in the browser, then the system’s microphone privacy switch for the browser. |
NotFoundError | No microphone was found at all. Common on desktop computers, which often have none built in. | The plug or Bluetooth connection, the system’s input list (Windows: Settings > System > Sound), the driver. |
NotReadableError | Permission is fine, but the system or driver would not start the microphone. Usually another app holds it exclusively. | Close the other app; on Windows, untick exclusive control in the classic Sound panel; replug or restart. |
OverconstrainedError | The microphone picked by its ID is gone (unplugged, renamed). | This page retries with the default microphone; replug and test again. |
SecurityError | Microphone use is switched off for this page, for example in an embedded frame, or not on https. | Open the page directly, over https. |
NotSupportedError / TypeError | The browser has no microphone API here, typical of in-app browsers. | Open the page in the real browser, or update it. |
AbortError | Something else stopped the start, with no clearer reason. | Try again; close other apps using the microphone; restart. |
No error, but Silent?
If the microphone starts but the verdict stays Silent, the page has the microphone and receives zeros or near-zeros. In order of how often it happens: a mute switch on the headset or its cable; the wrong microphone in the list (a laptop may list its built-in array, a headset and a webcam microphone; Chrome also lists “Default”, and on Windows “Communications”, which point at whichever device the system picked); the input volume at zero (Windows: Settings > System > Sound > your microphone > Input volume; Mac: System Settings > Sound > Input); or a phone call holding the microphone on a mobile device.
What this page cannot do
- It cannot test the microphone inside Zoom, Teams, Discord or any other app. Those open the microphone themselves, with their own device choice and their own noise suppression; a good result here shows the microphone and the system work, not that the app is set up right. Check the app’s own audio settings for which device it uses.
- It cannot name the app that holds the microphone. Browsers do not tell web pages, on any system. Your system can: on a Mac, click the orange dot in Control Center; on Windows, point at the microphone icon in the taskbar.
- It cannot fix drivers, hardware or the system input volume. It can tell you that no sound arrives, or that the microphone could not start, but those fixes happen outside the browser.
- It cannot measure loudness in the room (dB SPL). dBFS readings depend on the microphone and the input volume, so compare them on the same setup, not across devices.
- It cannot hear your voice live through your speakers. That would feed back into the microphone; the 5-second recording is the safe way to hear yourself.
- It cannot keep or send your recordings. The takes live in this tab as
blob:addresses and disappear on reload. To keep a voice recording, use the recorder in voice mode. - Microphone names appear in the list only after you allow the microphone. Before that, browsers hide them so a page cannot fingerprint your devices.
- A browser may ignore a switch. Some browsers or microphones do not let pages turn a setting off; the page reads the setting back after every change and says so when the browser kept its own value.
What works where
| Needed for | Chrome | Firefox | Safari (Mac) | This browser |
|---|---|---|---|---|
Settings readout (getSettings) | 59 | 50 | 11 | … |
Level meter (getFloatTimeDomainData) | 35 | 30 | 14.1 | … |
Recording the takes (MediaRecorder) | 47 | 25 | 14.1 | … |
| Noise suppression switch | asked with getSupportedConstraints() (Chrome 53, Firefox 44, Safari 11) | … | ||
| Echo cancellation switch | same | … | ||
| Automatic gain switch | same | … | ||
Version numbers are the first release with the feature, from MDN browser-compat-data (version 8.1.3) for getSettings, getFloatTimeDomainData, MediaRecorder and getSupportedConstraints, checked 2026-09-24. They are not test results. Edge is built on Chrome’s engine. Which processing switches a browser offers is not in that data, so the three switch rows ask the browser you are using now; a “Yes” means it accepts the setting, not that every microphone honours it.
What has actually been tested
One browser: headless Chrome 150 on Linux with Chrome’s built-in fake microphone, which plays a short beep once a second, driven by the automated test in this site’s repository on 2026-09-24. The meter passed -60 dBFS under a second after the press, read the beeps at around -10 dBFS and the silence between them below -100 dBFS (digital silence, as this page would call it), and gave the verdict Clipping, because that beep’s peaks reach full scale. The fake device listed three microphones, and the track reported echo cancellation, noise suppression and automatic gain on, 48 kHz, mono. Switching noise suppression off re-opened the microphone and the track then reported it off, which is how the A/B takes get their two settings. The test checked that nothing asks for the microphone before the button is pressed; that the meter rises above -60 dBFS within 5 seconds of the press; that the settings shown equal the track’s own getSettings(); that a 5-second take plays back from a blob: address; that the A/B takes report noise suppression on and off; that Stop ends every microphone track the page opened; and that a microphone made to fail with NotAllowedError shows that error’s help. Real microphones, Firefox, Safari and phones have not been tested by us; the help steps come from the vendors’ support pages below.
Sources
All read on 2026-09-24.
- MDN Web Docs, MediaDevices: getUserMedia() method, Exceptions: the meaning of each error name; MediaTrackSettings: noiseSuppression.
- Apple, Control access to the microphone on Mac: Apple menu > System Settings > Privacy & Security > Microphone.
- Apple, Quickly change settings with Control Center: click the recording indicator dot to see which app is using the microphone.
- Apple, Change Websites settings in Safari on Mac: Safari > Settings > Websites > Microphone.
- Apple, Control access to hardware features on iPhone: Settings > Privacy & Security > Microphone, per app.
- Microsoft, Turn on app permissions for your microphone in Windows: Start > Settings > Privacy & security > Microphone, and “Let desktop apps access your microphone”, which browsers need.
- Microsoft, Fix microphone problems: Settings > System > Sound > Input, the input volume, and Device Manager for missing drivers.
- Google, Change app permissions on your Android phone: Settings > Apps > the app > Permissions, and Privacy controls > Microphone access.
- Google, Use your camera and microphone in Chrome: View site information to the left of the web address.
- Mozilla, How to manage your camera and microphone permissions with Firefox: the permissions icon on the left of the address bar, and clearing “Blocked Temporarily”.