# @fluidinference/fluidvad 中文文档

规范地址：https://npmcn.com/package/%40fluidinference/fluidvad/

版本：0\.2\.0
npm 元数据更新时间：2026-07-16T07:01:33.050Z
中文译文更新时间：2026-11-15T02:00:56.657Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40fluidinference/fluidvad
原文对照：https://npmcn.com/package/%40fluidinference/fluidvad/?lang=original
项目主页：https://github.com/FluidInference/FluidVad#readme
源码仓库：https://github.com/FluidInference/FluidVad

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：5.6 MB，14 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-07-16T06:35:59.337Z
- 最新版本发布：2026-07-16T07:01:32.890Z
- 近 30 天下载量：29491（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

Silero VAD(v6)编译为WebAssembly-模型捆绑,零配置,不进行运行时间下载. 浏览器+节点.

## 安装

```sh
npm install @fluidinference/fluidvad
```

也可以使用：`pnpm add @fluidinference/fluidvad`、`yarn add @fluidinference/fluidvad`、`bun add @fluidinference/fluidvad`

## README

# 流体视窗

**Npm的语音活性检测——Silero VAD(v6)编译为WebAssembly. 模型被捆绑,零配置,没有运行时间下载.** 在浏览器中工作, 节点,和MacOS和Windows上的Electron(两个进程).

-   **没有本地模块** 纯洁的原声。 没什么 `electron-rebuild`,没有 每条存档的预建, 没有 onnxruntime对等依赖, 没有额外的二进制签名 .
-   **模型嵌入** - 1.3 MB Silero v6 16克赫兹图船 `.wasm` (5.3 MB 生用,2.3 MB gzipped total). `npm install` 离开;无 运行时取出, 完全下线 .
-   **流出 + 离线** —— 说 `SpeechStart`编号 :`SpeechEnd` 有歇斯底里症的事件, 或全缓冲分化。 ~150×实时;一个32ms帧成本很好 在一毫秒内.

```bash
npm i @fluidinference/fluidvad
```

## 麦克风(浏览器/电子渲染器)

```js
import { MicVad } from "@fluidinference/fluidvad/mic";

const mic = new MicVad({
  onSpeechStart: (t) => console.log("speech started", t),
  onSpeechEnd: (audio, start, end) => {
    // audio: Float32Array, 16 kHz mono, whole utterance incl. pre-roll
    console.log(`utterance ${start.toFixed(2)}s → ${end.toFixed(2)}s`);
  },
});
await mic.start();
```

## 缓冲器(节点/ 电子主/ 浏览器)

```js
import { createVad } from "@fluidinference/fluidvad";

const vad = await createVad({ threshold: 0.5 });

// streaming: push any chunk size, get boundary events
const events = vad.push(samples); // Float32Array, 16 kHz mono
// [{ isStart: true, sampleIndex: 15872, timeSeconds: 0.99 }, ...]

// offline: segment a whole buffer
const segments = vad.segment(samples);
// [{ startTime: 0.9, endTime: 4.21 }, ...]
```

输入总是 **16克赫兹单f32** 内 `[-1, 1]`。模型会消耗 512个样品框架(32毫秒); `push` 内部缓冲部分帧.

## 电子

可运行的示例 [`examples/electron`](https://npmcn.com/package/%40fluidinference/fluidvad/examples/electron) (微型UI+) 无头烟模式,CI测试在macOS和Windows上.

-   **主/ 预装( Node env) :** `createVad()` 工作状态; 被读取 从磁盘(sar-透明)中.
-   **渲染器为 `contextIsolation`数字 :** 渲染器无法 `fetch()` `file://` URL,所以将预装的被子字节递过来:

```js
// preload.cjs
const wasmPath = require.resolve("@fluidinference/fluidvad/dist/fluidvad_bg.wasm");
contextBridge.exposeInMainWorld("fluidvad", { wasmBytes: new Uint8Array(fs.readFileSync(wasmPath)) });

// renderer
const mic = new MicVad({ load: { wasm: window.fluidvad.wasmBytes }, onSpeechEnd: ... });
```

-   社区支助方案:增加 `'wasm-unsafe-eval'` 改为 `script-src` (编成没有使联署材料成为可能) `eval`) (中文(简体) ).
-   macOS 麦克风: 呼叫 `systemPreferences.askForMediaAccess("microphone")` 从主和 设定 `NSMicrophoneUsageDescription` 包装时.

## 配置

| 选项 | 默认 | 含义 |
| --- | --- | --- |
| `threshold` | 0.5 (韩语) | 输入阈值(框架是语音值 ) |
| `negativeThreshold` | `threshold - 0.15` | 出口门槛(歇斯底里) |
| `minSpeechDuration` | 0.15 s (韩语) | 丢入较短的语音运行 |
| `minSilenceDuration` | 0.75 s (简体中文) | 沉默需要关闭一段 |
| `maxSpeechDuration` | 14会 | 最佳静默时会分出较长的片段 |
| `speechPadding` | 0.1 s (中文(简体) ) | 堆放在每一段周围 |

## 发展

电磁场是用一个锈芯建造的`src/`)使用 [路径](https://github.com/sonos/tract) 用于CPU推论 – 任何地方都不许运行 .

上游 Silero ONNX 包含 `If` 其分支在级别上有分歧的节点—— 严格运行时间是不行的 我们烤 `sr = 16000` 作为常数,固定输入形状,并用 anxruntime的基本优化器,它消除了每个 `If` (单位:千美元)`scripts/prepare_model.py`, (中文(简体) ), **位点精确** (与上游). 结果是 预编为 NNEF(`examples/export_nnef.rs`)所以所运去的只是 携带道的轻量级装载器。 每方正比方为: 在试验中坚持(`tests/model_parity.rs`; 歇斯底里/分化 状态机器(从 [流体听觉](https://github.com/FluidInference/FluidAudio)(中文(简体) ) 用合成概率序列进行单位测试.

```bash
cargo test --release              # core + parity tests
./scripts/build_npm.sh            # build the npm package into npm/
python3 scripts/prepare_model.py  # regenerate model artifacts (needs onnx, onnxruntime)
cd examples/electron && npm i && FLUIDVAD_SMOKE=1 npx electron .   # headless check
```

## 许可证

麻省理工学院. 捆绑的Silero VAD型号是"Silero Team",麻省理工学院许可 (单位:千美元)[塞勒罗语NAME](https://npmcn.com/package/%40fluidinference/fluidvad/SILERO_LICENSE), (中文(简体) ), [蛇人4/西雷罗-瓦德](https://github.com/snakers4/silero-vad)) (中文(简体) ).

## 常见问题

### @fluidinference/fluidvad 是什么？

Silero VAD\(v6\)编译为WebAssembly-模型捆绑,零配置,不进行运行时间下载\. 浏览器\+节点\.

### 如何安装 @fluidinference/fluidvad？

在项目目录运行 npm install @fluidinference/fluidvad，或使用 pnpm add / yarn add / bun add。

### @fluidinference/fluidvad 支持 TypeScript 吗？

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

### @fluidinference/fluidvad 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @fluidinference/fluidvad 可以商用吗？

@fluidinference/fluidvad 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @fluidinference/fluidvad 的下载量有多少？

根据 npm 官方下载统计，@fluidinference/fluidvad 在 2026/10/15 – 2026/11/13 这 30 天内被下载 29,491 次，日均约 983 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @fluidinference/fluidvad 还在维护吗？

最新版本 0\.2\.0 发布于 2026/07/16（4 个月前）；至今共发布 2 个版本，其中过去 12 个月发布了 2 个；首次发布于 2026/07/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

