@ericedouard/vad-node-realtime

中文文档
0.2.0发布于 2025/04/17ISCTypeScriptCommonJS近 30 天下载 4447

节点的强大、方便用户的实时语音活动探测器( VAD)

中文使用文档
文档目录9 节
  1. 特征
  2. 安装
  3. 使用量
  4. 实时 VAD
  5. 非实时 VAD
  6. API 参考
  7. 实时VAD
  8. 实时VAD 选项
  9. 许可证

从 https://github.com/ricky0123/vad (英语) 它支持网络和反应。 它曾经支持节点,但并不是实时的. 这里基于节点和实时.

详情见项目之家.

特征

  • 实时和非实时语音活动检测
  • 以Silero VAD模式建造
  • 方便使用 API
  • 工程全线下线
  • 服务器环境的有效处理

安装

npm install @ericedouard/vad-node-realtime

使用量

实时 VAD

使用 RealTimeVAD 当您需要实时处理音频块时, 如接收客户端应用程序的音频 :

const { RealTimeVAD } = require('@eric-edouard/vad-node-realtime');

async function example() {
  // Create a new RealTimeVAD instance
  const vad = await RealTimeVAD.new({
    onSpeechStart: () => {
      console.log('Speech started');
    },
    onSpeechEnd: (audio) => {
      console.log('Speech ended, received audio of length:', audio.length);
      // Process the audio data here
    },
    // Optional: customize VAD parameters
    positiveSpeechThreshold: 0.6,
    negativeSpeechThreshold: 0.4,
    minSpeechFrames: 4,
  });

  // Start processing
  vad.start();

  // When you receive audio chunks from your source:
  function onAudioChunkReceived(audioChunk) {
    // Process each chunk of audio data
    // audioChunk should be a Float32Array with sample rate matching the sampleRate option (default: 16000Hz)
    await vad.processAudio(audioChunk);
  }

  // When you're done with the stream:
  await vad.flush(); // Process any remaining audio
  vad.destroy(); // Clean up resources
}

example();

非实时 VAD

用于处理整个音频文件或预录块 :

const { NonRealTimeVAD } = require('@eric-edouard/vad-node-realtime');

async function example() {
  const vad = await NonRealTimeVAD.new();
  
  // audioData is a Float32Array of audio samples
  // sampleRate is the sample rate of the audio
  for await (const { audio, start, end } of vad.run(audioData, sampleRate)) {
    console.log(`Speech detected from ${start}ms to ${end}ms`);
    // Process detected speech segment
  }
}

API 参考

实时VAD

  • RealTimeVAD.new(options): 创建新的 RealTimeVAD 实例
  • start(): 开始处理音频
  • pause(): 暂停音频处理
  • processAudio(audioData): 处理一整块音频数据
  • flush(): 处理任何剩余音频并触发最后回调
  • reset(): 重置 VAD 状态
  • destroy(): 清理资源

实时VAD 选项

  • sampleRate: 输入音频的样本率( 默认: 16,000, 不同样本率的输入会自动被重印)
  • onSpeechStart: 发言开始时召回
  • onSpeechEnd: 语音结束时使用音频数据调回
  • onVADMisfire: 检测到语音但太短时召回
  • onFrameProcessed: 每个框架处理后召回
  • positiveSpeechThreshold: 探测语音的阈值(0-1)
  • negativeSpeechThreshold: 探测沉默的阈值(0-1)
  • minSpeechFrames: 用作语音的最小框架数

许可证

公务员制度委员会

版本与发布记录

@ericedouard/vad-node-realtime 共发布 6 个版本,首次发布于 2025/04/14;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.2.0latest2025/04/171.6 年前
0.1.22025/04/141.6 年前
0.1.12025/04/141.6 年前
0.1.02025/04/141.6 年前
0.0.22025/04/141.6 年前
0.0.12025/04/141.6 年前

关于 @ericedouard/vad-node-realtime 的常见问题

@ericedouard/vad-node-realtime 是什么?

节点的强大、方便用户的实时语音活动探测器( VAD)

如何安装 @ericedouard/vad-node-realtime?

在项目目录运行 npm install @ericedouard/vad-node-realtime,或使用 pnpm add / yarn add / bun add。

@ericedouard/vad-node-realtime 支持 TypeScript 吗?

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

@ericedouard/vad-node-realtime 支持 ESM 还是 CommonJS?

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

@ericedouard/vad-node-realtime 可以商用吗?

@ericedouard/vad-node-realtime 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ericedouard/vad-node-realtime 的下载量有多少?

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

@ericedouard/vad-node-realtime 还在维护吗?

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