技术方法说明 · 2026 年 7 月 10 日复核

麦克风测试的工作原理

一个可信的测试工具,不应只给出几个百分比,还要说明这些数字从哪里来。下面公开实时信号链、四项指标的计算方式,以及它们能证明和不能证明的事情。

音频处理全程留在浏览器中

点击“开始测试”后,浏览器通过 getUserMedia() 请求麦克风权限,并生成 MediaStream。该音频流只连接到 Web Audio 的 AnalyserNode,用来计算实时指标。选择录音时,MediaRecorder 在浏览器内生成本地 Blob,再通过对象 URL 播放或下载。本站没有音频上传接口,也不会把原始采样、录音、转写文本或设备名称发送到 TestMic.Online。

1. 采集

只有你授权后,浏览器才会创建麦克风 MediaStream。

2. 分析

同一个 AnalyserNode 读取 2,048 点时域数据和 1,024 个频谱采样点。

3. 本地显示

React 更新仪表和波形;可选录音始终是浏览器内的本地 Blob。

每个指标究竟怎么算

这些分数是实用的浏览器端启发式指标,不是经过校准的实验室测量。比较前请保持设备、房间、说话距离和音量一致。

音量

RMS = √(采样平方的平均值);分数 = min(100, RMS × 100)

波形字节以 128 为中心,先归一化到 −1…1,再计算均方根幅度。20–60% 的绿色区间是本站仪表的实用目标,不等同于声压级 dB,也不能替代校准声级计。

清晰度

分数 = min(100, 85–3,400 Hz 幅度和 / 全频谱幅度和 × 150)

该指标比较主要语音频段与整个频谱的能量集中程度。分数较高,表示采集到的声音更集中在人声频段;它不是严格的信噪比、可懂度评分或麦克风频响测试。

噪声

分数 = min(100, mean(|字节 − 128|) / 50 × 100)

这是波形活动度的近似值,应该在停止说话时读取。人声同样会让波形变化,因此说话时数值升高并不代表背景噪声突然变大。它适合比较关窗前后、风扇开关、摆位或不同麦克风。

浏览器延迟估计

毫秒 = AudioContext.baseLatency × 1,000

这里显示的是浏览器在支持时报告的基础音频处理延迟,不是麦克风往返延迟,也不包含蓝牙缓冲、会议软件、网络和对方设备。显示 0 可能只是浏览器没有提供 baseLatency。

可重复的两分钟测试流程

  1. 1使用真实通话或录音时会用到的麦克风、接口、浏览器和摆放位置。
  2. 2先安静五秒记录噪声分数,再用正常音量说话十秒,观察音量和清晰度。
  3. 3录制一句固定的话,用耳机回放,检查削波、抽吸感、嗡声、房间回声和词首被切掉等问题。
  4. 4每次只改变一个变量,例如距离、输入增益、USB 端口或降噪设置,然后重复同一句话。
  5. 5最后在 Zoom、Teams、Meet、Discord 或录音软件中再次确认设备。浏览器测试无法读取其他应用选择了哪个麦克风。

你可以亲自验证隐私承诺

  • 开始测试前打开浏览器开发者工具,切换到 Network(网络)面板。
  • 运行测试并录一小段声音,不应出现携带音频、Blob、转写内容或设备名称的网络请求。
  • 页面加载完成后断开网络,测试、回放和下载仍可继续,因为这些都是浏览器本地操作。
  • 停止测试后确认浏览器的麦克风占用提示消失;清理流程会停止 MediaStream 轨道并关闭 AudioContext。

必须说明的局限

本站可以确认浏览器是否收到信号,并帮助比较输入幅度、语音频段集中度、静音时的波形活动以及浏览器报告的基础处理延迟。它不能认证“广播级音质”、确定硬件一定损坏、测量声学 dB、给语音可懂度打分,也不能预测网络通话质量。重要场景应同时参考录音回放和目标应用内的测试。

标准与 API 参考

查看编辑与纠错规范
麦克风测试的工作原理 | 在线麦克风测试工具 | Microphone Tester