ACOUSTIC WAKE
声学觉醒 · 技术白皮书

基于 Web-Native 架构的声学测量与校准系统(本地版实现说明)

VER: V1.0-LOCAL DATE: 2026.09 ENV: Web Audio API / Canvas 2D

引言

音响市场在过去几年快速增长,但多数爱好者面临的现实是:调音仍依赖经验,缺乏客观测量依据。专业声学测量工具(如 REW、Smaart)需要外置音频接口、校准麦克风和 PC 端安装程序,成本高昂且门槛较高。

本系统尝试解决一个实际问题:让用户用随身携带的手机,在浏览器里完成一次足够可靠的声学测量,并据此给出校准建议。现代浏览器已支持 48 kHz 全双工音频流与 32 位浮点 FFT,这意味着在浏览器里做精密声学测量不再是「不可能」,而是需要解决一系列真实的工程问题。

本白皮书系统阐述本副本(本地版)的技术实现。全部信号生成与声学分析均在浏览器本地完成,无需服务器,无使用次数限制。

⚠️ 本系统不是要替代专业实验室设备,而是在消费级场景下——车载音响、家庭 Hi-Fi、个人监听环境——提供一种足够好用、足够准的测量方式。

第一章 核心层:同步、扫频与频谱提取

1.1 对数扫频信号选择

系统使用对数扫频(Logarithmic Sweep)作为测量信号,时域表达式为:

s(t) = sin( 2π · f₁ · L · ( e^(t/L) − 1 ) ),    L = T / ln(f₂ / f₁)

本系统采用 f₁ = 20 Hz,f₂ = 20 kHz,T = 10 s,故 L ≈ 1.448 s。瞬时频率随时间指数增长:f(t) = f₁ · e^(t/L)。

对数扫频的核心特性是恒定的倍频程能量密度:单位时间内每个倍频程获得的激励能量相等。这意味着低频段(20~40 Hz)与高频段(10~20 kHz)获得相等的激励时间。在家居和车内噪声环境中,低频段通常受环境噪声影响最大,对数扫频通过延长低频激励时间,提升了该频段的信噪比。

完整校准信号共 38 秒,结构如下:

0~1.0s 静音 → 1.0~1.5s 1kHz 起始触发
→ 2.5~12.5s 扫频① → 13.5~23.5s 扫频② → 24.5~34.5s 扫频③(各段间 1s 静音)
→ 35.5~36.0s 1kHz 结束触发 → 36.0~38.0s 静音

三段重复扫频用于:① 平均以压制随机噪声;② 通过段间一致性评估测量可信度(见 2.3)。

1.2 触发同步

播放端与接收端物理分离、时钟独立。接收端通过归一化互相关定位 1 kHz 触发信号:

R(k) = Σₙ x[n] · t[n + k]

算法采用两级搜索:第一级以 100 采样步进粗定位,第二级在峰值邻域内以原始采样率全精度互相关精确定位触发起点。由于本系统仅使用幅度谱(magnitude-only),触发定位的少量时间误差只会引起相位旋转,不影响频响幅度结果,因此对同步精度要求宽容。

结束触发用于估算时钟漂移:漂移因子 = 实测触发间隔 / 理论触发间隔 − 1(以 ppm 输出)。该指标在报告中以「时钟漂移」展示。

1.3 窗函数与 FFT

对每段 10 秒扫频,使用 32768 点 Hann 窗、50% 重叠的短时傅里叶变换,取幅度平方后按段平均:

P(k) = (2 / Σw²) · (1/M) · Σ_m |FFT(x_m · w)|²

随后以相同管线计算参考扫频(本地合成)的功率谱,通过频域除法得到系统频响:

H(f) = P_measured(f) / P_reference(f),    Response_dB(f) = 10·log₁₀(H(f))

这样录制信号中的扫频自身形状、窗函数泄漏与频谱泄漏效应被完整归一化,剩余即为「扬声器 + 房间 + 麦克风」的系统响应。

1.4 可变倍频程平滑

原始频响存在大量梳状滤波纹波,直接用于 EQ 建议会造成过拟合。系统对 dB 曲线应用 1/3 倍频程平滑:对每个频率点 f,取其上下半倍频程带宽(f·e^(±Δ/2))内的平均值:

S(f) = mean{ Response(g) : g ∈ [f·e^(−Δ/2), f·e^(+Δ/2)] },    Δ = ln2 / 3

平滑后在 31 个 ISO 标准 1/3 倍频程中心频率(20 Hz ~ 20 kHz)处线性插值采样,得到校准频段表。

第二章 决策层:校准建议与质量评估

2.1 EQ 校准建议

EQ 补偿增益取平滑后响应的相反数:Gain(f) = −S(f)。为可靠性考虑,施加以下约束:

  • 30 Hz 以下与 16 kHz 以上视为不可靠频段,校准增益归零;
  • 增益限幅在 ±10 dB 以内,避免极端 EQ 造成过载;
  • 低频专业设备频率(20/31/45/63/80 Hz)在报告中特别标注,提示设备不支持时应保持 0 校准。

2.2 哈曼目标曲线

「最佳听感优化」模式在平直校准基础上叠加心理声学目标偏移(Harman Target 风格):低频提升约 +1 dB,中高频部分频段轻微提升,4 kHz 附近 −0.5 dB 柔化齿音,10 kHz 附近 +1 dB 增加空气感。该模式仅适用于音乐欣赏场景,不适用于音乐制作。

2.3 质量评分

系统输出 0~100% 的「录音质量可信度」,综合以下指标:

  • 削波比例:扫频段样本绝对值超过 0.98 的比例,超过一定量显著扣分;
  • 信噪比:扫频段 RMS 与段间静音底噪的差值,低于 5 dB 时开始扣分;
  • 一致性:三段扫频在 100 Hz~8 kHz 之间响应的平均标准差,标准差越小越好;
  • 信号电平:扫频段 RMS 过低说明增益不足或距离过远,同样扣分。

第三章 工具链

3.1 实时频谱分析(RTA)

4096 点 FFT,20 Hz~20 kHz 对数横轴,叠加 3 dB/oct 高频倾斜补偿以获得视觉平坦的「响度感知」曲线。支持线状与 1/3 倍频程柱状两种视图,并带有 60 秒瀑布图(频谱历史)与峰值音名检测。

3.2 混响时间检测(RT60)

拍手法:监测瞬态峰值(阈值 −30 dBFS),触发后录制 2 秒衰减曲线,采用 T20 测量法——从峰值回落 5 dB 到回落 25 dB 的时间差 ×3 即 RT60。底噪由触发前滚动缓存估计,结果附带质量评估与声学处理建议。

3.3 房间模态计算器(CALC)

矩形房间驻波模态频率:f = (c/2)·√((p/L)² + (q/W)² + (r/H)²),遍历阶数至 300 Hz。轴向(1.0)、切向(0.707)、斜向(0.5)权重不同;并考虑声源激励强度与听音位压力耦合(余弦因子乘积),输出「智能合并诊断报告」与 Schroeder 频率。

3.4 音调仪 / 延时 / 相位 / 通讯

  • 音调仪:自相关(ACF)音高检测,覆盖 C2~C6,钢琴卷帘可视化,偏差音分显示;
  • 延时:多声道距离→延时换算(343 m/s,48 kHz DSP 步进取整),附声场结象感知测试;
  • 相位:Chirp 同步 + 粉噪互相关提取脉冲响应,FFT 求幅度/相位/相干;
  • 声学通讯:16-FSK 音频调制解调,UTF-8 文本编码,支持 WAV 导出与实时解码。

第四章 部署层

4.1 测量环境约束

  • 接收端必须关闭蓝牙,使用手机主麦克风(底部开孔);
  • 播放端与接收端必须是两台独立设备,不得连接;
  • 播放端所有 EQ、音效、响度增强必须处于「原始/关闭」状态;
  • 测试时保持环境安静,请勿播放音乐;
  • 手机电量建议高于 20%(麦克风增益会随低电量漂移)。

4.2 校准部署方案

  • 音乐爱好者:在设备自带均衡器或音乐播放器中按数值校正;
  • 音频制作者:将校正参数以多段 EQ(Q 值约 3.7)挂于 DAW 总线或声卡总输出;
  • 校准文件:报告支持导出原始数据 JSON,供第三方工具与数据归档。

附录 A:算法伪代码

// 接收端分析主流程
samples ← 采集 38s 单声道 Float32 音频(48kHz)
triggerPos ← CrossCorrelate(samples[0..8s], 1kHz_Trigger)
for i in 0..2:
  seg ← samples[triggerPos + (1.5 + i·11.0)s : +10s]
  P_m[i] ← AvgPowerSpectrum(seg, 32768, Hann, 50% overlap)
P_r ← AvgPowerSpectrum(SynthSweep(10s))
resp ← 10·log10(P_m_avg / P_r)
smooth ← ThirdOctaveSmooth(resp, 20Hz..20kHz)
for f in ISO_FREQS:
  gain[f] ← clamp(−sampleAt(smooth, f), ±10dB)
  if f < 30 or f > 16000: gain[f] ← 0
score ← QualityScore(clipRatio, snr, consistency, level)
return { eq_bands, diagnostics }

— END OF DOCUMENT —