@ennuicastr/webrtcaec3.js

中文文档
0.3.0发布于 2024/01/02BSD-3-ClauseTypeScriptCommonJS零依赖近 30 天下载 3.5万

WebRTC的AEC3(声回声取消器, 第3版)端口库到WebAssembly/JavaScript

中文使用文档

这是WebRTC的 AEC3(声回声取消. 3) 的端口库 WebAssembly 和 JavaScript, 这样可以执行回声取消任意 而不是相信任何回声取消 getUserMedia 联合国 来.

由此衍生出来的Google WebRTC 执行程序在3 Clause 下 BSD 许可证,因此这个库的编译版本属于同一范围 执照 此库本身提供的少量胶质代码下方 所谓“0-clause BSD许可证”并不要求归属. 此外,WebRTC使用的图书馆组件也属于Apache 2许可.

API 密码

包含 webrtcaec3.js,或导入或要求将该库作为模块。 一旦 库已装入, WebRtcAec3 函数返回对一个 WebRtcAec3 模块实例。 与一个 WebRtcAec3 模块实例 AEC3, (中文(简体) ), AEC3.AEC3 是 AEC3 实例的构建器,使用三个参数: 样本率,以及渲染(输出)和捕获的通道数 (输入)溪流相分出. AEC3 库本身是同步的,所以如果你 需要同步, 在 WebWorker 中使用 .

综合起来:

const AEC3 = await WebRtcAec3();
const aec = new AEC3(sampleRate, outputChannels, inputChannels);

请注意,并非所有抽样率都会奏效。 事实上,大多数不会。 基本上,使用 48000。 。 。 .

AEC3实例揭示出三种方法: analyze, (中文(简体) ), processSize,以及 process启用 analyze 用于分析渲染(输出)数据:

aec.analyze(outputData /* Float32Array[] */);

使用 process 用于处理捕获(输入)数据,取消回声。 它存着 将数据处理成输出缓冲器,您必须提供。 你用得着 processSize 以获得输出缓冲器每个通道的必要大小.

const bufSz = aec.processSize(inputData);
const outBuf = [new Float32Array(bufSz)]; // one per channel
aec.process(outBuf, inputData /* Float32Array[] */);
... do something with outBuf ...

analyze, (中文(简体) ), processSize,以及 process 每个选择都使用可选“选项” 参数,特别是输入数据的样本率。 如果 输入数据的样本率与样本率不符 AEC3 实例已经创建,将重新被复制 .

关于每种方法的进一步文献,见类型文件.

版本与发布记录

@ennuicastr/webrtcaec3.js 共发布 6 个版本,首次发布于 2023/12/28;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.3.0latest2024/01/022 年前
0.2.12023/12/312 年前
0.2.02023/12/302 年前
0.1.22023/12/292 年前
0.1.12023/12/292 年前
0.1.02023/12/282 年前

关于 @ennuicastr/webrtcaec3.js 的常见问题

@ennuicastr/webrtcaec3.js 是什么?

WebRTC的AEC3(声回声取消器, 第3版)端口库到WebAssembly/JavaScript

如何安装 @ennuicastr/webrtcaec3.js?

在项目目录运行 npm install @ennuicastr/webrtcaec3.js,或使用 pnpm add / yarn add / bun add。

@ennuicastr/webrtcaec3.js 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ennuicastr/webrtcaec3.js 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@ennuicastr/webrtcaec3.js 可以商用吗?

@ennuicastr/webrtcaec3.js 使用 BSD-3-Clause 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括,不构成法律意见,请以许可原文为准。

@ennuicastr/webrtcaec3.js 的下载量有多少?

根据 npm 官方下载统计,@ennuicastr/webrtcaec3.js 在 2026/10/14 – 2026/11/12 这 30 天内被下载 34,641 次,日均约 1,155 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ennuicastr/webrtcaec3.js 还在维护吗?

最新版本 0.3.0 发布于 2024/01/02(2 年前);至今共发布 6 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/12/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。