# Spec for the HF README of handy-computer/whisper-small-gguf.
# Consumed by scripts/hf_cards/generate.py.

hf_repo: openai/whisper-small
target_repo: handy-computer/whisper-small-gguf
transcribe_docs_url: https://github.com/handy-computer/transcribe.cpp/blob/main/docs/models/whisper-small.md

upstream_commit: 973afd2
pin_date: 2026-04-25

validation:
  reference: transformers
  commit: 5.6.1
  date: 2026-04-26

license: apache-2.0
license_display: Apache-2.0
pipeline_tag: automatic-speech-recognition
languages:
  - "en"
  - "zh"
  - "de"
  - "es"
  - "ru"
  - "ko"
  - "fr"
  - "ja"
  - "pt"
  - "tr"
  - "pl"
  - "ca"
  - "nl"
  - "ar"
  - "sv"
  - "it"
  - "id"
  - "hi"
  - "fi"
  - "vi"
  - "he"
  - "uk"
  - "el"
  - "ms"
  - "cs"
  - "ro"
  - "da"
  - "hu"
  - "ta"
  - "no"
  - "th"
  - "ur"
  - "hr"
  - "bg"
  - "lt"
  - "la"
  - "mi"
  - "ml"
  - "cy"
  - "sk"
  - "te"
  - "fa"
  - "lv"
  - "bn"
  - "sr"
  - "az"
  - "sl"
  - "kn"
  - "et"
  - "mk"
  - "br"
  - "eu"
  - "is"
  - "hy"
  - "ne"
  - "mn"
  - "bs"
  - "kk"
  - "sq"
  - "sw"
  - "gl"
  - "mr"
  - "pa"
  - "si"
  - "km"
  - "sn"
  - "yo"
  - "so"
  - "af"
  - "oc"
  - "ka"
  - "be"
  - "tg"
  - "sd"
  - "gu"
  - "am"
  - "yi"
  - "lo"
  - "uz"
  - "fo"
  - "ht"
  - "ps"
  - "tk"
  - "nn"
  - "mt"
  - "sa"
  - "lb"
  - "my"
  - "bo"
  - "tl"
  - "mg"
  - "as"
  - "tt"
  - "haw"
  - "ln"
  - "ha"
  - "ba"
  - "jw"
  - "su"
tags:
  - gguf
  - transcribe.cpp
  - asr
  - speech-to-text
  - whisper
  - openai

summary: |
  OpenAI Whisper small — converted to GGUF for transcribe.cpp. Multilingual transcription, language detection, and speech translation (audio in any supported language → English text). Encoder-decoder transformer; 30-second windows with chunked long-form decoding.

default_quant_index: 2

# Capability flags for the transcribe_cpp metadata block.
capabilities:
  streaming: false
  translate: true
  lang_detect: true
  timestamps: segment  # 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: 99.2
    cpu: 9.8
  ryzen-4750u:
    vulkan: 12.1
    cpu: 3.4

wer:
  source: LibriSpeech test-clean
  notes: |
    WER measured on the full LibriSpeech test-clean split (2620 utterances) with the transcribe.cpp default decode (greedy, suppress_tokens, temperature fallback, segment timestamps enabled). OpenAI's self-reported number on the same split is 3.432%. We don't know upstream's exact eval config, but the most likely cause of any divergence is that OpenAI's `model.generate()` defaults to `<|notimestamps|>` while transcribe.cpp's pipeline runs with timestamps enabled. Numbers come from a single Metal-backed run; Metal's non-deterministic parallel reductions can shift corpus WER by ~0.1pp between runs, mostly driven by short-clip hallucination outcomes on the noise floor.

quants:
  - name: F32
    filename: whisper-small-F32.gguf
    size: 924 MB
    wer: 3.33%
  - name: F16
    filename: whisper-small-F16.gguf
    size: 470 MB
    wer: 3.34%
  - name: Q8_0
    filename: whisper-small-Q8_0.gguf
    size: 257 MB
    wer: 3.33%
  - name: Q6_K
    filename: whisper-small-Q6_K.gguf
    size: 202 MB
    wer: 3.33%
  - name: Q5_K_M
    filename: whisper-small-Q5_K_M.gguf
    size: 185 MB
    wer: 3.37%
  - name: Q4_K_M
    filename: whisper-small-Q4_K_M.gguf
    size: 164 MB
    wer: 3.40%
