# Spec for the HF README of handy-computer/Fun-ASR-Nano-2512-gguf.
# Consumed by scripts/hf_cards/generate.py.

hf_repo: FunAudioLLM/Fun-ASR-Nano-2512
target_repo: handy-computer/Fun-ASR-Nano-2512-gguf
transcribe_docs_url: https://github.com/handy-computer/transcribe.cpp/blob/main/docs/models/fun-asr-nano-2512.md

# Pinned at intake (Stage 1).
upstream_commit: a7088d620f755dcdca575b63db184c3ad55b2865
pin_date: 2026-05-06

# Validation pin for the most recent upload. Updated on each release —
# older HF revisions carry whatever value was current at their upload time.
validation:
  reference: FunASR
  commit: f094d28
  date: 2026-05-06

# Upstream license is "FunASR-Model-License-1.1" — not a standard SPDX id.
# The HF YAML field accepts a free-form `other` plus a license_name /
# license_link override on the upstream card; the renderer emits
# `license: other` and surfaces the human-facing form via `license_display`.
license: other
license_display: FunASR Model Open Source License Agreement v1.1
pipeline_tag: automatic-speech-recognition
languages:
  - zh
  - en
  - ja
tags:
  - gguf
  - transcribe.cpp
  - asr
  - speech-to-text
  - fun-asr-nano
  - sense-voice-encoder
  - qwen3
  - audio-llm

summary: |
  Offline speech-to-text in Chinese, English, and Japanese, plus 7 Chinese
  dialects (Wu, Cantonese, Min, Hakka, Gan, Xiang, Jin) and 26 regional
  Mandarin accents. ~800M trainable parameters wrapping a frozen
  SenseVoiceEncoderSmall (50 SAN-M main blocks + 20 transformer blocks),
  a 2-layer audio adaptor (512 → 1024), and a bundled Qwen3-0.6B LLM
  (28 layers, 16/8 GQA, BF16) that produces the transcript autoregressively.
  Takes a 16 kHz mono WAV and emits text. Not a streaming model, no
  translation, no built-in long-form chunking, no timestamps. ITN
  (inverse text normalization) is supported by the model and exposed
  via the `--itn` CLI flag and `transcribe_funasr_nano_params { use_itn }`
  in the library API.

default_quant_index: 2  # Q8_0

# Capability flags for the transcribe_cpp metadata block.
capabilities:
  streaming: false
  translate: false
  lang_detect: false
  timestamps: none  # none | segment | word | token

# Speedup-over-realtime (×RT) per rig/backend, from docs/models; published
# raw as rtf_<machine> in the metadata block.
perf:
  m4-max:
    metal: 77.5
    cpu: 27
  ryzen-4750u:
    vulkan: 10.5
    cpu: 6.5

wer:
  source: LibriSpeech test-clean
  notes: |
    WER measured on the full LibriSpeech test-clean split (2620 utterances)
    with greedy LLM decoding via the bundled Qwen3-0.6B head. Publisher
    reports 1.76% on this split (model card "Open-Source Dataset
    Performance" table). Our FunASR 1.3.1 reference run scores 1.79%
    (95% CI [1.63%, 1.95%]), within bootstrap noise of the publisher's
    number. transcribe.cpp's BF16 port matches that baseline within
    -0.01 percentage-points. LibriSpeech is an English-only benchmark;
    Chinese (AISHELL-1, WenetSpeech) and Japanese (CommonVoice JA) are
    the recommended complementary checks.

quants:
  - name: BF16
    filename: Fun-ASR-Nano-2512-BF16.gguf
    size: 1590 MB
    wer: 1.78%
  - name: F16
    filename: Fun-ASR-Nano-2512-F16.gguf
    size: 1590 MB
    wer: 1.79%
  - name: Q8_0
    filename: Fun-ASR-Nano-2512-Q8_0.gguf
    size: 850 MB
    wer: 1.79%
  - name: Q6_K
    filename: Fun-ASR-Nano-2512-Q6_K.gguf
    size: 659 MB
    wer: 1.78%
  - name: Q5_K_M
    filename: Fun-ASR-Nano-2512-Q5_K_M.gguf
    size: 602 MB
    wer: 1.82%
  - name: Q4_K_M
    filename: Fun-ASR-Nano-2512-Q4_K_M.gguf
    size: 531 MB
    wer: 1.92%
