关于

算术很简单;麦克风才是薄弱环节。两者都在此说明。

实际测量的是什么

你的麦克风会产生一串采样,每个采样是 −1 到 1 之间的一个数。页面每次取 2,048 个采样为一个块,计算每块的均方根,用 20 × log10(RMS) 把该比值换算成分贝,再加上校准偏移量。结果每秒刷新约八次;峰值和滑动平均值在仪表运行期间一直保留。

这部分算术是精确的。不确定性完全在两端:麦克风在声音变成采样之前对它做了什么,以及偏移量应该取什么数。

从 dBFS 到声压

数字麦克风报告的是相对于自身满量程的电平。它能捕获而不削波的最强信号是 0 dBFS;安静的房间可能处于 −60 dBFS。声压级是另一个标度,有物理基准(20 µPa),因此需要一个换算数值:在这台具体设备上,满量程信号对应多少 dB SPL。

滑块用来设置这个数值,默认为 94 dB。满量程对应 94 dB SPL 是消费级音频输入的常见假设,但它是假设,不是可以依赖的规格。移动滑块会让每个读数平移相同的量;它不会改善仪表的线性度或频率响应。

用参考声源校准

  1. 播放稳定的声音——风扇、流水的水龙头、测试音——而不是忽高忽低的说话声。
  2. 用一台经过校准的声级计放在手机或笔记本电脑旁边,读取电平。
  3. 调整滑块,直到本页显示相同的数值。
  4. 针对该设备和该麦克风,让滑块保持在这个位置。偏移量不能迁移到另一部手机上。

没有参考声级计时,诚实的读法是相对读数:用它比较一个房间与另一个房间,或比较关窗前后,并把绝对数值当作误差约十 dB 以内的猜测。

本仪表未应用的处理

处理此处是否应用对数值的影响
A 计权否低频与中频被同等计入,因此低频轰鸣的读数会比 dBA 声级计显示的高
快 / 慢时间计权否读数按 2,048 个采样的块更新,而非声级计使用的 125 ms 和 1 s 平均
能量平均(Leq)否显示的平均值是所显示电平的算术平均,不是真正的等效连续声级
麦克风校准文件否设备的频率响应误差未作校正
回声消除、噪声抑制、自动增益在请求中已禁用这些会改变电平;浏览器和硬件仍可能对音频流进行处理

因此本页的“dB”既不是 dB SPL,也不是监管意义上的 dBA。它是由未计权 RMS 估算出的 SPL。

为什么暴露限值是单独计算的

每日暴露数值完全不依赖麦克风。它采用 NIOSH 规则:85 dBA 对应八小时,每高出 3 dB,允许时间减半。每个显示暴露数值的页面都使用同一个函数,因此算术可以独立于任何测量进行核对:28,800 秒除以 2(dB−85)/3。

仪表在哪些地方有用,在哪些地方没用

听力损伤是累积且永久的。仪表读数低,并不等于可以继续停留。如果你在一臂距离内必须喊叫才能被听清,这个声级就足以造成影响。

页面是如何构建的

四个静态页面、一个样式表和一个脚本,由本域名提供。没有框架,没有第三方脚本,没有分析,没有 cookie。麦克风代码是使用 Web Audio API 的纯 JavaScript;暴露函数是纯算术,并在浏览器之外有测试覆盖。

更正

换算和暴露规则位于一个共享脚本中,而不是页面文字里。更正写在那里并对照测试检查,因此仪表、图表和关于页面不会彼此偏离。