@seastart/srtc-plugin-rnnoise 是基于 RNNoise(AudioWorklet + WebAssembly)的 AI 降噪插件,实现了 SDK 的 TrackProcessor 接口。相比浏览器原生的 noiseSuppression,RNNoise 对稳态与非稳态噪声(键盘声、风扇声、环境嘈杂等)抑制更强。
托管静态资源
插件依赖三个静态资源(位于包的 assets/ 目录):
rnnoise-runtime.js
rnnoise-processor.js
rnnoise-processor.wasm
rnnoise-runtime.js 内部通过 document.currentScript.src 定位同目录下的 worklet 与 wasm,因此这三个文件必须放在同一目录,并用 basePath 指向它。
把资源拷到你的静态目录,例如 public/rnnoise/:
Vite 项目也可用 vite-plugin-static-copy 在构建时自动拷贝。
关闭降噪,还原原始麦克风轨道:
与原生 noiseSuppression 的取舍
对低端设备或弱噪声场景,可继续使用 createLocalMicTrack 的原生 noiseSuppression;对噪声较强、对通话质量要求高的场景,使用本插件。
注意事项
- 仅支持音频轨道。
- 需在 HTTPS(或 localhost)环境运行;
AudioContext 可能需用户手势后才能 resume。
- 采样率固定 48kHz。
- 切换麦克风设备(
changeDeviceId)或重新 startCapture 后,降噪会自动恢复,无需重新调用 setProcessor。
- 可与其他处理器串联,详见音视频处理器。