# @fugood/whisper\.node 中文文档

规范地址：https://npmcn.com/package/%40fugood/whisper.node/

版本：1\.2\.0-rc\.2
npm 元数据更新时间：2026-11-09T06:13:38.276Z
中文译文更新时间：2026-11-15T16:20:33.352Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：10 MB，181 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=16\.0\.0
- 运行依赖：0 个
- 首次发布：2025-07-11T13:20:52.864Z
- 最新版本发布：2026-11-09T06:13:38.028Z
- 近 30 天下载量：35553（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：28（近 12 个月 20 个）

## 中文简介

另一个节点绑定了悄悄.cpp 尽可能用悄悄.rn 制作相同的API.

## 安装

```sh
npm install @fugood/whisper.node
```

也可以使用：`pnpm add @fugood/whisper.node`、`yarn add @fugood/whisper.node`、`bun add @fugood/whisper.node`

## README

# 低语. 节点

[![CI](https://github.com/mybigday/whisper.node/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/mybigday/whisper.node/actions/workflows/ci.yml) [![NPM Version](https://img.shields.io/npm/v/%40fugood%2Fwhisper.node)](https://www.npmjs.com/package/@fugood/whisper.node) ![NPM Downloads](https://img.shields.io/npm/dw/%40fugood%2Fwhisper.node)

另一个节点绑有: [低语. cpp](https://github.com/ggml-org/whisper.cpp) 将相同的 API 与 [低声说话](https://github.com/mybigday/whisper.rn) 尽可能多.

-   [低语. cpp](https://github.com/ggerganov/whisper.cpp): 具有多平台支持的自动语音识别
-   [低声说话](https://github.com/mybigday/whisper.rn): 反应原生装订低语. cpp

## 平台支持

-   马科斯
    -   arm64: CPU和金属GPU加速度
    -   x86 64: 仅限 CPU
-   视窗(x86 64和arm64)
    -   CPU 软件
    -   通过 Vulkan 的 GPU 加速
    -   通过CUDA的GPU加速(x86 64)
-   Linux (x86 64和arm64) (中文(简体) )
    -   CPU 软件
    -   通过 Vulkan 的 GPU 加速
    -   GPU 通过 CUDA 加速
    -   通过Qualcomm Hexagon(arm64 Snapdragon,实验性)来进行NPU加速
-   网页
    -   刚才
    -   可选 WebGPU 通过 `ggml-webgpu` wASM 软件包的构建 `GGML_WEBGPU=ON`

## 安装

```sh
npm install @fugood/whisper.node
```

## 使用量

### 基本译名

```js
import { initWhisper } from '@fugood/whisper.node'

const context = await initWhisper({
  model: 'path/to/ggml-base.en.bin',
  useGpu: true,
}, libVariant)

// transcribeFile returns { stop, promise }
const { stop: stop1, promise: promise1 } = context.transcribeFile('audio1.wav', {
  language: 'en',
  temperature: 0.0,
  // ...
})

const result1 = await promise1

// transcribeData also returns { stop, promise }
let audioBuffer // PCM 16-bit, mono, 16kHz
const { stop: stop2, promise: promise2 } = context.transcribeData(audioBuffer, {
  language: 'en',
  temperature: 0.0,
  // ...
})

const result2 = await promise2

// You can also cancel transcription if needed
// await stop1() // Cancels the first transcription
// await stop2() // Cancels the second transcription
//
// stop() interrupts the decode; the job's promise then resolves with
// `isAborted: true` and the segments decoded so far (it does not reject).
// Native failures reject the promise. The context stays usable afterwards.

// Always release the context when done
await context.release()
```

### NVIDIA PARAKEET TDT 维基百科

`ParakeetContext` 运行 NVIDIA 的 Parakeet TDT 0.6B v3 模型,通过 Parakeet API 包含在 sleep.cpp. v3模式支持英语外加其他24个欧洲语言.

下载 GGUF 模型 [ggml-org/parakeet-GGUF](https://huggingface.co/ggml-org/parakeet-GGUF) 在初始化上下文之前:

| 型号 | 大约大小 |
| --- | --: |
| `ggml-parakeet-tdt-0.6b-v3-q4_0.bin` | 356 甲基溴 |
| `ggml-parakeet-tdt-0.6b-v3-q4_k.bin` | 416 MB (英语) |
| `ggml-parakeet-tdt-0.6b-v3-q8_0.bin` | 669 甲基溴 |
| `ggml-parakeet-tdt-0.6b-v3-f16.bin` | 1.26 英国 |

```js
import { initParakeet } from '@fugood/whisper.node'

const parakeetContext = await initParakeet({
  filePath: 'path/to/ggml-parakeet-tdt-0.6b-v3-q4_0.bin',
  useGpu: true,
}, libVariant)

// transcribeFile / transcribeData return { stop, promise } like WhisperContext
const { stop, promise } = parakeetContext.transcribeFile('audio.wav', {
  maxThreads: 4,
})
const { result, segments, isAborted } = await promise

// Cancel an in-flight transcription when needed:
// await stop()

await parakeetContext.release()
```

`transcribeData()` 接受原始签名的 16- bit PCM 为 ArrayBuffer; 原始音频必须是单于 16 kHz 。 不支持、 使用 Whiper 特定选项( 语言、 即时、 回调) `maxThreads` 财务报告和审定财务报表 `audioCtx` 换句话说.

### 语音活动检测( VAD)

```js
import { initWhisperVad } from '@fugood/whisper.node'

// Speech model: whisper.cpp's ggml-silero-*.bin or a vad.cpp GGUF (Silero, FireRedVAD)
const vadContext = await initWhisperVad({
  filePath: 'path/to/ggml-silero-v6.2.0.bin',
  nThreads: 1, // Default: 1, best for the small per-hop graphs
}, libVariant)

// Offline detection: speech segments, t0/t1 in 10 ms units
const segments = await vadContext.detectSpeechFile('audio.wav')
const segments2 = await vadContext.detectSpeechData(audioBuffer, {
  threshold: 0.5,
  minSpeechDurationMs: 250,
  minSilenceDurationMs: 100,
  speechPadMs: 30,
})

// Stateful detection over live audio: the model state carries over between
// pushes, one speech probability per `hopSamples` (512 samples = 32 ms for Silero)
const stream = await vadContext.createStream()
const probs = await stream.push(pcmChunk) // any length
const lastProbs = await stream.flush() // end of audio
await stream.reset() // start a new audio stream
await stream.release()

await vadContext.release() // also frees its streams
```

**说明**:音频数据应为16位PCM,单相,16kHz格式. 库期望包含原始音频数据的ArrayBuffer.

VAD 运行 [维德.cpp](https://github.com/mybigday/vad.cpp),总是在CPU(`useGpu` 页:1 概率完全跟随官员Silero; `samplesOverlap` 被忽略和 `negThreshold` 已提供.

### 原生日志

```js
import {
  addNativeLogListener,
  isNativeLogEnabled,
  toggleNativeLog,
} from '@fugood/whisper.node'

const logs = addNativeLogListener((level, text) => {
  console.log(`[whisper ${level}] ${text}`)
})

await toggleNativeLog(true)
console.log(isNativeLogEnabled())

// ...

await toggleNativeLog(false)
logs.remove()
```

日志级别作为小写发布 `error`, (中文(简体) ), `warn`, (中文(简体) ), `info`,或 `debug` 字符串。 在Node.js和浏览器WASM架构中也有同样的帮助.

### 浏览器 WASM

浏览器软件包保持相同的基于承诺的软件包 `initWhisper`, (中文(简体) ), `initWhisperVad`,以及 `initParakeet` 进入点。 在浏览器中, `filePath` 实值 作为 URL 处理,模型会被带入 WASM 文件系统.

```js
import { initWhisper, initWhisperVad } from '@fugood/whisper.node'

const whisper = await initWhisper({
  filePath: 'https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin',
  maxModelBytes: 1536 * 1024 * 1024,
  useGpu: false,
})

const { promise } = whisper.transcribeFile('https://raw.githubusercontent.com/ggml-org/whisper.cpp/master/samples/jfk.wav', {
  language: 'en',
  temperature: 0,
})

console.log(await promise)
await whisper.release()

const vad = await initWhisperVad({
  filePath: 'https://huggingface.co/ggml-org/whisper-vad/resolve/main/ggml-silero-v6.2.0.bin',
  useGpu: false,
})
console.log(await vad.detectSpeechFile('https://raw.githubusercontent.com/ggml-org/whisper.cpp/master/samples/jfk.wav'))
await vad.release()
```

浏览器包上同时装有单行道和接线道WASM文物. 打开 跨原生相隔页`Cross-Origin-Opener-Policy: same-origin` 财务报告和审定财务报表 `Cross-Origin-Embedder-Policy: require-corp`,加载器使用线程 工艺品 `SharedArrayBuffer`; 否则它会回到单行道 文物自动。 超大小的模型下载在装入前失败 (音乐) Firefox默认上限为256 MiB;其他浏览器默认为75% 已配置的 WASM 最大内存 。 过 `maxModelBytes` 当你知道 目标浏览器可以分配模型. 低声转录默认为8 在有线程时基于浏览器硬件的线程; 通过 `maxThreads` 以覆盖它。 浏览器 WASM 夹 `maxThreads` 至编译本 池限为8或单行道倒置后1. 浏览器页面运行模型 在专门的模块工作人员中加载、复制、基准和 VAD 默认, 因此 UI 线程可以继续渲染 。 使用主线 `whisper.node` 软件包 浏览器代码中的条目点 :

```js
import { configureWasm, initWhisper } from '@fugood/whisper.node'
```

使用 `configureWasm({ worker: false })` 只有在你明确需要时 线上运行时间, `configureWasm({ threads: false })` 迫使 单行道文物,或通过 `workerPath`, (中文(简体) ), `jsPath`,以及 `wasmPath` 何时 服务自定义 URL 的软件包文件。 年长者 `workerUrl` 财务报告和审定财务报表 `runtimeScriptUrl` 选项名称仍然有效。 型号 下载默认在浏览器缓存中被缓存. 过 `cacheModel: false` 使连续的缓存失效, `modelCacheName` 要隔离 缓存命名空间,或 `modelCacheKey` 当获取 URL 是代理或签名时 URL但应该重新使用相同的缓存模型.

以 :

```sh
npm run build-wasm
```

或者用徽章多克的图像构建 :

```sh
npm run build-wasm-docker
```

`npm run build-wasm` 启用 `GGML_WEBGPU=ON` 默认并发出 `wasm/whisper-node.js`, (中文(简体) ), `wasm/whisper-node.wasm`, (中文(简体) ), `wasm/whisper-node.threads.js`,以及 `wasm/whisper-node.threads.wasm`启用 `bash scripts/build-wasm.sh --no-webgpu` 用于只用于CPU WASM构建,或 `--no-threads` 编号 : `--threads` 只构建一个 CPU 线程变体。 过 `--single-file` 仅在您想要将 WASM 二进制嵌入到每个生成中时 联合来文文件。 现代标志在主要联署材料中嵌入了线条工人的靴子 文件,所以一个单独的 `whisper-node.worker.js` 无法预料。 浏览器 包件还装有自己的模块 `worker.js` 非阻塞模型负载的包装 和推论. `npm run build-wasm-docker` 用途 `emscripten/emsdk:4.0.14-arm64` 在 arm64 主机,如 Apple 硅Macs,以及 `emscripten/emsdk:4.0.13` 打开 amd64 主持人. 覆盖 `EMSCRIPTEN_IMAGE` 或者说 `EMSCRIPTEN_PLATFORM` 何时 需要帮助。 建筑后有本地烟页:

```sh
node examples/wasm/server.mjs
```

在WASM包, `useGpu: true` 启用WebGPU进行低声转录 当浏览器支持时 `navigator.gpu`VAD总是运行在CPU上 (vad.cpp)自己的内核,有WASM SIMD.

## 自由选项

-   [x] `default`: 一般使用, 不支持 GPU, 只支持 macOS (Metal)
-   [x] `vulkan`: 支持 GPU Vulkan( Windows/ Linux),但有些情景可能不稳定
-   [x] `cuda`: 支持GPU CUDA( Windows/Linux),但仅限于能力有限
    
    > Linux:(x86 64: 8.9, arm64: 8.7) (中文(简体) ) 视窗: x86 64-12.0
    
-   \[x\] (中文(简体) ) `snapdragon`: Qualcomm Snapdragon Hexagon NPU通过ggml-六边形(Linux arm64). 月台套装中的HTP skels飞船 `ADSP_LIBRARY_PATH` 自动设置; `GGML_HEXAGON_NDEV` 默认为 16

### Snapdragon (六边形 NPU) 基准

过 `'snapdragon'` 作为 `libVariant` 参数(例如:. `initWhisper({ model, useGpu: true }, 'snapdragon')`) (中文(简体) ). 微声模型运行在"六角NPU"上,闪出注意力总是在.

Qualcomm IQ-9075基准(HTP= `snapdragon` 变体,CPU = `default` 变体 :

| 型号 | HTP 编码 | CPU 编码 | HTP 解码 | CPU 解码 | HTP 转录 | CPU 转录 |
| --- | --: | --: | --: | --: | --: | --: |
| 细小的.en | 95分钟 | 361分钟 | 6.7 毫秒 | 3.4个毫秒 | 316分钟 | 524分钟 |
| 基础 | 143分钟 | 787分钟 | 6.3 ms (英语) | 5.5毫秒(每分钟) | 430分钟 | 846分钟 |
| 基数- q8 0 | 154分钟 | 557分钟 | 6.9个毫秒 | 4.2 毫秒(秒) | 397分钟 | 582分钟 |
| 小数 | 360分钟 | 2824分钟 | 16.3 毫秒(秒) | 14.0 分钟 | 915分钟 | 2789分钟 |
| distil- small.en-q8 0 (英语) | 320分钟 | 1743分钟 | 5.3 分钟 | 4.8 毫秒( 秒) | 510分钟 | 1530分钟 |
| 介质 | 812分钟 | 8799分钟 | 35.1毫秒 | 38.3 毫秒(秒) | 1915分钟 | 8006分钟 |
| 大v3-涡轮-q8 0 | 2479分钟 | 9400毫秒( 分钟) | 9.8 毫秒(秒) | 8.2毫秒(每分钟) | 2838分钟 | 7616分钟 |

Android上也有同样的后端 [低声说话](https://github.com/mybigday/whisper.rn#hexagon-npu-experimental)。 。 。 .

## 许可证

麻省理工学院

* * *

[![](https://avatars.githubusercontent.com/u/17320237?s=200&v=4)](https://bricks.tools/)

建造和维护 [金砖](https://bricks.tools/)。 。 。 .

## 常见问题

### @fugood/whisper\.node 是什么？

另一个节点绑定了悄悄\.cpp 尽可能用悄悄\.rn 制作相同的API\.

### 如何安装 @fugood/whisper\.node？

在项目目录运行 npm install @fugood/whisper\.node，或使用 pnpm add / yarn add / bun add。

### @fugood/whisper\.node 支持 TypeScript 吗？

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

### @fugood/whisper\.node 支持 ESM 还是 CommonJS？

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

### @fugood/whisper\.node 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=16\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @fugood/whisper\.node 可以商用吗？

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

### @fugood/whisper\.node 的下载量有多少？

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

### @fugood/whisper\.node 还在维护吗？

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

