§ Methodology

How the test measures

Every number on the test comes from two short recordings and a handful of plain rules. Here are the rules, so you can check them.

§ 01 — Capture

What the page hears

The test asks your browser for the microphone you pick, with noise suppression, echo cancellation and auto gain set the way you leave the three switches. All three start on, because that is what call apps usually ask for. The page then reads the samples the browser hands it: the first channel, at the sample rate of the page's audio engine (usually 44.1 or 48 kHz).

That is the same signal a web call would get from your browser. Desktop call apps can apply their own processing on top, so an app's sound can be cleaner than the test's numbers.

Audio is processed by this page in your browser and is not sent to our server.

§ 02 — Windows

Two recordings

  1. Silence, 4 seconds. You stay quiet. This gives the noise floor and the hum check.
  2. Speech, 6 seconds. You read one sentence aloud. This gives speech level, peak and clipping.

Each recording is cut into back-to-back 100 ms frames. A frame's level is its root-mean-square (RMS) value in dBFS: 20 × log10(RMS), where full scale is 1.0. This is plain RMS, so a full-scale sine wave reads about −3 dBFS; meters that follow the AES17 convention read the same sine as 0 dBFS.

§ 03 — Numbers

The five numbers

How each number is worked out
NumberRule
Noise floorThe median frame level of the silence recording. A median ignores a single cough or click.
Speech levelAmong the speech frames more than 10 dB above the floor, the 90th-percentile level: the loud end of normal speech, without the single loudest syllable. If no frame clears the floor by 10 dB, the test says it did not hear speech.
SNRSpeech level minus noise floor, in dB.
PeakThe largest single sample in the speech recording, in dBFS. Samples at or above 0.985 of full scale count as clipped.
HumA power spectrum of the silence recording (bins of 1.5 Hz or finer: a 32768-point FFT at 44.1 or 48 kHz, Hann window, half-overlapping segments, averaged). The average power within ±3 Hz of 50, 100 and 150 Hz is compared with the bands 5–9 Hz either side of each; the same for 60, 120 and 180 Hz. Hum is reported at the stronger frequency when it sits 12 dB or more above its neighbours.
§ 04 — Verdicts

Verdict thresholds

Thresholds for each verdict
NumberGoodBorderlineBad
Noise floor−60 dBFS or lower−60 dBFS to −45 dBFSAbove −45 dBFS: noisy
SNR30 dB or more20 to 30 dBUnder 20 dB: poor
Speech−30 dBFS or louderUnder −30 dBFS: too quiet—
Peak−1 dBFS or lower, 10 or fewer clipped samples—Above −1 dBFS or more than 10 clipped samples: clipping
§ 05 — Per app

Per-app verdicts

Each app page carries two noise-floor bars and an SNR bar. They are our rule of thumb for how much steady noise that app's built-in suppression copes with, not figures published by the app. The test calls an app fine when the floor is at or under the first bar and the SNR clears the SNR bar; usable with suppression on between the two floor bars; and noise cancellation needed above the second. A quiet floor with an SNR under the bar reads as voice too close to the noise, because suppression cannot make a quiet voice louder.

Per-app thresholds
AppFine at or underUsable up toSNR bar
Discord−40 dBFS−30 dBFS20 dB
Zoom−50 dBFS−40 dBFS20 dB
Microsoft Teams−40 dBFS−30 dBFS20 dB
Google Meet−40 dBFS−30 dBFS20 dB
Slack (huddles)−50 dBFS−40 dBFS20 dB
Webex−40 dBFS−30 dBFS20 dB
FaceTime−40 dBFS−30 dBFS20 dB
WhatsApp−50 dBFS−40 dBFS20 dB
Telegram−50 dBFS−40 dBFS20 dB
Signal−60 dBFS−45 dBFS20 dB
Messenger−50 dBFS−40 dBFS20 dB
Steam voice chat−50 dBFS−40 dBFS20 dB
Roblox voice chat−60 dBFS−45 dBFS20 dB
TeamSpeak−50 dBFS−40 dBFS20 dB
Xbox party chat−50 dBFS−40 dBFS20 dB
PlayStation party chat−50 dBFS−40 dBFS20 dB
§ 06 — Compare

Suppression off and on

The comparison records 5 seconds with the browser's noise suppression off, then 5 seconds with it on, as two separate microphone requests. It reports the noise floor of each (the median frame, as above) and the difference. Where the browser supports recording, you can play both clips back; they stay in the page's memory and are dropped when you reset or leave.

If the browser does not let the page switch suppression, the test says so and skips the comparison.

§ 07 — Meter

The live meter

The live meter lights one segment for each edge the current level reaches, read from the most recent 50 ms of samples.

Meter segment edges
SegmentLights atZone
01−60 dBFSGreen
02−54 dBFSGreen
03−48 dBFSGreen
04−42 dBFSGreen
05−36 dBFSGreen
06−30 dBFSGreen
07−24 dBFSGreen
08−18 dBFSAmber
09−14 dBFSAmber
10−10 dBFSAmber
11−6 dBFSRed
12−3 dBFSRed
§ 08 — Limits

What browsers hide

  • Some browsers do not report every setting the page asked for, such as the sample rate or whether noise suppression is on. The test then says your browser does not expose this setting instead of guessing.
  • Some browsers ignore a request to turn processing off. When that happens the comparison cannot be fair, and the test skips it.
  • Device names appear only after you allow the microphone. The test never puts a device name on the result card.
  • The test measures your side only. It cannot hear the network, the other person's speakers, or what a desktop app does after the browser.