{
  "schema": "transcribe-golden-manifest-v1",
  "family": "granite_nar",
  "variant": "granite-speech-4.1-2b-nar",
  "source_model": {
    "hf_repo": "ibm-granite/granite-speech-4.1-2b-nar",
    "hf_revision": "99a4df9007ac5682f9daa093fb7008ff606e9a5d"
  },
  "reference": {
    "kind": "transformers",
    "source": "https://huggingface.co/ibm-granite/granite-speech-4.1-2b-nar",
    "revision": "99a4df9007ac5682f9daa093fb7008ff606e9a5d",
    "entrypoint": "scripts/dump_reference_granite_nar_transformers.py",
    "comment": "trust_remote_code: GraniteSpeechNarConfig + GraniteSpeechNarForASR + GraniteSpeechNarProjector + GraniteSpeechNarCTCEncoder + Conformer blocks live in modeling_granite_speech_nar.py at the pinned revision. The dumper mirrors the model card README path (AutoProcessor + AutoModel + model.transcribe). attn_implementation=eager on CPU (no flash-attn on Apple); the NAR LM uses create_bidirectional_mask() natively, so no mask-helper patching is needed."
  },
  "expected_dtype": "bfloat16",
  "dtype_source": "config",
  "frontend": {
    "sample_rate": 16000,
    "n_mels": 80,
    "hop_length": 160,
    "fft_size": 512,
    "win_length": 400,
    "window": "hann_periodic",
    "normalization": "per_utterance",
    "preemphasis": null,
    "dither": 0.0
  },
  "tokenizer_summary": {
    "type": "bpe",
    "vocab_size": 100352,
    "special_tokens": {
      "bos": 100257,
      "eos": 100257,
      "pad": 100256
    },
    "ctc_vocab_size": 348,
    "comment": "Two tokenizers: a char-level CTC tokenizer (vocab 348) over the encoder.out head, and the granite-4 BPE tokenizer (vocab 100352, no audio_token_index) over the LLM input/output."
  },
  "capabilities": {
    "languages": ["en", "fr", "de", "es", "pt"],
    "language_detection": false,
    "translation": false,
    "timestamps": [],
    "streaming": false,
    "speaker_diarization": false
  },
  "tolerance_file": "tests/tolerances/granite_nar.json",
  "transcript_compare": "normalized",
  "cases": ["jfk"]
}
