yescord

Mic test

See whether your microphone works and which one is in use, how loud you come through, how noisy your room is, and what the browser’s noise suppression does to your voice.

The microphone turns on only when you press this. Sound stays in this tab: nothing is uploaded, and the test recordings vanish when you leave.

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:

VerdictWhenWhat to do
Clippinga peak at or above -0.1 dBFSLower the input volume in the system’s sound settings, or move back from the microphone.
Goodloudest at -30 dBFS or above, no clippingNothing. Between -20 and -10 dBFS while you talk is a comfortable range.
Too quietloudest from -60 up to -30 dBFSGet closer (a hand-width from a headset or USB microphone), or raise the input volume.
Silentloudest below -60 dBFSNothing 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:

FloorSaysTypically
-90 dBFS or lowerDigital silencePure 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 -70Very quietA quiet room and a good microphone.
-70 to -60QuietA calm room. Fine for anything.
-60 to -50Some background noiseA computer fan, a fridge, distant traffic. Audible in the pauses of a voice recording.
-50 to -40NoisyA loud fan, air conditioning, a busy room.
above -40Very noisyThe 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 nameWhat it meansWhere the fix is
NotAllowedErrorAccess 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.
NotFoundErrorNo 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.
NotReadableErrorPermission 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.
OverconstrainedErrorThe microphone picked by its ID is gone (unplugged, renamed).This page retries with the default microphone; replug and test again.
SecurityErrorMicrophone use is switched off for this page, for example in an embedded frame, or not on https.Open the page directly, over https.
NotSupportedError / TypeErrorThe browser has no microphone API here, typical of in-app browsers.Open the page in the real browser, or update it.
AbortErrorSomething 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 forChromeFirefoxSafari (Mac)This browser
Settings readout (getSettings)595011…
Level meter (getFloatTimeDomainData)353014.1…
Recording the takes (MediaRecorder)472514.1…
Noise suppression switchasked with getSupportedConstraints() (Chrome 53, Firefox 44, Safari 11)…
Echo cancellation switchsame…
Automatic gain switchsame…

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.