技术2026-06-28

Whisper 在线不上传:浏览器跑 Whisper 完全指南

约 8 分钟阅读 · 适合好奇技术细节和想自建工具的人

OpenAI 的 Whisper 是目前最主流的开源语音识别模型,但它"在线用 = 上传到 OpenAI 服务器"几乎是所有人的默认印象。事实是:你可以"在线"使用 Whisper,同时"不上传"任何音频。本文把这个套路讲清楚。

"在线"和"上传"是两件事

大家把这两件事混为一谈了:

  • 在线:你访问的是一个网页 / 在线服务。
  • 上传:你的音频数据被发到服务器处理。

这两个完全可以解耦。一个网页可以"在线提供",但它的处理逻辑全跑在你浏览器内——这就是浏览器端 AI 的核心思路。Talk2Text 走的就是这条路。

原理:浏览器怎么跑 Whisper?

三个关键拼图:

1. transformers.js

Hugging Face 出品的 JavaScript 库,把 Python 版 transformers 的能力搬到浏览器。支持 Whisper 等多种模型。

2. WebGPU / WASM

WebGPU 让浏览器直接调用 GPU 做矩阵运算,性能接近原生。不支持 WebGPU 的浏览器退化到 WASM(慢但能用)。

3. SharedArrayBuffer + COOP/COEP

Whisper 推理需要多线程共享内存,浏览器要求页面设置特定的跨域隔离头才能开启 SharedArrayBuffer。这就是为什么 Talk2Text 的服务器会返回 Cross-Origin-Opener-Policy: same-originCross-Origin-Embedder-Policy: credentialless

这三件齐全后,流程是这样的:

  1. 用户访问页面 → 浏览器从 CDN 下载 Whisper 模型权重(首次几十到几百 MB)。
  2. 模型缓存到 IndexedDB,下次访问无需重新下载。
  3. 用户加载音频 → 浏览器解码 → 喂给模型。
  4. 模型在浏览器进程内推理 → 输出文本和时间戳。
  5. 文本可选导出为 SRT / VTT / TXT。

整个推理过程不发出任何携带音频数据的网络请求。这就是"Whisper 在线不上传"的技术底。

能跑哪些 Whisper 模型?

模型大小适合性能(M2 笔记本)
tiny~40MB速记、长音频初稿10x 实时
base~140MB日常转写5x 实时
small~460MB精度与速度平衡2x 实时
medium~1.5GB需要较高精度0.7x 实时
large~3GB最高精度0.3x 实时

对绝大多数普通话清晰录音场景,base 到 small 是甜点区。

性能参考

以 1 小时清晰中文录音、small 模型为例:

  • Apple M2 / M3:3-5 分钟
  • Intel i7 + RTX 3060:4-6 分钟
  • Intel i7 集显:10-15 分钟
  • 中端安卓手机:20-30 分钟

第一次启动有模型加载时间(取决于网速),之后从缓存加载只需几秒。

实操:用 Talk2Text 跑一遍

  1. 用 Chrome / Edge / Safari(较新版本)打开 Talk2Text 首页
  2. 第一次会下载模型并缓存,请耐心等待。
  3. 拖入或选择音频文件(支持 MP3、WAV、OGG、FLAC、M4A、WEBM)。
  4. 选择语言(中文 / 英文 / 中英混合等),点开始。
  5. 进度条显示推理进度。
  6. 完成 → 在编辑器里校对 → 导出 SRT / VTT / TXT。

想验证"真的没上传"?打开浏览器 F12 → Network 面板 → 加载音频开始转写 → 你会看到转写阶段没有任何携带音频字节的请求

想体验浏览器跑 Whisper 不上传?

Talk2Text 已经把这套技术封装成可用的产品,免装、免注册、免费。

立即试用

适合谁、不适合谁

适合

  • 不想装 Python、CUDA、ffmpeg 等环境的非技术用户。
  • 需要跨设备一致体验(公司电脑、家里 Mac、手机)。
  • 处理敏感录音,要求"不出域"。
  • 想快速验证"这段录音转写效果如何"。

不适合

  • 需要批量处理几百上千条音频——浏览器不是为批处理设计的。
  • 追求极致性能——原生 Whisper.cpp / faster-whisper 更快。
  • 需要实时转录(边说边出)——目前 Talk2Text 定位文件转录。
  • 需要说话人分离(diarization)——路线图功能。

常见疑问 FAQ

浏览器跑 Whisper 准确率和云端 API 比怎么样?

模型一样的话,准确率理论上等价。差距主要来自模型大小——浏览器通常跑 small/medium,云端跑 large-v3。small 在普通话清晰录音上已经接近 large 的 90% 水准。

WebGPU 浏览器支持怎样?

Chrome 113+、Edge 113+ 默认支持;Safari 17+ 逐步支持;Firefox 较慢。不支持时退化到 WASM,速度慢但仍可用。

第一次加载模型那么大,手机流量吃不消?

建议第一次在 WiFi 环境下加载,之后模型缓存在浏览器,断网也能用。

我能自己部署一个 Talk2Text 吗?

核心是 transformers.js + WebGPU + 正确的 COOP/COEP 头。可以参考 Hugging Face 的 transformers.js 示例自己搭。如果你只想要"能用",直接用我们部署好的即可。

模型会自动更新吗?

模型版本由部署方控制,通常会在 Whisper 有显著升级时(如 large-v4 发布)更新缓存策略。

用 Talk2Text 算不算"用了 OpenAI"?

Whisper 是 OpenAI 开源的模型权重,但你用 Talk2Text 时不调用 OpenAI 任何 API,不产生 OpenAI 计费,也不发送任何数据给 OpenAI。

结论

"Whisper 在线不上传"不是噱头,是 2024 年后浏览器 AI 能力到位后的真实选项。它把"使用门槛"压到接近零(打开网页就用),同时把"隐私边界"守得很死(音频不出设备)。

如果你是开发者,可以基于 transformers.js 自建;如果你是普通用户,直接用 Talk2Text 就行