记一次用浏览器本地语音识别整理面试录音文字稿

前几天帮朋友整理一段面试录音,mp3 格式,四十来分钟。需求很简单:把语音变成文字稿,方便后续检索和归档。

这种任务以前我的做法是写个脚本调 API,但这次录音内容涉及面试细节,不太想传到第三方服务器上。找了一圈,最后在工具派上看到一个"音频转文字"工具,标注是浏览器本地跑 Whisper 模型,音频不上传服务器,正好符合要求。把过程记录一下。

先看实现方式

这个工具的技术栈是纯前端方案:React + Transformers.js,模型用的是 whisper-base 的 ONNX 版本,推理靠自托管的 onnxruntime wasm。也就是说整个识别过程是在我自己的浏览器里完成的,音频文件不出本机。这也是我选它的主要原因。

代价也明显:模型要在浏览器里加载,第一次用需要等模型下载和初始化,而且 base 是小模型,识别精度不能跟云端大模型比。后面的结果也印证了这一点。

踩坑:文件超限

录音原文件 39.1MB,直接上传被拦下了:

screenshot_01

页面提示限制 10MB(大约 10 分钟音频),浏览器端识别能力有限,建议压缩或裁剪。这个限制合理,wasm 环境里跑 Whisper 本来就吃内存,文件太大容易把标签页跑崩。

解决办法也简单,我用 ffmpeg 截了前 8 分钟存了一个小份:

ffmpeg -i input.mp3 -t 480 -acodec copy output.mp3

裁剪后 9.3MB 左右,低于限制。

正式转写

上传小份文件,识别语言选"中文(普通话/简体)",输出格式选"纯文本 TXT"(做字幕的话可以选 SRT 或 VTT),然后点"开始转文字":

screenshot_02

第一次点的时候按钮变成"AI 识别中...",同时提示模型加载约需 2-3 分钟。实际等了两分多钟,模型加载完自动开始识别,8 分钟的音频识别过程又花了两三分钟。第二次用就不用等模型了,会快不少。

识别结果与不足

结果直接在右侧展示,可以一键复制或下载 TXT:

screenshot_03

通读一遍,口语内容大体能看懂,面试的对话结构都识别出来了。但问题也很典型:

  • 专有名词识别不准。"SQL 注入"被识别成了"SoCo""收回预训"之类的音近词,英文术语基本靠猜
  • 语气词、断句比较碎,长句经常被切成短句
  • 多人对话没有说话人分离,谁说的话要自己对着录音标

这些其实是 whisper-base 这个小模型本身的局限,不是工具实现的问题。对精度要求高的场景(比如正式会议纪要),还是得上 large 模型或者云端服务。但对"快速把录音变成能搜索的文字"这种需求,本地小模型够用了,而且隐私性是最好的。

小结

整个过程没装任何软件,没起任何服务,浏览器里跑完。适合的场景:临时性的录音整理、对隐私敏感的内容、不想配环境的场合。不适合:长音频(10 分钟限制)、高精度要求、多人分离。

工具地址:https://gjupai.com/

posted @ 2026-08-20 14:43  工具派  阅读(2)  评论(0)    收藏  举报