概述
@seastart/srtc-plugin-deepfilternet 是基于 DeepFilterNet(AudioWorklet + WebAssembly)的 AI 降噪插件,实现了 SDK 的 TrackProcessor 接口。相比 RNNoise 插件,DeepFilterNet 降噪质量更高,并支持运行时可调的降噪强度与旁路开关;代价是计算量与资源体积更大。
安装
托管静态资源
插件依赖两个静态资源(wasm + 模型,合计约 18MB),需自托管:v2/pkg/df_bg.wasmv2/models/DeepFilterNet3_onnx.tar.gz
v2/ 结构):
Vite 项目也可用 vite-plugin-static-copy 在构建时自动拷贝。
使用
选项
运行时方法
与 RNNoise 插件的取舍
对降噪质量要求高、设备性能允许的场景,使用本插件;对低端设备或更看重轻量与低延迟的场景,使用 RNNoise 插件。
注意事项
- 仅支持音频轨道。
- 需在 HTTPS(或 localhost)环境运行;
AudioContext可能需用户手势后才能resume。 - 采样率固定 48kHz。
- 计算量高于 RNNoise,请在目标设备实测 CPU 占用与端到端延迟。
- 切换麦克风设备(
changeDeviceId)或重新startCapture后,降噪会自动恢复,无需重新调用setProcessor。 - 可与其他处理器串联,详见音视频处理器。
- 许可:DeepFilterNet 本体为 Apache-2.0/MIT;模型权重的授权请在分发前自行核实。
模型文件本身是 gzip。部分服务器/代理会对
.gz 再加 Content-Encoding: gzip,浏览器自动解压一次后,底层拿到的是未压缩的 .tar,初始化会崩溃(RuntimeError: unreachable)。插件已自动兜底:检测到被解压会在浏览器内重新 gzip 还原,无需改服务器配置。该能力依赖 CompressionStream(Chrome 80+ / Edge 80+ / Safari 16.4+ / Firefox 113+)。