低音增强应使用BiquadFilterNode配置为lowshelf类型,设frequency=80–150Hz(如100Hz)、gain=+6~+15dB(如12dB),Q保持默认1;需配合GainNode衰减防削波,并可叠加highshelf或peaking滤波器优化听感。

使用 AudioContext 的 BiquadFilterNode 实现低音增强,核心是配置一个**低架滤波器(Low Shelf)**,它能提升指定截止频率以下的频段(如 100Hz 以下),同时保持中高频基本不变,从而让低频更饱满、有力度。
创建并连接低架滤波器节点
先获取音频上下文,创建 BiquadFilterNode,将其类型设为 "lowshelf",再设置关键参数:
-
frequency:设定“ shelf”的转折点,通常设为 80–150 Hz(例如
100),低于该频率的信号将被增强 -
gain:以分贝(dB)为单位,控制增强幅度(如
12表示 +12dB,即能量提升约 4 倍;+6~+15dB 较常用) -
Q:对低架滤波器影响较小,一般可保持默认值
1,无需调整
示例代码:
const audioCtx = new (window.AudioContext || window.webkitAudioContext)(); const filter = audioCtx.createBiquadFilter(); filter.type = 'lowshelf'; filter.frequency.value = 100; // 转折频率 filter.gain.value = 12; // 低频提升 +12dB // 后续将 filter 插入音频图(如 source → filter → destination)
注意频响曲线的实际表现
低架滤波器不是“只放大超低频”,而是从 frequency 开始向上平缓过渡,其增益在远低于转折点时达到最大,在远高于时趋近于 0dB。这意味着:
立即学习“前端免费学习笔记(深入)”;
- 设
frequency = 100Hz, gain = 12dB,则 30Hz 处接近 +12dB,1kHz 处已基本无提升(约 +1dB 或更小) - 若想加强极低频(如 20–40Hz),可适当降低
frequency(如 60Hz),但人耳对此频段敏感度低,过量提升易导致失真或嗡鸣 - 避免
gain > 15dB,尤其在未限制输出电平时,可能造成削波(clipping)
配合增益控制防止失真
低音增强后整体电平升高,容易使信号溢出 [-1, 1] 范围。建议在滤波器后加入 GainNode 做整体衰减补偿:
- 例如提升 +12dB 后,用
gainNode.gain.value = 0.25(≈ −12dB)抵消平均增益,再根据听感微调 - 更稳妥的做法是监听输出前加
ScriptProcessorNode(已弃用)或用AudioWorklet实时监测峰值,或简单使用ChannelMergerNode + AnalyserNode观察频谱变化
实际应用中的常见搭配
单纯低架滤波有时会让声音发闷。可组合使用提升清晰度:
- 在低架之后,再串接一个
highshelf(如frequency=8000, gain=3),轻微提亮高频,平衡听感 - 对节奏感强的音频(如鼓点),可尝试用
peaking滤波器在 60–80Hz 附近窄带提升(Q=2~4),强化底鼓冲击力 - 移动端需注意:部分 Android WebView 对
BiquadFilterNode的低频响应支持不一致,建议实测 50Hz 以下效果



















