移动端边缘AI的Whisper模型
OpenAI的Whisper是一个基于Transformer的自动语音识别(ASR)系统,已成为设备端边缘AI应用的基石。通过在移动设备上本地运行Whisper,开发人员可以确保用户隐私、消除云往返延迟并提供离线功能。本文探讨了在移动端部署Whisper的关键考虑因素,包括模型大小权衡、语言变体、长音频处理以及性能优化。
模型大小与权衡
Whisper有几种大小,每种都在准确性、速度和资源消耗之间取得平衡。主要区别在于参数数量,这决定了模型处理复杂音频、口音和背景噪音的能力。tiny模型(39M参数)最快最轻,适合对延迟要求严格的低端设备,但更容易出错。base模型(74M参数)为通用转录提供了更好的平衡,通常是能在非常受限的硬件上舒适运行的最大模型。small模型(244M参数)通常被认为是移动端的甜蜜点,在保持现代智能手机内存的同时提供了显著的准确性提升。medium(769M)和large(1.55B)模型提供最高的准确性,但需要大量RAM和处理能力,如果没有专用的硬件加速,则无法在移动端实时使用。
| 模型 | 参数 | 速度 | 准确性 | 典型用途 |
|---|---|---|---|---|
| Tiny | 39M | 最快 | 低 | 低端设备 |
| Base | 74M | 快 | 中等 | 通用转录 |
| Small | 244M | 中等 | 高 | 移动端甜蜜点 |
| Medium | 769M | 慢 | 更高 | 高端设备 |
| Large | 1.55B | 最慢 | 最高 | 服务器/离线 |
仅英语模型与多语言模型
大多数Whisper大小(tiny、base、small、medium)都有两个版本:多语言和仅英语(.en)。多语言模型在99种语言的多样化数据集上训练,使其通用但略大且更复杂。仅英语变体仅使用英语数据训练,通常为英语任务提供更好的准确性,并且资源使用更高效。对于面向英语用户的移动应用,通常首选.en模型以减小模型大小并提高性能。
处理长音频:30秒窗口
Whisper的固定感受野为30秒。要转录更长的音频,开发人员使用滑动窗口或分块方法。音频被分成30秒的片段,单独处理,然后拼接在一起。为了防止边界处的上下文丢失,实现通常使用重叠片段(例如3-10秒的重叠),以确保被片段边界切断的单词或短语能在下一个窗口中正确捕获。这项技术对于处理超过30秒的文件(如播客或录制的会议)至关重要。
移动端部署:ExecuTorch和CoreML
在移动端运行Whisper需要优化以管理热和内存限制。开发人员可以使用ExecuTorch等框架进行跨平台PyTorch部署,或将模型转换为iOS的CoreML。CoreML允许模型利用Apple Neural Engine(ANE),与仅CPU执行相比显著提高性能并降低功耗。量化也很常见:模型被量化(例如GGML或GGUF格式)以适应移动RAM,有时将占用空间减少数GB。在现代移动硬件上,像tiny或base这样较小的模型可以比实时快得多。small模型通常是实时交互式听写的实际限制,而较大的模型则保留给离线文件处理,其中速度不如准确性重要。
总之,为移动端选择合适的Whisper模型需要在准确性、速度和资源限制之间取得平衡。对于大多数边缘AI应用,带有仅英语变体的small模型提供了最佳折衷,而ExecuTorch和CoreML等部署框架确保了设备硬件上的高效执行。
