Skip to content

Fun-ASR-Nano Hugging Face checkpoint is missing 86 CTC tensors required for timestamps and diarization #3496

Description

@oliver-mee

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneeds maintainer decisionWaiting for a maintainer or core author decision, roadmap call, or release-scope confirmation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions