模型简介
模型特点
模型能力
使用案例
🚀 Whisper-Tiny-En:专为移动部署优化
用于英文转录和翻译的自动语音识别(ASR)模型
OpenAI的Whisper自动语音识别(ASR)模型是一款先进的系统,旨在将口语转录为书面文本。它在现实的嘈杂环境中表现出色,使其在实际应用中非常可靠。具体来说,它擅长长格式转录,能够准确转录长达30秒的音频片段。首个标记的生成时间即编码器的延迟,而每个额外标记的生成时间则是解码器的延迟,我们假设下面指定的是平均解码长度。
此模型是对此处的Whisper-Tiny-En的实现。
本仓库提供了在高通®设备上运行Whisper-Tiny-En的脚本。有关该模型在各种设备上的性能的更多详细信息,可在此处找到。
✨ 主要特性
- 专为英文转录和翻译设计的自动语音识别模型。
- 在现实嘈杂环境中表现稳健,适用于实际应用。
- 擅长长格式转录,能准确处理长达30秒的音频。
📦 安装指南
通过pip安装该包:
pip install "qai-hub-models[whisper-tiny-en]"
💻 使用示例
基础用法
运行包中包含的简单端到端演示,该演示会下载预训练权重并在示例输入上运行此模型。
python -m qai_hub_models.models.whisper_tiny_en.demo
注意:如果想在Jupyter Notebook或Google Colab等环境中运行,请在单元格中添加以下内容(而非上述命令):
%run -m qai_hub_models.models.whisper_tiny_en.demo
高级用法
在云端托管设备上运行模型
除了演示之外,还可以在云端托管的高通®设备上运行该模型。此脚本会执行以下操作:
- 在云端托管设备上进行设备性能检查。
- 下载可部署到安卓设备上的编译资产。
- 检查PyTorch输出和设备端输出之间的准确性。
python -m qai_hub_models.models.whisper_tiny_en.export
Profiling Results
------------------------------------------------------------
WhisperEncoderInf
Device : cs_8275 (ANDROID 14)
Runtime : TFLITE
Estimated inference time (ms) : 419.3
Estimated peak memory usage (MB): [20, 42]
Total # Ops : 271
Compute Unit(s) : npu (0 ops) gpu (260 ops) cpu (11 ops)
------------------------------------------------------------
WhisperDecoderInf
Device : cs_8275 (ANDROID 14)
Runtime : TFLITE
Estimated inference time (ms) : 6.9
Estimated peak memory usage (MB): [3, 70]
Total # Ops : 557
Compute Unit(s) : npu (557 ops) gpu (0 ops) cpu (0 ops)
📚 详细文档
配置高通® AI Hub以在云端托管设备上运行此模型
使用高通® ID登录高通® AI Hub。登录后,导航到账户 -> 设置 -> API令牌
。
使用此API令牌,可以配置客户端以在云端托管设备上运行模型。
qai-hub configure --api_token API_TOKEN
更多信息请访问文档。
模型在云端托管设备上的运行原理
步骤1:为设备端部署编译模型
要为设备端部署编译PyTorch模型,首先使用jit.trace
在内存中跟踪模型,然后调用submit_compile_job
API。
import torch
import qai_hub as hub
from qai_hub_models.models.whisper_tiny_en import Model
# Load the model
torch_model = Model.from_pretrained()
# Device
device = hub.Device("Samsung Galaxy S24")
# Trace model
input_shape = torch_model.get_input_spec()
sample_inputs = torch_model.sample_inputs()
pt_model = torch.jit.trace(torch_model, [torch.tensor(data[0]) for _, data in sample_inputs.items()])
# Compile model on a specific device
compile_job = hub.submit_compile_job(
model=pt_model,
device=device,
input_specs=torch_model.get_input_spec(),
)
# Get target model to run on-device
target_model = compile_job.get_target_model()
步骤2:在云端托管设备上进行性能分析
在完成步骤1的模型编译后,可以使用target_model
在设备上对模型进行性能分析。请注意,此脚本会在云端自动配置的设备上运行模型。提交作业后,可以导航到提供的作业URL查看各种设备端性能指标。
profile_job = hub.submit_profile_job(
model=target_model,
device=device,
)
步骤3:验证设备端模型的准确性
要验证模型在设备端的准确性,可以在同一云端托管设备上对示例输入数据进行设备端推理。
input_data = torch_model.sample_inputs()
inference_job = hub.submit_inference_job(
model=target_model,
device=device,
inputs=input_data,
)
on_device_output = inference_job.download_output_data()
利用模型的输出,可以计算PSNR、相对误差,或与预期输出进行逐点检查。
注意:此设备端分析和推理需要访问高通® AI Hub。注册获取访问权限。
将编译后的模型部署到安卓设备
模型可以使用多种运行时进行部署:
🔧 技术细节
模型详情
属性 | 详情 |
---|---|
模型类型 | 语音识别 |
模型检查点 | tiny.en |
输入分辨率 | 80x3000(30秒音频) |
平均解码序列长度 | 112个标记 |
WhisperEncoder参数数量 | 939万 |
WhisperEncoder模型大小 | 35.9 MB |
WhisperDecoder参数数量 | 2820万 |
WhisperDecoder模型大小 | 108 MB |
不同设备的模型性能
模型 | 精度 | 设备 | 芯片组 | 目标运行时 | 推理时间(ms) | 峰值内存范围(MB) | 主要计算单元 | 目标模型 |
---|---|---|---|---|---|---|---|---|
WhisperEncoderInf | float | QCS8275 (Proxy) | 高通® QCS8275 (Proxy) | TFLITE | 419.271 ms | 20 - 42 MB | GPU | Whisper-Tiny-En.tflite |
... | ... | ... | ... | ... | ... | ... | ... | ... |
📄 许可证
🔗 参考资料
👥 社区
- 加入我们的AI Hub Slack社区,进行协作、提问并了解更多关于设备端AI的信息。
- 如有问题或反馈,请联系我们。



