Whisper Web 是 Xenova 开发的开源浏览器语音识别应用程序。它通过 Web Worker 中的 Transformers.js 运行 Whisper 系列模型,接受来自 URL、本地文件或麦克风的音频,并返回可导出为 TXT 或 JSON 的带时间戳的文本。该项目可作为客户端自动语音识别的紧凑演示,而不是作为维护的全功能转录服务。
维护状态很重要。主分支最后提交时间为 2024 年 6 月 10 日,并固定 @xenova/变形金刚 2.7.0。它的自述文件指向一个单独的实验性 WebGPU 分支;主应用程序主要遵循旧的 Worker/WASM 路径。当前的 Transformers.js 文档已转移到 v3 一代,并更直接地支持 WebGPU,因此开发人员应将此存储库视为可读的参考实现,而不是当前的框架启动器。

谁应该使用它,谁不应该使用它
| 用户或工作 | 适合 | 原因 |
|---|---|---|
| 前端或 ML 开发人员学习浏览器 ASR | 强 | React、Worker 和 Transformers.js 路径足够紧凑,足以进行端到端检查 |
| 个人转录简短的、非敏感的录音 | 合理 | 不需要帐户或服务器作业,但模型下载和浏览器内存仍然很重要 |
| 制作审核字幕的团队 | 有限公司 | 没有文字记录编辑器、SRT/VTT 导出、演讲者标签或协作审核 |
| 长格式批量转录服务 | 可怜 | 浏览器选项卡拥有内存和执行权;不存在队列、重试、持久性和可观察性 |
| 医疗、法律或监管音频 | 仅原型 | 本地推理可以帮助保护隐私,但未实现访问控制、保留、审计和人工验证 |
Whisper Web 最适合作为教育和原型设计表面。它演示了音频解码、模型加载、块回调、时间戳和导出如何在没有转录后端的情况下工作。这使得它对于私人实验、会议演示和目标硬件的首次可行性测试非常有用。它不是受支持的转录产品的直接替代品:它没有用户帐户、作业恢复、模型管理、审核日志、保留控制、更正界面或服务级别保证。
对于内部工具,决定谁将托管页面和模型权重、支持哪些浏览器以及用户如何从选项卡崩溃或缓存驱逐中恢复。对于公共产品,请添加有关麦克风使用、模型下载预期、错误报告以及音频和遥测传输位置的明确声明的同意。这些操作细节比演示是否可以转录一个干净的样本更重要。
该应用程序实际上做了什么
| 面积 | 实施 | 实际后果 |
|---|---|---|
| 推理 | Web Worker 中的 Transformers.js 自动语音识别管道 | 当浏览器执行推理时,UI 保持响应 |
| 音频准备 | 网络音频 API,重新采样至 16 kHz 并混合为单声道 | 浏览器编解码器支持决定哪些文件解码成功 |
| 长音频 | 30 秒的组块,5 秒的步幅; Distil-Whisper 使用 20/3 秒 | 重叠有助于连续性,但可能会引入重复或合并的短语 |
| 解码 | 使用时间戳和部分回调的贪婪解码 | 简单且易于检查,但它暴露了很少的解码控件 |
| 出口 | 纯文本或 JSON 时间戳块 | 无母语 SRT/VTT、说话者分类或转录编辑器 |
从文件或麦克风中选择的音频被解码并传递到浏览器内的模型。该应用程序在首次使用时仍会从 Hugging Face 下载模型权重,并且 URL 输入会导致浏览器获取该远程音频。因此,“本地推理”意味着语音到文本的计算是在客户端进行的;这并不意味着该页面发出零网络请求。
输入、模型和下载大小
| 当前 UI 中的选择 | 显示下载 | 最适合 |
|---|---|---|
| 耳语般微小,量子化 | 41MB | 最快的首次测试和较低内存的设备 |
| 基于耳语的、量化的 | 77MB | 适度的精度步骤,无需大量下载 |
| 耳语小,量化 | 249MB | 当内存允许时,本地转录能力更强 |
| 耳语媒介,量化 | 776MB | 在更强大的桌面硬件上进行更高容量的实验 |
| Whisper-tiny.en,非量化 | 152MB | 英语音频的保真度比下载大小更重要 |
| Whisper-base.en,非量化 | 291MB | 仅支持英语,需要额外的浏览器内存 |
| Distil-Whisper 选项 | 402 或 767 MB | 使用存储库的蒸馏检查点进行纯英语实验 |
多语言模式显示了一个长语言选择器,让用户选择源语言的转录或英语的翻译。 UI 不会公开自动语言选择、波束搜索、温度回退、词汇提示或分类。量化可以减少重量并通常提高可行性,但必须在预期音频上测试准确性和稳定性。

动手测试:速度与转录稳定性
我们于 2026 年 8 月 20 日在基于 Chromium 的桌面浏览器中运行了官方捆绑的 60 秒英语示例。这是单一环境检查,而不是标准化模型基准测试。网络缓存、CPU、浏览器、热状态和模型下载可以改变时序。
| 配置 | 观察完成情况 | 观察结果 |
|---|---|---|
量化多语言 Xenova/whisper-tiny (41MB) | 约27秒 | 速度很快,但后半部分产生了明显的重复短语和几个分段错误 |
非量化英语 Xenova/whisper-tiny.en (152MB) | 约36秒 | 实质上更加连贯和更好的分割,尽管它仍然包含个体识别错误 |
有用的结论并不是一种时间会在任何地方重现。就是最小的量化多语言设置应该被视为预览配置。对于英文材料,纯英文检查点可能值得大量下载。对于多语言、嘈杂或特定领域的录音,在选择默认值之前,至少要在代表性剪辑上比较tiny、base和small。

如何正确评估 Whisper Web
| 公制 | 如何测量 | 为什么这很重要 |
|---|---|---|
| 单词或字符错误率 | 与经过人工验证的参考转录本进行比较 | 总体准确率;对没有单词空间的语言使用字符错误率 |
| 命名实体和数字 | 分别对名称、产品、日期、价格和单位进行评分 | 小错误可能会使会议、法律或研究记录失效 |
| 幻觉率 | 包括沉默、音乐、掌声和低声片段 | Whisper 模型可以在语音较弱的情况下发出可信的文本 |
| 时间戳漂移 | 检查起点、中间和终点的边界 | 对于字幕和可查找的文字记录至关重要 |
| 实时因素 | 处理秒数除以音频秒数 | 将模型速度与主观等待时间分开 |
| 冷启动与热启动 | 与推理分开记录模型下载/加载 | 重复用户可能会看到非常不同的体验 |
| 内存和故障率 | 测试目标浏览器和长文件 | 崩溃的模型并不是可用的精度升级 |
推荐测试集
干净的单人发言──姓名+号码 吵杂的房间────────────声音重叠 手机音频──────────压缩+带宽 音乐/掌声────────沉默幻觉检查 长记录────────块连接+时间戳漂移 多语言剪辑────语言/任务正确性
- 为 20-30 个与真实用例匹配的短片创建经过人工验证的参考。
- 使用相同的浏览器、暖/冷状态和量化设置运行小型、基础和小型。
- 记录准确性、首次运行时间、热推理时间、峰值内存症状和故障。
- 与平均错误率分开审查专有名词、数字、重复和沉默片段。
- 测试 TXT 和 JSON 导出,然后确定下游字幕转换是否可接受。
浏览器、隐私和部署边界
| 边界 | 领养前要检查什么 |
|---|---|
| 浏览器兼容性 | 自述文件需要 Firefox Worker 标志;应用程序的错误处理程序会警告 M1/M2 上的 Safari 并建议使用 Chrome、Firefox 或 Edge |
| 跨源音频 | 远程URL加载取决于源服务器是否允许浏览器请求;普通的网页 URL 不一定是可用的音频 URL |
| 模型缓存 | 确认托管或私人浏览设备上的存储配额、缓存驱逐和重复下载 |
| 音频敏感 | 检查页面托管、模型交付、遥测和浏览器扩展——不仅仅是推理代码 |
| 自托管 | 固定依赖项、有意提供模型资产、添加安全标头并测试离线行为 |
| 许可 | 应用程序代码已获得 MIT 许可;模型检查点和提交的音频仍然有自己的条款和权利 |
存储库集 env.allowLocalModels = false,因此其库存构建期望远程模型交付而不是捆绑权重。私有或离线部署需要代码和托管更改。永远不要声称简单地克隆 UI 就可以创建一个气隙转录系统。
Whisper Web 与类似的开源工具对比
| 选项 | 选择它时 | 主要权衡 |
|---|---|---|
| Whisper Web 由 Xenova | 您想要一个带有 URL、文件、麦克风和时间戳导出的小型 React/Transformers.js 演示 | 主分支已过时,控制有限,没有原生字幕或二值化工作流程 |
| whisper.cpp WebAssembly 演示 | 您需要基于 C/C++ 的浏览器路径、显式本地模型加载和文件/麦克风支持 | 其记录的 WASM 示例是面向 CPU 的,仅限于小型模型,并且音频上限为 120 秒 |
| Whisper-WebUI | 您需要更丰富的自托管字幕界面、faster-whisper、更大的模型和后端/API选项 | 需要 Python/server 设置,并且不纯粹是客户端浏览器推断 |
| 当前 Transformers.js 自定义应用程序 | 您正在构建新的浏览器产品,并需要当前的 WebGPU、ONNX 和框架集成模式 | 您拥有完整的 UI、音频管道、模型生命周期、QA 和兼容性矩阵 |
| 本机 whisper.cpp 或 faster-whisper | 长文件、批处理、自动化或受控桌面/服务器性能都很重要 | 安装部署比打开网页还要重 |
Whisper Web 仍然很有价值,因为源代码紧凑且易于检查。它是比交钥匙生产更好的学习神器。对于新应用程序,根据现场演示进行原型设计,然后使用相同的私有评估集将当前的 Transformers.js 实现与本机或服务器端引擎进行比较。
生产清单
代表性音频+参考文本
↓
浏览器/模型/量化矩阵
↓
准确性·幻觉·时间·记忆
↓
本地浏览器──或──本机/服务器引擎
↓
保留·同意·导出·人工审查
- 确认目标是演示、私有本地工具还是受支持的产品。
- 固定存储库提交、Transformers.js 版本和确切的模型修订版。
- 对目标语言、口音、噪音、静音和文件持续时间进行基准测试。
- 将冷下载时间与热转录速度分开。
- 添加清晰的进度、取消、内存错误和不支持的浏览器处理。
- 决定 TXT/JSON 是否足够,或者添加 SRT/VTT,编辑和分类。
- 记录音频保留、模型托管、同意和删除。
- 当名称、数字、法律或医学意义很重要时,需要人工审核。
常见问题解答
Whisper Web 是否上传音频进行转录?
推理管道在浏览器 Worker 中运行。但是,页面会下载模型文件,URL 输入会将远程音频下载到浏览器中。在将其描述为完全离线之前,请检查已部署站点的托管和网络行为。
它支持实时麦克风转录吗?
它可以从麦克风录音并转录完成的录音。库存接口不是连续的低延迟流媒体字幕系统。
我应该从哪个型号开始?
仅使用量化微小来进行快速可行性检查。比较有代表性的音频中的tiny、base 和small。纯英语检查点对于英语语音来说可以更稳定,而其他语言和英语翻译则需要多语言检查点。
可以导出字幕吗?
不直接。当前 UI 导出 TXT 和时间戳 JSON。 SRT 或 VTT 需要转换步骤和时间戳审核。
WebGPU 版本是默认版本吗?
不会。存储库 README 将 WebGPU 链接为实验分支。当前 Transformers.js 文档支持 WebGPU,但此主要分支仍然依赖于较旧的 2.7。
是否积极维护?
主分支的最新提交时间为 2024 年 6 月 10 日,审核日期为 2026 年 8 月 20 日。演示仍在运行,但维护差距应包含在技术采用决策中。
来源审查
- Whisper Web GitHub 存储库
- Whisper Web 自述文件和 WebGPU 分支注释
- 音频输入、型号、大小、语言和任务
- Worker 推理、分块和解码实现
- 时间戳显示和 TXT/JSON 导出
- 官方直播Hugging Face空间
- 当前 Transformers.js WebGPU 指南
- whisper.cpp WebAssembly 示例
- Whisper-WebUI 存储库
独立审查和实际测试:2026 年 8 月 20 日。存储库状态、浏览器支持、模型文件和演示可用性可能会发生变化;在部署之前验证当前的源设备和目标设备。



