@fugood/node-whiper-wasm (英语)
浏览器 WASM 执行软件包 @fugood/whisper.node应用
代码应导入 @fugood/whisper.node;这个包由主拖入
用于浏览器构建的软件包.
该软件包暴露了与原生软件包相同的高层次上下文 API
(单位:千美元)initWhisper, (中文(简体) ), initWhisperVad,以及 initParakeet),但模型和音频文件
路径作为 URL 获取并复制到 Emscripten 文件系统之前
推论.
import { initWhisper } from '@fugood/whisper.node'
const whisper = await initWhisper({
filePath: 'https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin',
useGpu: false,
})
const { promise } = whisper.transcribeFile('https://raw.githubusercontent.com/ggml-org/whisper.cpp/master/samples/jfk.wav', {
language: 'en',
})
console.log(await promise)
await whisper.release()
包裹同时装有单行道和接线道WASM等文物. 打开
横跨原生页面 SharedArrayBuffer,装载器使用
线粒体文物; 否则它会掉回单线粒体文物
自动。 基于 Whisper 转录默认最多 8 个线程
可用线程时浏览器硬件货币; 通过 maxThreads 改为
超过它。 浏览器 WASM 夹 maxThreads 至汇编的集合限额为8,
或单行道倒置中取一. 浏览器页面运行模型加载,
默认情况下,在专门的模块工人中进行转录、基准和 VAD
uI线程可以继续渲染. 使用主线 whisper.node 软件包条目
在浏览器代码中 :
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 , 但应该重新使用相同的缓存
型号。 设定 useGpu: true 仅使用软件包构建 GGML_WEBGPU=ON (单位:千美元)
显示的浏览器 navigator.gpu目前 VAD 返回到 CPU
浏览器软件包,因为Silero VAD图点击了不支持的WebGPU ops.
默认构建释放 wasm/whisper-node.js, (中文(简体) ), wasm/whisper-node.wasm, (中文(简体) ),
wasm/whisper-node.threads.js,以及 wasm/whisper-node.threads.wasm启用
bash scripts/build-wasm.sh --single-file 只有在您想要WASM 二进制时
嵌入每个生成的JS文件. 现代标记嵌入了线程
在JS主文件中的工人拖带, 所以一个单独的 whisper-node.worker.js 实值
非预期。 使 UI 工作脱离主线的软件包模块工作
实值 worker.js启用 npm run build-wasm-docker 通过多克建造; 它
在苹果硅主机上选择本地的 arm64 标记图像 .