Skip to main content

概述

@seastart/srtc-plugin-deepfilternet 是基于 DeepFilterNet(AudioWorklet + WebAssembly)的 AI 降噪插件,实现了 SDK 的 TrackProcessor 接口。相比 RNNoise 插件,DeepFilterNet 降噪质量更高,并支持运行时可调的降噪强度旁路开关;代价是计算量与资源体积更大。

安装


托管静态资源

插件依赖两个静态资源(wasm + 模型,合计约 18MB),需自托管:
  • v2/pkg/df_bg.wasm
  • v2/models/DeepFilterNet3_onnx.tar.gz
v2/pkgv2/models 这两层子目录是固定相对路径,拷贝时必须保留该目录结构,并用 assetBasePath 指向其根目录。
资源不随源码入库,安装后由包内脚本拉取,再拷到你的静态目录(保留 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+)。