AudioBuff

转录原理指南

详解 Whisper、本地端处理、模型选择、WebGPU 与语言选择。

目录

Whisper 是什么

Whisper 是 OpenAI 于 2022 年发布的自动语音识别(ASR)模型。初代 Whisper 使用 68 万小时的多语言音频进行训练,而 2023 年发布的 large-v3 将训练数据扩展至约 500 万小时:100 万小时弱标注音频,加上用 large-v2 伪标注的 400 万小时音频。它被设计为一个"通用语音理解模型",可用单一模型处理 99 种语言的识别、翻译和时间戳标注。AudioBuff 采用的 large-v3-turbo 继承了这一 v3 系列的训练权重。

架构上采用 Transformer 编码器-解码器结构:输入音频被转换为 80 维 log-Mel 频谱图后送入编码器,解码器依次生成文本 token。Whisper 官方发布了 tiny(3900 万参数)、base(7400 万)、small(2.44 亿)、medium(7.69 亿)、large(15.5 亿)共 5 种规格,此外还有推理更快的 large-v3-turbo(8.09 亿参数,解码器层数从 32 层减少到 4 层)。

AudioBuff 的标准模型采用 whisper-small(2.44 亿参数),高质量模型采用 whisper-large-v3-turbo(8.09 亿参数)。之所以不选用 tiny/base 作为标准模型,是因为它们对日语汉字、片假名的识别错误率在实际使用中过高。

为什么能在浏览器中运行

传统上 Whisper 通常通过 Python + PyTorch 运行,而 AudioBuff 结合了 @huggingface/transformers(原 transformers.js)与 ONNX Runtime Web,将全部推理都在浏览器内的 Web Worker 中执行,完全不会向服务器发送音频。

模型文件仅在首次使用时从 Hugging Face Hub 获取,并保存在浏览器的 Cache Storage 中。下载一次后,之后无需联网即可使用。标准模型需要约 600MB 缓存空间,高质量模型需要约 1GB。

这在隐私层面意义重大:医疗、法务、内部会议等敏感音频无需发送给外部 API 即可完成转录。在 GDPR、HIPAA 等合规场景下,数据不离开设备的设计在审计层面也具有明显优势。

tip

首次下载根据模型大小可能需要几分钟。标准模型(600MB)在 100Mbps 网络下约需 1 分钟,移动网络下可能超过 10 分钟,建议在 Wi-Fi 环境下完成首次启动。

模型选择:标准(small)与高质量(large-v3-turbo)

AudioBuff 提供"标准"与"高质量"两种模型选择,二者在精度、速度、下载体积、内存占用上存在权衡。

项目标准(whisper-small)高质量(large-v3-turbo)
参数量2.44 亿8.09 亿
下载体积(量化后)约 600MB约 1GB
encoder 量化fp32fp16
decoder 量化q4(4 位量化)q4(4 位量化)
日语精度(体感)实用程度足够对专有名词、专业术语更强
推理速度(WebGPU)实时速度的 0.3-0.5 倍实时速度的 0.5-0.8 倍
内存占用相对较轻峰值约 1.5GB
推荐用途播客、日常对话会议记录、专业领域、专有名词较多的场景
tip

若将高质量模型的 encoder 以 fp32 精度加载,会触及浏览器 ArrayBuffer 的上限(32 位浏览器为 2GB,加上 Chrome 单一缓冲区实现的限制),导致 OOM 错误崩溃。AudioBuff 通过将其转为 fp16 来规避这一限制,同时精度损失几乎为零(faster-whisper 同样默认对 large 系列模型使用 fp16)。

WebGPU 加速与 WASM 回退

AudioBuff 在推理时会自动判断 WebGPU 是否可用:支持的环境下通过 GPU 执行,不支持的环境下回退到 WebAssembly(SIMD 扩展)进行 CPU 执行。代码层面只是判断 `navigator.gpu` 是否存在,无需额外配置。

截至 2026 年 1 月,WebGPU 已在主流浏览器中全面就绪:Chrome / Edge / Brave / Opera 等 Chromium 系浏览器(自 2023 年起)、Safari(macOS 26 / iOS 26 / iPadOS 26 / visionOS 26 已默认支持)、Firefox(Windows 141+、macOS ARM64 145+ 已正式支持,Linux 计划于 2026 年内支持)。

速度提升因环境而异,但作为参考,使用 WebGPU 相比 CPU 执行通常可获得 2-5 倍左右的加速。尤其是高质量模型(large-v3-turbo),没有 WebGPU 几乎无法达到实用速度,因此尽量推荐在支持 WebGPU 的浏览器中使用。

支持 WebGPU 的主要环境
Chrome 113+、Edge 113+、Opera 99+、Brave 1.50+(macOS/Windows/Linux)、Safari 26+(macOS Tahoe / iOS 26 / iPadOS 26 / visionOS 26)、Firefox 141+(Windows)/ 145+(macOS ARM64)。Android 版 Chrome 及 Linux 版 Firefox 视设备与版本而定。
WASM 回退时的注意事项
CPU 推理耗时较长。标准模型也可能需要实时速度的 1-2 倍,高质量模型甚至需要 3-5 倍以上,因此在仅支持 WASM 的环境下强烈建议使用标准模型。

语言选择与精度

Whisper 具备自动检测语言的能力,但 AudioBuff 采用了明确指定"日语"或"英语"的设计。这并非出于交互体验的考虑,而是精度上的原因。

自动检测基于音频开头 30 秒进行推理,但在静音、噪音、短促发话、语言混杂(日英混合)等场景下容易误判,一旦语言判断错误,整段转录结果都会崩坏。通过明确指定语言,可以在解码器起始处强制使用对应语言的 token,使推理更稳定。

从语言精度的倾向来看,英语精度最高,日语在汉字转换、专有名词方面稍逊一筹。语速过快、多说话人重叠、音量过小、混响较多的音频,无论何种语言错误率都会上升。转录时使用的是修整后的原始音频,EQ、压缩静音、响度调整均不会生效。若想最大化精度,建议先用"开始处理"导出音频,再重新上传后执行转录。

提升精度的推荐"开始处理"设置
EQ:开启高通滤波器(消除低频噪音和空调声),预设选择"清晰增强"或"播客人声"。后期处理:开启"压缩静音"(抑制幻觉输出)、开启压缩器(均衡音量差异)、响度设为 -16 LUFS(提升小声部分的可辨识度)。输出:推荐 WAV(避免重新编码造成的音质损失)。将导出的音频重新拖入并在"转录"标签中执行。
日英混合音频(语言切换)
Whisper 支持混合语言音频,但会强烈受到明确指定语言的影响。若会议记录等场景中多种语言频繁切换,现实的做法是选择主要语言,再对误识别部分手动修正。
容易误识别的模式
人名、地名、专业术语、缩写词、较新的专有名词(训练数据截止时间之后出现的)。高质量模型(large-v3-turbo)在这些方面的误识别明显少于标准模型。
静音、极小音量下的幻觉输出
面对完全静音或极小音量的音频,Whisper 有时会生成训练数据中常见的"字幕套话"(例如"感谢观看"等)。将经过"压缩静音"处理的音频重新上传后再转录,可以抑制此类误生成。
体验转录功能

上传文件,在浏览器中运行 Whisper 转录。