OpenScreen 离线字幕怎么打包Whisper 模型预置全流程【免费下载链接】openscreenCreate stunning demos for free. Open-source, no subscriptions, no watermarks, and free for commercial use. An alternative to Screen Studio.项目地址: https://gitcode.com/GitHub_Trending/open/openscreen要交付一个自动字幕断网也能用的 OpenScreen 安装包前提是先把 Whisper 模型与 onnxruntime wasm 铺进resources/caption-assets/——打包后应用从file://协议加载页面运行时既连不到 HuggingFace也拉不到 CDN 上的 wasm。本文按预置 → 校验 → 出包三步把这条链路讲清。原理链路从协议判断到资源落位的一条单向流离线转写读取的资产不是散落的运行时按一条固定链路流动每一步都可查证渲染进程判断协议src/lib/captioning/transcribe.ts 检测到window.location.protocol file:即打包后的状态时置useLocalModels true并把window.electronAPI.assetBaseUrl一并传给 workerdev 的 http 环境不走本地资产。worker 配置环境变量src/lib/captioning/transcribe.worker.ts 在useLocalModels时把env.localModelPath指到caption-assets/models/、env.backends.onnx.wasm.wasmPaths指到caption-assets/ort/置env.allowRemoteModels false并固定numThreads 1——file://下拿不到 SharedArrayBuffer线程版 wasm 永远不会加载。主进程给出资源根electron/windows.ts 在打包后取process.resourcesPath以--asset-base-urlfile:// URL传给 preloadelectron/preload.ts 解析出assetBaseUrl暴露给渲染进程。打包资源落位electron-builder.json5 的extraResources把caption-assets/整个拷入打包后的 resources与运行时读取路径对齐。也就是说运行时只认resources/caption-assets/下的models/与ort/两个子目录缺任何一个里的文件离线转写都跑不起来。 动手前环境与依赖核对表脚本的失败来源只有两类依赖缺失、网络不可达。先核对三项再执行任何命令检查项要求缺失时的报错或后果node / npm 版本对齐 package.json 的enginesnode 22.22.1、npm 10.9.4依赖解析漂移脚本与构建行为不可预期xenova/transformers依赖node_modules/xenova/transformers/dist下的 wasm 文件存在Missing ... — is xenova/transformers installed? Run npm ci first.外网可达 HuggingFace构建机能访问huggingface.co重试耗尽后退出码 1依赖未装好时先补齐npm ci主线三步预置、校验、出包第一步·预置跑 fetch-caption-model 写入资产脚本幂等手动先跑一遍能把网络错误暴露在打包之前而不是卡进打包流程node scripts/fetch-caption-model.mjs副作用边界写入全部落在仓库根的caption-assets/该目录已被.gitignore忽略不进 git。从node_modules/xenova/transformers/dist只拷两个非线程版 wasmort-wasm.wasm、ort-wasm-simd.wasm到caption-assets/ort/线程版不加载省约 20MB。从Xenova/whisper-tiny下载 13 个文件到caption-assets/models/Xenova/whisper-tiny/11 个配置/分词元数据加 2 个量化 ONNX 权重。已存在的非空文件直接跳过重跑只补缺失部分。关键输出中间下载行截断Fetching caption assets → caption-assets/ ONNX Runtime wasm: copied ort/ort-wasm.wasm copied ort/ort-wasm-simd.wasm Whisper model (Xenova/whisper-tiny): ↓ models/Xenova/whisper-tiny/onnx/encoder_model_quantized.onnx (7.4 MB) ... Caption assets ready.可观察信号日志以Caption assets ready.收尾即视为预置完成。第二步·校验重跑即校验不需要单独的校验命令。再执行一次node scripts/fetch-caption-model.mjs每个已就位且非空的文件打印✓ cached 相对路径而不触发下载结尾仍是Caption assets ready.即代表ort/与models/Xenova/whisper-tiny/结构完整。若某行出现↓新下载说明该文件此前不完整重跑直到全部变成cached即可。第三步·出包beforePack 钩子与 extraResources 映射决定资产能否进安装包的是 electron-builder.json5 里两处配置beforePack: scripts/before-pack.cjsscripts/before-pack.cjs 在每次打包本地npm run build:*或 CI 的裸electron-builder前同步执行预置脚本资产已就位时这一步是 no-op。extraResources中{ from: caption-assets, to: caption-assets }一条负责把目录整体拷入 resources。按平台选打包命令输出统一落在release/${version}npm run build:mac # 先构建 ScreencaptureKit 录制助手再 electron-builder --mac npm run build:win # 先构建 Windows WGC 原生助手再 electron-builder --win npm run build:linux # tsc vite build electron-builder --linux AppImage deb pacmanbuild:mac与build:win把对应平台的原生录制助手构建编进了流程出包时不要单独拆掉这几步。报错速查依赖缺失、限流与重试现象原因处置Missing ... — is xenova/transformers installed? Run npm ci first.node_modules/xenova/transformers/dist下找不到 wasm执行npm ci后重跑脚本日志出现… HTTP 429, retry n/5 in Xs408/425/429/500/502/503/504 同理HuggingFace 限流CI 矩阵并行构建时常见或服务端瞬态错误脚本自动重试至多 6 次指数退避2s 起、上限 60s带Retry-After头时遵循其值fetch-caption-model failed: 错误信息退出码 1重试耗尽或遇到不可重试状态码稍后重跑幂等性保证只补未下完的部分网络/DNS 错误日志网络不可达与限流共用自动重试 退避机制网络恢复后重跑边界什么不生效、什么不能改本地资产只在file://打包后环境生效npm run dev的 http 环境走远程 CDNcaption-assets/不会被读取。模型固定为Xenova/whisper-tinyworker 中 pipeline 与模型 ID 写死为automatic-speech-recognitionXenova/whisper-tiny换模型需同步改脚本的MODEL_FILES与 worker 代码不在本脚本参数范围内。打包资产不含output_attentions修订版权重——该变体在某些环境会导致推理回退空 chunk、抛错worker 只使用默认 tiny 权重。caption-assets/不入 git每台构建机含 CI首次构建都需要外网访问 HuggingFace之后依赖幂等缓存。验收清单打包后逐条核对重跑node scripts/fetch-caption-model.mjs所有文件显示✓ cached以Caption assets ready.收尾。release/${version}/下生成对应平台安装包mac 为 dmg、win 为 nsis、linux 为 AppImage/deb/pacman。安装包内resources/caption-assets/下同时存在非空的models/与ort/两个子目录。断网启动安装包自动字幕仍能从本地加载模型与 wasm产出带时间戳的字幕片段。【免费下载链接】openscreenCreate stunning demos for free. Open-source, no subscriptions, no watermarks, and free for commercial use. An alternative to Screen Studio.项目地址: https://gitcode.com/GitHub_Trending/open/openscreen创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
如何用 Thaw 管理 macOS 菜单栏图标:被刘海藏起来的图标怎么找回来 如何用 Thaw 管理 macOS 菜单栏图标:被刘海藏起来的图标怎么找回来 【免费下载链接】Thaw The open source menu bar manager 项目地址: https://gitcode.com/gh_mirrors/thaw/Thaw
Thaw 是一款开源的 macOS 菜单栏管理器:它把菜单栏图标分成可见… · 2026/11/3 2:21:23
AutoHotkey自动化:3步搞定桌面文件整理 AutoHotkey自动化:3步搞定桌面文件整理 【免费下载链接】AutoHotkey AutoHotkey - macro-creation and automation-oriented scripting utility for Windows. 项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey
周五下午,一周的下载、截图… · 2026/11/3 2:20:23
仓库越大越乱?一家郑州五金批发商的“仓库翻身仗“ 一、凌晨一点,老板还在仓库里找一颗螺丝郑州某五金行业的老板,曾经有个外号叫"仓库里的夜猫子"。仓库两千平,货架一排接一排,五金工具、机电配件、紧固件加起来三万多个品项。客户一个电话要某个型号的轴承,… · 2026/11/3 2:47:27
内网安全第一道闸:为什么你的网络总被 “陌生人“ 混进来? 引言
做过网络 / 安全的都知道,内网失守往往不是防火墙没配好,而是门没看住—— 员工把个人手机、无线路由、不知名摄像头偷偷插进交换机,一台带病毒的工作站随意接入,双网卡电脑绕过隔离直连互联网…… 等你发现时,数… · 2026/11/3 2:47:27
FA_CNN卷积神经网络十九---模型选择、欠拟合与过拟合 FA:Formular and Algorithm,CNN:Convoluation Neural Network
1. 写在前面:为什么用多项式讲模型选择
在深度学习中,"模型选择"听起来抽象,但它的本质问题非常朴素:给定一份数据&… · 2026/11/3 2:47:27
经验丰富的汽车安装车载手机互联苹果Carplay和华为Hicar哪家专业 最近好几个朋友都问我,车子上想装个CarPlay或者HiCar,到底去哪里弄靠谱。说真的,我太懂这种纠结了。我自己那台车,当初就是冲着车机互联去的,结果在路边店装完,先是连不上,后来好不容易连上了&a… · 2026/11/3 2:47:27
GitLab 私有化部署太吃内存:只留仓库和合并请求 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:46:27
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18