@audio/neural-runtime

中文文档
0.2.0发布于 2026/10/18MITTypeScriptES Module零依赖近 30 天下载 2168

模型推论适配器 — ONNX 运行时间(Node/wasm/webgpu) 位于一个工作准备界面后

中文使用文档
文档目录4 节
  1. 后端
  2. 缓存
  3. 工作
  4. API 密码

@ audio/ nural-runtime (英语)

一个推论适配器:装入ONNX模型,在节点或浏览器中运行,工作准备.

每个神经原子都需要相同的三件事——负载字节,通过一个模型运行变速器,释放会话——在两个不同的运行时间之上(onnxruntime-node 在服务器上, onnxruntime-web 在浏览器/工作/工作间。 这个包是一个适配器: asr, (中文(简体) ), align, (中文(简体) ), separate, (中文(简体) ), diarize, (中文(简体) ), tts, (中文(简体) ), denoise 以及车道上的其他东西 而不是每条接线ONNX 运行时本身.

npm install @audio/neural-runtime
import { load, tensor } from '@audio/neural-runtime'

let session = await load('https://example.com/model.onnx') // fetched, cached, progress-able
let out = await session.run({ input: tensor(new Float32Array(...), [1, 40, 1]) })
out.output.data   // Float32Array | Int32Array | BigInt64Array | Uint8Array | string[]
session.free()

load 接受 URL 字符串, Uint8Array,或 ArrayBuffer。 。 。 . tensor(data, dims, type?) 构建平原 { data, dims, type } ——呼叫时不导入 ORT;适配器将其转换为 ort.Tensor 懒惰地,在里面 run(),一旦后端解决.

后端

opts.backend运行时间环境
'auto' (默认)选择 'node' 在节点, 'wasm' 浏览器/ 工作/ 工作无论是
'node'onnxruntime-node只有节点
'wasm'onnxruntime-web/wasm仅浏览器/工人/工作
'webgpu'onnxruntime-web/webgpu在节点, onnxruntime-node'WebGPU' 提供者( 黎明)浏览器/工人/工作; 节点
'coreml'onnxruntime-node核心ML 提供者MacOS 上的节点
'webgl'onnxruntime-web/webgl仅浏览器/工人/工作

也没有 onnxruntime-node 也没有 onnxruntime-web (1.17或以后)是一种依赖性很强的依赖——两者都是可选的同龄人(peerDependenciesMeta.optional) (中文(简体) ). 每个后端的建筑都是文字 import(),一个捆绑器或像esm.sh这样的CDN解析器,在后端第一次被使用后被装入后被记住. 建筑的运行时间是包。 json的选择,而不是对环境的猜测: "imports": { "#ort": { "node": "./ort-node.js", "default": "./ort-web.js" } } 给节点( 和 Bun, Deno) onnxruntime-node 还有其他一切 onnxruntime-web,所以浏览器构建从未遇到过 onnxruntime-node,则a process 多填(sm.sh's, a bunder's)无法从节点路径下发一页. 请求后端, 您的环境无法运行('wasm' 在节点, 'node' 在浏览器中)立即抛出,命名所缺少的东西和它的工作地点;一个可解而未安装的软件包会抛出命名安装命令. backends() 报告哪些东西可以在这里使用: ['node'] 在节点中 'webgpu' 财务报告和审定财务报表 'coreml' 在那里,它的节点有它们, ['wasm'] 或者说 ['wasm', 'webgpu'] (当 navigator.gpu 给一个不倒置的适配器,而不是浏览器中的 SwiftShader .

run() 排队同步调用到每会话一个相继的链条上 – 无论基本的 ORT 是否容忍重叠 run() 打电话. free() 地图到 session.release(),是独能,和 run() 之后 free() 掷出.

inputs编号 :outputs 会议报告 { name, dims, type } 当安装的 ORT 版本曝光时 inputMetadata编号 :outputMetadata (自onnxruntime -- -- 常用增加形状/类型报告以来),其他 { name } 只是,从来没有猜到.

缓存

load(url, opts) 财务报告和审定财务报表 fetchModel(url, opts) (取取出原始的,也用于 fetchJson 默认的缓存( 默认)opts.cache = false 无法禁用 :

  • 节点数字 : ~/.cache/audiojs/neural/<sha256(url)>,以 $AUDIO_NEURAL_CACHE侧行车 .size 文件记录了预期的字节计数;不匹配(truncted或以其他方式被损坏的条目)被视为缓存错失并被重置.
  • 浏览器页:1 快取 API存储 'audio-neural',按 URL 键.
  • file:// URL直接从磁盘上读取(只有节点),绕过缓存——没有什么可以缓存的.
  • opts.progress?.({ loaded, total }) 字节到来时起火; total 实值 null 当服务器不发送时 Content-Length。 。 。 .
  • opts.fetch 覆盖环境 fetch (自定义客户端,认证头,测试中的模拟).

工作

onnxruntime-web 装入其 .wasm 二进制从它默认解决的 URL 相对于它自己的模块的二进制—— 一个分辨率 an AudioWorkletProcessor 不能这样做(没有相对的模块位置,没有) document) (中文(简体) ). 过 opts.wasmPaths (一个 URL 前缀字符串,或 { 'ort-wasm.wasm': url, ... } 地图)将它指向任何您正在服务 onnxruntime-web资产的地方;它成为 ort.env.wasm.wasmPaths 在会话创建前. opts.threads 套装 ort.env.wasm.numThreads (Shared ArrayBuffer + > 1 所需的跨原生隔离).

API 密码

导出
load(model, opts?)→ Promise<Session> —— 说 model: URL 字符串 QQ Uint8Array | ArrayBuffer
tensor(data, dims, type?)- 简单 Tensor· ; type 从 data省略时的构造器
backends()→ Promise<string[]> 可在这种环境中使用的后端
fetchModel(url, opts?)→ Promise<Uint8Array> ——随着进度被缓存获取
fetchJson(url, opts?)→ Promise<unknown> 相同的缓存/进度路径, JSON.parsed. 国家

Session数字 : { run(feeds, outputNames?) → Promise<Record<string, Tensor>>, inputs, outputs, backend, free() }。 。 。 .

load(model, opts) —— 说 opts数字 : { backend = 'auto', threads?, cache = true, progress?, fetch?, executionProviders?, graphOptimizationLevel?: 'all' | 'basic' | 'disabled', sessionOptions?, logLevel?, wasmPaths? }。 。 。 . sessionOptions 过任何其他 ort.InferenceSession 选项通过; { enableCpuMemArena: false, enableMemPattern: false } 每次运行后返回激活内存,而不是将其集合(Hybrid Transformer Demucs,onnxruntime-node 1.30中一个7.8 s段:峰值RSS 2.7 GB对3.2 GB).

不是因为:选择或运输一个模型——这个包件没有模型动物园,没有捆绑的重量,也没有对建筑的看法. neural-amp 而车道的其余部分则带来了车型.


部分 @ audio/ 神经病 车道。 这里的重量超出了范围——参见伞式README的重量许可政策,适用于任何船只预先训练的参数.

麻省理工学院 音频

版本与发布记录

@audio/neural-runtime 共发布 3 个版本,首次发布于 2026/09/29;过去 12 个月发布了 3 个版本。

版本发布日期距今
0.2.0latest2026/10/1820 天前
0.1.12026/10/1128 天前
0.1.02026/09/291 个月前

关于 @audio/neural-runtime 的常见问题

@audio/neural-runtime 是什么?

模型推论适配器 — ONNX 运行时间(Node/wasm/webgpu) 位于一个工作准备界面后

如何安装 @audio/neural-runtime?

在项目目录运行 npm install @audio/neural-runtime,或使用 pnpm add / yarn add / bun add。

@audio/neural-runtime 支持 TypeScript 吗?

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

@audio/neural-runtime 支持 ESM 还是 CommonJS?

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

@audio/neural-runtime 需要什么版本的 Node.js?

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

@audio/neural-runtime 可以商用吗?

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

@audio/neural-runtime 的下载量有多少?

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

@audio/neural-runtime 还在维护吗?

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