@seastart/srtc-plugin-rnnoise
v0.1.0
Published
SRTC Web SDK RNNoise 降噪处理器插件
Readme
@seastart/srtc-plugin-rnnoise
基于 RNNoise(AudioWorklet + WASM)的 SRTC Web SDK 降噪处理器插件,实现 SDK 的 TrackProcessor 接口。
安装
npm i @seastart/srtc-web-sdk @seastart/srtc-plugin-rnnoise托管静态资源
插件依赖三个静态资源(位于本包 assets/ 目录):
rnnoise-runtime.jsrnnoise-processor.jsrnnoise-processor.wasm
⚠️
rnnoise-runtime.js内部通过document.currentScript.src定位同目录的 worklet 与 wasm,因此这三个文件必须放在同一目录,且通过basePath指向它。
把 node_modules/@seastart/srtc-plugin-rnnoise/assets/ 下三个文件拷到你的静态目录,例如:
cp node_modules/@seastart/srtc-plugin-rnnoise/assets/* public/rnnoise/Vite 用户也可在 vite.config 用 vite-plugin-static-copy 自动拷贝。
使用
import SRTC from "@seastart/srtc-web-sdk";
import { RnnoiseProcessor } from "@seastart/srtc-plugin-rnnoise";
const srtc = new SRTC();
const mic = srtc.createLocalMicTrack();
await mic.startCapture({ deviceId });
// 开启降噪(basePath 指向上一步托管资源的目录)
await mic.setProcessor(new RnnoiseProcessor({ basePath: "/rnnoise/" }));
await srtc.publishLocalTrack(mic);
// 关闭降噪,还原原始麦克风轨道
await mic.removeProcessor();选项
| 选项 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| basePath | string | "/" | 静态资源所在目录,需以 / 结尾 |
注意事项
- 仅支持音频轨道;用于视频轨道会抛错。
- 需在 HTTPS(或 localhost)环境下运行;
AudioContext可能需用户手势后才能resume。 - 采样率固定 48kHz。
- 切换设备(
changeDeviceId)或重新startCapture后,SDK 会自动重建处理器,无需再次setProcessor。
