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

Aperta
#3,496 9 commenti 0 reazioni 2 assegnatari Vedi su GitHub

@pengzhendong ci sta già lavorando.

Dal 16/8/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

bug needs maintainer decision

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.

Lingua principale
Python
Stelle
20.4k
Fork
2k
Merge medio
4h 55m
PR unite (30g)
169

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di modelscope/FunASR

Tutte le issue di modelscope/FunASR

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.