FRCRN 开源模型 WebAssembly 浏览器端轻量化部署
在线会议背景噪声干扰严重,传统降噪软件往往需要安装庞大客户端。本文将介绍将阿里巴巴达摩院开源的 FRCRN 语音降噪模型,通过 WebAssembly 技术部署到浏览器端的方案,无需安装软件即可实现实时语音降噪。
1. 为什么选择 FRCRN 与 WebAssembly?
1.1 FRCRN:专为复杂噪声设计的降噪模型
FRCRN(Frequency-Recurrent Convolutional Recurrent Network)在频率域处理音频信号,结合卷积网络捕捉局部特征和循环网络关注长期依赖关系。该模型在单通道降噪任务上表现优异,能有效消除持续稳态噪声、突发性噪声及人声干扰,同时保持高保真度。
1.2 WebAssembly:让浏览器成为 AI 推理平台
WebAssembly(Wasm)是一种能在现代浏览器中运行的二进制指令格式,性能接近原生代码且具备安全沙箱特性。在浏览器运行 AI 模型的优势包括:
- 无需安装:用户打开网页授权麦克风即可使用。
- 数据隐私:音频数据在本地处理,不上传云端。
- 跨平台一致性:支持 Windows、macOS、Linux、Android、iOS。
- 实时性:优化后延迟可满足实时通话需求。
2. 环境准备与模型转换
2.1 开发环境搭建
基础要求:
- 现代浏览器(Chrome 90+、Firefox 89+、Safari 15+)
- Node.js 16+(用于构建工具链)
- Python 3.8+(用于模型转换脚本)
安装构建工具:
# 安装必要的 npm 包
npm install -g onnxruntime-web esbuild
# 创建项目目录
mkdir frcrn-wasm-demo
cd frcrn-wasm-demo
2.2 模型下载与格式转换
原始模型为 PyTorch 格式,需转换为 ONNX 格式以适配 Wasm。
步骤 1:下载原始模型
import torch
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
ans_pipeline = pipeline(
task=Tasks.acoustic_noise_suppression,
model='damo/speech_frcrn_ans_cirm_16k'
)
print("模型下载完成!")
步骤 2:转换为 ONNX 格式
import torch
import onnx
from modelscope.models import Model
model_dir =
model = Model.from_pretrained(model_dir)
model.()
dummy_input = torch.randn(, , , )
torch.onnx.export(
model, dummy_input, ,
input_names=[], output_names=[],
dynamic_axes={: {: }, : {: }},
opset_version=
)
()

