CoolFace
Modelpublic

MigoXV/icefall-kws-zipformer-zh-en-3M-2025-12-20

sourceHugging Faceapache-2.0updated 26d agoView on Hugging Face
0likes33downloads
Model Card

icefall-kws-zipformer-zh-en-3M-2025-12-20

这是 Icefall 流式 Zipformer KWS 模型的 Hugging Face Transformers 格式转换仓库。 本次工作只包装模型结构,并把原始 PyTorch checkpoint 无损转换为 safetensors;没有重新训练、 微调、量化或修改任何权重,也不代表原作者发布了新的模型版本。

来源与校验

  • —原始仓库或发布页:https://www.modelscope.cn/models/pkufool/icefall-kws-zipformer-zh-en-3M-2025-12-20
  • —原始 revision:541d04e28be57efc6fdf46a341da09e043a37b52
  • —原始 checkpoint:checkpoint/pretrained-epoch-13-avg-2.pt
  • —原始 checkpoint SHA256:62188d073aaf7ec33f85a2c1e1f2a75751658743daeb203f17241ec3bf4ff6eb
  • —原始 tokenizer SHA256:2d3f32311f9b692b964da3c90e830258d3e78e013cb0c992dbfb15cd5a1a71b0
  • —参数量:3,219,385
  • —许可证:Apache License 2.0

模型实现来自 k2-fsa/icefall,本仓库保留了推理所需的 自定义模型代码。该模型使用显式 Phone/Pinyin token;本仓库不提供自动 G2P。

Transformers 加载

python
import torch
from transformers import AutoModel

model = AutoModel.from_pretrained(
    "MigoXV/icefall-kws-zipformer-zh-en-3M-2025-12-20",
    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 仍需调用方实现。
  • —转换没有改变原模型的训练数据、精度、偏差和适用范围。