@desert-ant-labs/who

中文文档
4.3.0发布于 2026/11/06SEE LICENSE IN LICENSE.mdTypeScriptES Module近 30 天下载 7100

用于JavaScript的On-device扬声器diarization:谁在说话时,如per-speaker用时间戳转动. 在浏览器(WebAssembly + LiteRT.js)和服务器端(native)运行,从一个导入.

中文使用文档

@沙漠- ant- labs/ 谁

在浏览器和节点中运行的JavaScript的在线解说器的Diarization:作为讲解器用时间戳转动时,在一次传出音频时谁说话. 发言者按其先发言顺序排列,双语重排,任何长度的录音以5分钟为单位并配音. 音频留在本地.

两条共用一条 Who API : (英语)

  • @desert-ant-labs/who (默认):一个WebAssembly输油管 LitteRT.js (法语) 推论: 浏览器在CPU上。 (笑声) 在服务器侧渲染过程中安全导入; Who.load() 只在浏览器或 Web Worker 中运行推论.
  • @desert-ant-labs/who/native: 预建的本地核心, macOS上的核心ML和Linux上的LiteRT, for 服务器侧推论 在节点。 从服务器代码导入它 .
npm i @desert-ant-labs/who @litertjs/core   # browser
npm i @desert-ant-labs/who                  # Node, prebuilt native core
import { Who } from "@desert-ant-labs/who";

const who = await Who.load();                   // downloads the 32 MB model on first use
const result = await who.diarize(file);         // a File or Blob, the bytes of an audio file, or samples

result.speakerCount;                            // 3
for (const turn of result.turns) {
  turn.speaker;                                 // 0, 1, 2: numbered in order of first appearance
  turn.start;                                   // 12.4, seconds from the start
  turn.end;                                     // 15.9
}
result.keepingSpeakers({ minimumShare: 0.05 }); // without the speakers under 5% of the recording
who.dispose();

diarize 取一个音频文件的字节( r)File, (中文(简体) ), Blob, (中文(简体) ), ArrayBuffer, (中文(简体) ), Uint8Array单 Float32Array 16千赫的样品,或 { samples, sampleRate } 无论如何。 在浏览器中,一个文件被用Web Audio解码出,所以任何格式的浏览器都会玩出工作. 在节点中,可移植解码器读取WAV;先解码出其他格式:

import { Who } from "@desert-ant-labs/who/native";
import fs from "node:fs/promises";

const who = await Who.load();
const result = await who.diarize(await fs.readFile("call.wav"));

JSON.stringify(result) 存储对称并 Diarization.fromJSON 复还之. 创建一个 Who 并重新使用; dispose() 释放模型。 浏览器创建运行 CPU 上的图表; 通过 accelerator: "auto" 改为 Who.load 以尝试 WebGPU .

整个指南在 谁是文件。 。 。 .

许可证

沙漠蚂蚁实验室 源头可破坏许可证。为大多数免费提供 应用软件和商务许可证必须规模化。 完整的术语在链接. 许可证发放: 许可@ desertant.com。 。 。 .

SDK的第三方通知: THIRD_PARTY_NOTICES.md。 。 。 .

权重第三方通知: THIRD_PARTY_NOTICES.md。 。 。 .

版本与发布记录

@desert-ant-labs/who 共发布 6 个版本,首次发布于 2026/10/27;过去 12 个月发布了 6 个版本。

版本发布日期距今
4.3.0latest2026/11/066 天前
4.2.32026/10/3112 天前
4.2.22026/10/3112 天前
4.2.12026/10/2815 天前
4.2.02026/10/2716 天前
0.0.0-stage2026/10/2716 天前

关于 @desert-ant-labs/who 的常见问题

@desert-ant-labs/who 是什么?

用于JavaScript的On-device扬声器diarization:谁在说话时,如per-speaker用时间戳转动. 在浏览器(WebAssembly + LiteRT.js)和服务器端(native)运行,从一个导入.

如何安装 @desert-ant-labs/who?

在项目目录运行 npm install @desert-ant-labs/who,或使用 pnpm add / yarn add / bun add。

@desert-ant-labs/who 支持 TypeScript 吗?

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

@desert-ant-labs/who 支持 ESM 还是 CommonJS?

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

@desert-ant-labs/who 可以商用吗?

@desert-ant-labs/who 使用 SEE LICENSE IN LICENSE.md 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@desert-ant-labs/who 的下载量有多少?

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

@desert-ant-labs/who 还在维护吗?

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