modelscope / modelscope/FunASR
Fun-ASR-Nano Hugging Face checkpoint is missing 86 CTC tensors required for timestamps and diarization
@pengzhendong is already working on this.
Since Aug 16, 2026.
- Dominant language
- Python
- Stars
- 20.4k
- Forks
- 2k
- Avg merge
- 4h 55m
- Merged PRs (30d)
- 169
Description
Summary
The current Hugging Face and ModelScope copies of FunAudioLLM/Fun-ASR-Nano-2512 do not contain the same model.pt.
The Hugging Face file is smaller and lacks every ctc_decoder.* and ctc.* tensor. ASR text still works, but the CTC timestamps required by FunASR's native speaker diarization path are unavailable.
Verified on 2026-08-14 with FunASR 1.4.2.
Artefact comparison
| source | model.pt size | state-dict tensors | CTC tensors |
|---|---|---|---|
Hugging Face, commit 272c57b82523ada6fd87095e955f8e29100979ab |
1,971,149,431 bytes | 1,261 | 0 |
| ModelScope | 2,127,426,538 bytes | 1,347 | 84 ctc_decoder.* + 2 ctc.* |
Complete ModelScope checkpoint SHA-256:
81fec8616083c69377f3ceef36aba3655660ee0ca69a5d4a1e9810cd340ca499
Complete namespace counts:
audio_encoder 914
audio_adaptor 36
llm 311
ctc_decoder 84
ctc 2
Minimal inspection
from collections import Counter
from huggingface_hub import hf_hub_download
import os
import torch
path = hf_hub_download("FunAudioLLM/Fun-ASR-Nano-2512", "model.pt")
state = torch.load(path, map_location="cpu", mmap=True, weights_only=False)
print(os.path.getsize(path))
print(len(state))
print(Counter(key.split(".", 1)[0] for key in state))
Effect
Using the Hugging Face checkpoint through AutoModel produces text, but no Nano CTC timestamps. That in turn prevents the native spk_model="cam++" diarization path from producing valid speaker-attributed segments.
Replacing only model.pt with the complete ModelScope checkpoint restores character timestamps and native diarization. With the complete checkpoint, AutoModel works on both CPU and Apple MPS.
Expected result
Please synchronise the complete ModelScope model.pt to the Hugging Face repository, or otherwise document why the published artefacts intentionally differ.
It may also be useful for the loader to fail closed when a Nano checkpoint has no CTC tensors, rather than allowing text-only inference to make the checkpoint appear complete.
Related: #3208 and #3211.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.