ToolActToolAct

Microphone Test

Test your microphone with real-time volume waveform and audio info

Not Started
Volume0%Silent

Real-time Waveform

Start testing to see the real-time waveform

Spectrum Analysis

Start testing to see the spectrum analysis

What is Microphone Test?

The Microphone Test checks in the browser whether a selected microphone is detected, receiving sound, and producing a usable input level. Depending on browser support, it can show real-time waveforms, frequency information, a short recording, playback, and device details, which helps narrow down problems before meetings, streams, online classes, podcasts, or support calls. Common issues include choosing the wrong input device, blocked browser permission, muted system settings, low gain, or a headset connected only as headphones. Audio is processed locally, but the browser still needs microphone permission before any signal can be analyzed.

How to Use

How to use

  1. Click "Start Test" and allow browser access to the microphone
  2. Speak into the microphone and observe the volume indicator and waveform
  3. Click "Record" to capture an audio clip
  4. After recording, you can play it back or download the file

Tips

  • If the volume indicator doesn't respond, please check whether the browser has granted microphone permission
  • Whether the microphone is properly connected
  • Whether the microphone is muted in system volume settings
  • Whether the correct input device is selected

Use Cases

Check whether the browser can hear a microphoneStart audio capture to view live RMS volume, the silent or low/medium/high level classification, time-domain waveform, and frequency spectrum from a Web Audio AnalyserNode. After permission is granted, the page lists every available input device from enumerateDevices, so a wrong default or a headset connected as headphones-only shows up immediately.
Inspect input device settingsOnce active, the page reports sample rate (commonly 44.1 kHz or 48 kHz), channel count, base latency when exposed, and the state of echoCancellation, noiseSuppression, and autoGainControl. These flags are the most common reason a USB condenser or analog lavalier sounds muffled in Zoom yet clear in Audacity, since the WebRTC pipeline overrides the OS driver defaults.
Record a quick local test clipRecord from the active MediaStream, then play back, download, or delete the WebM/Opus clip. Useful for verifying a boom arm, foam windscreen, USB hub power, or Bluetooth HFP vs mSBC codec after switching, since the saved file and its waveform make codec artifacts like the HFP 8 kHz ceiling, the Opus FEC gap, or driver underruns very easy to hear on playback.
Diagnose why a meeting app hears nothingConfirm the browser picks up audio on the same deviceId, then compare with Zoom, Meet, or Teams device selectors. If the test sees input but the app does not, the bug is in the app's permission cache or its privacy indicator hijack, not the hardware; reloading the call tab after granting permission often fixes this on macOS.
Compare headset mics for purchase decisionsPlug two headsets in sequence and watch the RMS level, waveform shape, and frequency spectrum on identical speech. A consistently louder waveform and fuller midrange response usually signals a better mic capsule, while a thin 200-400 Hz rolloff and sibilant peak are the audible signature of cheap electret capsules sold as gaming headsets.

Technical Principle

Browser microphone testing leans on WebRTC's getUserMedia API, which pops a permission dialog and returns a MediaStream once the user grants access. The Web Audio API's AnalyserNode handles the real-time analysis: getByteFrequencyData returns frequency-domain data (FFT output, binned into 256 or 1024 frequency buckets), and getByteTimeDomainData returns time-domain data (the waveform). Volume is computed via RMS (root mean square) - mean of squared samples then square root, which is closer to how the human ear perceives loudness than a simple peak. Common sample rates are 44.1 kHz (CD quality) and 48 kHz (pro audio and video conferencing); the audible range is 20 Hz-20 kHz, and the Nyquist theorem says the sample rate must be at least twice the highest signal frequency to reconstruct without distortion. The constraints parameter to getUserMedia can specify the sample rate, channel count, and toggle three browser-side audio processing switches: echoCancellation, noiseSuppression, and autoGainControl. Recording is done with the MediaRecorder API, which typically outputs WebM (Opus) or OGG - small files with broad compatibility.

  • getUserMedia is the browser's entry point for microphone access; it requires explicit user consent (privacy requirement) and returns a MediaStream object.
  • The Web Audio API's AnalyserNode analyzes the frequency domain in real time; getByteFrequencyData returns an array of frequency buckets with intensities 0-255.
  • Volume uses RMS: sqrt(sum(sample^2) / n) - this tracks the ear's perceived loudness better than peak amplitude.
  • Sample rates: 44.1 kHz (CD) and 48 kHz (pro); the Nyquist theorem requires >= 2x the highest signal frequency to reconstruct without loss.
  • getUserMedia constraints can enable echoCancellation, noiseSuppression, and autoGainControl.
  • MediaRecorder outputs WebM+Opus or OGG - small files with broad compatibility; downloads play in VLC, Audacity, and similar tools.

Examples

Real-Time Volume Detection

Speaking normally -> volume bar at 60-80%, RMS around -18 dB, spectrum concentrated in the 200-2000 Hz voice band

Record and Playback

Record 5 seconds of 'test recording' -> playback is clear with no noise, file size 87 KB (WebM Opus)

Self-Noise Floor Check

Quiet environment -> RMS < 5%, spectrum shows faint electrical noise around 50 Hz (typical laptop-mic self-noise)

FAQ

What does the microphone test do?

Confirms the browser can access your mic, displays a real-time waveform or volume meter, and (in some builds) records a short sample for playback. Useful before joining a call to check that the mic is selected, sensitive enough, and not picking up too much background noise.

Why doesn't the meter move when I speak?

Either the browser doesn't have microphone permission (check the address bar), the wrong mic is selected (pick from the dropdown), the system mic level is muted/zero, or another app is exclusively using the mic. Try systemic checks one by one.

Can I switch between microphones?

Yes - the dropdown lists every microphone the browser detects. Built-in laptop mic, USB headset, Bluetooth headset, and external XLR-via-USB-interface all appear. Switching restarts the audio capture immediately.

Is my voice uploaded?

No. The audio stream is processed in your browser. If a 'record sample' feature exists, the audio is held in browser memory and can be played back locally. Nothing is uploaded unless you explicitly share.

Why does my voice sound different in playback?

Bone conduction. You hear yourself partly through the skull (lower-pitched), but a microphone captures only the air-conducted sound (higher-pitched). The recorded version is what other people on a call hear, even though it sounds 'wrong' to you.

How do I check for echo or background noise?

Speak in normal voice and watch the meter; long sustained noise on the meter while you're silent is background interference (fans, AC, traffic). Wear headphones during calls to prevent the speaker output from looping back into the mic.

Why is my volume too low?

Boost the input level in OS sound settings (Windows Sound, macOS System Settings → Sound → Input). Many built-in mics also benefit from speaking closer (15-30 cm). Avoid USB mics with no preamp - the output is often weak.