MigoXV/icefall-kws-zipformer-gigaspeech-base-20240219
026
icefall-kws-zipformer-gigaspeech-base-20240219
这是 Icefall 流式 Zipformer KWS 模型的 Hugging Face Transformers 格式转换仓库。 本次工作只包装模型结构,并把原始 PyTorch checkpoint 无损转换为 safetensors;没有重新训练、 微调、量化或修改任何权重,也不代表原作者发布了新的模型版本。
来源与校验
- 原始仓库或发布页:https://github.com/pkufool/keyword-spotting-models/releases/tag/v0.11
- 原始发布:
v0.11 - 原始 checkpoint:
exp/pretrained.pt - 原始 checkpoint SHA256:
b9915bc01e96f5b0bef0d6b88d3a0d8086017e4f50711bf3c2be6b1acfb80900 - 原始 tokenizer SHA256:
c8a2a0129c4ab8e463164c142f82d25649661b122c8cd0b7aab5c9e80b90ad24 - 参数量:
3,487,033 - 许可证:Apache License 2.0
模型实现来自 k2-fsa/icefall,本仓库保留了推理所需的 自定义模型代码。仓库附带原始 SentencePiece 模型以及大小关键词表。
Transformers 加载
import torch
from transformers import AutoModel
model = AutoModel.from_pretrained(
"MigoXV/icefall-kws-zipformer-gigaspeech-base-20240219",
trust_remote_code=True,
).eval()
features = torch.zeros(1, 45, 80)
lengths = torch.tensor([45], dtype=torch.int64)
states = model.get_init_states(batch_size=1, device=features.device)
output = model(
input_features=features,
input_features_lens=lengths,
states=states,
)
print(output.last_hidden_state.shape, output.output_lengths)自定义代码会在加载时执行;生产环境应审阅代码并把 revision 固定为明确的 Hub commit。 模型接收已经计算好的 80 维 Kaldi Fbank,采样率为 16kHz,流式窗口为 45 帧。
对齐结果
<!-- ALIGNMENTRESULTSSTART --> 权重逐项完全一致;CPU/CUDA 数值对齐通过;本地录音 8 段(合计 274.1 秒)的离线与不同切块流式事件完全一致。 <!-- ALIGNMENTRESULTSEND -->
发布前会比较原始 PT 与 Transformers/safetensors 在 CPU、CUDA、合成特征和本地录音上的 权重、流式状态、encoder 输出与最终关键词事件。机器可读结果见 alignment.json。
限制
- 这是低层模型格式转换,不是 Hugging Face
pipeline的端到端音频分类器。 - 关键词图、音频重采样、Fbank、流式切块和 beam search 仍需调用方实现。
- 转换没有改变原模型的训练数据、精度、偏差和适用范围。
